← 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
| Parameter | Type | Description |
|---|---|---|
limit | integer | Number of results to return (default: 50, max: 200) |
offset | integer | Number 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
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | The 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
| Field | Type | Required | Description |
|---|---|---|---|
email | string | Yes | The 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
| Parameter | Type | Required | Description |
|---|---|---|---|
email | string | Yes | The 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
| Reason | Description |
|---|---|
hard_bounce | The email address returned a permanent delivery failure |
complaint | The recipient reported the email as spam |
manual | The address was manually added via the API or dashboard |