Skip to main content
POST
https://dataapi.dncscrub.com
/
v1.5
/
Data
/
EnhancedRND
Reassigned Authority Plus (POST)
curl --request POST \
  --url https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND \
  --header 'Content-Type: <content-type>' \
  --header 'loginId: <loginid>' \
  --data '
{
  "Data": [
    {
      "phoneNumber": "<string>",
      "date": "<string>"
    }
  ],
  "useSandbox": true,
  "ProjId": "<string>"
}
'
[
  {
    "PhoneNumber": "7075276405",
    "IsReassigned": false,
    "HasSafeHarbor": true,
    "CCCIsReassigned": false
  },
  {
    "PhoneNumber": "5039367187",
    "IsReassigned": false,
    "HasSafeHarbor": true,
    "CCCIsReassigned": false
  }
]
Batch check multiple phone numbers using TCPA Authority Plus (Enhanced RND), which combines CCC’s authoritative carrier data with the FCC Reassigned Number Database.
For single number lookups, use the GET method instead.

Request

Headers

loginId
string
required
Your API Key (LoginId from your DNCScrub account)
Content-Type
string
required
Must be application/json

Request Body

Data
array
required
Array of phone number objects to check (maximum 1,000 per request)
useSandbox
boolean
(Optional) Set to true to use sandbox mode for testing
ProjId
string
Project identifier for tracking purposes

Example Request

curl --location --request POST \
  'https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND' \
  --header 'loginId: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '{
    "Data": [
      { "phoneNumber": "7075276405", "date": "20211109" },
      { "phoneNumber": "5039367187", "date": "20211109" }
    ]
  }'
[
  {
    "PhoneNumber": "7075276405",
    "IsReassigned": false,
    "HasSafeHarbor": true,
    "CCCIsReassigned": false
  },
  {
    "PhoneNumber": "5039367187",
    "IsReassigned": false,
    "HasSafeHarbor": true,
    "CCCIsReassigned": false
  }
]

Response Fields

Each object in the response array contains:
PhoneNumber
string
The phone number that was checked
IsReassigned
boolean | null
Combined result - use this field to determine if to place the call: - true - Reassigned. Do not call. - false - Not reassigned. Safe to call. - null - Insufficient information.
HasSafeHarbor
boolean
true if an FCC safe harbor exemption may be available
CCCIsReassigned
boolean | null
Result from CCC’s carrier data only. For informational purposes.

Error Responses

StatusDescription
400 Bad RequestInvalid request - missing/empty Data property, more than 1,000 phone numbers, or invalid phone/date format
401 UnauthorizedInvalid or missing API key

Batch Processing Example

async function checkEnhancedRND(phoneRecords) {
  const response = await fetch(
    "https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        loginId: "YOUR_API_KEY",
      },
      body: JSON.stringify({ Data: phoneRecords }),
    }
  );

  const results = await response.json();

  // Categorize by IsReassigned (the combined result)
  const safeToCall = results.filter((r) => r.IsReassigned === false);
  const doNotCall = results.filter((r) => r.IsReassigned === true);
  const unknown = results.filter((r) => r.IsReassigned === null);

  // Numbers with safe harbor protection
  const withSafeHarbor = safeToCall.filter((r) => r.HasSafeHarbor);

  return {
    safeToCall: safeToCall.map((r) => r.PhoneNumber),
    doNotCall: doNotCall.map((r) => r.PhoneNumber),
    unknown: unknown.map((r) => r.PhoneNumber),
    safeHarborCount: withSafeHarbor.length,
  };
}

// Usage
const records = [
  { phoneNumber: "7075276405", date: "20211109" },
  { phoneNumber: "5039367187", date: "20211109" },
];

const result = await checkEnhancedRND(records);
console.log(`Safe to call: ${result.safeToCall.length}`);
console.log(`With safe harbor: ${result.safeHarborCount}`);