Skip to content

Endpoints

A grouped reference of the Get2Dial control-plane endpoints. All paths are under /api/v1 unless noted. See Authentication for how to authenticate and Conventions for the shared envelope and pagination.

Three auth classes appear below:

  • Public — no token (health, login, signup, a few edge bootstrap paths).
  • JWT — a user bearer token; scoped to the caller’s tenant.
  • Node — an edge node API key; the /nodes/* data endpoints.

Role requirements (e.g. admin, platform_admin) are mostly enforced in-handler, so a path alone doesn’t always reveal the required role.

Method Path Purpose
GET /healthz (root) Liveness
GET /readyz (root) Readiness (Postgres/Redis/NATS)
GET /metrics (root) Prometheus metrics
GET /api/v1/edge/health Edge-stack health aggregator
POST /auth/login Authenticate, mint a JWT
GET /auth/bootstrap-status Is the platform initialized
POST /auth/bootstrap One-shot platform-admin creation (gated by AUTH_BOOTSTRAP_TOKEN)
POST /signup, /signup/verify Self-serve signup (rate-limited)
Method Path Purpose
GET /auth/me Current user
PATCH /auth/me Update own profile (display name, timezone)
POST /auth/me/password Change own password
POST /auth/logout Audit-only logout
GET /users/me/sip Own SIP credentials
Method Path Purpose
GET /tenants, /tenants/me List tenants / caller’s tenant
POST /platform/tenants Create a tenant
GET·PUT /tenants/{id}/limits Resource quotas
GET·PUT /tenants/{id}/features Feature entitlements
GET·POST /users List / create users
GET·PATCH·DELETE /users/{id} Read / update / delete a user
POST /users/{id}/reset-password, /disable, /enable User lifecycle
GET·PUT /users/{id}/capabilities Per-user capability grants
Method Path Purpose
GET·POST /agents List / create agents
PUT /agents/{id}/state Set agent state
PUT /agents/{id}/skills Set agent skills
GET·POST /queues List / create queues
GET /queues/{id}/depth Live queue depth
GET·POST·DELETE /queues/{id}/members Queue membership
GET·POST /routing-rules Inbound DID routing
GET /routing-rules/lookup/{did} Resolve a DID
GET·POST /ivr-menus, /ivr-menus/{id}/options IVR menus and options
GET·POST /voicemail/boxes Voicemail mailboxes
GET /voicemail/boxes/{id}/messages Messages in a mailbox
GET·POST /business-hours Business-hours schedules
Method Path Purpose
GET·POST /campaigns List / create campaigns
POST /campaigns/{id}/status Start / pause / archive
GET /campaigns/{id}/metrics, /active-calls Live campaign data
GET·POST /campaigns/{id}/lead-lists Lead lists
POST /campaigns/{id}/lead-lists/{list_id}/import Import leads (CSV)
GET /campaigns/{id}/leads Browse leads
POST /campaigns/{id}/leads/{lead_id}/disposition Set a disposition
GET·POST /dispositions, /disposition-lists Disposition codes & lists
GET·POST·DELETE /dnc Do-Not-Call entries
GET·POST /audio-assets Audio library
GET /audio-assets/{id}/audio Stream an asset
GET·POST /carriers, /phone-numbers, /outbound-routes Carrier config
Method Path Purpose
GET /cdrs List CDRs (filters: from, to, disposition, limit, offset)
GET /cdrs/export CSV export
GET /recordings, /recordings/{call_id}/audio List / stream recordings
POST /supervisor/monitor Listen / whisper / barge on a live call
GET·POST /qa/scorecards, /qa/evaluations QA scoring
GET /reports/{campaigns,agents,call-volume,compliance,dispositions} Reports
GET·POST /report-schedules Scheduled reports

Platform & edge orchestration (JWT, platform_admin)

Section titled “Platform & edge orchestration (JWT, platform_admin)”
Method Path Purpose
GET /platform/edge-nodes Edge node inventory
POST /platform/edge-nodes/{id}/reconcile Push desired state
POST /platform/tenants/{id}/provision-edge Mint edge credentials (returned once)
GET·POST /platform/rtp-pool, /platform/edge-pools Media fabric pools
GET /platform/infra/status Infra status
GET /platform/audit-logs Cross-tenant audit log
Method Path Purpose
POST /nodes/register, /nodes/heartbeat Registration / heartbeat (network-gated)
GET /nodes/media/manifest, /nodes/media/object Media sync (pull)
GET·POST /nodes/recordings/pending, /nodes/recordings/{call_id} Recording sync (push)
POST /nodes/cdrs, /nodes/voicemail, /nodes/dispositions Write-back ingest
GET /nodes/routing/resolve Inbound DID resolution
GET /nodes/subscribers, /nodes/carriers, /nodes/campaigns/{id} Config reads (READ_SOURCE=api)
Path Purpose
/ws/supervisor Supervisor realtime feed
/ws/agent Agent screen-pop feed
  • This table is representative, not exhaustive — the authoritative list is the route table in cmd/control/main.go.
  • GET /cdrs is special: it accepts an optional token. With a token it is tenant/role-scoped (an agent sees only their own calls); without one it falls back to the service default tenant.
  • provision-edge returns the edge credentials once — capture them at creation time.