# Stream live conversation changes (/docs/api/voice-agents/live-conversations/streamLiveConversations)

> For the complete documentation index, see [llms.txt](https://docs.tandemcx.ai/llms.txt). Any page on this site can be fetched as Markdown by appending `.md` to its URL.

`GET /v1/agent-media/live-conversations/stream`

Stream live conversation changes

A [server-sent events](https://developer.mozilla.org/docs/Web/API/Server-sent_events) stream that pushes the full list whenever it changes. The connection stays open until you close it.

The first `snapshot` event carries the current state, so a client that only opens the stream needs no separate read. After that, an event arrives when a conversation starts, ends, or changes state — an unchanged list is never re-sent, so every event you receive is a real change. Comment lines (`: keep-alive`) arrive periodically to hold the connection open and carry no data; ignore them.

Read this with `fetch` and a streaming response body rather than `EventSource`, which cannot send an `Authorization` header.

Each event's `data` is JSON in which `<` and `>` are written as the escapes `\u003c` and `\u003e`. `JSON.parse` restores both characters, so parse the payload rather than matching against its raw text.

## Request

**Base URL:** `https://api.tandemcx.ai`

**Authentication:** `Authorization: Bearer <token>` — A Tandem bearer token. Requests are scoped to the organization the token belongs to; no organization header is required.

No parameters or request body.

## Responses

### 200 — The event stream. Each `snapshot` event's `data` is a `LiveConversationsSnapshot`.

Type: string

### 401 — Missing, malformed, or expired bearer token.

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `error` | string | No | A stable machine-readable code. |
| `message` | string | No | A human-readable explanation, safe to show to an end user. Present on errors an operator can act on; browser clients display this field in preference to a generic fallback. |
| `limit` | integer | No | Present on some errors (e.g. `prompt_too_long`) that reject a value against a fixed bound: the bound itself. |
| `length` | integer | No | Present on some errors (e.g. `prompt_too_long`) that reject a value against a fixed bound: the measured size of the rejected value. |
| `reason` | string | No | Present on some errors (e.g. `invalid_avatar_image`) that have more than one cause: which one applied. |

### 403 — The token verified but carries no usable organization — either no organization at all, or one whose id is malformed — so there is nothing to scope the read to. Re-authenticating will not resolve it.

No response body.
