Getting started
Quickstart
Create an agent, get an API key, and make your first call. No telephony setup, no provider accounts required — Wakili's hosted default providers work out of the box.
1. Create an account and an agent
- Sign up at app.wakili.dev/signup.
- In the dashboard, create a new agent. Set:
- Name — anything, for your own reference.
- System prompt — the agent's instructions/persona.
- LLM / STT / TTS provider + model — leave the defaults (
llmgateway,groq,groq) if you just want it working; pick specific providers/models per component if you have preferences. - Voice — a TTS voice id for the chosen TTS provider.
- Save. Your account starts with 30 free minutes/month on the Starter plan — no card required.
2. Generate an API key
In the agent's Connect tab, generate an API key. Copy it now — the raw key (wak_...) is only ever shown once.
Keep it server-side. It authenticates as your account for every request; anyone with it can start calls and spend your balance.
3. Start a call
curl -X POST https://api.wakili.dev/agents/{agent_id}/calls \
-H "Authorization: Bearer wak_your_api_key" \
-H "Content-Type: application/json" \
-d '{}'
Response:
{
"call_id": "5b1a...",
"conversation_id": "9e3c...",
"ws_url": "/calls/5b1a.../talk",
"expires_at": "2026-08-17T12:05:00Z"
}
ws_url is relative and single-use — open it as a WebSocket within expires_at (a few minutes) or it 404s. Prefix it with your API host, swapping http→ws / https→wss:
wss://api.wakili.dev/calls/5b1a.../talk
4. Talk to it
Connect to that WebSocket, send audio, get a spoken reply back. Full protocol: The talk WebSocket.
Minimal shape:
- Send mic audio as binary WebSocket frames while the user is speaking.
- Send
{"type":"end_turn"}as a text frame when they stop. - Receive
{"type":"transcript",...}, then{"type":"reply_text",...}, then binary audio frames, then{"type":"reply_audio_end"}.
5. See the call afterward
curl https://api.wakili.dev/calls/{call_id} \
-H "Authorization: Bearer wak_your_api_key"
Returns status, duration, cost, full message transcript, and (once processed) a signed recording URL. Full shape: Calls API.
Next
- Want a working example instead of curl? Next.js integration guide — browser push-to-talk, API key kept server-side.
- Managing agents from code instead of the dashboard? Agents API.