{
  "ab_internal": {
    "isEnterprise": false,
    "ql": 400,
    "requireVersionIncrementsInPullRequests": true,
    "sl": 100
  },
  "allowedHosts": {
    "hosts": [
      "mixpanel.com",
      "eu.mixpanel.com"
    ]
  },
  "connectorBuildOptions": {
    "baseImage": "docker.io/airbyte/python-connector-base:4.0.2@sha256:9fdb1888c4264cf6fee473649ecb593f56f58e5d0096a87ee0b231777e2e3e73"
  },
  "connectorTestSuitesOptions": [
    {
      "suite": "liveTests",
      "testConnections": [
        {
          "id": "1684fa59-b23d-4955-b9f3-f56f77599606",
          "name": "mixpanel_config_incremental_dev_null"
        },
        {
          "id": "4158acfe-9e39-46f4-bf0b-6865368ed5a8",
          "name": "mixpanel_config_old_dev_null"
        },
        {
          "id": "575b938b-35ad-459c-a820-291e1e94c293",
          "name": "mixpanel_config_project_secret_dev_null"
        },
        {
          "id": "94ebb422-0a1f-4c4d-b4a1-cc0aa63a4114",
          "name": "mixpanel_config_dev_null"
        }
      ]
    },
    {
      "suite": "unitTests"
    },
    {
      "suite": "acceptanceTests",
      "testSecrets": [
        {
          "fileName": "config_incremental.json",
          "name": "SECRET_SOURCE-MIXPANEL_CONFIG_INCREMENTAL",
          "secretStore": {
            "alias": "airbyte-connector-testing-secret-store",
            "type": "GSM"
          }
        },
        {
          "fileName": "config_project_secret.json",
          "name": "SECRET_SOURCE-MIXPANEL_PROJECT_SECRET",
          "secretStore": {
            "alias": "airbyte-connector-testing-secret-store",
            "type": "GSM"
          }
        },
        {
          "fileName": "config.json",
          "name": "SECRET_SOURCE-MIXPANEL_SERVICE_ACCOUNT",
          "secretStore": {
            "alias": "airbyte-connector-testing-secret-store",
            "type": "GSM"
          }
        },
        {
          "fileName": "config_old.json",
          "name": "SECRET_SOURCE-MIXPANEL__CREDS",
          "secretStore": {
            "alias": "airbyte-connector-testing-secret-store",
            "type": "GSM"
          }
        }
      ]
    }
  ],
  "custom": false,
  "dockerImageTag": "3.6.2-preview.cfd4a73",
  "dockerRepository": "airbyte/source-mixpanel",
  "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
  "externalDocumentationUrls": [
    {
      "title": "Mixpanel API reference",
      "type": "api_reference",
      "url": "https://developer.mixpanel.com/reference/overview"
    },
    {
      "title": "Mixpanel authentication",
      "type": "authentication_guide",
      "url": "https://developer.mixpanel.com/reference/authentication"
    },
    {
      "title": "Mixpanel rate limits",
      "type": "rate_limits",
      "url": "https://developer.mixpanel.com/reference/rate-limits"
    },
    {
      "title": "Mixpanel Status",
      "type": "status_page",
      "url": "https://status.mixpanel.com/"
    }
  ],
  "generated": {
    "git": {
      "commit_author": "Devin AI",
      "commit_author_email": "158243242+devin-ai-integration[bot]@users.noreply.github.com",
      "commit_sha": "cfd4a735e14fe5962b61a4db5b251f3d210cfc88",
      "commit_timestamp": "2026-04-02T16:56:00+00:00"
    },
    "sbomUrl": "https://connectors.airbyte.com/files/sbom/airbyte/source-mixpanel/3.6.2-preview.cfd4a73.spdx.json",
    "source_file_info": {
      "metadata_bucket_name": "prod-airbyte-cloud-connector-metadata-service",
      "metadata_file_path": "metadata/airbyte/source-mixpanel/3.6.2-preview.cfd4a73/metadata.yaml",
      "metadata_last_modified": "2026-04-02T17:43:35.842365+00:00",
      "registry_entry_generated_at": "2026-04-02T17:43:35.842365+00:00"
    }
  },
  "githubIssueLabel": "source-mixpanel",
  "icon": "mixpanel.svg",
  "iconUrl": "https://connectors.airbyte.com/files/metadata/airbyte/source-mixpanel/latest/icon.svg",
  "language": "python",
  "license": "ELv2",
  "maxSecondsBetweenMessages": 3600,
  "name": "Mixpanel",
  "packageInfo": {
    "cdk_version": "python:6.45.0"
  },
  "public": true,
  "releaseStage": "generally_available",
  "releases": {
    "breakingChanges": {
      "1.0.0": {
        "message": "In this release, the datetime field of stream engage has had its type changed from date-time to string due to inconsistent data from Mixpanel. Additionally, the primary key for stream export has been fixed to uniquely identify records. Users will need to refresh the source schema and reset affected streams after upgrading.",
        "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel-migrations#1.0.0",
        "upgradeDeadline": "2023-10-31"
      },
      "2.0.0": {
        "message": "In this release, the default primary key for stream Export has been deleted, allowing users to select the key that best fits their data. Refreshing the source schema and resetting affected streams is necessary only if new primary keys are to be applied following the upgrade.",
        "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel-migrations#2.0.0",
        "upgradeDeadline": "2023-11-30"
      },
      "3.0.0": {
        "message": "In this release, CohortMembers stream has changed due to changes in primary key and an improper state format. Please reset CohortMembers stream. For more information, see our migration documentation.",
        "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel-migrations#3.0.0",
        "upgradeDeadline": "2024-06-03"
      }
    },
    "migrationDocumentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel-migrations",
    "rolloutConfiguration": {
      "advanceDelayMinutes": 10,
      "enableProgressiveRollout": false,
      "initialPercentage": 0,
      "maxPercentage": 50
    }
  },
  "remoteRegistries": {
    "pypi": {
      "enabled": true,
      "packageName": "airbyte-source-mixpanel"
    }
  },
  "sourceDefinitionId": "12928b32-bf0a-4f1e-964f-07e12e37153a",
  "sourceType": "api",
  "spec": {
    "connectionSpecification": {
      "$schema": "http://json-schema.org/draft-07/schema#",
      "properties": {
        "attribution_window": {
          "default": 5,
          "description": "A period of time for attributing results to ads and the lookback period after those actions occur during which ad results are counted. Default attribution window is 5 days. (This value should be non-negative integer)",
          "order": 2,
          "title": "Attribution Window",
          "type": "integer"
        },
        "credentials": {
          "description": "Choose how to authenticate to Mixpanel",
          "oneOf": [
            {
              "properties": {
                "option_title": {
                  "const": "Service Account",
                  "order": 0,
                  "type": "string"
                },
                "project_id": {
                  "description": "Your project ID number. See the <a href=\"https://help.mixpanel.com/hc/en-us/articles/115004490503-Project-Settings#project-id\">docs</a> for more information on how to obtain this.",
                  "order": 3,
                  "title": "Project ID",
                  "type": "integer"
                },
                "secret": {
                  "airbyte_secret": true,
                  "description": "Mixpanel Service Account Secret. See the <a href=\"https://developer.mixpanel.com/reference/service-accounts\">docs</a> for more information on how to obtain this.",
                  "order": 2,
                  "title": "Secret",
                  "type": "string"
                },
                "username": {
                  "description": "Mixpanel Service Account Username. See the <a href=\"https://developer.mixpanel.com/reference/service-accounts\">docs</a> for more information on how to obtain this.",
                  "order": 1,
                  "title": "Username",
                  "type": "string"
                }
              },
              "required": [
                "username",
                "secret",
                "project_id"
              ],
              "title": "Service Account",
              "type": "object"
            },
            {
              "properties": {
                "api_secret": {
                  "airbyte_secret": true,
                  "description": "Mixpanel project secret. See the <a href=\"https://developer.mixpanel.com/reference/project-secret#managing-a-projects-secret\">docs</a> for more information on how to obtain this.",
                  "order": 1,
                  "title": "Project Secret",
                  "type": "string"
                },
                "option_title": {
                  "const": "Project Secret",
                  "order": 0,
                  "type": "string"
                }
              },
              "required": [
                "api_secret"
              ],
              "title": "Project Secret",
              "type": "object"
            }
          ],
          "order": 0,
          "title": "Authentication *",
          "type": "object"
        },
        "date_window_size": {
          "default": 30,
          "description": "Defines window size in days, that used to slice through data. You can reduce it, if amount of data in each window is too big for your environment. (This value should be positive integer)",
          "minimum": 1,
          "order": 8,
          "title": "Date slicing window",
          "type": "integer"
        },
        "end_date": {
          "description": "The date in the format YYYY-MM-DD. Any data after this date will not be replicated. Left empty to always sync to most recent date",
          "examples": [
            "2021-11-16"
          ],
          "format": "date-time",
          "order": 6,
          "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
          "title": "End Date",
          "type": "string"
        },
        "export_lookback_window": {
          "default": 0,
          "description": "The number of seconds to look back from the last synced timestamp during incremental syncs of the Export stream. This ensures no data is missed due to delays in event recording. Default is 0 seconds. Must be a non-negative integer.",
          "minimum": 0,
          "order": 10,
          "title": "Export Lookback Window",
          "type": "integer"
        },
        "num_workers": {
          "default": 3,
          "description": "The number of worker threads to use for the sync. The performance upper boundary is based on the limit of your Mixpanel pricing plan. More info about the rate limit tiers can be found on Mixpanel's API <a href=\"https://developer.mixpanel.com/reference/raw-event-e xport#api-export-endpoint-rate-limits\">docs</a>.",
          "examples": [
            1,
            2,
            3
          ],
          "maximum": 25,
          "minimum": 1,
          "order": 11,
          "title": "Number of concurrent workers",
          "type": "integer"
        },
        "page_size": {
          "default": 1000,
          "description": "The number of records to fetch per request for the engage stream. Default is 1000. If you are experiencing long sync times with this stream, try increasing this value.",
          "minimum": 1,
          "order": 9,
          "title": "Page Size",
          "type": "integer"
        },
        "project_timezone": {
          "default": "US/Pacific",
          "description": "Time zone in which integer date times are stored. The project timezone may be found in the project settings in the <a href=\"https://help.mixpanel.com/hc/en-us/articles/115004547203-Manage-Timezones-for-Projects-in-Mixpanel\">Mixpanel console</a>.",
          "examples": [
            "US/Pacific",
            "UTC"
          ],
          "order": 3,
          "title": "Project Timezone",
          "type": "string"
        },
        "region": {
          "default": "US",
          "description": "The region of mixpanel domain instance either US or EU.",
          "enum": [
            "US",
            "EU"
          ],
          "order": 7,
          "title": "Region",
          "type": "string"
        },
        "select_properties_by_default": {
          "default": true,
          "description": "Setting this config parameter to TRUE ensures that new properties on events and engage records are captured. Otherwise new properties will be ignored.",
          "order": 4,
          "title": "Select Properties By Default",
          "type": "boolean"
        },
        "start_date": {
          "description": "The date in the format YYYY-MM-DD. Any data before this date will not be replicated. If this option is not set, the connector will replicate data from up to one year ago by default.",
          "examples": [
            "2021-11-16"
          ],
          "format": "date-time",
          "order": 5,
          "pattern": "^$|^[0-9]{4}-[0-9]{2}-[0-9]{2}(T[0-9]{2}:[0-9]{2}:[0-9]{2}Z)?$",
          "title": "Start Date",
          "type": "string"
        }
      },
      "required": [
        "credentials"
      ],
      "title": "Source Mixpanel Spec",
      "type": "object"
    },
    "documentationUrl": "https://docs.airbyte.com/integrations/sources/mixpanel",
    "supportsDBT": false,
    "supportsNormalization": false
  },
  "suggestedStreams": {
    "streams": [
      "export",
      "cohorts",
      "cohort_members",
      "engage",
      "annotations",
      "revenue",
      "funnels"
    ]
  },
  "supportLevel": "community",
  "supportsDataActivation": false,
  "supportsFileTransfer": false,
  "tags": [
    "language:python",
    "cdk:low-code"
  ],
  "tombstone": false
}
