Web Call
Mint a LiveKit access token + auto-dispatch directive for a browser call.
The browser passes the returned access_token to livekit-client's connect(livekit_url, access_token). LiveKit creates the room and auto-dispatches the voice-worker into it. The selected agent-or-team binding is JWT-signed and tamper-proof. A single-agent call uses the agent's active revision, or assistant_revision_id when the caller pins a draft; a team call pins the current active team revision and its roster. An unpinned member still follows that member's active assistant revision when the call's turn plan resolves. The session is created with session_type="test" so post-processing is gated by test_features (see src.conversation.test_features).
This route is reachable by an org-scoped API key (unlike /test-chat, which is dashboard/Clerk-only) — it depends only on Permission.RUNTIME_EXECUTE. So identity resolution + policy is resolved HERE, in the router, rather than in the voice service, which is deliberately auth-free: resolve_test_features raises ValidationError (422) up front for a bad/team-incompatible request, and select_test_session_end_user raises ValidationError (422) when identity_resolution=true and the caller (e.g. an API key) has no clerk_user_id — both short-circuit before any LiveKit work.
Request body
Response
Successful Response
Changes
Changed in 1 of the 3 revisions of this API.4
- ○
added the new optional request property
assistant_revision_idnew-optional-request-property
- ○
added the new optional request property
test_featuresnew-optional-request-property
- ○
added the required property
end_user_idto the response with the200statusresponse-required-property-added
- ○
added the required property
test_featuresto the response with the200statusresponse-required-property-added
This revision also has 40 changes that name no endpoint, such as unreferenced schemas being removed. See the revision's changelog
- ○