Quickstart
Key → agent → call → webhook in five minutes. Start here.
Agents
The reusable configuration a call runs. Reference.
Calls
Place, inspect and abort outbound calls. Reference.
Webhooks
Signed lifecycle events. Guide.
Authentication
Every request carries one header:sk_live_ followed by 32 hex characters. It is scoped to one
workspace and carries your default tier. Create, rotate and
revoke keys yourself in the console
under Developers.
We store only the SHA-256 of your key, so a lost key cannot be recovered — it is
rotated. Never ship a secret key to a browser or a mobile app.
Conventions
JSON only. SendContent-Type: application/json on every request with a
body. Responses are always JSON, including errors.
IDs are server-minted and prefixed by resource type. Treat them as opaque
strings — do not parse them.
Errors always use one envelope. See the full error reference.
2026-07-26T09:14:02Z.
Money is INR. amount_inr and per_min_inr are numbers, not strings.
Phone numbers are E.164 with the leading +: +919876543210.
Pagination
List endpoints takelimit and cursor and return a cursor-paginated envelope.
next_cursor back as cursor to get the following page. Stop when
has_more is false. Default limit is 20, maximum 100.
Idempotency
POST /v2/calls accepts an Idempotency-Key header. Reuse the key and you get
the original response replayed instead of a second phone call. Keys are held for
24 hours.
Not built yet
Outbound calling is what this API does. These are known gaps, listed so you find out here rather than halfway through a build:- Inbound calls. Outbound only.
- Buying phone numbers. We provide the line.
- Knowledge base / RAG and function calling during a call.
- Self-serve wallet top-up — see the roadmap.
- OAuth or user-scoped tokens. Secret keys only.