> ## 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.

# Litigator API

> High-performance API for checking phone numbers against the litigator list

# High Performance Litigator API

The Litigator API is a specialized, high-performance endpoint for checking if phone numbers are associated with known TCPA litigators.

<Note>
  This API **only** checks the litigator list. It does not check Federal/State DNC databases, line type, Internal DNC, EBR, or calling time restrictions. If you need full DNC checking, use the [Full Scrub API](/api-reference/scrub/overview) instead.
</Note>

## When to Use This API

* You need **high-performance** litigator checking only
* You want to pre-screen numbers before full scrubbing
* Your workflow only requires litigator identification

## Endpoint

```
https://dataapi.dncscrub.com/v1.4/scrub/litigator
```

## Authentication

Include your API key in the `loginId` header or as a query parameter.

## Parameters

| Parameter   | Required | Description                                    |
| ----------- | -------- | ---------------------------------------------- |
| `phoneList` | Yes      | Comma-separated list of 10-digit phone numbers |
| `loginId`   | Yes      | Your API Key (header or query parameter)       |

<Warning>
  If submitting more than 100 phone numbers, you **must** use HTTP POST with JSON body instead of HTTP GET.
</Warning>

## Example: HTTP GET

<CodeGroup>
  ```bash cURL theme={null}
  curl --location --request GET \
    'https://dataapi.dncscrub.com/v1.4/scrub/litigator?phoneList=5039367187,7075276405&loginId=YOUR_API_KEY'
  ```

  ```bash cURL (loginId in header) theme={null}
  curl --location --request GET \
    'https://dataapi.dncscrub.com/v1.4/scrub/litigator?phoneList=5039367187,7075276405' \
    --header 'loginId: YOUR_API_KEY'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://dataapi.dncscrub.com/v1.4/scrub/litigator?phoneList=5039367187,7075276405',
    {
      method: 'GET',
      headers: { 'loginId': 'YOUR_API_KEY' }
    }
  );
  const data = await response.json();
  ```
</CodeGroup>

### Response

```json theme={null}
[
  {
    "Phone": 5039367187,
    "IsLitigator": true
  },
  {
    "Phone": 7075276405,
    "IsLitigator": false
  }
]
```

## Example: HTTP POST (for 100+ numbers)

Use HTTP POST with a JSON body for large batches:

<CodeGroup>
  ```bash cURL theme={null}
  curl --location --request POST \
    'https://dataapi.dncscrub.com/v1.4/scrub/litigator' \
    --header 'Content-Type: application/json' \
    --data-raw '{
      "phoneList": "2675466417,5039367187",
      "loginId": "YOUR_API_KEY"
    }'
  ```

  ```javascript JavaScript theme={null}
  const response = await fetch(
    'https://dataapi.dncscrub.com/v1.4/scrub/litigator',
    {
      method: 'POST',
      headers: {
        'Content-Type': 'application/json',
        'loginId': 'YOUR_API_KEY'
      },
      body: JSON.stringify({
        phoneList: '2675466417,5039367187'
      })
    }
  );
  ```
</CodeGroup>

### Response

```json theme={null}
[
  {
    "Phone": 2675466417,
    "IsLitigator": true
  },
  {
    "Phone": 5039367187,
    "IsLitigator": true
  }
]
```

## Response Fields

| Field         | Type    | Description                                                                  |
| ------------- | ------- | ---------------------------------------------------------------------------- |
| `Phone`       | Number  | The phone number that was checked                                            |
| `IsLitigator` | Boolean | `true` if the number is associated with a known litigator, `false` otherwise |

## Processing the Response

```javascript theme={null}
const results = await response.json();

const litigators = results.filter(r => r.IsLitigator);
const safe = results.filter(r => !r.IsLitigator);

console.log(`Litigators found: ${litigators.length}`);
console.log(`Safe numbers: ${safe.length}`);

// Take action on litigator numbers
litigators.forEach(r => {
  console.log(`WARNING: ${r.Phone} is a known litigator!`);
});
```

## Security Best Practice

For additional security, pass the `loginId` in the HTTP header instead of the query string:

```bash theme={null}
curl --location --request GET \
  'https://dataapi.dncscrub.com/v1.4/scrub/litigator?phoneList=5039367187,7075276405' \
  --header 'loginId: YOUR_API_KEY'
```

This prevents the API key from appearing in server logs and browser history.

## Example Use Case

The following diagram illustrates a common workflow for businesses collecting opt-in leads, showing how the Litigator API and [Reassigned Authority API](/api-reference/reassigned/overview) work together to maintain TCPA compliance:

<Frame>
  <img src="https://mintcdn.com/contactcentercompliance/FRlikgRz2LpwfsOO/images/opt-in-scrubbing-workflow.png?fit=max&auto=format&n=FRlikgRz2LpwfsOO&q=85&s=e80ba77d8b1cafb5d393076de9b26b39" alt="Opt-in Lead Scrubbing Workflow" width="1637" height="3890" data-path="images/opt-in-scrubbing-workflow.png" />
</Frame>

### Workflow Summary

1. **At checkout** - When a customer opts in to receive marketing messages, immediately scrub against the Litigator List to avoid known litigators
2. **Save the lead** - Store the opt-in with the consent date
3. **Wait 30 days** - Phone numbers can be reassigned at any time; waiting helps identify reassignments
4. **Scrub against Reassigned List** - Before contacting, check if the number has been reassigned since consent was given
5. **Optional re-check** - Scrub against the Litigator List again (litigator status can change)
6. **Repeat monthly** - Continue this process every 30 days to maintain compliance
