Skip to main content
Use these operations from your backend when handling individual user-data requests, including your GDPR request workflow. They act on Observe data in the project selected by your API key. The identifier is the external user ID your integration reports in user references. Use that same value, including any pseudonymization your integration applies. It is distinct from an internal Observe user ID, an email address or a session ID unless your integration deliberately uses that value as its external ID.
1

Export the available user data

Call Export user data with permission observe:dataExports:read.
URL-encode the external ID as a path segment. The response is a JSON object of named datasets, each containing rows. Datasets with no rows are omitted. The export contains the data available for that user at request time. A 404 response means Observe holds no data for that external ID.
2

Request deletion when needed

Call Create user data deletion jobs with permission observe:dataDeletionJobs:write.
A request accepts 1 to 1,000 external IDs and returns one job per ID. Store each returned job’s id and externalID. Creating a job queues deletion; it does not mean deletion has completed.
3

Check completion

Call Get a deletion job with permission observe:dataDeletionJobs:read.
The job progresses through pending, processing and completed. Check every returned job rather than treating a successful creation response as completion.
Coordinate deletion with copies already downloaded to your warehouse or other systems. This API does not delete those copies or delete the account in your identity provider. It also does not disable future event collection in your application. For bulk analytics data, use table and time-series exports.