Suppression List
Every business has a per-account suppression list. Sending to a suppressed address is a silent no-op for that recipient, not an error — it protects your sender reputation automatically.
Automatic on hard bounce
A permanent bounce (5.x.x DSN) or spam complaint suppresses that recipient for your account instantly — no action needed.
Silently filtered, not rejected
Suppressed recipients are dropped from 'to' before sending — the send still succeeds for everyone else.
How suppression happens
At send time,
POST /v1/email/send removes any suppressed address from to before dispatching — the response includes suppressedCount so you know how many were dropped. If every recipient is suppressed, the whole request fails with ALL_SUPPRESSED.GET
/v1/email/suppressions
Paginated (limit/offset, max 100 per page).
JSON
{"success": true,"data": {"suppressions": [{"id": "sup_abc123","email": "bounced@example.com","reason": "bounce","bounceType": "permanent","createdAt": "2026-08-01T10:00:00.000Z"}],"total": 14,"limit": 50,"offset": 0,"hasMore": false}}
POST
/v1/email/suppressions
Manually suppress an address — e.g. after an unsubscribe request.
Bash
curl -X POST 'https://api.sendexa.co/v1/email/suppressions' \-H 'Content-Type: application/json' \-H 'Authorization: Basic YOUR_DASHBOARD_BASE64_TOKEN' \-d '{ "email": "user@example.com", "reason": "unsubscribed" }'
DELETE
/v1/email/suppressions/:email
Remove an address from the list (e.g. a customer re-confirms their address). URL-encode the email in the path.
Best Practices
- Don't try to "beat" suppression by re-adding removed addresses without a fresh opt-in — it exists to protect deliverability for your whole account.
- Check
suppressedCountin send responses to catch list-hygiene issues early. - Combine with webhooks — a
MESSAGE_FAILEDevent is your earliest signal a bounce/complaint just happened.