Delete Contact PII
Contacts
Delete Contact PII
Permanently scrub a contact’s personally identifiable information, by contact ID or by email
DELETE
Delete Contact PII
Overview
This endpoint permanently scrubs the personally identifiable information (PII) stored for a contact, while preserving the contact record itself and its event history for reporting continuity. You can target the contact either of two ways:- By path ID:
DELETE /contacts/{id}/pii - By email:
DELETE /contacts/pii?email={email}
id or email must be provided — supplying both, or neither, returns a 422.
This is an asynchronous operation. The request validates and resolves the target contact synchronously, then queues the actual scrub and returns immediately with 202 Accepted. The PII removal itself typically completes within a few minutes; call Get Contact afterward to confirm the fields have been cleared.
What gets deleted
- All emails, phones, names, locations, devices, IPs, tracking IDs, and comet tokens ever associated with the contact — including data inherited from profiles that were merged into this contact.
- All raw browsing-session hits for the contact (IPs, fingerprints, tokens, and URL query strings). After this completes,
include_browsing_session_dataon Get Contact returns empty, and the contact’s page-view hits no longer contribute to analytics counts. - On the contact record itself:
name,email,phone,location,city,state,country,device_type,os,browser,language, and all 30 custom fields (profile_field_1–profile_field_30) are set tonull.
What is kept
- The contact record itself — its
idandcreated_atare preserved. - Its events and journey — touchpoints and conversions, including their metadata, remain intact.
- Its merge history.
Path Parameters
integer
The unique identifier of the contact whose PII should be deleted. Required when not using
email. Merged profile aliases are automatically resolved to the current canonical contact. Minimum: 1.Query Parameters
string
The email address of the contact whose PII should be deleted. Required when not using
id. Matches against both the contact’s full email history (including emails inherited from merged profiles) and its current primary email. If more than one distinct contact matches the email, the request is rejected with a 409 — delete by id instead to disambiguate.Response
Success Response
Returns202 Accepted. The scrub is queued, not yet complete.
integer
The canonical contact id (after resolving merged-profile aliases) whose PII was queued for deletion.
string
Always
queued.string
Human-readable confirmation that the deletion has been queued.
Error Response
string
Error description explaining what went wrong.
integer[]
Only present on a
409 response. The sorted list of canonical contact ids that matched the given email. Nothing is deleted when this error is returned — retry the request once per id to disambiguate.Example Requests
Delete by Contact ID
Delete by Email
Status Codes
Notes
- Rate Limit: This endpoint has a limit of 60 requests per minute per Space. See Rate Limiting for details.
- Not idempotent on missing targets: unlike Delete Event, which returns
200for an ID that no longer exists, this endpoint returns404when theidoremaildoesn’t resolve to a contact in your space. - Asynchronous: a
202response means the deletion has been queued, not completed. Poll Get Contact to confirm the PII fields have been cleared. - Ambiguous email matches nothing: if
emailmatches more than one distinct contact, the request is rejected with409and no data is deleted. Look up the individual contact ids (viacontact_idsin the response, or List Contacts) and call this endpoint once perid. - Merged profiles: if you pass an
idthat was merged into another profile, the deletion applies to the canonical (current) profile.
This operation is permanent and cannot be undone. The contact record, its events, and its merge history are preserved — only identifying data is scrubbed.