Starts a web call with the share link's agent and returns a LiveKit token for the browser. The Voice Orb page calls this when the visitor chooses Start talking. The share token is the only credential. See Share a Voice Orb link.
The call is billed to the workspace that owns the link and has metadata.source set to voice_orb. No agent version, dynamic variables or metadata can be passed, and no pre-call workflow runs.
Request#
Path parameters#
| Parameter | Type | Required | Description |
|---|---|---|---|
token |
string | Yes | The share link's token. |
There is no body.
Example request#
curl -X POST "https://api.tried.com.au/public/share/q3Zx8LmN0pRtUvWy/web-call"const res = await fetch("https://api.tried.com.au/public/share/q3Zx8LmN0pRtUvWy/web-call", { method: "POST" });
const call = await res.json();
if (call.audio_available) {
// join call.livekit_url with call.access_token using the web SDK
}import requests
res = requests.post("https://api.tried.com.au/public/share/q3Zx8LmN0pRtUvWy/web-call")
call = res.json()Response#
201 Created
{
"call_id": "call_c837e1e2d9691e32ae3bbd47",
"access_token": "eyJhbGciOiJIUzI1NiJ9...",
"livekit_url": "wss://tried.livekit.cloud",
"audio_available": true
}| Field | Type | Description |
|---|---|---|
call_id |
string | The web call. |
access_token |
string | Token to join the call's LiveKit room. |
livekit_url |
string | LiveKit server to connect to. |
audio_available |
boolean | true. |
When the API runs without LiveKit, no call is created and the response is 200 OK with { "call_id": null, "audio_available": false }. Use Share link chat instead.
Errors#
| Status | When |
|---|---|
402 |
Credit exhausted or monthly budget reached (error_code credit_exhausted or budget_reached). |
404 |
This link is not active (unknown or disabled token), or the agent no longer exists. |
429 |
Per-IP rate limit exceeded, or the workspace concurrency limit is reached. See Rate limits. |
See Errors for the body format.