Suppressions
Block sends to addresses that bounced, complained, or were added manually. Suppressions are tenant-local to your SuperSend TX account.
Base URL: https://api.supersendtx.com
Authentication
Authorization: Bearer stx_…Requires a full-scope API key (or dashboard session). Sending-scoped keys cannot manage suppressions.
Behavior
- Emails are stored normalized lowercase.
- Hard bounces and complaint-like events auto-add suppressions (
source: bounce/complaint). POST /emailschecksto/cc/bccbefore sending. If any recipient is suppressed, the API returns 422 withcode: validation_error,details.suppressed, and emitsemail.suppressed(asuppressedemail record is created).
List
GET /suppressions
Query: limit, cursor, optional email.
{
"data": [
{
"id": "…",
"email": "bad@example.com",
"reason": "550 user unknown",
"source": "bounce",
"created_at": "2026-07-26T12:00:00.000Z",
"updated_at": "2026-07-26T12:00:00.000Z"
}
],
"has_more": false,
"next_cursor": null
}Add
POST /suppressions
{ "email": "user@example.com", "reason": "manual opt-out" }source is set to api. Upserts on (account, email).
Remove
DELETE /suppressions/{id}
or
DELETE /suppressions?email=user@example.com
{ "ok": true }SDK
import { SuperSendTX } from 'supersendtx'
const client = new SuperSendTX(process.env.SUPERSENDTX_API_KEY!)
await client.suppressions.create({ email: 'user@example.com', reason: 'opt-out' })
const { data } = await client.suppressions.list()
await client.suppressions.remove('user@example.com')CLI
supersendtx suppressions list
supersendtx suppressions add --email user@example.com --reason "opt-out"
supersendtx suppressions remove --email user@example.com