Skip to content

Retrieve a suppression

Fetch one suppression by its id, or by the address itself.

http
GET /v1/suppressions/{suppression}

Requires a Full access API key.

Path parameters

ParameterTypeRequiredDescription
suppressionstringYesThe suppression id, or the suppressed email address.

Either identifies the same record. GET /v1/suppressions/woz@example.com and GET /v1/suppressions/{id} return it equally — the address is treated as an id whenever the value contains an @.

Example

bash
# by id
curl "https://api.sendgrail.com/v1/suppressions/$SUPPRESSION_ID" \
  -H "Authorization: Bearer $SENDGRAIL_API_KEY"

# or by address
curl "https://api.sendgrail.com/v1/suppressions/woz@example.com" \
  -H "Authorization: Bearer $SENDGRAIL_API_KEY"
js
const res = await fetch(
  'https://api.sendgrail.com/v1/suppressions/woz@example.com',
  { headers: { Authorization: `Bearer ${process.env.SENDGRAIL_API_KEY}` } },
);

const suppression = await res.json();

Response

The full suppression object:

json
{
  "object": "suppression",
  "id": "a2f5c1d0-7b3e-4c9a-8f21-6d0e5b4c3a10",
  "email": "woz@example.com",
  "origin": "bounce",
  "source_id": "e139e0a4-8c72-4b1e-9d3a-2f6b0c1d4e58",
  "created_at": "2026-07-14T19:44:32+00:00"
}

Fields

FieldTypeDescription
objectstringAlways suppression.
idstringThe suppression id.
emailstringThe suppressed address, lower-cased.
originstringWhy it was suppressed — bounce, complaint, or manual.
source_idstring | nullThe id of the email that triggered an automatic suppression. null for a manual one, which has no source.
created_atstringWhen the address was suppressed. ISO 8601.

What origin means

  • bounce — added automatically when a send to this address hard-bounced.
  • complaint — added automatically when a recipient marked a send as spam.
  • manual — added by you, through Add a suppression or the dashboard.

A bounce or complaint is permanent and cannot be removed; a manual one can. See Remove a suppression and the Suppressions guide.

Another team's suppression answers 404

An id — or address — that isn't yours is an id that doesn't exist, as far as your key is concerned:

json
{
  "message": "No suppression matches woz@example.com.",
  "code": "not_found",
  "request_id": "8f2c1e64-1b17-4f8c-9f0e-3b6c1e0f5c31"
}

Transactional email on your own domain.