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

# Do-Not-Call List

> Check phone numbers against internal or external DNC lists before making outbound calls to ensure compliance.

# Do-Not-Call List

The **Do-Not-Call (DNC) List** tool checks phone numbers against your DNC registry before making outbound calls. This ensures compliance with telecommunications regulations (TCPA, FCC) and prevents calling numbers that have opted out.

## How It Works

```
-> Before outbound call, agent checks the target number
-> Agent calls check_dnc_list with phone_number="+14155551234"
-> Returns "CLEAR" or "BLOCKED"

If BLOCKED:
Agent: "I'm unable to call that number as it's on the Do-Not-Call list."

If CLEAR:
-> Outbound call proceeds normally
```

## Configuration

```json theme={null}
{
  "dncListEnabled": true,
  "dncListSource": "internal",
  "dncInternalNumbers": ["+14155551111", "+14155552222"],
  "dncCheckMode": "before_call",
  "dncBlockAction": "block",
  "dncApiUrl": ""
}
```

| Setting              | Type      | Default       | Description                                                           |
| -------------------- | --------- | ------------- | --------------------------------------------------------------------- |
| `dncListEnabled`     | boolean   | `false`       | Enable DNC checking                                                   |
| `dncListSource`      | string    | `internal`    | Source: `internal` (built-in list) or `api` (external service)        |
| `dncInternalNumbers` | string\[] | `[]`          | Phone numbers on the internal DNC list                                |
| `dncCheckMode`       | string    | `before_call` | When to check: `before_call` or `always`                              |
| `dncBlockAction`     | string    | `block`       | On DNC match: `block` (prevent call) or `warn` (proceed with warning) |
| `dncApiUrl`          | string    | —             | External DNC API endpoint for `api` source                            |

## LLM Tool

**Tool name:** `check_dnc_list`

```
Parameters:
  phone_number: string (phone number to check)

Returns:
  "CLEAR: +14155551234 is not on the Do-Not-Call list. Safe to call."
  "BLOCKED: +14155551234 is on the Do-Not-Call list. This number cannot be called."
  "WARNING: +14155551234 is on the Do-Not-Call list. Proceed with caution."
```

## DNC Sources

### Internal List

Maintain your own DNC list directly in the agent configuration. Numbers are compared after stripping formatting.

### External API

Query an external DNC compliance service. The API receives a GET request:

```
GET https://your-dnc-api.com/check?phone=+14155551234
```

Expected response:

```json theme={null}
{
  "on_dnc_list": true,
  "blocked": true
}
```

## Example — Create Agent with DNC List

```bash theme={null}
curl -X POST https://api.thinnest.ai/v1/agents \
  -H "Authorization: Bearer $THINNESTAI_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "name": "Outbound Sales Agent",
    "model": "gpt-4o",
    "instructions": "You make outbound sales calls. Before calling any number, check the DNC list first. If the number is blocked, do NOT call it.",
    "voiceEnabled": true,
    "transcriber": { "provider": "deepgram", "model": "nova-2-conversationalai" },
    "voice": { "provider": "deepgram", "voiceId": "aura-2-thalia-en" },
    "dncListEnabled": true,
    "dncListSource": "internal",
    "dncInternalNumbers": ["+14155551111", "+14155552222"],
    "dncCheckMode": "before_call",
    "dncBlockAction": "block"
  }'
```
