↑ ↓ to navigate · ↵ to open
Documentation menu
Reference
Resources
Account
Realtime
More
API reference
Introduction
One resource per page below. Every endpoint is relative to the base URL and needs a bearer token; request and response bodies are JSON.
Base URL
https://sauti-pbx.services.co.ke/api
Auth header (every request)
Authorization: Bearer sk_live_...
Conventions
- Types.
string,integer,boolean,object(JSON object),array. A type markednullablemay benull. - Timestamps are ISO-8601 strings in UTC (e.g.
2026-07-05T10:00:00Z). Money is a decimal string in KES (e.g."12.50"). - Identifiers. Every resource has a stable
uuid. Calls also carry a human-friendlysid(e.g.call_9Xk2). - Errors return the matching HTTP status with a body
{ "detail": "..." }— see Errors for the full table. - Idempotency. Endpoints that place a call or spend money accept an
Idempotency-Keyheader — see Rate limits & idempotency.
Resources
Originate, hang up, list, and fetch call records.
Acquire, release, and configure DIDs.
List, download, and delete call recordings.
Short-lived credentials for browser/mobile softphones.
The identities behind softphones and their extensions.
Account info, default webhook URL, and signing secret.
Create, list, and revoke bearer credentials.
Balance and transaction history, in KES.
Mint a token for the realtime event WebSocket.
The full event and terminal reason code catalogue.
Health check
A lightweight, unauthenticated status probe for your uptime monitor:
Returns 200 { "status": "ok" } when healthy, or 503 { "status": "degraded" }. No Authorization header needed.
Interactive schema
Every endpoint below is also generated live from the running API as an OpenAPI schema, with a browsable, "try it out" explorer — useful for poking at a request shape without leaving your browser:
Paste your bearer token into the explorer's "Authorize" button before trying a live request — it never leaves your browser.