Add to suppression list
curl --request POST \
--url https://api.sendkit.dev/suppressions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "blocked@example.com"
}
'import requests
url = "https://api.sendkit.dev/suppressions"
payload = { "email": "blocked@example.com" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: 'blocked@example.com'})
};
fetch('https://api.sendkit.dev/suppressions', 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.sendkit.dev/suppressions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'blocked@example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sendkit.dev/suppressions"
payload := strings.NewReader("{\n \"email\": \"blocked@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sendkit.dev/suppressions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"blocked@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendkit.dev/suppressions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"blocked@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"created_at": "2026-03-03 10:00:00",
"updated_at": "2026-03-03 10:00:00",
"reason": "manual"
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"created_at": "2026-03-03 10:00:00",
"updated_at": "2026-03-03 10:00:00",
"reason": "manual"
}{
"message": "Invalid API key."
}{
"message": "The email field is required."
}Suppressions
Add to suppression list
Add an email address to the suppression list. Suppressed emails will not receive any emails. If the email already exists in the suppression list, the existing entry is returned with a 200 status code. The email is normalized to lowercase.
POST
/
suppressions
Add to suppression list
curl --request POST \
--url https://api.sendkit.dev/suppressions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"email": "blocked@example.com"
}
'import requests
url = "https://api.sendkit.dev/suppressions"
payload = { "email": "blocked@example.com" }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({email: 'blocked@example.com'})
};
fetch('https://api.sendkit.dev/suppressions', 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.sendkit.dev/suppressions",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'email' => 'blocked@example.com'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.sendkit.dev/suppressions"
payload := strings.NewReader("{\n \"email\": \"blocked@example.com\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.sendkit.dev/suppressions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"email\": \"blocked@example.com\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.sendkit.dev/suppressions")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"email\": \"blocked@example.com\"\n}"
response = http.request(request)
puts response.read_body{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"created_at": "2026-03-03 10:00:00",
"updated_at": "2026-03-03 10:00:00",
"reason": "manual"
}{
"id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"email": "jsmith@example.com",
"created_at": "2026-03-03 10:00:00",
"updated_at": "2026-03-03 10:00:00",
"reason": "manual"
}{
"message": "Invalid API key."
}{
"message": "The email field is required."
}Authorizations
API key from your SendKit dashboard. Pass it as a Bearer token in the Authorization header.
Body
application/json
The email address to suppress.
Maximum string length:
255Example:
"blocked@example.com"
Response
Email already exists in the suppression list
Unique identifier for the suppression entry.
The suppressed email address.
When the entry was created.
Example:
"2026-03-03 10:00:00"
When the entry was last updated.
Example:
"2026-03-03 10:00:00"
The reason the email was suppressed.
Available options:
manual, bounce, complaint, null 
