Runs

List a session's telemetry frames

Changed on

Returns the paginated telemetry frames for a session in the canonical frame envelope: one completed span frame per durable span (operations that never completed appear via their synthesized failed closures) plus log frames, ordered by span start / log time, with response-level billed-cost maps. This is the same envelope the live telemetry event stream (GET /realtime/sessions/{session_id}/events) carries; live and archive differ only in cardinality (start+end frames live, one completed frame here). Org-scoped: another org's session reads as not found. A trace past the organization's telemetry retention window returns an empty list with retention_expired=true; when the retention policy itself cannot be resolved the request fails with a 500 rather than serving frames whose retention state is unknown. Forward-compatible raw JSON consumers should accept unknown fields within known kinds and treat unknown span_type/log_type values generically. Top-level unknown-kind handling varies by interface and SDK version; do not assume every generated SDK exposes an UnknownFrame variant. Live readers should accept either a single frame object or an array for forward compatibility; current first-party forwarding normally sends one frame object per message.

get/phones/sessions/{session_id}/frames

Request

Path parameters

session_idstring required

Session whose frames to return.

Query parameters

limitinteger

Maximum number of frames to return (1-1000).

offsetinteger

Pagination offset.

Response

OK

inference_costsobject required

Billed microdollars per inference_id, the per-inference detail behind sdk_call_costs.

limitinteger required

Page size used for this response.

offsetinteger required

Pagination offset used for this response.

retention_expiredboolean required

True when the trace is past the organization's telemetry access window; frames are not returned.

sdk_call_costsobject required

Billed microdollars per sdk_call span_id (post-markup, what the invoice charges). Response-level by design: billed cost is a read-time billing join, never a frame attribute.

totalinteger required

Total number of frames for the session.

Changes