---
title: "Create Voice Bridge"
method: POST
path: "/api/v1/voice/bridge"
tags: ["Calls"]
---

# Create Voice Bridge

`POST /api/v1/voice/bridge`

## Request

- Base URL: `https://api.dialogbrain.com` (the document declares no server; this is the origin it was published from)
- URL: `https://api.dialogbrain.com/api/v1/voice/bridge`
- Auth: none declared

Bridge an external LiveKit room to an agent.

Requires Idempotency-Key to prevent duplicate bridges on retry. Returns
the call_id and initial status (ringing if answer_delay > 0, active if 0).

## Headers

- `Idempotency-Key` string, nullable

## Request body

- VoiceBridgeRequest: Request to bridge an external LiveKit room to an agent.
  - `livekit_url` string, required: WebSocket URL of your LiveKit server, wss:// only. Private addresses are refused.
  - `room` string, required: Room name in the partner's LiveKit instance.
  - `token` string, required: LiveKit access token for joining the partner's room. Must be valid for at least 300 seconds (or answer_delay_s if longer).
  - `agent_id` integer, required: The DialogBrain agent to handle the call.
  - `caller_external_identity` string, required: The caller's participant identity in your room. The bridge listens to this participant only, and its departure ends the call.
  - `owner_identity` string, nullable: The room owner's participant identity. Only meaningful with a non-zero answer_delay_s: this participant joining means the human answered, and the agent stands down unbilled.
  - `end_user_id` string, nullable: Your identifier for the caller. Comes back on the call events inside metadata.
  - `answer_delay_s` integer, nullable: Seconds to ring the human before the agent answers (0-120). Absent or 0: agent answers immediately.
  - `metadata` object, nullable: Arbitrary JSON-serializable data. Returned on call events. Max 4 KB.

## Response `200`

Successful Response

- VoiceBridgeResponse: Response from bridging a call.
  - `call_id` string, required
  - `room` string, nullable, required
  - `status` string, required

## Other responses

- `400`: Idempotency-Key missing or invalid request.
- `403`: Voice is disabled for this workspace.
- `404`: Agent not found in this workspace.
- `409`: Idempotency-Key already in progress or request conflict.
- `422`: SSRF validation, token lifetime, or answer_delay validation failed.
- `429`: Bridge capacity exhausted.

---

[API](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway.md) · [All operations](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/llms.txt) · [OpenAPI document](https://skmtc.dev/dialogbrain/apis/dialogbrain-v2-api-gateway/revisions/77bef09a9209?raw)
