Litigator Scrub Multiple Numbers
curl --request POST \
--url https://dataapi.dncscrub.com/v1.5/Scrub/litigator \
--header 'Content-Type: <content-type>' \
--data '
{
"PhoneList": "<string>",
"CampaignId": 123,
"ProjId": "<string>",
"OutputFormat": "<string>"
}
'import requests
url = "https://dataapi.dncscrub.com/v1.5/Scrub/litigator"
payload = {
"PhoneList": "<string>",
"CampaignId": 123,
"ProjId": "<string>",
"OutputFormat": "<string>"
}
headers = {"Content-Type": "<content-type>"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>'},
body: JSON.stringify({
PhoneList: '<string>',
CampaignId: 123,
ProjId: '<string>',
OutputFormat: '<string>'
})
};
fetch('https://dataapi.dncscrub.com/v1.5/Scrub/litigator', 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://dataapi.dncscrub.com/v1.5/Scrub/litigator",
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([
'PhoneList' => '<string>',
'CampaignId' => 123,
'ProjId' => '<string>',
'OutputFormat' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: <content-type>"
],
]);
$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://dataapi.dncscrub.com/v1.5/Scrub/litigator"
payload := strings.NewReader("{\n \"PhoneList\": \"<string>\",\n \"CampaignId\": 123,\n \"ProjId\": \"<string>\",\n \"OutputFormat\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://dataapi.dncscrub.com/v1.5/Scrub/litigator")
.header("Content-Type", "<content-type>")
.body("{\n \"PhoneList\": \"<string>\",\n \"CampaignId\": 123,\n \"ProjId\": \"<string>\",\n \"OutputFormat\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dataapi.dncscrub.com/v1.5/Scrub/litigator")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request.body = "{\n \"PhoneList\": \"<string>\",\n \"CampaignId\": 123,\n \"ProjId\": \"<string>\",\n \"OutputFormat\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body[
{
"Phone": 2675466417,
"IsLitigator": true
},
{
"Phone": 5039367187,
"IsLitigator": true
},
{
"Phone": 7075276405,
"IsLitigator": false
}
]
Litigator-Only Scrub
Litigator Scrub Multiple Numbers
Check phone numbers against the litigator database using POST request
POST
/
v1.5
/
Scrub
/
litigator
Litigator Scrub Multiple Numbers
curl --request POST \
--url https://dataapi.dncscrub.com/v1.5/Scrub/litigator \
--header 'Content-Type: <content-type>' \
--data '
{
"PhoneList": "<string>",
"CampaignId": 123,
"ProjId": "<string>",
"OutputFormat": "<string>"
}
'import requests
url = "https://dataapi.dncscrub.com/v1.5/Scrub/litigator"
payload = {
"PhoneList": "<string>",
"CampaignId": 123,
"ProjId": "<string>",
"OutputFormat": "<string>"
}
headers = {"Content-Type": "<content-type>"}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {'Content-Type': '<content-type>'},
body: JSON.stringify({
PhoneList: '<string>',
CampaignId: 123,
ProjId: '<string>',
OutputFormat: '<string>'
})
};
fetch('https://dataapi.dncscrub.com/v1.5/Scrub/litigator', 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://dataapi.dncscrub.com/v1.5/Scrub/litigator",
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([
'PhoneList' => '<string>',
'CampaignId' => 123,
'ProjId' => '<string>',
'OutputFormat' => '<string>'
]),
CURLOPT_HTTPHEADER => [
"Content-Type: <content-type>"
],
]);
$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://dataapi.dncscrub.com/v1.5/Scrub/litigator"
payload := strings.NewReader("{\n \"PhoneList\": \"<string>\",\n \"CampaignId\": 123,\n \"ProjId\": \"<string>\",\n \"OutputFormat\": \"<string>\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Content-Type", "<content-type>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://dataapi.dncscrub.com/v1.5/Scrub/litigator")
.header("Content-Type", "<content-type>")
.body("{\n \"PhoneList\": \"<string>\",\n \"CampaignId\": 123,\n \"ProjId\": \"<string>\",\n \"OutputFormat\": \"<string>\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://dataapi.dncscrub.com/v1.5/Scrub/litigator")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Content-Type"] = '<content-type>'
request.body = "{\n \"PhoneList\": \"<string>\",\n \"CampaignId\": 123,\n \"ProjId\": \"<string>\",\n \"OutputFormat\": \"<string>\"\n}"
response = http.request(request)
puts response.read_body[
{
"Phone": 2675466417,
"IsLitigator": true
},
{
"Phone": 5039367187,
"IsLitigator": true
},
{
"Phone": 7075276405,
"IsLitigator": false
}
]
Check a list of phone numbers against the litigator database using an HTTP POST request. Use this method for large batches (over 50 phone numbers, up to 10,000).
Request
Headers
string
API Key
string
required
Must be
application/jsonRequest Body
string
required
Comma-separated list of 10-digit phone numbers to check (up to 10,000 numbers)
integer
Optional campaign ID for tracking purposes
string
Optional project ID for tracking and settings purposes
string
default:"JsonArray"
Optional Output format:
JsonArray (default) or JsonObject. By default
returns JsonArray.Example Request
curl --location --request POST \
'https://dataapi.dncscrub.com/v1.5/Scrub/litigator' \
--header 'Content-Type: application/json' \
--header 'loginId: YOUR_API_KEY' \
--data-raw '{
"PhoneList": "2675466417,5039367187,7075276405"
}'
curl --location --request POST \
'https://dataapi.dncscrub.com/v1.5/Scrub/litigator' \
--header 'Content-Type: application/json' \
--data-raw '{
"PhoneList": "2675466417,5039367187,7075276405",
"LoginId": "YOUR_API_KEY"
}'
const response = await fetch(
"https://dataapi.dncscrub.com/v1.5/Scrub/litigator",
{
method: "POST",
headers: {
"Content-Type": "application/json",
loginId: "YOUR_API_KEY",
},
body: JSON.stringify({
PhoneList: "2675466417,5039367187,7075276405",
}),
}
);
const data = await response.json();
console.log(data);
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("loginId", "YOUR_API_KEY");
var content = new StringContent(
JsonSerializer.Serialize(new { PhoneList = "2675466417,5039367187,7075276405" }),
Encoding.UTF8,
"application/json"
);
var response = await client.PostAsync(
"https://dataapi.dncscrub.com/v1.5/Scrub/litigator",
content
);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
[
{
"Phone": 2675466417,
"IsLitigator": true
},
{
"Phone": 5039367187,
"IsLitigator": true
},
{
"Phone": 7075276405,
"IsLitigator": false
}
]
Response Fields
integer
The 10-digit phone number that was checked
boolean
true if the phone number is associated with a known TCPA litigator, false
otherwiseError Responses
| Status | Description |
|---|---|
| 400 Bad Request | Invalid phone number format, malformed JSON, or missing required parameters |
| 401 Unauthorized | Invalid or missing API key |
| 404 Not Found | Endpoint not found or invalid URL |
Batch Processing Example
When processing large lists, you may want to batch and process results:async function checkLitigators(phoneNumbers) {
// Join phone numbers into comma-separated string
const phoneList = phoneNumbers.join(",");
const response = await fetch(
"https://dataapi.dncscrub.com/v1.5/Scrub/litigator",
{
method: "POST",
headers: {
"Content-Type": "application/json",
loginId: "YOUR_API_KEY",
},
body: JSON.stringify({ PhoneList: phoneList }),
}
);
const results = await response.json();
// Separate litigators from safe numbers
const litigators = results.filter((r) => r.IsLitigator);
const safe = results.filter((r) => !r.IsLitigator);
return {
litigators: litigators.map((r) => r.Phone),
safe: safe.map((r) => r.Phone),
totalChecked: results.length,
};
}
// Usage
const phones = ["2675466417", "5039367187", "7075276405"];
const result = await checkLitigators(phones);
console.log(`Found ${result.litigators.length} litigators`);
Security Best Practice
For additional security, pass theloginId in the HTTP header rather than in the JSON body. This prevents your API key from appearing in application logs.⌘I