Runs examples for real against your account. Test keys only; kept in this tab, never stored on our side. Get a key
ZapSMTP / Docs / Suppressions

Add a suppression

POST/v1/suppressions

Add an address to the suppression list.

Requires a full-access live key; test keys get 403 test_key_restricted.

Idempotent: an existing entry keeps its reason, except that an unsubscribe entry becomes manual when you add it as manual (a later bounce or complaint upgrades it the same way). The response echoes the requested reason with 201.

Body parameters

emailstringrequired
Address (stored lowercased). Limits: 422 invalid_parameter "invalid email"
reasonstring
manual: no email at all; unsubscribe: no broadcast email (transactional email still goes out). Limits: 422 invalid_parameter "reason must be manual or unsubscribe" One of manual, unsubscribe. Default manual.

Errors

restricted_api_keyHTTP 403
test_key_restrictedHTTP 403
test-mode keys can send test email and read, not change the account: use a live key
invalid_parameterHTTP 422
POST/v1/suppressions
curl -X POST 'https://zapsmtp.xyz/v1/suppressions' \
  -H "Authorization: Bearer $ZAP_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{
  "email": "former-customer@example.com",
  "reason": "manual"
}'
Set ZAP_API_KEY in your environment.
Response 201 Created
{
  "email": "someone@example.org",
  "reason": "manual"
}