API Reference
API Reference
GitHub
Data

Data Deletion

Bulk erasure of contact and email data

Erasure scoped to the active project. Both endpoints require the project admin or owner role - they are destructive and irreversible.

Delete Contact Data

POST /api/v1/data/delete-contacts

Erase one address from the contacts list and the suppression list :

{
    "email": "user@example.com"
}

Response:

{
    "deleted": 1,
    "message": "Erased user@example.com from contacts and the suppression list."
}

To erase every contact in the project, omit the address and confirm explicitly:

{
    "confirm_all": true
}

An empty body is refused rather than treated as consent:

Response (400):

{
    "error": "pass an email to erase one contact, or confirm_all: true to erase every contact in this project"
}

This leaves the email log alone

Removing the record that a message was sent is a separate decision with separate consequences - billing, deliverability disputes, and your own audit trail. It lives behind the endpoint below so the two are never conflated.

Delete Email Logs

POST /api/v1/data/delete-email-logs
FieldEffect
emailErase records where this address is the sender or a recipient
older_than_daysErase records older than N days
confirm_allRequired to erase every record when neither of the above is given
{
    "older_than_days": 30
}

Response:

{
    "deleted": 1500,
    "message": "Deleted 1500 email records older than 30 days."
}

Address matching is exact. Passing ob@x.com deletes nothing even though it is a substring of bob@x.com and rob@x.com.

In-flight mail is never deleted

Records with status queued, scheduled, or processing are exempt however old they are, and however broad the request. Deleting one would strand work the delivery queue is about to claim. The same rule the retention job follows.