Skip to main content
POST
https://www.dncscrub.com
/
app
/
main
/
rpc
/
scrub
Scrub Multiple Numbers
curl --request POST \
  --url https://www.dncscrub.com/app/main/rpc/scrub \
  --header 'Content-Type: application/json' \
  --header 'loginId: <loginid>' \
  --data '
{
  "phoneList": "<string>",
  "version": "<string>",
  "output": "<string>",
  "projId": "<string>",
  "campaignId": "<string>"
}
'
[
  {
    "Phone": "5039367187",
    "ResultCode": "D",
    "Reserved": "",
    "Reason": "Litigator",
    "RegionAbbrev": "OR",
    "Country": "US",
    "Locale": "Portland",
    "CarrierInfo": "5820;WIRELESS;\"Verizon Wireless:Verizon Wireless\"",
    "NewReassignedAreaCode": "",
    "TZCode": "4",
    "CallingWindow": "",
    "UTCOffset": "-420",
    "DoNotCallToday": "",
    "CallingTimeRestrictions": "4",
    "EBRType": "",
    "IsWirelessOrVoIP": "1",
    "LineType": "Wireless"
  },
  {
    "Phone": "7075276405",
    "ResultCode": "D",
    "Reserved": "",
    "Reason": "National (USA) 2003-06-01;;;",
    "RegionAbbrev": "CA",
    "Country": "US",
    "Locale": "Santa Rosa",
    "CarrierInfo": "9740;RBOC;\"AT&T California:AT&T California\"",
    "NewReassignedAreaCode": "",
    "TZCode": "4",
    "CallingWindow": "",
    "UTCOffset": "-420",
    "DoNotCallToday": "",
    "CallingTimeRestrictions": "4",
    "EBRType": "",
    "IsWirelessOrVoIP": "0",
    "LineType": "AllOther"
  }
]
Submit multiple phone numbers in a single request for efficient batch processing.
If you scrub more than 10 phone numbers, use HTTP POST instead of HTTP GET. If you do not know your batch size, safest option is always use HTTP POST. The maximum number of records that can be scrubbed per requests is 10,000. If you have larger batches, consider using SFTP.

Request

Headers

loginId
string
required
Your API Key

Request Body

phoneList
string
required
Comma-separated list of 10-digit phone numbers (e.g., 5039367187,7075276405,7072842774). To include a system identifier with each result, append |{id} to the phone number (e.g., 5039367187|abc-10232,7075276405|abc-10233,7072842774|abc-10234).
version
string
default:"5"
required
API version. Use 5
output
string
default:"json"
Response format: json or csv
projId
string
Optional. Project ID
campaignId
string
Optional. Campaign ID

Example Request

curl --location --request POST \
  'https://www.dncscrub.com/app/main/rpc/scrub' \
  --header 'loginId: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data '{
    "phoneList": "5039367187,7075276405,7072842774",
    "version": "5",
    "output": "json"
  }'
[
  {
    "Phone": "5039367187",
    "ResultCode": "D",
    "Reserved": "",
    "Reason": "Litigator",
    "RegionAbbrev": "OR",
    "Country": "US",
    "Locale": "Portland",
    "CarrierInfo": "5820;WIRELESS;\"Verizon Wireless:Verizon Wireless\"",
    "NewReassignedAreaCode": "",
    "TZCode": "4",
    "CallingWindow": "",
    "UTCOffset": "-420",
    "DoNotCallToday": "",
    "CallingTimeRestrictions": "4",
    "EBRType": "",
    "IsWirelessOrVoIP": "1",
    "LineType": "Wireless"
  },
  {
    "Phone": "7075276405",
    "ResultCode": "D",
    "Reserved": "",
    "Reason": "National (USA) 2003-06-01;;;",
    "RegionAbbrev": "CA",
    "Country": "US",
    "Locale": "Santa Rosa",
    "CarrierInfo": "9740;RBOC;\"AT&T California:AT&T California\"",
    "NewReassignedAreaCode": "",
    "TZCode": "4",
    "CallingWindow": "",
    "UTCOffset": "-420",
    "DoNotCallToday": "",
    "CallingTimeRestrictions": "4",
    "EBRType": "",
    "IsWirelessOrVoIP": "0",
    "LineType": "AllOther"
  }
]

Response Fields

Phone
string
The phone number that was scrubbed
ResultCode
string
The scrub result code (see Result Codes)
Reserved
string
Reserved field (used for unique identifiers)
Reason
string
Explanation of why the number is flagged
RegionAbbrev
string
State/region abbreviation (e.g., “CA”)
Country
string
Country code (e.g., “US”)
Locale
string
City or locality
CarrierInfo
string
Carrier information in format: ID;TYPE;"Name"
TZCode
string
Timezone code
UTCOffset
string
UTC offset in minutes
IsWirelessOrVoIP
string
1 if wireless/VoIP, 0 otherwise
LineType
string
Line type: Wireless, VoIP, or AllOther

Processing Multiple Results

const results = await response.json();

const clean = results.filter((r) => r.ResultCode === "C");
const doNotCall = results.filter((r) => r.ResultCode === "D");
const wireless = results.filter((r) => r.IsWirelessOrVoIP === "1");

console.log(`Clean numbers: ${clean.length}`);
console.log(`Do Not Call: ${doNotCall.length}`);
console.log(`Wireless: ${wireless.length}`);

Using HTTP POST for Large Batches

For more than 10 phone numbers, use HTTP POST with a JSON body:
using (var client = new HttpClient())
{
    System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;

    client.DefaultRequestHeaders.Add("loginId", "YOUR_API_KEY");

    var requestBody = new
    {
        phoneList = "5039367187,7075276405,...",
        version = "5",
        output = "csv"  // Recommended for large batches
    };

    var json = System.Text.Json.JsonSerializer.Serialize(requestBody);
    var content = new StringContent(json, System.Text.Encoding.UTF8, "application/json");

    var response = await client.PostAsync(
        "https://www.dncscrub.com/app/main/rpc/scrub",
        content
    );
    var responseString = await response.Content.ReadAsStringAsync();
}

Best Practices

While the API can handle large batches, consider breaking very large lists into batches of 1,000-5,000 numbers for optimal performance.
Use output=csv for large batches. CSV parsing is more efficient for high-volume processing.
Operations are atomic. If one phone number is invalid, the entire batch fails. Validate phone numbers before sending.