- Retrieve all annotations within a date range for the Mixpanel project via GET /api/app/projects/{projectId}/annotations. Annotations are visual markers on Mixpanel charts that denote significant events such as product releases, marketing campaigns, or infrastructure changes.
- Retrieve a single annotation by its numeric ID via GET /api/app/projects/{projectId}/annotations/{annotationId}. Returns the annotation's date, description, and associated tags.
- Create a new annotation via POST /api/app/projects/{projectId}/annotations to mark a significant event on Mixpanel charts. Accepts a date in YYYY-MM-DD HH:MM:SS format, a descriptive label, and optional tag IDs for categorization.
- Partially update an existing annotation via PATCH /api/app/projects/{projectId}/annotations/{annotationId}. Supports modifying the description text and tag associations without replacing the entire annotation.
- Permanently delete an annotation from the project via DELETE /api/app/projects/{projectId}/annotations/{annotationId}. This action is irreversible and removes the visual marker from all Mixpanel charts.
- Retrieve all annotation tags defined in the project via GET /api/app/projects/{projectId}/annotations/tags. Tags are reusable labels that can be attached to annotations for categorization and filtering.
- Create a new reusable annotation tag via POST /api/app/projects/{projectId}/annotations/tags. Tags can then be attached to annotations via create_annotation or patch_annotation to categorize chart markers.
- Retrieve all saved cohorts in the Mixpanel project via POST /api/query/cohorts/list. Returns cohort metadata including IDs, names, and creation dates, which can then be used with query_cohort_members to retrieve the users belonging to each cohort.
- Retrieve user profiles belonging to a specific cohort via the Engage API (POST /api/query/engage) using filter_by_cohort. Supports pagination with session_id and page parameters, property projection with output_properties, and additional filtering with where expressions.
- Bulk-import historical or server-side events into Mixpanel via POST /import, supporting up to 2000 events per batch (10MB max). Provide events as a structured JSON array of event objects (not a stringified array). Each event requires a past timestamp, distinct_id, and $insert_id for deduplication; future timestamps are rejected with a 400 error. Use strict=1 to receive per-event validation errors. A response of data=1 means the whole batch was accepted (it is not a per-event count). Always call this action to import the events. Provide each event's time as a Unix timestamp in seconds or milliseconds, converting any described date and clock time (including relative dates and times) into a past Unix timestamp yourself.
- Export raw event data from Mixpanel via GET /api/2.0/export for a specified date range, returned as newline-delimited JSON (JSONL). Rate limited to 60 queries per hour with max 5 concurrent queries. Supports filtering by event name and property expressions, with a maximum of 100,000 events per request.
- Set properties on a group profile (e.g. accounts, companies, workspaces) via POST /groups with the $set operation. Creates the group profile if it does not exist, and overwrites each property's full value — including setting a list-valued property to the exact list provided (the previous list is replaced, not merged). This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty". Requires Group Analytics to be enabled in the Mixpanel project.
- Permanently delete a group profile and all stored properties from Mixpanel via POST /groups with the $delete operation. This action is irreversible and removes all data associated with the specified group_key and group_id combination. Delete directly by group_key and group_id — do NOT query, search, or look up the group first; pass them straight to this action even when the request asks to validate or confirm the deletion. The response returns a status confirming the deletion. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Set properties on a group profile via POST /groups with the $set_once operation, only writing values for properties that do not already exist. Ideal for immutable group attributes like "Created Date" or "Original Plan" that should never be overwritten. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Add unique values to a list property on a group profile via POST /groups with the $union operation; existing list items are preserved and duplicate values are ignored — it extends a list, it does not replace the property's value. Initialises the list property with the given values when it does not yet exist. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Remove specific values from list properties on a group profile via POST /groups with the $remove operation. Silently skips values not present in the list. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Permanently remove specified property keys and their values from a group profile via POST /groups with the $unset operation. Unlike $remove (which targets values within lists), $unset deletes entire properties from the group profile. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Return the authenticated identity, auth type, and connection metadata for the current Mixpanel Service Account, mapped to the IAM unified credentials schema. Mixpanel Service Accounts are machine identities — auth_type is pinned to "service_user".
- List all teams in the Mixpanel organization mapped to the IAM unified group schema. Each team includes its stable id and name; members are exposed via unified_list_resource_users with resource_type=team.
- Retrieve a single Mixpanel team by numeric id, mapped to the IAM unified group schema. Team members are exposed via unified_list_resource_users with resource_type=team.
- Returns the single Mixpanel organization that the Service Account is bound to. Synthesized from credentials.orgId — the Service Account API does not expose a list-organizations endpoint.
- Retrieve the single Mixpanel organization the Service Account is bound to. The id must match credentials.orgId; any other id returns a 404.
- List the resource types Mixpanel supports for resource-scoped IAM queries. Mixpanel exposes "team" — teams expose member lists via the org teams endpoint.
- List the members of a specific Mixpanel team (resource_type=team), with each member carrying a resource-scoped IamRole pinning them to that team.
- Return the three workspace-level IAM roles for Mixpanel (owner, admin, member) synthesized from Mixpanel's organization roles. The set is closed; role ids match the role keys embedded in IamUser.roles[] on this connector.
- Retrieve a single synthesized Mixpanel IAM role by its stable key (owner, admin, or member). The role namespace is closed to Mixpanel organization roles.
- List all users in the Mixpanel organization mapped to the IAM unified user schema. Pass expand=["roles"] and/or expand=["groups"] to inline each user's synthesized workspace role and team memberships.
- Retrieve a single Mixpanel organization user by numeric id, mapped to the IAM unified user schema. Pass expand=["roles"] and/or expand=["groups"] to inline the user's synthesized workspace role and team memberships.
- Link an anonymous user ID to a known user ID via the $identify event on POST /track for identity resolution. This operation is irreversible and merges all historical events from the anonymous ID onto the identified user. Works with all Mixpanel ID management systems.
- Merge two distinct_ids into a single identity cluster via the $merge event on POST /import. This operation is irreversible and only works with projects using the Original ID Merge system. Requires exactly 2 distinct_ids in the array.
- Create an alias linking one distinct_id to another via the $create_alias event on POST /track. Only compatible with Original ID Merge and Legacy ID Management systems. Each alias maps to exactly one distinct_id and cannot be reassigned once created.
- Retrieve all lookup tables in the Mixpanel project via GET /lookup-tables. Lookup tables map property values to additional dimensions (e.g. mapping product IDs to product names, categories, and prices) for richer analysis in reports and queries.
- Replace all data in an existing lookup table via PUT /lookup-tables/{lookupTableId} with new CSV-formatted content. The first row must be column headers and the first column serves as the join key. This fully overwrites the existing table data.
- Query user profiles from the Mixpanel Engage API using filters, cohort membership, behavioral selectors, or specific distinct_ids. Returns paginated profile data with support for property projection via output_properties to reduce response size.
- Set properties on a user profile via POST /engage with the $set operation, creating the profile if it does not exist and overwriting each property's full value — including setting a list-valued property to the exact list provided (the previous list is replaced, not merged). This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty". The API returns HTTP 200 even when a record fails validation, so enable strict=1 and verbose=1 to detect errors in the response body.
- Set properties on a user profile via POST /engage with the $set_once operation, only writing values for properties that do not already exist on the profile. Ideal for immutable attributes like "First Login Date" or "Original Source" that should never be overwritten. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Atomically increment or decrement numeric properties on a user profile via POST /engage with the $add operation. Use positive values to increment and negative values to decrement; ideal for counters like login count, purchase total, or points balance. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Permanently delete a user profile and all stored properties from Mixpanel via POST /engage with the $delete operation. This action is irreversible. Delete directly by distinct_id — do NOT query, search, or look up the profile first; pass the distinct_id straight to this action even when the request asks to validate or confirm the deletion. The response returns a status confirming the deletion (set strict=1 to validate the request before it is processed). Set ignore_alias=true when the distinct_id is an alias to avoid accidentally deleting the canonical profile. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Add unique values to a list property on a user profile via POST /engage with the $union operation; existing list items are preserved and duplicate values are ignored — it extends a list, it does not replace the property's value. Initialises the list property with the given values when it does not yet exist. Useful for maintaining sets like "Favorite Categories" or "Completed Features". This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Append values to list properties on a user profile via POST /engage with the $append operation, allowing duplicates unlike $union. Creates the list property if it does not exist. Useful for ordered logs like "Pages Visited" or "Items Added to Cart". This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Remove specific values from list properties on a user profile via POST /engage with the $remove operation. Silently skips values that do not exist in the list. Use this to maintain list properties by removing outdated or revoked items. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Permanently remove specified properties and their values from a user profile via POST /engage with the $unset operation. Unlike $remove (which targets list values), $unset deletes entire property keys from the profile. This action sends the connection's Project Token as the ingestion $token, so a Project Token must be provided when connecting the account; without it the request fails with "$token, missing or empty".
- Query a saved Insights report by bookmark ID via GET /api/query/insights, returning the computed time-series data for the report's configured events and filters. Rate limited to 60 queries per hour with max 5 concurrent queries. The bookmark_id is found in the Mixpanel URL as "report-BOOKMARK_ID".
- Query a saved Funnel report by funnel ID via GET /api/query/funnels, returning step-by-step conversion data for the specified date range. Supports segmentation via the "on" parameter and filtering via "where" expressions. Rate limited to 60 queries per hour with max 5 concurrent queries.
- Query retention data via GET /api/query/retention, returning cohort-based retention metrics for a date range. Supports both "birth" (first-time) and "compounded" retention types, with configurable intervals and segmentation. Rate limited to 60 queries per hour with max 5 concurrent queries.
- Execute custom JQL (JavaScript Query Language) scripts against Mixpanel data via POST /api/query/jql. JQL is in maintenance mode and may be deprecated in the future. Rate limited to 60 queries per hour with max 5 concurrent queries, a 2-minute execution timeout, and a 5GB data processing limit per query.
- Retrieve all data dictionary schemas (event and profile definitions) in the Mixpanel project via GET /api/app/projects/{projectId}/schemas. Returns schema entries with entity types, names, descriptions, and property definitions.
- Retrieve schemas filtered by entity type ("event" or "profile") via GET /api/app/projects/{projectId}/schemas/{entityType}. Optionally filter further by entity_name to find a specific event or profile schema definition.
- Retrieve the schema definition for a specific entity by type and name via GET /api/app/projects/{projectId}/schemas/{entityType}/{name}. Returns the full property definitions, descriptions, and metadata for the specified event or profile schema.
- Bulk upload or replace data dictionary schemas via POST /api/app/projects/{projectId}/schemas. Existing schemas for specified entities are overwritten. Use the truncate option to clear the entire data dictionary before uploading.
- Upload or replace the schema for a single entity via POST /api/app/projects/{projectId}/schemas/{entityType}/{name}. Overwrites the existing schema definition including description, properties, and metadata for the specified event or profile.
- Permanently delete all data dictionary schemas in the project via DELETE /api/app/projects/{projectId}/schemas. This clears the entire data dictionary and is irreversible; use with caution in production environments.
- Delete schemas by entity type via DELETE /api/app/projects/{projectId}/schemas/{entityType}. Optionally narrow deletion to a specific entity by providing entity_name; otherwise all schemas of the given type (event or profile) are removed.
- Delete the schema definition for a specific entity by type and name via DELETE /api/app/projects/{projectId}/schemas/{entityType}/{name}. Removes the property definitions and metadata for the specified event or profile from the data dictionary.
No matching actions