Get a contact's suppressions
GET
/api/v3/contacts/{email}/suppressions
const url = 'https://api.tryletterhead.com/api/v3/contacts/example/suppressions?api=true';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.tryletterhead.com/api/v3/contacts/example/suppressions?api=true' \ --header 'Authorization: Bearer <token>'Returns every channel the contact can no longer be mailed on β because they unsubscribed or their address was cleaned after bouncing β with the reason and, where available, the bounce evidence behind it.
This is a company-level (v3) read. Authenticate with a company API key as a Bearer token.
Authorizations
Section titled βAuthorizations βParameters
Section titled β Parameters βPath Parameters
Section titled βPath Parameters β email
required
string
The contactβs email address, URL-encoded.
Query Parameters
Section titled βQuery Parameters β api
required
boolean
Required. Set to true.
Responses
Section titled β Responses β200 OK
Media type application/json
object
items
Array<object>
object
channel
Null for a company-wide suppression, or for a channel that has since been deleted.
object
slug
string
name
string
scope
global (suppressed everywhere) or channel (suppressed on this channel only).
string
reason
Why the contact is suppressed, for example unsubscribed or bounced.
string
source
string
occurredAt
string
message
string
total
integer
Example
{ "items": [ { "channel": { "slug": "the-daily", "name": "The Daily" }, "scope": "channel", "reason": "bounced", "source": "sparkpost", "occurredAt": "2026-06-02T08:14:11+00:00" }, { "channel": null, "scope": "global", "reason": "unsubscribed", "source": null, "occurredAt": "2026-05-14T19:40:02+00:00" } ], "message": "Suppressions retrieved.", "total": 2}Still can’t find what you need? Contact support.