Manage the DNC Directory
This guide walks through every DNC operation you'll do from the API. For the conceptual model see DNC Directory.
Check a number before dialing
Code
Code
Code
Code
Add a number to your org's DNC list
Code
Code
List entries visible to your org
By default returns entries from all sources. Filter to see only org-uploaded:
Code
Remove an org-uploaded entry
Only org_upload entries can be removed. The delete is soft (audit-preserved):
Code
platform and inbound_optout entries cannot be deleted by org admins.
Toggle protection settings
Code
The two canonical settings:
| Field | Default | Effect |
|---|---|---|
protection_enabled | true | When false, DNC checks log but do not block outbound calls. Use only for testing. |
auto_add_inbound_optouts | true | When false, your application must add inbound opt-outs manually. |
Common patterns
Pre-flight a campaign. Before starting an outbound campaign, the platform automatically DNC-checks each contact at dial time. You don't need to pre-check — but if you want to surface the dropped count in your UI before launching, query /dnc/check for each number client-side.
Honor compliance imports. Bulk-import a regulator's DNC export by looping add_entry with reason="Imported from {regulator name} {date}". The MCP server's dnc_add_entry tool can be invoked from an LLM agent if your import flow is conversational.
Detect false positives. If a contact you expect to dial is reported as blocked, dnc.check() returns source — platform entries cannot be overridden by org admins, so contact your account team if mis-listed.
Cost
DNC checks (including pre-call enforcement on every outbound dial), entry add/delete, and STOP auto-detection are included with the platform — no additional fees.
