Reassigned Authority Plus (GET)
curl --request GET \
--url https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND \
--header 'loginId: <loginid>'import requests
url = "https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND"
headers = {"loginId": "<loginid>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {loginId: '<loginid>'}};
fetch('https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND', 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/Data/EnhancedRND",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"loginId: <loginid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("loginId", "<loginid>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND")
.header("loginId", "<loginid>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["loginId"] = '<loginid>'
response = http.request(request)
puts response.read_body{
"PhoneNumber": "7075276405",
"IsReassigned": false,
"HasSafeHarbor": true,
"CCCIsReassigned": false,
"IsSandBox": false
}
Reassigned Scrub
Reassigned Authority Plus (GET)
Reassigned Authority Plus - Enhanced reassigned number check combining carrier and FCC data
GET
/
v1.5
/
Data
/
EnhancedRND
Reassigned Authority Plus (GET)
curl --request GET \
--url https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND \
--header 'loginId: <loginid>'import requests
url = "https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND"
headers = {"loginId": "<loginid>"}
response = requests.get(url, headers=headers)
print(response.text)const options = {method: 'GET', headers: {loginId: '<loginid>'}};
fetch('https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND', 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/Data/EnhancedRND",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
CURLOPT_HTTPHEADER => [
"loginId: <loginid>"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("loginId", "<loginid>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND")
.header("loginId", "<loginid>")
.asString();require 'uri'
require 'net/http'
url = URI("https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
request["loginId"] = '<loginid>'
response = http.request(request)
puts response.read_body{
"PhoneNumber": "7075276405",
"IsReassigned": false,
"HasSafeHarbor": true,
"CCCIsReassigned": false,
"IsSandBox": false
}
Reassigned Authority Plus (Enhanced RND) combines CCC’s authoritative carrier data with the FCC Reassigned Number Database to provide the most accurate reassignment determination available.
Why Authority Plus? The FCC Reassigned Number Database only has data from
January 27, 2021. CCC’s carrier data goes back to July 2018 and is updated
daily (vs monthly for FCC data).
Request
Headers
string
required
Your API Key (LoginId from your DNCScrub account)
Query Parameters
string
required
10-digit North American phone number (without leading 1 or +)
string
required
Consent date to check reassignment against. Supported formats:
MM/DD/YYYY,
YYYY-MM-DD, MM/DD/YY, or YYYYMMDDboolean
default:"false"
(Optional) Set to
true to use sandbox mode for testing (returns random
results)string
Project identifier for tracking purposes
Example Request
curl --location --request GET \
'https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND?phoneNumber=7075276405&date=20211109' \
--header 'loginId: YOUR_API_KEY'
const response = await fetch(
"https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND?phoneNumber=7075276405&date=20211109",
{
method: "GET",
headers: { loginId: "YOUR_API_KEY" },
}
);
const data = await response.json();
console.log(data);
using (var client = new HttpClient())
{
client.DefaultRequestHeaders.Add("loginId", "YOUR_API_KEY");
var url = "https://dataapi.dncscrub.com/v1.5/Data/EnhancedRND?phoneNumber=7075276405&date=20211109";
var response = await client.GetStringAsync(url);
Console.WriteLine(response);
}
{
"PhoneNumber": "7075276405",
"IsReassigned": false,
"HasSafeHarbor": true,
"CCCIsReassigned": false,
"IsSandBox": false
}
Response Fields
string
The phone number that was checked
boolean | null
Combined result from FCC Reassigned Number Database plus CCC’s carrier
data. This is the field you should use to determine if to place the call: -
true - Reassigned. Do not call. - false - Not reassigned. Safe to
call. - null - Insufficient information from both sources.boolean
true if an FCC safe harbor exemption may be availableboolean | null
Result from CCC’s internal carrier data only. For informational purposes
only - use
IsReassigned for your call decision.boolean
true if the response was generated in sandbox mode (test data), false for production data.Error Responses
| Status | Description |
|---|---|
| 400 Bad Request | Invalid phone number format, invalid date format, or missing required parameters |
| 401 Unauthorized | Invalid or missing API key |
Data Source Comparison
| Feature | FCC RND | CCC Carrier Data | Enhanced RND (Combined) |
|---|---|---|---|
| Data Start Date | Jan 27, 2021 | July 2018 | July 2018 |
| Update Frequency | Monthly | Daily | Daily |
| Coverage | All carriers reporting to FCC | Major mobile carriers | Best of both |
Processing the Response
const result = await response.json();
// Always use IsReassigned for call decisions (combined result)
if (result.IsReassigned === true) {
console.log("DO NOT CALL - Number has been reassigned");
} else if (result.IsReassigned === false) {
console.log("Safe to call");
if (result.HasSafeHarbor) {
console.log("FCC Safe Harbor protection available");
}
} else {
console.log("Unable to determine - insufficient data");
}
// CCCIsReassigned is for informational/debugging purposes
console.log(`CCC internal data says: ${result.CCCIsReassigned}`);