OpenPhn docs
Concepts

DNC (Do Not Call)

Uploading suppression lists and how they're enforced.

OpenPhn checks every outbound call against two suppression lists:

  1. Global — federal DNC imports and platform-wide entries. Managed by OpenPhn.
  2. 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.

On this page