Export suppressions

Start an async CSV export of a suppression list.

Download a suppression list in full — no pagination cap — for audits, warehouse syncs, or taking your data with you. The export runs as a background job; columns match the entry object: email, type, reason, source, override_unsubscribes, created_at. Generated files are kept for 7 days.

POST /v3/suppressions/{type}/export

Body parameters (all optional)

ParameterTypeRequiredDescription
sinceISO-8601OptionalOnly entries created at/after this instant.
untilISO-8601OptionalOnly entries created before this instant.
sourcestringOptionalmanual, import, delivery_report or verification — e.g. export only what a migration imported.

Responses

StatusDescription
202{ export_id, status: "pending" } — poll GET /v3/suppressions/exports/{id}.
429Rate limit exceeded (10 calls/minute).

Code examples

cURL
curl -X POST https://api.wemail.io/v3/suppressions/{type}/export \
  -H "Authorization: Bearer afn_live_…" \
  -H "Content-Type: application/json" \
  -d '{ "since": "2026-01-01T00:00:00Z" }'
Node.js
const res = await fetch("https://api.wemail.io/v3/suppressions/{type}/export", {
  method: "POST",
  headers: {
    Authorization: `Bearer ${process.env.WEMAIL_API_KEY}`,
    "Content-Type": "application/json",
  },
  body: JSON.stringify({ "since": "2026-01-01T00:00:00Z" }),
});
const data = await res.json();
Python
import os, requests

r = requests.post(
    "https://api.wemail.io/v3/suppressions/{type}/export",
    headers={"Authorization": f"Bearer {os.environ['WEMAIL_API_KEY']}"},
    json={ "since": "2026-01-01T00:00:00Z" },
)
data = r.json()