Stream live conversation changes
A 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.
Authorization
bearerAuth A Tandem bearer token. Requests are scoped to the organization the token belongs to; no organization header is required.
In: header
Response Body
text/event-stream
application/json
curl -X GET "https://example.com/v1/agent-media/live-conversations/stream""event: snapshot\ndata: {\"conversations\":[{\"conversationId\":\"call-01J8Z\",\"channel\":\"voice\",\"agentId\":\"agent-01J7\",\"agentName\":\"Billing Bot\",\"ani\":\"+15552344141\",\"startedAt\":\"2026-08-21T10:00:00.000Z\",\"state\":\"live\",\"sentiment\":{\"polarity\":\"neutral\",\"escalation\":\"high\"}},{\"conversationId\":\"HhK2v9QqXk7bR3nT\",\"channel\":\"chat\",\"agentId\":\"agent-01J7\",\"agentName\":\"Billing Bot\",\"widgetName\":\"Storefront\",\"startedAt\":\"2026-08-21T09:41:00.000Z\",\"lastActivityAt\":\"2026-08-21T09:59:12.000Z\",\"state\":\"active\",\"sentiment\":{\"polarity\":\"positive\",\"escalation\":\"none\"}}],\"partial\":false}\n\n: keep-alive\n"{ "error": "string", "message": "string", "limit": 0, "length": 0, "reason": "string"}