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

> Reassigned Authority Plus - Enhanced reassigned number check combining carrier and FCC data

Batch check multiple phone numbers using TCPA Authority Plus (Enhanced RND), which combines CCC's authoritative carrier data with the FCC Reassigned Number Database.

<Note>
  For single number lookups, use the [GET
  method](/api-reference/reassigned/enhanced-rnd-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 objects to check (maximum 1,000 per request)

  <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">
  (Optional) Set to `true` to use sandbox mode for testing
</ParamField>

<ParamField body="ProjId" type="string">
  Project identifier for tracking purposes
</ParamField>

## Example Request

<CodeGroup>
  ```bash cURL theme={null}
  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" }
      ]
    }'
  ```

  ```javascript JavaScript theme={null}
  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: [
          { phoneNumber: "7075276405", date: "20211109" },
          { phoneNumber: "5039367187", date: "20211109" },
        ],
      }),
    }
  );
  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 = "20211109" },
              new { phoneNumber = "5039367187", date = "20211109" }
          }
      };

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

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

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

<ResponseExample>
  ```json Response theme={null}
  [
    {
      "PhoneNumber": "7075276405",
      "IsReassigned": false,
      "HasSafeHarbor": true,
      "CCCIsReassigned": false,
      "IsSandBox": false
    },
    {
      "PhoneNumber": "5039367187",
      "IsReassigned": false,
      "HasSafeHarbor": true,
      "CCCIsReassigned": false,
      "IsSandBox": false
    }
  ]
  ```
</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">
  **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.
</ResponseField>

<ResponseField name="HasSafeHarbor" type="boolean">
  `true` if an FCC safe harbor exemption may be available
</ResponseField>

<ResponseField name="CCCIsReassigned" type="boolean | null">
  Result from CCC's carrier data only. For informational purposes.
</ResponseField>

<ResponseField name="IsSandBox" type="boolean">
  `true` if the response was generated in sandbox mode (test data), `false` for production data.
</ResponseField>

## Error Responses

| Status           | Description                                                                                                  |
| ---------------- | ------------------------------------------------------------------------------------------------------------ |
| 400 Bad Request  | Invalid request - missing/empty `Data` property, more than 1,000 phone numbers, or invalid phone/date format |
| 401 Unauthorized | Invalid or missing API key                                                                                   |

## Batch Processing Example

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