← All API sections

GDPR

Per-email GDPR export and erasure

2 endpoints

Endpoints

MethodPathDescription
DELETE/v1/gdpr/eraseDELETE /v1/gdpr/[email protected] - Erase all data for a specific email address
GET/v1/gdpr/exportGET /v1/gdpr/[email protected] - Export all data for a specific email address

DELETE /v1/gdpr/erase

Permanently deletes every table [gdpr::GDPR_COVERED_TABLES] names for the specified email address — emails (as the envelope recipient), events, tracking tokens, CC/BCC deliveries to the address, suppressions, unsubscribe events, contacts, inbound emails, agent mailbox messages, engagement stats, webhook delivery logs and ISP feedback-loop reports — plus matching entries in the Redis dead letter queue. An email where the address appears only as a cc, bcc or reply-to is redacted (the address is stripped from those fields) rather than deleted, since deleting it would destroy a different recipient's delivery record. Logs the action in the audit trail, storing a masked form of the address rather than the plaintext. Rate limited to 1 request per minute per account.

Parameters

NameInTypeRequiredDescription
emailquerystringYesEmail address to erase data for

Responses

StatusDescription
200Email data erased
401Unauthorized
422Invalid email parameter
429Rate limited (1 per minute)

Example

curl -X DELETE https://api.euromail.dev/v1/gdpr/erase \
  -H "X-EuroMail-Api-Key: em_live_..."
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.deleteGdpr();
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.delete_gdpr()
use euromail::EuroMail;

let client = EuroMail::new("em_live_...");

let result = client.delete_gdpr().await?;
client := euromail.NewClient("em_live_...")

result, err := client.DeleteGdpr(ctx)

GET /v1/gdpr/export

Returns every table [gdpr::GDPR_COVERED_TABLES] names — email metadata, delivery events, suppression entries, unsubscribe events, inbound emails, agent mailbox messages, engagement stats, webhook delivery logs and ISP feedback-loop reports — plus any Redis dead letter queue entries referencing the address, for the specified email address. Rate limited to 1 request per minute per account.

Parameters

NameInTypeRequiredDescription
emailquerystringYesEmail address to export data for

Responses

StatusDescription
200Per-email GDPR data export
401Unauthorized
422Invalid email parameter
429Rate limited (1 per minute)

Example

curl -X GET https://api.euromail.dev/v1/gdpr/export \
  -H "X-EuroMail-Api-Key: em_live_..."
import { EuroMail } from "@euromail/sdk";

const euromail = new EuroMail({ apiKey: "em_live_..." });

const result = await euromail.getGdpr();
from euromail import EuroMail

client = EuroMail(api_key="em_live_...")

result = client.get_gdpr()
use euromail::EuroMail;

let client = EuroMail::new("em_live_...");

let result = client.get_gdpr().await?;
client := euromail.NewClient("em_live_...")

result, err := client.GetGdpr(ctx)