Skip to main content

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.
ParameterDescription
projIdOptional. Specifies the project in which the action should be performed.
campaignIdOptional. 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

Phone Number Format

All phone numbers must be:
  • 10 digits (no country code)
  • Numeric only (no dashes, spaces, or special characters)
ValidInvalid
5039367187503-936-7187
70752764051-707-527-6405

Response Formats

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

MethodWhen to Use
GETFor processing 10 or fewer phone numbers
POSTFor 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 CodeMeaning
200Success
400Bad Request - Invalid parameters
401Unauthorized - Invalid or missing API key
429Too Many Requests - Rate limit exceeded
502Bad Gateway - Server overload or maintenance. Retry with exponential backoff