DNC (Do Not Call)
Uploading suppression lists and how they're enforced.
OpenPhn checks every outbound call against two suppression lists:
- Global — federal DNC imports and platform-wide entries. Managed by OpenPhn.
- Per-tenant — everything you've uploaded or added manually via the dashboard or API.
If a destination matches either list, POST /v1/calls fails with a clear
error and a dnc_blocked_dials_total metric increments. Batch calls are
validated per-item, so other items in the batch still proceed.
Upload a list
POST /v1/dnc/upload accepts a CSV of up to 10,000 phone numbers per
request. Numbers are normalized to E.164 (US/Canada +1 NANP today).
Duplicates within the batch and against your existing DNC are deduped at
upload time.
curl -X POST https://api.openphn.com/v1/dnc/upload \
-H "Authorization: Bearer sk_live_..." \
-F "file=@suppressions.csv"Manage entries
GET /v1/dnc— paginated list of your DNC entries.DELETE /v1/dnc/{entry_id}— remove one entry.
All mutations are written to the tamper-evident audit chain with
source: "upload" | "manual" | "api" so you can reconstruct history.
Your obligations
Maintaining an up-to-date DNC list is your responsibility. OpenPhn's enforcement helps but does not absolve you of DNC/TCPA compliance. See Compliance for DNC, A2P 10DLC, and consent requirements.