Skip to main content
POST
/
api
/
app
/
data-retrievals
/
v3.0
GDPR & CCPA
curl --request POST \
  --url https://mixpanel.com/api/app/data-retrievals/v3.0 \
  --header 'Content-Type: application/json' \
  --data '
{
  "distinct_ids": [
    {}
  ],
  "compliance_type": "<string>",
  "disclosure_type": "<string>"
}
'
{
  "status": "<string>",
  "results.status": "<string>",
  "results.results": "<string>",
  "results.distinct_ids": [
    {}
  ]
}

GDPR & CCPA API

Handle GDPR and CCPA compliance requests for data retrieval and deletion.

Authentication

Use OAuth Token with Bearer authentication.

Create Data Retrieval

Create a job to retrieve all data for specific users.
token
string
required
Your project token
distinct_ids
array
required
Array of distinct IDs to retrieve data for
compliance_type
string
Compliance regulation type: GDPR or CCPADefault: GDPR
disclosure_type
string
CCPA disclosure type (only if compliance_type is CCPA): Data, Categories, or SourcesDefault: Data

Example Request

curl "https://mixpanel.com/api/app/data-retrievals/v3.0?token=YOUR_PROJECT_TOKEN" \
  -X POST \
  -H "Authorization: Bearer YOUR_OAUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "distinct_ids": ["user123", "user456"],
    "compliance_type": "GDPR"
  }'

Response

{
  "status": "ok",
  "results": {
    "task_id": "job-tracking-id-12345"
  }
}

Check Retrieval Status

Check the status of a data retrieval job.
tracking_id
string
required
The task ID returned from the create request
token
string
required
Your project token

Example Request

curl "https://mixpanel.com/api/app/data-retrievals/v3.0/job-tracking-id-12345?token=YOUR_PROJECT_TOKEN" \
  -H "Authorization: Bearer YOUR_OAUTH_TOKEN"

Response

status
string
Overall API response status
results.status
string
Job status: PENDING, STAGING, STARTED, SUCCESS, FAILURE, REVOKED, NOT_FOUND, UNKNOWN
results.results
string
Download link when job is complete, empty string if incomplete
results.distinct_ids
array
Array of distinct IDs included in the retrieval
{
  "status": "ok",
  "results": {
    "status": "SUCCESS",
    "results": "https://export.mixpanel.com/download/12345",
    "distinct_ids": ["user123", "user456"]
  }
}

Create Data Deletion

Create a deletion job to remove user data from Mixpanel.
token
string
required
Your project token
distinct_ids
array
required
Array of distinct IDs to delete
compliance_type
string
Compliance type: GDPR or CCPADefault: GDPR

Example Request

curl "https://mixpanel.com/api/app/data-deletions/v3.0?token=YOUR_PROJECT_TOKEN" \
  -X POST \
  -H "Authorization: Bearer YOUR_OAUTH_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "distinct_ids": ["user123"],
    "compliance_type": "GDPR"
  }'
Data deletion is permanent and cannot be undone. Ensure you have the correct distinct IDs before proceeding.

Check Deletion Status

tracking_id
string
required
The task ID from the deletion request
token
string
required
Your project token

Example Request

curl "https://mixpanel.com/api/app/data-deletions/v3.0/job-tracking-id-12345?token=YOUR_PROJECT_TOKEN" \
  -H "Authorization: Bearer YOUR_OAUTH_TOKEN"

Cancel Deletion

Cancel a deletion job that is still in progress.
tracking_id
string
required
The task ID of the deletion to cancel
token
string
required
Your project token

Example Request

curl "https://mixpanel.com/api/app/data-deletions/v3.0/job-tracking-id-12345?token=YOUR_PROJECT_TOKEN" \
  -X DELETE \
  -H "Authorization: Bearer YOUR_OAUTH_TOKEN"
Deletions can only be canceled while in PENDING or STARTED status. Once SUCCESS, the deletion is complete and cannot be reversed.

Build docs developers (and LLMs) love