curl --request POST \
--url https://api.leadping.ai/suppressions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipientIdentifier": "<string>",
"phoneNumber": "<string>",
"email": "jsmith@example.com",
"channel": "<string>",
"reason": "<string>"
}
'import requests
url = "https://api.leadping.ai/suppressions"
payload = {
"recipientIdentifier": "<string>",
"phoneNumber": "<string>",
"email": "jsmith@example.com",
"channel": "<string>",
"reason": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.leadping.ai/suppressions");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"recipientIdentifier\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"channel\": \"<string>\",\n \"reason\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
HttpResponse<String> response = Unirest.post("https://api.leadping.ai/suppressions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"recipientIdentifier\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"channel\": \"<string>\",\n \"reason\": \"<string>\"\n}")
.asString();const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipientIdentifier: '<string>',
phoneNumber: '<string>',
email: 'jsmith@example.com',
channel: '<string>',
reason: '<string>'
})
};
fetch('https://api.leadping.ai/suppressions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.leadping.ai/suppressions"
payload := strings.NewReader("{\n \"recipientIdentifier\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"channel\": \"<string>\",\n \"reason\": \"<string>\"\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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.leadping.ai/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([
'recipientIdentifier' => '<string>',
'phoneNumber' => '<string>',
'email' => 'jsmith@example.com',
'channel' => '<string>',
'reason' => '<string>'
]),
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;
}{
"id": "<string>",
"organizationId": "<string>",
"recipientIdentifier": "<string>",
"normalizedPhoneNumber": "<string>",
"normalizedEmail": "jsmith@example.com",
"channel": "<string>",
"source": "<string>",
"status": "<string>",
"reason": "<string>",
"suppressedAt": "2023-11-07T05:31:56Z",
"releasedAt": "2023-11-07T05:31:56Z",
"audit": [
{
"id": "<string>",
"status": "<string>",
"source": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"actorId": "<string>",
"reason": "<string>",
"safeMetadata": {}
}
]
}{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Too Many Requests",
"status": 429,
"detail": "The request could not be completed."
}Create or reactivate a recipient suppression
The result reflects the effective compliance state after normalization, organization scoping, and suppression-history checks.
curl --request POST \
--url https://api.leadping.ai/suppressions \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"recipientIdentifier": "<string>",
"phoneNumber": "<string>",
"email": "jsmith@example.com",
"channel": "<string>",
"reason": "<string>"
}
'import requests
url = "https://api.leadping.ai/suppressions"
payload = {
"recipientIdentifier": "<string>",
"phoneNumber": "<string>",
"email": "jsmith@example.com",
"channel": "<string>",
"reason": "<string>"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)using RestSharp;
var options = new RestClientOptions("https://api.leadping.ai/suppressions");
var client = new RestClient(options);
var request = new RestRequest("");
request.AddHeader("Authorization", "Bearer <token>");
request.AddJsonBody("{\n \"recipientIdentifier\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"channel\": \"<string>\",\n \"reason\": \"<string>\"\n}", false);
var response = await client.PostAsync(request);
Console.WriteLine("{0}", response.Content);
HttpResponse<String> response = Unirest.post("https://api.leadping.ai/suppressions")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"recipientIdentifier\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"channel\": \"<string>\",\n \"reason\": \"<string>\"\n}")
.asString();const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
recipientIdentifier: '<string>',
phoneNumber: '<string>',
email: 'jsmith@example.com',
channel: '<string>',
reason: '<string>'
})
};
fetch('https://api.leadping.ai/suppressions', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.leadping.ai/suppressions"
payload := strings.NewReader("{\n \"recipientIdentifier\": \"<string>\",\n \"phoneNumber\": \"<string>\",\n \"email\": \"jsmith@example.com\",\n \"channel\": \"<string>\",\n \"reason\": \"<string>\"\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))
}<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.leadping.ai/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([
'recipientIdentifier' => '<string>',
'phoneNumber' => '<string>',
'email' => 'jsmith@example.com',
'channel' => '<string>',
'reason' => '<string>'
]),
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;
}{
"id": "<string>",
"organizationId": "<string>",
"recipientIdentifier": "<string>",
"normalizedPhoneNumber": "<string>",
"normalizedEmail": "jsmith@example.com",
"channel": "<string>",
"source": "<string>",
"status": "<string>",
"reason": "<string>",
"suppressedAt": "2023-11-07T05:31:56Z",
"releasedAt": "2023-11-07T05:31:56Z",
"audit": [
{
"id": "<string>",
"status": "<string>",
"source": "<string>",
"timestamp": "2023-11-07T05:31:56Z",
"actorId": "<string>",
"reason": "<string>",
"safeMetadata": {}
}
]
}{
"type": "about:blank",
"title": "Bad Request",
"status": 400,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Unauthorized",
"status": 401,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Forbidden",
"status": 403,
"detail": "The request could not be completed."
}{
"type": "about:blank",
"title": "Too Many Requests",
"status": 429,
"detail": "The request could not be completed."
}Authorizations
Authorization header using the Bearer scheme. Accepted values are Leadping user JWT access tokens and WorkOS organization API keys beginning with sk_.
Body
The suppression entry request payload for the operation.
Defines a recipient and communication channel to suppress, release, or check before Leadping sends outreach.
Optional provider or customer identifier that uniquely identifies the recipient.
Recipient phone number to suppress or check, preferably in E.164 format.
Recipient email address to suppress or check.
Communication channel affected by the suppression, such as SMS, voice, email, or all channels.
Human-readable reason for creating or releasing the suppression.
Response
The suppression entry response was created successfully.
Describes a recipient suppression that prevents outreach through one or more communication channels.
Unique Leadping identifier for the suppression entry.
Identifier of the organization that owns the suppression entry.
Provider or customer identifier used to recognize the suppressed recipient.
Suppressed phone number normalized to a consistent format.
Suppressed email address normalized for matching.
Communication channel affected by the suppression, such as SMS, voice, email, or all channels.
System or workflow that created the suppression.
Current lifecycle state, such as active or released.
Human-readable reason the recipient was suppressed or subsequently released.
UTC timestamp when the suppression became active.
UTC timestamp when the suppression was released, or null while it remains active.
Chronological audit history of suppression and release changes.
Show child attributes
Show child attributes

