API referenceSuppressions
Add a suppression
POST
API-added suppressions are always stored as reason: "manual" — any reason supplied in the body is ignored (hard_bounce/ complaint/unsubscribe are set only by the verified events pipeline). Upserts on (tenant_id, email).
bearerAuthheader
AuthorizationBearer <token>API key sent as Authorization: Bearer <key>. Looked up by SHA-256
hash (email_core::sha256_hex) against api_keys.hash; revoked
keys and keys belonging to a suspended tenant are rejected. See the
top-level Authentication section for permission levels.
application/json- body
email*stringFormat
emailreason?stringAccepted but ignored; always stored as manual.
Added.
application/json- response
email?stringreason?"manual"Value in
"manual"curl -X POST "https://example.com/v1/suppressions" \ -H "Content-Type: application/json" \ -d '{ "email": "user@example.com" }'{ "email": "string", "reason": "manual"}