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 MethodPOST
Endpoint Pathv1.0/suppression/addEmailInSuppression
API VersionSingle API (v1.0)
Content-Typeapplication/json

Request Parameters

ParameterTypeRequiredDescriptionExample
owner_idStringYesYour unique SendClean account identifieruser_12345
tokenStringYesYour API authentication token for secure accesssk_live_abc123...
smtp_user_nameStringYesThe SMTP username to use for sending this emailsmtp_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 MethodPOST
Endpoint Pathv1.0/suppression/checkEmailInSuppression
API VersionSingle API (v1.0)
Content-Typeapplication/json

Request Parameters

ParameterTypeRequiredDescriptionExample
owner_idStringYesYour unique SendClean account identifieruser_12345
tokenStringYesYour API authentication token for secure accesssk_live_abc123...
smtp_user_nameStringYesThe SMTP username to use for sending this emailsmtp_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 MethodPOST
Endpoint Pathv1.0/suppression/deleteEmailInSuppression
API VersionSingle API (v1.0)
Content-Typeapplication/json

Request Parameters

ParameterTypeRequiredDescriptionExample
owner_idStringYesYour unique SendClean account identifieruser_12345
tokenStringYesYour API authentication token for secure accesssk_live_abc123...
smtp_user_nameStringYesThe SMTP username to use for sending this emailsmtp_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";
}

?>

Did this page help you?