Docs

Suppressions

Manage the list of addresses Irisend will never send to again — every suppressed address is dropped from to/cc/bcc automatically. /suppressions API reference.

POST/suppressionsSuppress an address

Idempotent — adding an already-suppressed address is a no-op, never an error.

curl -X POST https://api.irisend.com/suppressions \
  -H "Authorization: Bearer $IRISEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "email": "[email protected]" }'
ResponseJSON
{ "object": "suppression", "id": "6b5110fc-a694-4691-b713-f68c633ae551" }
POST/suppressions/batch/addSuppress up to 100 addresses

Response is a bare { data } — unlike every list endpoint, there's no object/has_more envelope here.

curl -X POST https://api.irisend.com/suppressions/batch/add \
  -H "Authorization: Bearer $IRISEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "emails": ["[email protected]", "[email protected]"] }'
ResponseJSON
{ "data": [{ "object": "suppression", "id": "6b5110fc-a694-4691-b713-f68c633ae551" }, { "object": "suppression", "id": "7c2e9a41-5b6d-4f3a-9e8c-2d1f0a3b4c5e" }] }
POST/suppressions/batch/removeRemove up to 100 addresses

Provide exactly one of emails or ids (max 100 each) — both or neither is a 422 validation_error. Entries that don't match any row are silently skipped.

curl -X POST https://api.irisend.com/suppressions/batch/remove \
  -H "Authorization: Bearer $IRISEND_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "emails": ["[email protected]"] }'
ResponseJSON
{ "data": [{ "object": "suppression", "id": "6b5110fc-a694-4691-b713-f68c633ae551", "deleted": true }] }
GET/suppressionsList suppressed addresses

Optional origin filter (bounce, complaint, or manual). Irisend internally also tracks a consent-withdrawal reason distinct from a manual add, but both surface as origin: "manual" on the wire, to match Resend's 3-value enum.

curl https://api.irisend.com/suppressions?origin=bounce&limit=20 \
  -H "Authorization: Bearer $IRISEND_API_KEY"
ResponseJSON
{
  "object": "list",
  "has_more": false,
  "data": [
    { "object": "suppression", "id": "6b5110fc-a694-4691-b713-f68c633ae551", "email": "[email protected]", "origin": "bounce", "source_id": "em_9f2K3mQ1zPr7vT6yB4wL0nC", "created_at": "2026-09-25T09:00:12.481Z" }
  ]
}
GET/suppressions/:refRetrieve a suppression

:ref accepts either the suppression id or the email address.

curl https://api.irisend.com/suppressions/[email protected] \
  -H "Authorization: Bearer $IRISEND_API_KEY"
DELETE/suppressions/:refRemove a suppression
curl -X DELETE https://api.irisend.com/suppressions/[email protected] \
  -H "Authorization: Bearer $IRISEND_API_KEY"
ResponseJSON
{ "object": "suppression", "id": "6b5110fc-a694-4691-b713-f68c633ae551", "deleted": true }