curl --request GET \
--url https://api.sendpost.io/api/v1/subaccount/suppression \
--header 'X-SubAccount-ApiKey: <api-key>'import requests
url = "https://api.sendpost.io/api/v1/subaccount/suppression"
headers = {"X-SubAccount-ApiKey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-SubAccount-ApiKey': '<api-key>'}};
fetch('https://api.sendpost.io/api/v1/subaccount/suppression', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sendpost.io/api/v1/subaccount/suppression",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-SubAccount-ApiKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sendpost.io/api/v1/subaccount/suppression"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-SubAccount-ApiKey", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sendpost.io/api/v1/subaccount/suppression")
.header("X-SubAccount-ApiKey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendpost.io/api/v1/subaccount/suppression")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-SubAccount-ApiKey"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": 35,
"reason": 1,
"email": "gilfoyle@piedpiper.com",
"created": 1567512491588025000
},
{
"id": 37,
"reason": 0,
"email": "jianyang@gmail.com",
"created": 1567512491588023000
}
]List Suppressions
Retrieve the suppression list for your sub-account. Suppressions are email addresses that should not receive emails to protect your sender reputation and ensure compliance.
Suppression Types:
| Type | Reason Code | Description |
|---|---|---|
manual | 0 | Manually added by your team |
unsubscribe | 1 | User clicked unsubscribe link |
hardBounce | 2 | Permanent delivery failure (invalid address) |
spamComplaint | 3 | User marked email as spam |
Why Suppressions Matter:
- Reputation Protection: Repeatedly sending to bounced addresses damages sender reputation
- Compliance: Required for CAN-SPAM, GDPR, and other regulations
- Cost Savings: Avoid paying to send undeliverable emails
- Deliverability: ISPs penalize senders with high bounce/complaint rates
Use Cases:
- Export suppression list for compliance audits
- Sync suppressions with your CRM or marketing platform
- Review recent bounces to identify data quality issues
- Monitor spam complaints for content/targeting problems
Pagination: Use limit and offset for large suppression lists.
Note: Maximum date range is 60 days.
curl --request GET \
--url https://api.sendpost.io/api/v1/subaccount/suppression \
--header 'X-SubAccount-ApiKey: <api-key>'import requests
url = "https://api.sendpost.io/api/v1/subaccount/suppression"
headers = {"X-SubAccount-ApiKey": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {'X-SubAccount-ApiKey': '<api-key>'}};
fetch('https://api.sendpost.io/api/v1/subaccount/suppression', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.sendpost.io/api/v1/subaccount/suppression",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"X-SubAccount-ApiKey: <api-key>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.sendpost.io/api/v1/subaccount/suppression"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-SubAccount-ApiKey", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.sendpost.io/api/v1/subaccount/suppression")
.header("X-SubAccount-ApiKey", "<api-key>")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendpost.io/api/v1/subaccount/suppression")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["X-SubAccount-ApiKey"] = '<api-key>'
response = http.request(request)
puts response.read_body[
{
"id": 35,
"reason": 1,
"email": "gilfoyle@piedpiper.com",
"created": 1567512491588025000
},
{
"id": 37,
"reason": 0,
"email": "jianyang@gmail.com",
"created": 1567512491588023000
}
]Authorizations
This api key can be used only for sub account level operations
Query Parameters
Start date for suppression records (inclusive). Format YYYY-MM-DD.
"2024-01-01"
End date for suppression records (inclusive). Max 60 days from from date.
"2024-01-31"
Number of records to return per request. Default 20, max 100.
50
Number of initial records to skip for pagination.
0
Case-insensitive search against suppression email addresses.
"@example.com"
Filter by suppression type. Omit to return all types.
hardBounce, manual, spamComplaint, unsubscribe "hardBounce"
Response
A list of suppressions
Unique identifier for the suppression record
35
The suppressed email address
"bounced@example.com"
Reason code for the suppression:
0= Manual (added via API or dashboard)1= Unsubscribe (recipient clicked unsubscribe link)2= Hard Bounce (permanent delivery failure)3= Spam Complaint (recipient marked as spam)4= Hard Bounce (detected by post-send validation)
0, 1, 2, 3, 4 2
Human-readable suppression reason
manual, unsubscribe, hardBounce, spamComplaint "hardBounce"
SMTP error message from the receiving server (only for hard bounce suppressions). Useful for diagnosing delivery issues.
"550 5.1.1 The email account that you tried to reach does not exist"
UUID of the message whose bounce/complaint caused this suppression. Empty for manually added suppressions. Useful for tracing the origin.
"3f2504e0-4f89-41d3-9a0c-0305e82c3301"
UNIX epoch timestamp in nanoseconds when the suppression was added
1704067200000000000
Was this page helpful?