Your backend calls these endpoints with the project API key to put a transcriber or a voice agent into an RTC room, steer it, and read the transcript afterwards. The captions and agent states themselves reach your users' apps over the RTC connection, not over REST.
More: Live Transcription and AI Voice Agents.
Endpoints
| Method | Path | Credential |
|---|---|---|
| DELETE | /v1/agents/{id} | Project API key |
| GET | /v1/agents/{id} | Project API key |
| PATCH | /v1/agents/{id} | Project API key |
| POST | /v1/agents/{id}/interrupt | Project API key |
| POST | /v1/agents/{id}/say | Project API key |
| GET | /v1/rooms/{roomId}/agents | Project API key |
| POST | /v1/rooms/{roomId}/agents | Project API key |
| DELETE | /v1/rooms/{roomId}/transcription | Project API key |
| GET | /v1/rooms/{roomId}/transcription | Project API key |
| POST | /v1/rooms/{roomId}/transcription | Project API key |
| GET | /v1/transcripts/{id} | Project API key |
| GET | /v1/transcripts/{id}.txt | Project API key |
| GET | /v1/transcripts/{id}.vtt | Project API key |
| DELETE | /v1/transcripts/participants/{identity} | Project API key |
DELETE/v1/agents/{id}
Remove the agent from its room
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | Yes |
GET/v1/agents/{id}
An agent, with status and usage so far
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | Yes |
PATCH/v1/agents/{id}
Change instructions, listenTo or interruptible, live
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | Yes | |
instructions | body | string | No | 1–20 chars |
listenTo | body | string[] | No | 0–128 chars, pattern-checked, array |
interruptible | body | boolean | No |
POST/v1/agents/{id}/interrupt
Stop the current utterance
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | Yes |
POST/v1/agents/{id}/say
Speak this text now (queued after the current utterance)
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | Yes | |
text | body | string | Yes | 1–2000 chars |
GET/v1/rooms/{roomId}/agents
The room's agents, most recent first, with status and usage
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
roomId | path | string | Yes |
POST/v1/rooms/{roomId}/agents
Add an AI voice agent to a room
Credential Project API key · Rate limit 30 per window (details)
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
roomId | path | string | Yes | |
name | body | string | Yes | 1–128 chars |
instructions | body | string | Yes | 1–20 chars |
greeting | body | string | No | 0–2000 chars |
llm | body | AgentLlmDto | No | |
stt | body | AgentSttDto | No | |
tts | body | AgentTtsDto | No | |
listenTo | body | string[] | No | 0–128 chars, pattern-checked, array — Default: every human audio publisher. |
turnDetection | body | AgentTurnDetectionDto | No | |
interruptible | body | boolean | No | |
maxDurationSeconds | body | number | No | 30–21_000 |
tools | body | AgentToolDto[] | No | array |
providerKeys | body | Record<string, string> | No |
DELETE/v1/rooms/{roomId}/transcription
Stop the transcription and finalise the transcript
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
roomId | path | string | Yes |
GET/v1/rooms/{roomId}/transcription
The room's active transcription
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
roomId | path | string | Yes |
POST/v1/rooms/{roomId}/transcription
Start live transcription in a room (one per room)
Credential Project API key · Rate limit 30 per window (details)
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
roomId | path | string | Yes | |
language | body | string | No | pattern-checked |
provider | body | string | No | |
model | body | string | null | No | 0–128 chars — Provider model id; null = the provider's default. |
participants | body | string[] | No | 1–128 chars, pattern-checked, array — Only these participant identities. Default: every audio publisher. |
interimResults | body | boolean | No | |
profanityFilter | body | boolean | No | |
persist | body | boolean | No | Store final segments as a transcript. |
providerKeys | body | Record<string, string> | No |
GET/v1/transcripts/{id}
A transcript: the transcription and its final segments, paginated
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | Yes |
GET/v1/transcripts/{id}.txt
The transcript as plain text
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | Yes |
GET/v1/transcripts/{id}.vtt
The transcript as WebVTT
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
id | path | string | Yes |
DELETE/v1/transcripts/participants/{identity}
GDPR: delete every stored segment a participant identity spoke, in this project's environment
Credential Project API key
| Parameter | In | Type | Required | Notes |
|---|---|---|---|---|
identity | path | string | Yes |
Nested objects
AgentLlmDto
| Field | Type | Required | Notes |
|---|---|---|---|
provider | string | No | |
model | string | No | 0–128 chars |
temperature | number | No | 0–2 |
maxTokens | number | No | 1–8192 |
AgentSttDto
| Field | Type | Required | Notes |
|---|---|---|---|
provider | string | No | |
language | string | No | pattern-checked |
AgentTtsDto
| Field | Type | Required | Notes |
|---|---|---|---|
provider | string | No | |
voice | string | No | 0–256 chars — Provider voice id; omitted = the provider's default voice. |
AgentTurnDetectionDto
| Field | Type | Required | Notes |
|---|---|---|---|
silenceMs | number | No | 100–5000 |
Next steps
- Conventions: base URL, errors, request ids, pagination.
- Errors: every error code and how to fix it.
- All endpoints: every endpoint on one page.