HeyKoala Voice API
Place and manage AI voice calls from your own systems.
The external API lets your systems do what the HeyKoala web app does: manage contacts and audiences, place outbound calls, configure what answers inbound ones, and read back everything that happened — including recordings, transcripts and post-call analysis.
It is a plain REST API over HTTPS with JSON bodies and a bearer token. There is no SDK to install.
The shortest useful path
# 1. What can this key do?
curl https://dvoice.heykoala.ai/api/v1/ext/ \
-H "Authorization: Bearer hk_api_..."
# 2. Create the person you want to call.
curl -X POST https://dvoice.heykoala.ai/api/v1/ext/contacts/ \
-H "Authorization: Bearer hk_api_..." \
-H "Content-Type: application/json" \
-d '{"phone": "+919876543210", "name": "Asha Menon"}'
# 3. Call them.
curl -X POST https://dvoice.heykoala.ai/api/v1/ext/calls/dispatch/ \
-H "Authorization: Bearer hk_api_..." \
-H "Content-Type: application/json" \
-d '{
"to_number": "+919876543210",
"event_webhook_url": "https://your-app.example/hooks/heykoala"
}'The call is placed asynchronously. You get a call_id back immediately, and
the outcome arrives at your webhook — see Webhooks.
Get started
Mint a key and make your first request.
Scopes and permissions
What a key is allowed to do, and how to check.
Responses and errors
The envelope every endpoint returns.
Placing a call
Everything the dispatch endpoint needs.
Webhooks
The six events, their payloads, and retry behaviour.
API reference
Every endpoint, generated from the API itself.
What this API is not
It does not carry the audio. Calls run on our infrastructure; you configure
them, trigger them and receive the results. If you want the raw recording, ask
for a signed link with GET /call_logs/{id}/media/.