For the complete documentation index, see llms.txt. Any page on this site can be fetched as Markdown by appending .md to its URL.

Voice agentsLive conversations

List conversations that are live right now

GET
/v1/agent-media/live-conversations

Every agent conversation the organization currently has, across both channels — voice calls and website chat. Conversations in progress come first, oldest first; idle chat conversations follow, most recently active first.

This is a point-in-time read, not a query over stored data — there is no pagination, no date range, and no way to ask for a conversation that has ended. Poll it, or hold open the streaming endpoint below to be told when it changes.

The two channels do not have the same lifetime, and channel is what tells you which rules a row follows. A voice row exists for exactly as long as its call, and disappears the moment the caller hangs up. A chat row persists while the conversation is still going: website chat holds no session between messages, so a conversation is listed here until it ends — the agent finished it, or it reached its message limit — or until nothing has been said for 30 minutes. Its state (active or idle) says whether anyone is there right now.

A chat leaving this collection does NOT mean it is unresumable. A visitor can continue a conversation for 24 hours from their last message, and one that does come back is listed again as active. Three windows govern a chat and they are deliberately different: 30 minutes of quiet takes it off this collection, 24 hours makes it unresumable, and 90 days is how long the visitor can still read it.

Authorization

bearerAuth
AuthorizationBearer <token>

A Tandem bearer token. Requests are scoped to the organization the token belongs to; no organization header is required.

In: header

Response Body

application/json

application/json

application/json

curl -X GET "https://example.com/v1/agent-media/live-conversations"
{  "conversations": [    {      "conversationId": "string",      "channel": "voice",      "agentId": "string",      "agentName": "string",      "ani": "string",      "widgetName": "string",      "startedAt": "2019-08-24T14:15:22Z",      "lastActivityAt": "2019-08-24T14:15:22Z",      "state": "connecting",      "sentiment": {        "polarity": "positive",        "escalation": "none"      },      "alerts": [        {          "id": "string",          "kind": "string",          "label": "string",          "detail": "string"        }      ],      "dismissedAlerts": [        {          "id": "string",          "kind": "string",          "label": "string",          "detail": "string",          "reason": "string",          "dismissedBy": "string",          "dismissedAt": "2019-08-24T14:15:22Z"        }      ],      "assignment": {        "heldBy": "string",        "heldByName": "string",        "joinedAt": "2019-08-24T14:15:22Z",        "takenOverAt": "2019-08-24T14:15:22Z"      },      "presence": {        "monitor": {          "userId": "string",          "name": "string",          "since": "2019-08-24T14:15:22Z",          "listening": true        },        "viewers": [          {            "userId": "string",            "name": "string"          }        ]      },      "heldReply": {        "holdId": "string",        "deadline": "2019-08-24T14:15:22Z"      }    }  ],  "partial": true}
{  "error": "string",  "message": "string",  "limit": 0,  "length": 0,  "reason": "string"}
{  "error": "string",  "message": "string",  "limit": 0,  "length": 0,  "reason": "string"}