> ## 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 (POST)

> Check multiple phone numbers for reassignment since a given consent date

Check multiple phone numbers for reassignment since given consent dates using the TCPA Authority API. Use POST for batch processing up to 1,000 numbers per request.

<Note>
  For single number lookups, you can use the [GET
  method](/api-reference/reassigned/authority-get) instead.
</Note>

## Request

### Headers

<ParamField header="loginId" type="string" required>
  Your API Key (LoginId from your DNCScrub account)
</ParamField>

<ParamField header="Content-Type" type="string" required>
  Must be `application/json`
</ParamField>

### Request Body

<ParamField body="Data" type="array" required>
  Array of phone number and date pairs to check

  <Expandable title="Data object properties">
    <ParamField body="PhoneNumber" type="string" required>
      10-digit North American phone number (without leading 1 or +)
    </ParamField>

    <ParamField body="Date" type="string" required>
      Consent date in format `YYYYMMDD`, `MM/DD/YYYY`, `YYYY-MM-DD`, or
      `MM/DD/YY`
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="useSandbox" type="boolean" default="false">
  (Optional) Set to `true` to use sandbox mode for testing (returns random
  results)
</ParamField>

## Example Request

<CodeGroup>
  ```bash cURL 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 '{
      "Data": [
        {
          "PhoneNumber": "7075276405",
          "Date": "20210209"
        },
        {
          "PhoneNumber": "5039367187",
          "Date": "20210209"
        }
      ]
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    "https://dataapi.dncscrub.com/v1.5/Data/TCPAAuthority",
    {
      method: "POST",
      headers: {
        "Content-Type": "application/json",
        loginId: "YOUR_API_KEY",
      },
      body: JSON.stringify({
        Data: [
          { PhoneNumber: "7075276405", Date: "20210209" },
          { PhoneNumber: "5039367187", Date: "20210209" },
        ],
      }),
    }
  );
  const data = await response.json();
  console.log(data);
  ```

  ```csharp C# theme={null}
  using (var client = new HttpClient())
  {
      client.DefaultRequestHeaders.Add("loginId", "YOUR_API_KEY");

      var requestData = new
      {
          Data = new[]
          {
              new { PhoneNumber = "7075276405", Date = "20210209" },
              new { PhoneNumber = "5039367187", Date = "20210209" }
          }
      };

      var content = new StringContent(
          JsonSerializer.Serialize(requestData),
          Encoding.UTF8,
          "application/json"
      );

      var response = await client.PostAsync(
          "https://dataapi.dncscrub.com/v1.5/Data/TCPAAuthority",
          content
      );

      var result = await response.Content.ReadAsStringAsync();
      Console.WriteLine(result);
  }
  ```
</CodeGroup>

<ResponseExample>
  ```json Response 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"
    }
  ]
  ```
</ResponseExample>

## Response Fields

Each object in the response array contains:

<ResponseField name="PhoneNumber" type="string">
  The phone number that was checked
</ResponseField>

<ResponseField name="IsReassigned" type="boolean | null">
  Indicates if the phone was reassigned after the consent date: - `true` -
  Reassigned after the date. **Do not call.** - `false` - Not reassigned. Safe
  to call. - `null` - Insufficient information to determine reassignment status.
</ResponseField>

<ResponseField name="IsValid" type="boolean">
  `true` if the phone number is valid and callable, `false` if not valid
</ResponseField>

<ResponseField name="LineType" type="string">
  Type of phone line: `Wireless`, `VoIP`, `Landline`, `Paging`, or `Unknown`
</ResponseField>

<ResponseField name="Carrier" type="string">
  Original carrier the phone number was assigned to
</ResponseField>

<ResponseField name="Locale" type="string">
  City based on original phone number assignment
</ResponseField>

<ResponseField name="Region" type="string">
  State/region based on original phone number assignment
</ResponseField>

<ResponseField name="Country" type="string">
  Two-digit ISO country code
</ResponseField>

<ResponseField name="TZ" type="string">
  Timezone in ISO IANA format (e.g., `America/Los_Angeles`)
</ResponseField>

<ResponseField name="UTCOffset" type="string">
  UTC offset in minutes
</ResponseField>

## Error Responses

| Status           | Description                                                 |
| ---------------- | ----------------------------------------------------------- |
| 400 Bad Request  | Invalid request body, phone number format, or date format   |
| 401 Unauthorized | Invalid or missing API key                                  |
| 403 Forbidden    | Account not authorized for this API or insufficient credits |

## Batch Processing Example

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

  const results = await response.json();

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

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

// Usage
const records = [
  { PhoneNumber: "7075276405", Date: "20210209" },
  { PhoneNumber: "5039367187", Date: "20210209" },
];

const result = await checkReassignedNumbers(records);
console.log("Safe to call:", result.safeToCall.length);
console.log("Do not call:", result.doNotCall.length);
```
