Skip to main content

TCPA Authority API

The TCPA Reassigned Authority API identifies if a mobile phone number has been reassigned after a given date. The API uses authoritative data provided directly from carriers.

Endpoint

https://dataapi.dncscrub.com/v1.4/Data/TCPAAuthority

Authentication

Include your API key in the loginId HTTP header:
--header 'loginId: YOUR_API_KEY'

Parameters

ParameterRequiredDescription
phoneNumberYes10-digit phone number (no leading 1 or +)
dateYesConsent date to check against

Date Formats

The date parameter accepts multiple formats:
FormatExample
MM/DD/YYYY09/29/2021
YYYY-MM-DD2021-09-29
MM/DD/YY09/29/21
YYYYMMDD20210929

Single Number Request (GET)

curl --location --request GET \
  'https://dataapi.dncscrub.com/v1.4/Data/TCPAAuthority?phoneNumber=7075276405&date=20210209' \
  --header 'loginId: YOUR_API_KEY'

Response

{
  "PhoneNumber": "7075276405",
  "IsReassigned": false,
  "IsValid": true,
  "LineType": "Landline",
  "Carrier": "AT&T California",
  "Locale": "Santa Rosa",
  "Region": "CA",
  "Country": "US",
  "TZ": "America/Los_Angeles",
  "UTCOffset": "-420"
}

Multiple Number Request (POST)

For checking multiple numbers, use HTTP POST with a JSON array:
curl --location --request POST \
  'https://dataapi.dncscrub.com/v1.4/Data/TCPAAuthority' \
  --header 'loginId: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '[
    {
      "phoneNumber": "7075276405",
      "date": "20210209"
    },
    {
      "phoneNumber": "5039367187",
      "date": "20210209"
    }
  ]'

Response

[
  {
    "PhoneNumber": "7075276405",
    "IsReassigned": false,
    "IsValid": true,
    "LineType": "Landline",
    "Carrier": "AT&T California",
    "Locale": "Santa Rosa",
    "Region": "CA",
    "Country": "US",
    "TZ": "America/Los_Angeles",
    "UTCOffset": "-420"
  },
  {
    "PhoneNumber": "5039367187",
    "IsReassigned": false,
    "IsValid": true,
    "LineType": "Wireless",
    "Carrier": "Verizon Wireless",
    "Locale": "Portland",
    "Region": "OR",
    "Country": "US",
    "TZ": "America/Los_Angeles",
    "UTCOffset": "-420"
  }
]

Response Fields

FieldTypeDescription
PhoneNumberStringThe phone number checked
IsReassignedBoolean/nulltrue = reassigned, false = not reassigned, null = insufficient data
IsValidBooleantrue if the number is callable, false if invalid
LineTypeStringWireless, VoIP, Landline, Paging, or Unknown
CarrierStringOriginal carrier the number was assigned to
LocaleStringCity based on original assignment
RegionStringState/region based on original assignment
CountryStringTwo-digit ISO country code
TZStringTimezone in IANA format (e.g., America/Los_Angeles)
UTCOffsetStringUTC offset in minutes

Understanding IsReassigned

The phone number was reassigned to a new person after the consent date you provided.Action: Do not call this number. Your consent is no longer valid.
The phone number has not been reassigned since the consent date.Action: Safe to call - your consent is still valid.
There is insufficient data to determine if the number was reassigned.Action: Proceed with caution. Consider additional verification.

Rate Limits

LimitValue
Requests per minute100
Numbers per request1,000
Average response time~569ms

C# Class Definitions

public class TCPAAuthorityRequestDTO
{
    public string PhoneNumber { get; set; }
    public string Date { get; set; }
}

public class TCPAAuthorityResponseDTO
{
    public string PhoneNumber { get; set; }
    public bool? IsReassigned { get; set; }
    public bool IsValid { get; set; }
    public string LineType { get; set; }
    public string Carrier { get; set; }
    public string Locale { get; set; }
    public string Region { get; set; }
    public string Country { get; set; }
    public string TZ { get; set; }
    public string UTCOffset { get; set; }
}