Platform

One API for programmable voice

Everything below is live today. Place and receive calls, drive them with simple verbs, stream events in real time, and pay only for what you use — all from your own backend. Read the documentation for the full reference.

Inbound & outbound calls

Receive calls on your numbers and place them with a single POST. Retry safely with an Idempotency-Key — a network blip never places two calls.

Calls API →

Call-control verbs

Drive any call with plain XML: Say, Play, Dial, Record, Pause, Redirect, Hangup. No SDK, no call state to manage.

Verb reference →

Phone numbers (DIDs)

Browse the pool, acquire a number, and point it at a webhook. Set a different handler per number, or one account-wide default.

Numbers API →

Real-time event stream

Open a WebSocket and watch calls ring, answer, and complete live. Mint a short-lived stream token on your server so your API key never reaches the browser.

Events & codes →

Signed webhooks

Every request we send carries an X-Voice-Signature (HMAC-SHA256) and timestamp. Verify it in a few lines and reject anything older than 5 minutes.

Webhook guide →

Browser & mobile softphones

Create end-users and mint short-lived phone tokens on your backend. Each token has its own extension and concurrency cap, and can be revoked instantly.

Phone tokens →

Text-to-speech

Speak text on any call with <Say>. High-quality voices with an automatic fallback chain, billed per second of speech.

The Say verb →

Call recording

Record a caller with <Record> or a whole conversation with <RecordSession>. Download later with a time-limited signed URL.

Recordings API →

Pay-as-you-go in KES

A single KES wallet, no monthly fees. Calls billed per second, numbers per month. A live monitor watches active calls and stops runaway spend before it happens.

Wallet API →

Start with the quickstart

Five minutes from sign-up to your first call.