How a web call starts
A web call is registered first, then joined — the same shape as creating a phone call:POST /v2/create-web-callregisters the call and returns anaccess_token, thelivekit_urlto connect to, and acall_id.- The browser joins with
OpenMicWebClient.startCall.
Quickstart
dynamic_variables are substituted into the agent prompt wherever it references {{candidate_name}} or {{role}}, so one durable agent serves every call with per-call context — no need to create an agent per call. customer_id is your own identifier; it comes back on the call record and the post-call webhook so you can attribute the call to the session that started it.
Live transcript and call state
Controls
startCall also accepts sampleRate, captureDeviceId, playbackDeviceId, and emitRawAudioSamples (which streams raw Float32Array agent audio via the audio event, for visualizations).
After the call
Thecall_id from create-web-call is the same id used by the calls API, so post-call retrieval needs no correlation tricks — store it when you start the call, then fetch from your backend with your secret key:
recording_url, and call analysis. If the agent has a post-call webhook configured, web calls fire it too, with dynamicVariables (including anything you passed at start) echoed in the payload.
The Web SDK deliberately covers only what is safe to run in a browser with a
public key: registering and joining web calls. Reading call logs and
creating or updating agents require your secret key — do those from your
backend via the REST API (a server SDK is planned).