Skip to main content
When someone exercises their right to be forgotten, delete their data and prove you did. An erasure job does both: it removes a person across all your stored mail (or wipes a whole inbox), and when it finishes it hands you a signed certificate — your GDPR or CCPA evidence, pulled on demand instead of chased over email. Erasure runs as a durable background job, so a large deletion completes reliably even if it takes a while. Reads use compliance:read; the deletion itself uses compliance:write.

Start an erasure

POST /v1/erasure-jobs takes a small body. Set type to subject with a subjectHandle to erase a person across all your stored mail, or type to inbox with an inboxId to wipe an inbox. The job is accepted right away and comes back pending.
Pass an Idempotency-Key. Retrying with the same key returns the same job instead of enqueuing a second erasure — so a network retry can never double-delete or spawn a duplicate. See idempotency.

Poll to completion

GET /v1/erasure-jobs/{jobId} returns the full job. Poll until status is terminal (completed or failed). Once it’s completed, the job carries exact deletion tallies and the signed certificate.
The deleted tallies count exactly what was removed — messages, threads, attachments, stored files, and any redacted event-ledger rows. The certificate is a signed artifact: verify its signature against the published JWKS and you can prove to an auditor that the deletion happened, when, and at what scope. Keep it with your compliance records.

List your jobs

GET /v1/erasure-jobs returns your jobs, newest first.

Next steps

Data residency

Where your data lives and who controls it.

Tamper-evident audit export

A verifiable export of the audit trail.

API reference

GET / POST /v1/erasure-jobs and GET /v1/erasure-jobs/{jobId}.