Skip to main content
A suppression stops all future sends to an address. Gork maintains one suppression list per workspace and enforces it at send time — suppressed recipients fail fast with recipient_suppressed (422) before any quota is consumed.

Reasons

Hard bounces and complaints also update the matched message (status: "bounced" / "complained") and emit email.bounced / email.complained webhooks. Sustained bad reputation can pause sending workspace-wide — see Troubleshooting.

Send-time enforcement

Every POST /v1/messages/send checks all recipients (to, cc, bcc) against the list first:
Response (422)
If you believe a suppression is stale (e.g. the mailbox was restored), remove it via the API below and retry.

Manage via API

Listing requires suppressions:read; adding and removing require suppressions:write. Adding an already-suppressed address updates its reason instead of duplicating it. Removing a missing id returns suppression_not_found (404).

One-click unsubscribe

Outbound mail carries an RFC 8058 List-Unsubscribe link pointing at POST /v1/unsubscribe?token=… (mail clients fire this automatically) plus a browser-friendly GET /v1/unsubscribe?token=… page that confirms visually. Both are public — no API key needed — and both record an unsubscribe suppression and emit an email.unsubscribed webhook.
cURL
Response
A missing token returns missing_token (400); an invalid or expired token returns invalid_or_expired_token (400). The GET variant renders the same outcomes as HTML pages for humans clicking the link.
Treat complaints and unsubscribes as permanent. Re-adding a complaint or unsubscribe address manually risks provider-level reputation damage — only do so with the recipient’s explicit renewed consent.