Endpoints
Base host: https://teldev.bot (local: http://127.0.0.1:3000).
Auth: Authorization: Bearer nl_test_… or nl_live_….
GET /health is open.
| Method | Path | Notes |
| --- | --- | --- |
| GET | /health | { "ok": true } |
| POST | /v1/numbers | Provision. Body: { area_code?, campaign? } |
| POST | /v1/calls | { from, to, agent?, campaign? } |
| POST | /v1/messages | { from, to, body, agent?, campaign? } |
| GET | /v1/calls/:id | |
| GET | /v1/messages/:id | |
| GET | /v1/sessions/:id | |
| GET | /v1/events?after= | Events after evt_… |
| GET | /v1/usage | Clinic invoice totals |
| POST | /internal/telnyx/voice | Telnyx Call Control webhooks (signature required) |
| POST | /internal/telnyx/sms | Telnyx messaging webhooks (signature required) |
Every call and message creates a session. stream_url is present when agent is set.
Internal Telnyx handlers verify telnyx-signature-ed25519 and telnyx-timestamp. Invalid signature is 401 and does not append an Event.
Seed
- Key:
nl_test_northline_clinic_8f291c44a - Number:
num_demo(+14155550100) - Route:
rte_default - Agents:
agt_clinic_front,agt_brief_420 - Campaigns:
cmp_clinic(approved),cmp_12(T-Mobile not approved)
T-Mobile fixture: +15551201234. AT&T fixture: +15551301234.
Twilio aliases
Only if TELDEV_TWILIO_ALIASES=1:
POST /2010-04-01/Accounts/:sid/Messages.jsonPOST /2010-04-01/Accounts/:sid/Calls.json
Still require a TelDev Bearer key. Not linked from the homepage.