Closed betaInvite-only API access.Ask for an invite
Browse documentation

Platform

Proof & compliance

Signed, verifiable records of what you sent — and data-retention controls.

For disputes, audits, and regulators: export a cryptographically signed record of exactly what was sent and when. Anyone can verify it without trusting you.

GET/v1/messages/:id/proof
GET/v1/exports/compliance
POST/v1/proof/verify
GET/v1/retention
PUT/v1/retention

Data-subject requests

When one of your recipients asks what you hold about them, or asks you to delete it, these answer it directly — GDPR gives you 30 days, which is not time to be writing database queries.

POST/v1/privacy/export
POST/v1/privacy/erase
privacy.ts
// What do we hold about them?
const data = await mail.privacy.export({ email: "ada@example.com" });

// Erase it. The confirmation is required, not a formality.
await mail.privacy.erase({ email: "ada@example.com", confirm: true });
noteErasing a recipient keeps their suppression entry, deliberately. Deleting it would mean your next campaign emails them again — the opposite of what they asked for. Messages they were sent are redacted rather than deleted, so you keep the proof you were entitled to send them without keeping them.
proof.ts
const proof = await mail.messages.proof(msg.id);   // { bundle, signature }
const valid = await mail.compliance.verify(proof);  // true — verifiable without us
noteProof bundles are Ed25519-signed; any edit to the recorded events breaks the signature.