Projects and Campaigns
Your DNCScrub account is organized into a hierarchy of Projects and Campaigns. This structure allows you to organize your account into meaningful units so you can apply different compliance settings to each one as well as have reporting on each one. For example, you might create separate projects for Customer Service, Lead Generation, or Winbacks. You can also organize projects based on the type of scrub you wish to perform, such as having projects for Full Scrub, Litigator Only, or Wireless Only.
Using Projects and Campaigns is optional — if you choose not to use them, all scrubs are processed under the Master Project and Default Campaign.
| Parameter | Description |
|---|
projId | Optional. Specifies the project in which the action should be performed. |
campaignId | Optional. Specifies the campaign in which the action should be performed. |
TLS Requirement
All API calls must be made with TLS 1.2 or above. Requests using older TLS
versions will be denied.
// C# - If not using modern clients, ensure TLS 1.2 is used
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12;
Atomic Operations
All operations are atomic by default, meaning that either all parts of a request complete successfully or none of them do. The default behavior can be overridden by passing the parameter ignoreInvalid=1 to the API call.
For example, if you attempt to add multiple phone numbers to your Internal DNC
database and one phone number is invalid (e.g., “AAA” instead of a 10-digit
number), the entire request will fail and no numbers will be added. This
is why it’s important to pass clean, well-structured data to the API.
Best Practices for Atomic Operations
- Pass clean data to the API. Ensure all phone numbers are exactly 10 digits.
- Handle error responses appropriately in your code
- Consider batching requests to isolate potential failures
All phone numbers must be:
- 10 digits (no country code)
- Numeric only (no dashes, spaces, or special characters)
| Valid | Invalid |
|---|
5039367187 | 503-936-7187 |
7075276405 | 1-707-527-6405 |
JSON Output
For the Full Scrub APIs, request JSON by adding output=json to your request:
[
{
"Phone": "7075276405",
"ResultCode": "D",
"Reason": "National (USA) 2003-06-01;;;",
"RegionAbbrev": "CA",
"Country": "US",
"Locale": "Santa Rosa",
"CarrierInfo": "9740;RBOC;\"AT&T California:AT&T California\"",
"LineType": "AllOther"
}
]
CSV Output
For legacy reasons CSV is the default output format, or request it explicitly with `output=csv’:
7075276405,D,,National (USA) 2003-06-01;;;,CA,US,Santa Rosa,...
HTTP Methods
| Method | When to Use |
|---|
GET | For processing 10 or fewer phone numbers |
POST | For processing more than 10 phone numbers |
If you will process more than 10 phone numbers, you must use HTTP POST
instead of HTTP GET. If you don’t know how many phone numbers you will
process, use HTTP POST to be safe. we very large batches, consider automating
with
Error Handling
Successful requests return HTTP status code 200. Failed requests return 4xx status codes with an error message in the response body. 502 can occur under heavy load and the recommendation is to retry these requests with exponential backoff.
| Status Code | Meaning |
|---|
200 | Success |
400 | Bad Request - Invalid parameters |
401 | Unauthorized - Invalid or missing API key |
429 | Too Many Requests - Rate limit exceeded |
502 | Bad Gateway - Server overload or maintenance. Retry with exponential backoff |