- 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). 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.
- 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 group profiles (e.g. accounts, companies, workspaces) via POST /groups with the $set operation. Creates the group profile if it does not exist, and overwrites existing property values. 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.
- Send a batch of mixed group profile update operations in a single POST /groups request, combining any of $set, $set_once, $add, $union, $remove, $unset, and $delete across multiple groups. Each object in the array can target a different group and use a different operation.
- Set properties on group profiles 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.
- Merge unique values into list properties on group profiles via POST /groups with the $union operation, ensuring no duplicate entries. Creates the list property if it does not exist.
- Remove specific values from list properties on group profiles via POST /groups with the $remove operation. Silently skips values not present in the list.
- Permanently remove specified property keys and their values from group profiles via POST /groups with the $unset operation. Unlike $remove (which targets values within lists), $unset deletes entire properties from the group profile.
- 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 user profiles via POST /engage with the $set operation, creating profiles if they do not exist and overwriting existing property values. The API returns HTTP 200 even when individual records fail validation, so enable strict=1 and verbose=1 to detect per-record errors in the response body.
- Set properties on user profiles 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.
- Atomically increment or decrement numeric properties on user profiles 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.
- Permanently delete user profiles and all stored properties from Mixpanel via POST /engage with the $delete operation. This action is irreversible. Use $ignore_alias=true when the distinct_id is an alias to avoid accidentally deleting the canonical profile.
- Merge unique values into list properties on user profiles via POST /engage with the $union operation, ensuring no duplicates. Creates the profile and list property if they do not exist. Useful for maintaining sets like "Favorite Categories" or "Completed Features".
- Append values to list properties on user profiles 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".
- Remove specific values from list properties on user profiles 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.
- Permanently remove specified properties and their values from user profiles via POST /engage with the $unset operation. Unlike $remove (which targets list values), $unset deletes entire property keys from the profile.
- Send a batch of mixed profile update operations in a single POST /engage request, combining any of $set, $set_once, $add, $union, $append, $remove, $unset, and $delete across multiple users. Each object in the array can use a different operation, enabling efficient bulk profile management in one API call.
- 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