Skip to content

Suppressions

Bounced and complained addresses are added to your suppression list automatically, and every send is checked against it; a suppressed recipient is rejected before anything leaves (400 with the address in the message), and scheduled mail is re-checked at send time, so a recipient who bounces between scheduling and the send date is never mailed.

Suppression scope depends on the entry’s reason and the send’s message stream:

Reason Blocks
bounce, complaint, manual Every stream
unsubscribe Broadcast streams only; transactional mail still delivers
Terminal window
# Add one
curl https://api.sendsignal.dev/suppressions \
-H "Authorization: Bearer ss_..." -H "Content-Type: application/json" \
-d '{"email": "user@example.com", "reason": "manual"}'
# Add many
curl https://api.sendsignal.dev/suppressions/batch \
-H "Authorization: Bearer ss_..." -H "Content-Type: application/json" \
-d '{"emails": ["a@example.com", "b@example.com"], "reason": "manual"}'
  • GET /suppressions: cursor-paginated list (default page size 50).
  • DELETE /suppressions/{id}: remove an entry, e.g. after a recipient fixes a full mailbox.

When a send is blocked by a suppression at delivery time, the email’s status becomes suppressed and an email.suppressed event fires.