Skip to main content
POST
/
v1
/
voice
/
web-call
Web Call
curl --request POST \
  --url https://api-sandbox.featherhq.com/v1/voice/web-call \
  --header 'Content-Type: application/json' \
  --header 'x-api-key: <api-key>' \
  --data '
{
  "agent_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "team_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
  "context_variables": {}
}
'
{
  "livekit_url": "<string>",
  "access_token": "<string>",
  "room_name": "<string>",
  "session_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a"
}

Authorizations

x-api-key
string
header
required

Body

application/json

Browser-initiated test call against an agent.

Mints a short-lived LiveKit access token whose RoomConfiguration embeds an agent_dispatch directive — when the browser connects, the voice-worker is auto-dispatched into the freshly-created room. The server signs agent_id into the token metadata so the browser cannot tamper with which agent it is testing. The supervisor picks which enabled procedure runs from the agent's active-revision catalog on turn 1.

agent_id
string<uuid> | null

Agent whose VoicePipelineConfig drives the call. Provide this XOR team_id.

team_id
string<uuid> | null

Team to test against — the team-level VoicePipelineConfig drives the call and the team's default active agent (initial member) answers/greets. Provide this XOR agent_id.

context_variables
Context Variables · object

Optional seed values for the bound agent's typed context variables, applied once at session bootstrap (same contract as the outbound-call door). Unknown key / uncoercible value → 422. Single-agent bindings only in v1 (ignored for team-bound test calls).

Response

Successful Response

livekit_url
string
required

wss:// URL the browser passes to livekit-client.connect().

access_token
string
required

Short-lived (5 min) LiveKit JWT. Embeds RoomAgentDispatch so the voice-worker auto-joins when the browser connects.

room_name
string
required
session_id
string<uuid>
required