Suppression Management
Add, check, and remove email addresses from the suppression list with Single API v1.0.
Overview
Adds an email address to your suppression list. Suppressed addresses will not receive any emails
From your account, regardless of sending attempts.
Reasons to suppress addresses:
- User requested to unsubscribe
- Email bounced repeatedly (hard bounces)
- Spam complaints filed
- Invalid or non-existent addresses
- Internal block lists
Suppression protects:
- Your sender reputation
- Recipient preferences
- Compliance with anti-spam laws
- Your sending infrastructure from bounces
Suppressed emails remain blocked until explicitly removed from the list.
Endpoint Details
| HTTP Method | POST |
|---|---|
| Endpoint Path | v1.0/suppression/addEmailInSuppression |
| API Version | Single API (v1.0) |
| Content-Type | application/json |
Request Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| owner_id | String | Yes | Your unique SendClean account identifier | user_12345 |
| token | String | Yes | Your API authentication token for secure access | sk_live_abc123... |
| smtp_user_name | String | Yes | The SMTP username to use for sending this email | smtp_user_001 |
Request Example
Below is a complete example of the request body. Replace placeholder values with your actual credentials and data.
{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}Response Format
Successful Response:
{
"status": "success",
"code": 200,
"message": "Email queued successfully",
"data": {
"message_id": "msg_abc123xyz",
"queued_at": "2026-04-17T10:30:00Z",
"recipients": 1
}
}Common Errors & Troubleshooting
401 - Unauthorized: Authentication credentials are missing or invalid
Solution: Verify owner_id and token are correct. Ensure they match your account credentials exactly with no extra whitespace.
500 - Internal server error: Unexpected server error occurred
Solution: Retry the request after a brief delay. If error persists, contact SendClean support with the request details and timestamp.
Implementation Examples
curl -X POST \
https://api.sendclean.com/v1.0/suppression/addEmailInSuppression \
-H 'Content-Type: application/json' \
-d '{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}'const axios = require('axios');
const url = 'https://api.sendclean.com/v1.0/suppression/addEmailInSuppression';
const payload = {
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
};
axios.post(url, payload, {
headers: {
'Content-Type': 'application/json'
}
})
.then(response => {
console.log('Success:', response.data);
})
.catch(error => {
console.error('Error:', error.response ? error.response.data : error.message);
});<?php
$url = 'https://api.sendclean.com/v1.0/suppression/addEmailInSuppression';
$payload = json_decode('{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}', true);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
$result = json_decode($response, true);
print_r($result);
} else {
echo "Error: $httpCode - $response";
}
?>Overview
Checks if a specific email address is in your suppression list. Use this before attempting
To send to verify the address isn't blocked.
This endpoint returns:
- Whether the address is suppressed
- Reason for suppression (if available)
- Date when suppressed
- Source of suppression (manual, bounce, complaint)
Integrate this check into your sending workflows to:
- Prevent sending to suppressed addresses
- Reduce bounce rates
- Maintain sender reputation
- Comply with unsubscribe requests
Endpoint Details
| HTTP Method | POST |
|---|---|
| Endpoint Path | v1.0/suppression/checkEmailInSuppression |
| API Version | Single API (v1.0) |
| Content-Type | application/json |
Request Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| owner_id | String | Yes | Your unique SendClean account identifier | user_12345 |
| token | String | Yes | Your API authentication token for secure access | sk_live_abc123... |
| smtp_user_name | String | Yes | The SMTP username to use for sending this email | smtp_user_001 |
Request Example
Below is a complete example of the request body. Replace placeholder values with your actual credentials and data.
{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}Response Format
Successful Response:
{
"status": "success",
"code": 200,
"message": "Email queued successfully",
"data": {
"message_id": "msg_abc123xyz",
"queued_at": "2026-04-17T10:30:00Z",
"recipients": 1
}
}Common Errors & Troubleshooting
401 - Unauthorized: Authentication credentials are missing or invalid
Solution: Verify owner_id and token are correct. Ensure they match your account credentials exactly with no extra whitespace.
500 - Internal server error: Unexpected server error occurred
Solution: Retry the request after a brief delay. If error persists, contact SendClean support with the request details and timestamp.
Implementation Examples
curl -X POST \
https://api.sendclean.com/v1.0/suppression/checkEmailInSuppression \
-H 'Content-Type: application/json' \
-d '{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}'const axios = require('axios');
const url = 'https://api.sendclean.com/v1.0/suppression/checkEmailInSuppression';
const payload = {
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
};
axios.post(url, payload, {
headers: {
'Content-Type': 'application/json'
}
})
.then(response => {
console.log('Success:', response.data);
})
.catch(error => {
console.error('Error:', error.response ? error.response.data : error.message);
});<?php
$url = 'https://api.sendclean.com/v1.0/suppression/checkEmailInSuppression';
$payload = json_decode('{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}', true);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
$result = json_decode($response, true);
print_r($result);
} else {
echo "Error: $httpCode - $response";
}
?>Overview
Removes an email address from your suppression list, allowing them to receive emails again.
Only remove addresses when:
- User explicitly re-subscribes
- The suppression was added in error
- You have confirmed the address is valid
- The user has requested re-enablement
Removing suppression does not automatically re-subscribe the user to your lists - it only allows sending to be attempted
again.
Endpoint Details
| HTTP Method | POST |
|---|---|
| Endpoint Path | v1.0/suppression/deleteEmailInSuppression |
| API Version | Single API (v1.0) |
| Content-Type | application/json |
Request Parameters
| Parameter | Type | Required | Description | Example |
|---|---|---|---|---|
| owner_id | String | Yes | Your unique SendClean account identifier | user_12345 |
| token | String | Yes | Your API authentication token for secure access | sk_live_abc123... |
| smtp_user_name | String | Yes | The SMTP username to use for sending this email | smtp_user_001 |
Request Example
Below is a complete example of the request body. Replace placeholder values with your actual credentials and data.
{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}Response Format
Successful Response:
{
"status": "success",
"code": 200,
"message": "Email queued successfully",
"data": {
"message_id": "msg_abc123xyz",
"queued_at": "2026-04-17T10:30:00Z",
"recipients": 1
}
}Common Errors & Troubleshooting
401 - Unauthorized: Authentication credentials are missing or invalid
Solution: Verify owner_id and token are correct. Ensure they match your account credentials exactly with no extra whitespace.
500 - Internal server error: Unexpected server error occurred
Solution: Retry the request after a brief delay. If error persists, contact SendClean support with the request details and timestamp.
Implementation Examples
curl -X POST \
https://api.sendclean.com/v1.0/suppression/deleteEmailInSuppression \
-H 'Content-Type: application/json' \
-d '{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}'const axios = require('axios');
const url = 'https://api.sendclean.com/v1.0/suppression/deleteEmailInSuppression';
const payload = {
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
};
axios.post(url, payload, {
headers: {
'Content-Type': 'application/json'
}
})
.then(response => {
console.log('Success:', response.data);
})
.catch(error => {
console.error('Error:', error.response ? error.response.data : error.message);
});<?php
$url = 'https://api.sendclean.com/v1.0/suppression/deleteEmailInSuppression';
$payload = json_decode('{
"owner_id": "{{owner_id}}",
"token": "{{token}}",
"smtp_user_name": "{{smtp_user_name}}",
"emails": [
"[email protected]"
]
}', true);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
'Content-Type: application/json'
]);
$response = curl_exec($ch);
$httpCode = curl_getinfo($ch, CURLINFO_HTTP_CODE);
curl_close($ch);
if ($httpCode == 200) {
$result = json_decode($response, true);
print_r($result);
} else {
echo "Error: $httpCode - $response";
}
?>Updated 4 days ago