API overview
REST API rooted at api.openphn.com. Bearer auth, JSON in/out.
The OpenPhn REST API is a single origin:
https://api.openphn.comAll requests require a Bearer token (sk_live_*) in the Authorization
header. Requests and responses are JSON unless explicitly noted (the DNC
CSV upload and call-export endpoints use multipart/form-data and
text/csv, respectively).
Surfaces
| Path | Purpose |
|---|---|
/v1/calls | Create, list, get, export outbound calls. Batch create. |
/v1/numbers | List + configure numbers you own (greeting, flow, transfers, SMS). |
/v1/flows | List, draft, preview, publish flow graphs. |
/v1/dnc | Upload, list, delete tenant DNC entries. |
/v1/voices | Read-only voice catalog. |
/v1/providers | Verify Twilio creds, select active number. |
/v1/webhooks | Register, list, retry, delete outbound webhook endpoints. |
/auth | Signup, login, API-key CRUD, me. |
What's documented here
- Authentication — Bearer keys, scopes,
number_ids. - API keys — create, list, rotate, revoke,
whoami. - Webhooks — signing, retries, delivery history API.
- Rate limits & idempotency — 429 headers + safe retry
recipe via
Idempotency-Key. - Errors — status codes, response shape, common failure codes.
- Reference — auto-generated per-route pages with schemas, examples, and a "try it" console. Grouped by tag (auth, calls, numbers, dnc, flows, webhooks, …).
The machine-readable spec is always live at api.openphn.com/openapi.json and Swagger UI at /docs.