VoiceGateway

Read one conversation and its reported turns, events, spans and recording

GET
/api/v1/org/{orgId}/project/{projectId}/calls/{callId}

Authorization

cookievg_session<token>

The console's session cookie, set when you sign in. Every operation accepts it, at the role the operation names.

Path Parameters

orgId*string

Authorised orgId; the server must verify organisation/project ownership before any read.

Length1 <= length
projectId*string

Authorised projectId; the server must verify organisation/project ownership before any read.

Length1 <= length
callId*string

Canonical conversation id, not room name.

Length1 <= length

Response Body

Authorised read result. Null means unreported, never zero. Source-specific coverage limits remain visible.

application/json
  1. response
room*string
roomSid*string|null
startedAt*string
Formatdate-time
endedAt*|
Formatdate-time
durationSeconds*number|null
participantCount*integer|null
endReason*string|null
spans*array<>|null
turns*array<>|null
events?array<||||>|null
usage?|null
recording?|null
id*string

Opaque stable VoiceGateway conversation identifier within this project. Never use room name or room SID alone. Worker joins room/time-window, optional job and trace evidence.

endState*string

Whether closure was observed, inferred by the worker, not closed, or unresolved. Captures lacking closure evidence are unknown.

Value in"observed""inferred""open""unknown"
tags*array<string>

User-assigned labels. Empty means no assigned labels; canonical call id replaces the preview room-name key.

archived*boolean

User archive disposition for this conversation. Archived records remain readable; nothing is deleted.

clocks*array<>

Distinct retained source clocks for this call. Every clockId resolves to exactly one entry; IDs are unique within this array. Empty only when no relative timeline is present. Metadata is derived from capture/adapter evidence, not a field already stored in the preview fixtures.

fields?

Custom fields the agent attached through a VoiceGateway SDK (attach(fields=...) or set_field), later values winning; at most 64 per call, new keys past that are dropped. Empty when no SDK attached any, and for an embed token without transcriptsAndAudio. Absent from captures made before the SDK.

live?|

The latest user and agent state a VoiceGateway SDK reported. Null when no SDK reported state for this call.

Example Request
curl -X GET 'https://example.com/api/v1/org/string/project/string/calls/string'
Example Response
{  "room": "string",  "roomSid": "string",  "startedAt": "2019-08-24T14:15:22Z",  "endedAt": "2019-08-24T14:15:22Z",  "durationSeconds": 0,  "participantCount": 0,  "endReason": "string",  "spans": [    {      "name": "string",      "spanId": "string",      "parentId": "string",      "startMs": 0,      "durationMs": 0,      "attrs": {        "property1": "string",        "property2": "string"      },      "clockId": "string"    }  ],  "turns": [    {      "spanId": "string",      "userText": "string",      "agentText": "string",      "model": "string",      "llmMs": 0,      "ttftMs": 0,      "sttMs": 0,      "ttsMs": 0,      "endOfTurnMs": 0,      "inputTokens": 0,      "outputTokens": 0,      "audioSeconds": 0,      "characters": 0,      "transcriptionDelayMs": 0,      "e2eMs": 0,      "eotProbability": 0,      "eotThreshold": 0,      "userItemAt": 0,      "agentItemAt": 0,      "interrupted": true,      "clockId": "string"    }  ],  "events": [    {      "t": 0,      "type": "user_state",      "from": "string",      "to": "string",      "clockId": "string"    }  ],  "usage": {    "llmInputTokens": 0,    "llmOutputTokens": 0,    "ttsCharacters": 0,    "sttSeconds": 0,    "llmCachedTokens": 0,    "ttsSeconds": 0,    "note": "string"  },  "recording": {    "url": "string",    "duration": 0,    "segments": [      {        "speaker": "caller",        "text": "string",        "start": 0,        "end": 0      }    ],    "peaks": {      "caller": [        0      ],      "agent": [        0      ]    },    "id": "string",    "clockId": "string"  },  "id": "string",  "endState": "observed",  "tags": [    "string"  ],  "archived": true,  "clocks": [    {      "id": "console-events",      "origin": "first_event",      "originAt": null,      "offsetToCallStartSeconds": null,      "alignment": "unknown"    }  ],  "fields": {    "property1": "string",    "property2": "string"  },  "live": {    "user": {      "state": "string",      "at": "2019-08-24T14:15:22Z"    },    "agent": {      "state": "string",      "at": "2019-08-24T14:15:22Z"    }  }}

Was this page helpful?