Voice & receptionists

Receptionists

POST /api/receptionists/ creates one (name, knowledgebase, greeting, language, sttprovider, ttsprovider, ttsvoiceid, llmprovider + llmmodel — always set those two together).

What's available on this server:

(/stt/, /voices/, /llm/ list each catalogue separately.)

Start a live call

1. Get a room token — public, by slug, for kiosks and websites: GET /api/livekit/receptionists/by-slug/{slug}/token/?mode=live (or pushtotalk). Owners can use GET /api/livekit/receptionists/{id}/token/. 2. Connect with the [LiveKit client SDK](https://docs.livekit.io/) using the returned URL and token. The receptionist joins the room and starts talking. 3. The token call returns 402 insufficientbalance (with businessphone) when the owner's wallet is too low — show a fallback screen.

The agent also publishes {"type":"pipelineevent", "stage", "state", "ms"} packets on the room data channel if you want to visualise its progress.

Text chat with a receptionist

Pass sessionid (from the first reply) to continue; POST …/{id}/endsession/ ends it.

Pipeline graph (Voice Studio)

GET/PUT /api/receptionists/{id}/pipeline/, POST …/pipeline/validate/ (dry run — findings carry the node they concern), POST …/pipeline/reset/.

Operations

Sessions (/api/receptionists/sessions/), tasks (/tasks/), skills (/skills/, /skills/catalog/, /skills/calendar/), memory (/memory/), analytics (/{id}/analytics/, /{id}/overview/), and call history (/api/livekit/call-history/).

Standalone speech services

POST /api/voice/transcribe/, /api/voice/synthesize/, /api/voice/translate/ — speech-to-text, text-to-speech and translation, multilingual (BCP-47 language codes).