← Back to docs

Suppressions API

Suppressions API

Manage the email suppression list for your organization. Suppressed addresses are automatically skipped during sending to protect your sender reputation.

Automatic suppression

Hard bounces and spam complaints automatically add entries to the suppression list. You do not need to manage these manually.

List Suppressions

GET /v1/suppressions

Retrieve a paginated list of suppression entries.

Query Parameters

ParameterTypeDescription
limitintegerNumber of results to return (default: 50, max: 200)
offsetintegerNumber of results to skip (default: 0)

Example Request

curl -X GET "https://api.postscale.io/v1/suppressions?limit=50&offset=0" \
  -H "Authorization: Bearer ps_live_your_api_key"

Response

{
  "suppressions": [
    {
      "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
      "email": "bounced@example.com",
      "reason": "hard_bounce",
      "source_message_id": "msg_abc123",
      "bounce_code": "550",
      "created_at": "2026-01-15T08:20:00Z"
    },
    {
      "id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
      "email": "complained@example.com",
      "reason": "complaint",
      "source_message_id": "msg_def456",
      "feedback_type": "abuse",
      "created_at": "2026-01-16T14:45:00Z"
    }
  ],
  "total": 42,
  "limit": 50,
  "offset": 0
}

Check Suppression

GET /v1/suppressions/check

Check whether a specific email address is on the suppression list.

Query Parameters

ParameterTypeRequiredDescription
emailstringYesThe email address to check

Example Request

curl -X GET "https://api.postscale.io/v1/suppressions/check?email=bounced@example.com" \
  -H "Authorization: Bearer ps_live_your_api_key"

Response (suppressed)

{
  "suppressed": true,
  "entry": {
    "id": "d290f1ee-6c54-4b01-90e6-d701748f0851",
    "email": "bounced@example.com",
    "reason": "hard_bounce",
    "source_message_id": "msg_abc123",
    "bounce_code": "550",
    "created_at": "2026-01-15T08:20:00Z"
  }
}

Response (not suppressed)

{
  "suppressed": false,
  "entry": null
}

Add Suppression

POST /v1/suppressions

Manually add an email address to the suppression list. The entry will be created with reason manual.

Request Body

FieldTypeRequiredDescription
emailstringYesThe email address to suppress

Example Request

curl -X POST https://api.postscale.io/v1/suppressions \
  -H "Authorization: Bearer ps_live_your_api_key" \
  -H "Content-Type: application/json" \
  -d '{
    "email": "user@example.com"
  }'

Response

{
  "id": "f47ac10b-58cc-4372-a567-0e02b2c3d479",
  "email": "user@example.com",
  "reason": "manual",
  "created_at": "2026-01-18T10:30:00Z"
}

Remove Suppression

DELETE /v1/suppressions/:email

Remove an email address from the suppression list. Future sends to this address will be allowed again.

Path Parameters

ParameterTypeRequiredDescription
emailstringYesThe email address to remove from the suppression list

Example Request

curl -X DELETE https://api.postscale.io/v1/suppressions/user@example.com \
  -H "Authorization: Bearer ps_live_your_api_key"

Response

{
  "status": "removed"
}

Suppression Reasons

ReasonDescription
hard_bounceThe email address returned a permanent delivery failure
complaintThe recipient reported the email as spam
manualThe address was manually added via the API or dashboard