Getting started

View raw .md

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

  1. Sign up at app.wakili.dev/signup.
  2. 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.
  3. 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 httpws / httpswss:

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.