API Reference
The Sautikit Public API — 113 REST endpoints across 16 groups. Authenticate with a bearer API key — mint one in the dashboard ↗. A few discovery endpoints (pricing and the spec itself) need no auth. Pick an endpoint from the sidebar, or jump into a group below.
https://api.sautikit.comVersion2026-07-13-agents-broadcastsWallet
Wallet balance, ledger, statements.
Storage
Storage tier configuration (recordings retention).
Numbers
DID inventory search, claim, release.
/v1/numbersGETSearch the inventory for available DIDs/v1/numbers/availablePOSTClaim an available inventory DID into the workspace/v1/numbers/{id}/claimGETGet a single tenant number by id/v1/numbers/{id}DELETERelease a tenant number/v1/numbers/{id}PUTUpdate a tenant number's routing config/v1/numbers/{id}/routingGETPer-country outbound call rates for a tenant number/v1/numbers/{id}/call-ratesPOSTRegister a customer-owned number against the workspace's SIP trunk/v1/numbers/byoSIP Credentials
Per-number SIP user-agent credentials.
/v1/sip/tokenGETList credentials for a number/v1/numbers/{id}/sip-credentialsPOSTMint a SIP credential (reveal-once password)/v1/numbers/{id}/sip-credentialsGETLive registration state of a number's SIP credentials/v1/numbers/{id}/sip-credentials/registrationsPOSTIssue a device connection code/v1/numbers/{id}/sip-credentials/{credential_id}/connection-codesDELETERevoke an unredeemed connection code/v1/numbers/{id}/sip-credentials/{credential_id}/connection-codes/{code_id}GETList app devices connected to a line/v1/numbers/{id}/sip-credentials/{credential_id}/devicesDELETERevoke one app device/v1/numbers/{id}/sip-credentials/{credential_id}/devices/{device_id}POSTShow an existing credential's password again/v1/numbers/{id}/sip-credentials/{credential_id}/revealPOSTRotate (replace) the password for a SIP credential/v1/numbers/{id}/sip-credentials/{credential_id}/rotatePATCHChange a credential's label, caller reference or extension/v1/numbers/{id}/sip-credentials/{credential_id}DELETERevoke a SIP credential, or remove a revoked one/v1/numbers/{id}/sip-credentials/{credential_id}SIP Trunk
The workspace's own SIP trunk (bring your own carrier) — one per workspace, and the customer-owned numbers that ride it.
Uploads
Audio-file uploads (voicemail greetings) — GCS-backed, returns a signed storage.sautikit.com URL.
Calls
Call detail records — list, retrieve, event timeline, stat-card aggregates.
/v1/callsPOSTPlace an outbound call via the PBX/v1/callsGETWorkspace stats (calls today / failed / minutes / spend)/v1/calls/statsGETGet one call by id/v1/calls/{id}GETLive Server-Sent Events stream of a call's lifecycle/v1/calls/{id}/streamPOSTTerminate an active call/v1/calls/{call_id}/hangupGETLong-poll for live call-control events (MCP live call control)/v1/calls/{call_id}/control/eventsPOSTSubmit voice actions for a control event (MCP live call control)/v1/calls/{call_id}/control/respondGETFetch the recording resource for a call (redirect, JSON, or status)/v1/calls/{call_id}/recordingPOSTMint a short-lived WebRTC PBX token for the browser softphone/v1/webrtc/tokenPOSTSend a control command to a conference room on the PBX/v1/conferences/{room_name}/commandsWebhooks
Workspace webhook subscriptions — manage endpoints, pick the events they receive, and inspect delivery attempts.
/v1/webhooksPOSTCreate a webhook subscription/v1/webhooksGETGet one webhook subscription/v1/webhooks/{id}PATCHUpdate a webhook subscription/v1/webhooks/{id}DELETEDelete a webhook subscription/v1/webhooks/{id}POSTRotate the signing secret for a subscription/v1/webhooks/{id}/rotate-secretPOSTFire a synthetic test delivery/v1/webhooks/{id}/testGETList recent deliveries for a subscription/v1/webhooks/{id}/deliveriesOps
OpenAPI catalog.
Public
Unauthenticated, CORS-open endpoints for the marketing site and developer portal.
Models
AI model catalog — the models an agent may pin, with voices and per-minute AI rates.
Agents
AI voice agents — draft CRUD, publishing/revisions, HTTP tools, specialist-transfer links, one-off sends, concurrency limits.
/v1/agentsPOSTCreate an agent draft/v1/agentsGETGet one agent draft/v1/agents/{id}PUTUpdate an agent draft/v1/agents/{id}DELETEDelete an agent draft/v1/agents/{id}POSTPublish the current draft as an immutable revision/v1/agents/{id}/publishGETList published revisions of an agent/v1/agents/{id}/revisionsGETGet one published revision/v1/agents/{id}/revisions/{rev}GETList an agent's draft tools/v1/agents/{id}/toolsPUTCreate or update a draft tool/v1/agents/{id}/tools/{toolID}DELETEDelete a draft tool/v1/agents/{id}/tools/{toolID}GETList an agent's specialist-transfer links/v1/agents/{id}/linksPUTReplace an agent's specialist-transfer links (full replacement)/v1/agents/{id}/linksGETList everything that references an agent ("Used by")/v1/agents/{id}/usagePOSTPlace a one-off AI agent call/v1/agents/{id}/sendGETGet concurrency-seat usage for the workspace/v1/agents/limitsGETGet the workspace's agent seat state/v1/agents/seatsPOSTBuy additional concurrent agent seats/v1/agents/seats/purchasePOSTGive back purchased agent seats/v1/agents/seats/releaseBroadcasts
AI voice broadcast campaigns — CRUD, lifecycle verbs, contacts, templating dry-run, reports.
/v1/broadcastsPOSTCreate a broadcast (draft)/v1/broadcastsGETGet broadcast detail with funnel, costs, and blocking reason/v1/broadcasts/{id}PUTUpdate broadcast fields (PUT alias of PATCH)/v1/broadcasts/{id}PATCHUpdate broadcast fields (partial)/v1/broadcasts/{id}DELETEDelete a broadcast/v1/broadcasts/{id}POSTStart dialing (spends money at scale)/v1/broadcasts/{id}/startPOSTPause dialing/v1/broadcasts/{id}/pausePOSTResume dialing (spends money)/v1/broadcasts/{id}/resumePOSTDuplicate a broadcast (config + contacts)/v1/broadcasts/{id}/duplicateGETList a broadcast's contacts/v1/broadcasts/{id}/contactsPOSTAppend contacts (batch, row-level results)/v1/broadcasts/{id}/contactsPOSTBulk contact action (cancel | reschedule | dial_now)/v1/broadcasts/{id}/contacts/bulkPOSTDry-run the composed prompt (zero cost)/v1/broadcasts/{id}/renderGETDownload the aggregate campaign report (CSV)/v1/broadcasts/{id}/report.csvWhatsApp Calling
WhatsApp Business Calling per number — enable/disable the BYOC SIP trunk, rotate credentials, retry failed provisioning, and configure call hours, recording, and transcription.
/v1/numbers/{id}/whatsappPOSTEnable WhatsApp calling on a number/v1/numbers/{id}/whatsappDELETEDisable WhatsApp calling on a number/v1/numbers/{id}/whatsappPOSTRotate a WhatsApp trunk's SIP credentials/v1/numbers/{id}/whatsapp/rotatePOSTRetry provisioning for a failed WhatsApp trunk/v1/numbers/{id}/whatsapp/retryGETGet a number's WhatsApp call settings/v1/numbers/{id}/whatsapp/call-settingsPUTUpdate a number's WhatsApp call settings/v1/numbers/{id}/whatsapp/call-settingsPUTToggle recording for a number's WhatsApp calls/v1/numbers/{id}/whatsapp/recordingPUTToggle transcription for a number's WhatsApp calls/v1/numbers/{id}/whatsapp/transcriptionWhatsApp Messaging
WhatsApp messages — send text and template messages, list a conversation, send read receipts, manage call permissions, and send tap-to-call buttons.
/v1/whatsapp/messagesPOSTMark an inbound message as read/v1/whatsapp/messages/{wamid}/readGETGet a contact's WhatsApp call permission/v1/whatsapp/call-permissionsPOSTAsk a contact for permission to call them/v1/whatsapp/call-permissions/requestPOSTUpload media/v1/whatsapp/mediaGETDownload media/v1/whatsapp/media/{id}DELETEDelete media/v1/whatsapp/media/{id}POSTSend a tap-to-call button message/v1/whatsapp/call-buttonsDevices
/v1/devices/enrollPOSTMint a WebRTC token for this device/v1/devices/tokenPUTRecord where to wake this device/v1/devices/push-tokenDELETEForget where to wake this device/v1/devices/push-tokenPOSTReport this device as reachable/v1/devices/presenceDELETEReport this device as unreachable/v1/devices/presenceGETStream terminal calls for this device's number/v1/devices/calls/stream