Start a voice session
Returns the public key, assistant id and per-session overrides the browser SDK needs. Includes a short-lived session token that the assistant presents when calling back into the API, so voice tool calls are authenticated and merchant-scoped like any other request.
Authorization
HTTPBearer JWT access token
In: header
Query Parameters
Optional merchant to act on. Must be one you are a member of.
uuidHeader Parameters
Response Body
application/json
application/json
curl -X GET "https://example.com/api/v1/voice/session"{ "data": { "assistant_id": "string", "assistant_overrides": {}, "disabled_reason": "string", "enabled": true, "greeting": "", "public_key": "string", "session_token": "string" }, "meta": {}, "success": true}Vapi assistant configuration GET
The tool definitions and system prompt to paste into your Vapi assistant, plus the Server URL it should call back on.
Push this backend's tools and prompt onto the live Vapi assistant POST
The assistant's tools and system prompt live on Vapi's platform, not in this backend - adding a tool here (e.g. navigate_page) does nothing to the assistant Vapi actually runs until it is pushed there. This does that: it fetches the configured assistant, replaces its system message and tool list with this backend's VOICE_TOOLS and SYSTEM_PROMPT, and leaves its provider, model and voice untouched. Runs automatically at startup; call it again after editing a voice tool without restarting the server.