> ## Documentation Index
> Fetch the complete documentation index at: https://docs.dncscrub.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Reassigned Authority API

> Check if a phone number has been reassigned after a given consent date

# Reassigned Authority API

The 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.5/Data/TCPAAuthority
```

## Authentication

Include your API key in the `loginId` HTTP header:

```bash theme={null}
--header 'loginId: YOUR_API_KEY'
```

## Parameters

| Parameter     | Required | Description                                                            |
| ------------- | -------- | ---------------------------------------------------------------------- |
| `phoneNumber` | Yes      | 10-digit phone number (no leading 1 or +)                              |
| `date`        | Yes      | Consent date to check against                                          |
| `useSandbox`  | No       | Set to `true` to use sandbox mode for testing (returns random results) |

### Date Formats

The `date` parameter accepts multiple formats:

| Format       | Example      |
| ------------ | ------------ |
| `MM/DD/YYYY` | `09/29/2021` |
| `YYYY-MM-DD` | `2021-09-29` |
| `MM/DD/YY`   | `09/29/21`   |
| `YYYYMMDD`   | `20210929`   |

## Single Number Request (GET)

<CodeGroup>
  ```bash cURL theme={null}
  curl --location --request GET \
    'https://dataapi.dncscrub.com/v1.5/Data/TCPAAuthority?phoneNumber=7075276405&date=20210209' \
    --header 'loginId: YOUR_API_KEY'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://dataapi.dncscrub.com/v1.5/Data/TCPAAuthority?phoneNumber=7075276405&date=20210209",
    {
      headers: { loginId: "YOUR_API_KEY" },
    }
  );
  const result = await response.json();
  ```

  ```csharp C# theme={null}
  using (var client = new HttpClient())
  {
      client.DefaultRequestHeaders.Add("loginId", "YOUR_API_KEY");
      var response = await client.GetStringAsync(
          "https://dataapi.dncscrub.com/v1.5/Data/TCPAAuthority?phoneNumber=7075276405&date=20210209"
      );
  }
  ```
</CodeGroup>

### Response

```json theme={null}
{
  "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:

```bash theme={null}
curl --location --request POST \
  'https://dataapi.dncscrub.com/v1.5/Data/TCPAAuthority' \
  --header 'loginId: YOUR_API_KEY' \
  --header 'Content-Type: application/json' \
  --data-raw '[
    {
      "phoneNumber": "7075276405",
      "date": "20210209"
    },
    {
      "phoneNumber": "5039367187",
      "date": "20210209"
    }
  ]'
```

### Response

```json theme={null}
[
  {
    "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

| Field          | Type         | Description                                                               |
| -------------- | ------------ | ------------------------------------------------------------------------- |
| `PhoneNumber`  | String       | The phone number checked                                                  |
| `IsReassigned` | Boolean/null | `true` = reassigned, `false` = not reassigned, `null` = insufficient data |
| `IsValid`      | Boolean      | `true` if the number is callable, `false` if invalid                      |
| `LineType`     | String       | `Wireless`, `VoIP`, `Landline`, `Paging`, or `Unknown`                    |
| `Carrier`      | String       | Original carrier the number was assigned to                               |
| `Locale`       | String       | City based on original assignment                                         |
| `Region`       | String       | State/region based on original assignment                                 |
| `Country`      | String       | Two-digit ISO country code                                                |
| `TZ`           | String       | Timezone in IANA format (e.g., `America/Los_Angeles`)                     |
| `UTCOffset`    | String       | UTC offset in minutes                                                     |

## Understanding IsReassigned

<AccordionGroup>
  <Accordion title="IsReassigned = true">
    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.
  </Accordion>

  <Accordion title="IsReassigned = false">
    The phone number has **not** been reassigned since the consent date.

    **Action:** Safe to call - your consent is still valid.
  </Accordion>

  <Accordion title="IsReassigned = null">
    There is insufficient data to determine if the number was reassigned.

    **Action:** Proceed with caution. Consider additional verification.
  </Accordion>
</AccordionGroup>

## Rate Limits

| Limit                 | Value   |
| --------------------- | ------- |
| Requests per minute   | 100     |
| Numbers per request   | 1,000   |
| Average response time | \~569ms |

## C# Class Definitions

```csharp theme={null}
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; }
}
```
