Mixpanel
This page contains the setup guide and reference information for the Mixpanel source connector.
Prerequisites
To set up the Mixpanel source connector, you need:
- A Mixpanel Service Account with access to your project. You need the service account username and secret.
- Your Project ID, found in your Mixpanel project settings.
- Your Project Timezone, found in your Mixpanel project settings.
- Your project's data residency region (
USorEU).
The connector also supports Project Secret authentication, but Mixpanel has deprecated this method with an end-of-life date of March 3, 2027. Use Service Account authentication for new configurations.
Set up the Mixpanel connector in Airbyte
- Log into your Airbyte Cloud or navigate to the Airbyte Open Source dashboard.
- Click Sources and then click + New source.
- On the Set up the source page, select Mixpanel from the Source type dropdown.
- Enter a name for the Mixpanel connector.
- For Authentication, select Service Account from the dropdown and enter your service account Username and Secret.
- For Project ID, enter your Mixpanel Project ID.
- For Attribution Window, enter the number of days for the attribution window. The default is 5 days.
- For Project Timezone, enter the timezone for your Mixpanel project. The default is
US/Pacific. - For Select Properties By Default, leave enabled to capture new properties on events and Engage records automatically. Disable to ignore new properties.
- For Start Date, enter the date in
YYYY-MM-DDformat. Data on and after this date is replicated. If left blank, the connector replicates data from up to one year ago by default. - For End Date, optionally enter a date in
YYYY-MM-DDformat. Data after this date is not replicated. Leave blank to always sync to the most recent date. - For Region, select the region for your Mixpanel project (
USorEU). - For Date slicing window, enter the number of days per request window. The default is 30 days. Reduce this value if you encounter memory issues due to large volumes of data per window.
- For Page Size, enter the number of records to fetch per request for the Engage stream. The default is 1000.
- For Export Lookback Window, enter the number of seconds to look back from the last synced timestamp during incremental syncs of the Export stream. This helps avoid missed data due to delays in event recording. The default is 0 seconds.
- For Number of concurrent workers, enter the number of worker threads for the sync. The default is 3. Higher values may improve performance but are constrained by your Mixpanel plan's rate limits.
- Click Set up source.
Supported sync modes
The Mixpanel source connector supports the following sync modes:
Incremental syncs may return duplicate records for the state date because the Mixpanel API filters are granular to the whole day only.
Supported streams
| Stream | Sync mode | Primary key |
|---|---|---|
| Export | Incremental | User-defined (see below) |
| Engage | Incremental | distinct_id |
| Funnels | Incremental | funnel_id, date |
| Revenue | Incremental | date |
| Annotations | Full Refresh | id |
| Cohorts | Incremental | id |
| Cohort Members | Incremental | distinct_id, cohort_id |
Primary key for the Export stream
The Export stream has no default primary key. Mixpanel recommends using insert_id, time, event, and distinct_id together as the primary key. Some rows may lack an insert_id, so verify that your chosen key combination uniquely identifies your data.
Performance considerations
Mixpanel enforces separate rate limits for different API endpoints:
- Query API (Cohorts, Engage, Funnels, Revenue, Annotations, Cohort Members): 5 concurrent queries, 60 queries per hour.
- Raw Data Export API (Export): 100 concurrent queries, 60 queries per hour, 3 queries per second.
Syncing large date windows may take longer due to these rate limits. You can adjust the Date slicing window and Number of concurrent workers settings to tune performance within your plan's limits.
Reference
Config fields reference
CHANGELOG
Expand to review
| Version | Date | Pull Request | Subject |
|---|---|---|---|
| 3.6.2 | 2026-04-03 | 76039 | Replace deprecated MessageRepresentationAirbyteTracedErrors with AirbyteTracedException in tests |
| 3.6.3 | 2026-04-13 | 76276 | Rename "concurrent workers" to "concurrent threads" in connector spec |
| 3.6.2 | 2026-04-02 | 76039 | Replace deprecated MessageRepresentationAirbyteTracedErrors with AirbyteTracedException in tests |
| 3.6.1 | 2025-08-02 | 64298 | Update dependencies |
| 3.6.0 | 2025-07-30 | 64122 | Promoting release candidate 3.6.0-rc.4 to a main version. |
| 3.6.0-rc.4 | 2025-07-17 | 63351 | Reduce default number of concurrent workers |
| 3.6.0-rc.3 | 2025-07-09 | 62845 | Add back python implementation of export stream |
| 3.6.0-rc.2 | 2025-04-17 | 58116 | Update backoff strategy |
| 3.6.0-rc.1 | 2025-04-14 | 55189 | Update airbyte-cdk, set up concurrency |
| 3.5.4 | 2025-04-12 | 57893 | Update dependencies |
| 3.5.3 | 2025-04-05 | 57101 | Update dependencies |
| 3.5.2 | 2025-03-29 | 56663 | Update dependencies |
| 3.5.1 | 2025-03-22 | 55429 | Update dependencies |
| 3.5.0 | 2025-03-10 | 55673 | Add Export Lookback Window |
| 3.4.21 | 2025-03-06 | 55224 | Migrate streams to latest endpoint |
| 3.4.20 | 2025-03-01 | 54769 | Update dependencies |
| 3.4.19 | 2025-02-22 | 54319 | Update dependencies |
| 3.4.18 | 2025-02-15 | 53852 | Update dependencies |
| 3.4.17 | 2025-02-01 | 52787 | Update dependencies |
| 3.4.16 | 2025-01-25 | 52261 | Update dependencies |
| 3.4.15 | 2025-01-11 | 51216 | Update dependencies |
| 3.4.14 | 2025-01-04 | 50891 | Update dependencies |
| 3.4.13 | 2024-12-28 | 50596 | Update dependencies |
| 3.4.12 | 2024-12-21 | 50095 | Update dependencies |
| 3.4.11 | 2024-12-14 | 49249 | Starting with this version, the Docker image is now rootless. Please note that this and future versions will not be compatible with Airbyte versions earlier than 0.64 |
| 3.4.10 | 2024-12-12 | 48948 | Update dependencies |
| 3.4.9 | 2024-11-04 | 47098 | Update dependencies |
| 3.4.8 | 2024-10-12 | 46792 | Update dependencies |
| 3.4.7 | 2024-10-05 | 46428 | Update dependencies |
| 3.4.6 | 2024-09-28 | 45747 | Update dependencies |
| 3.4.5 | 2024-09-14 | 45473 | Update dependencies |
| 3.4.4 | 2024-09-07 | 45264 | Update dependencies |
| 3.4.3 | 2024-08-31 | 45059 | Update dependencies |
| 3.4.2 | 2024-08-24 | 44643 | Update dependencies |
| 3.4.1 | 2024-08-17 | 44274 | Update dependencies |
| 3.4.0 | 2024-07-16 | 41969 | Update to v4 CDK |
| 3.3.3 | 2024-08-10 | 43575 | Update dependencies |
| 3.3.2 | 2024-08-03 | 43182 | Update dependencies |
| 3.3.1 | 2024-07-27 | 42391 | Update dependencies |
| 3.3.0 | 2024-07-15 | 41754 | Add engage page size to configuration |
| 3.2.4 | 2024-07-13 | 41754 | Update dependencies |
| 3.2.3 | 2024-07-10 | 41420 | Update dependencies |
| 3.2.2 | 2024-07-09 | 41289 | Update dependencies |
| 3.2.1 | 2024-07-06 | 40806 | Update dependencies |
| 3.2.0 | 2024-06-26 | 40607 | Make engage stream really incremental |
| 3.1.5 | 2024-06-26 | 40549 | Migrate off deprecated auth package |
| 3.1.4 | 2024-06-25 | 40376 | Update dependencies |
| 3.1.3 | 2024-06-22 | 40138 | Update dependencies |
| 3.1.2 | 2024-06-18 | 38710 | Update authenticator CDK package |
| 3.1.1 | 2024-06-04 | 39006 | [autopull] Upgrade base image to v1.2.1 |
| 3.1.0 | 2024-05-30 | 38757 | change format for start_date and end_date from date to date-time |
| 3.0.0 | 2024-05-22 | 38066 | Changed key to distinct_id, cohort_id and changed state to per-patition format for CohortMembers stream; fixed pagination for Engage stream; fixed incorrect client-side filtering for semi-incremental streams when data comes not in chronological order; semi-incremental Cohorts, CohortMembers and Engage streams with client-side filtering extract records since user provided or default (1 year old) start_date |
| 2.3.1 | 2024-05-20 | 38267 | Replace AirbyteLogger with logging.Logger |
| 2.3.0 | 2024-04-12 | 36724 | Connector migrated to low-code |
| 2.2.2 | 2024-04-19 | 36651 | Updating to 0.80.0 CDK |
| 2.2.1 | 2024-04-12 | 36651 | Schema descriptions |
| 2.2.0 | 2024-03-19 | 36267 | Pin airbyte-cdk version to ^0 |
| 2.1.0 | 2024-02-13 | 35203 | Update stream Funnels schema with custom_event_id and custom_event fields |
| 2.0.2 | 2024-02-12 | 35151 | Manage dependencies with Poetry |
| 2.0.1 | 2024-01-11 | 34147 | prepare for airbyte-lib |
| 2.0.0 | 2023-10-30 | 31955 | Delete the default primary key for the Export stream |
| 1.0.1 | 2023-10-19 | 31599 | Base image migration: remove Dockerfile and use the python-connector-base image |
| 1.0.0 | 2023-09-27 | 30025 | Fix type of datetime field in engage stream; fix primary key for export stream. |
| 0.1.41 | 2023-09-26 | 30149 | Change config schema; set checkpointing interval; add suggested streams; add casting datetime fields. |
| 0.1.40 | 2022-09-20 | 30090 | Handle 400 error when the credentials become expired |
| 0.1.39 | 2023-09-15 | 30469 | Add default primary key distinct_id to Export stream |
| 0.1.38 | 2023-08-31 | 30028 | Handle gracefully project timezone mismatch |
| 0.1.37 | 2023-07-20 | 27932 | Fix spec: change start/end date format to date |
| 0.1.36 | 2023-06-27 | 27752 | Partially revert version 0.1.32; Use exponential backoff |
| 0.1.35 | 2023-06-12 | 27252 | Add should_retry False for 402 error |
| 0.1.34 | 2023-05-15 | 21837 | Add "insert_id" field to "export" stream schema |
| 0.1.33 | 2023-04-25 | 25543 | Set should_retry for 104 error in stream export |
| 0.1.32 | 2023-04-11 | 25056 | Set HttpAvailabilityStrategy, add exponential backoff, streams export and annotations add undeclared fields |
| 0.1.31 | 2023-02-13 | 22936 | Specified date formatting in specification |
| 0.1.30 | 2023-01-27 | 22017 | Set AvailabilityStrategy for streams explicitly to None |
| 0.1.29 | 2022-11-02 | 18846 | For "export" stream make line parsing more robust |
| 0.1.28 | 2022-10-06 | 17699 | Fix discover step issue cursor field None |
| 0.1.27 | 2022-09-29 | 17415 | Disable stream "cohort_members" on discover if not access |
| 0.1.26 | 2022-09-28 | 17304 | Migrate to per-stream states |
| 0.1.25 | 2022-09-27 | 17145 | Disable streams "export", "engage" on discover if not access |
| 0.1.24 | 2022-09-26 | 16915 | Added Service Accounts support |
| 0.1.23 | 2022-09-18 | 16843 | Add stream=True for export stream |
| 0.1.22 | 2022-09-15 | 16770 | Use "Retry-After" header for backoff |
| 0.1.21 | 2022-09-11 | 16191 | Improved connector's input configuration validation |
| 0.1.20 | 2022-08-22 | 15091 | Improve export stream cursor support |
| 0.1.19 | 2022-08-18 | 15739 | Update titile and description for Project Secret field |
| 0.1.18 | 2022-07-21 | 14924 | Remove additionalProperties field from schemas and specs |
| 0.1.17 | 2022-06-01 | 13372 | Acceptance tests fix, fixing some bugs for beta release |
| 0.1.16 | 2022-05-30 | 12801 | Add end_date parameter |
| 0.1.15 | 2022-05-04 | 12482 | Update input configuration copy |
| 0.1.14 | 2022-05-02 | 11501 | Improve incremental sync method to streams |
| 0.1.13 | 2022-04-27 | 12335 | Adding fixtures to mock time.sleep for connectors that explicitly sleep |
| 0.1.12 | 2022-03-31 | 11633 | Increase unit test coverage |
| 0.1.11 | 2022-04-04 | 11318 | Change Response Reading |
| 0.1.10 | 2022-03-31 | 11227 | Fix cohort id always null in the cohort_members stream |
| 0.1.9 | 2021-12-07 | 8578 | Updated titles and descriptions |
| 0.1.7 | 2021-12-01 | 8381 | Increased performance for discovery stage during connector setup |
| 0.1.6 | 2021-11-25 | 8256 | Deleted date_window_size and fix schemas date type issue |
| 0.1.5 | 2021-11-10 | 7451 | Support start_date older than 1 year |
| 0.1.4 | 2021-11-08 | 7499 | Remove base-python dependencies |
| 0.1.3 | 2021-10-30 | 7505 | Guarantee that standard and custom mixpanel properties in the Engage stream are written as strings |
| 0.1.2 | 2021-11-02 | 7439 | Added delay for all streams to match API limitation of requests rate |
| 0.1.1 | 2021-09-16 | 6075 | Added option to select project region |
| 0.1.0 | 2021-07-06 | 3698 | Created CDK native mixpanel connector |