latestOpenAPI 3.1.0raw.githubusercontent.com2026-08-225393157.2 KB

c0bcdbdbb247

runs

List a session's telemetry frames

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 WebSocket streams; 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. Tolerant reader (unified frame contract): consumers MUST ignore frames with an unknown kind, unknown fields within known kinds, and unknown span_type/log_type values (render generically, never error). Generated SDK types surface an unrecognized frame as an explicit UnknownFrame variant carrying the raw JSON, never a silent drop. A live-stream message MAY carry a JSON array of frame objects; consumers MUST accept a single object or an array.

get/phones/sessions/{session_id}/frames

Path parameters

session_idstring required

Session whose frames to return.

Session whose frames to return.

Query parameters

limitinteger

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

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

offsetinteger

Pagination offset.

Pagination offset.

Response

OK

$schemastring uri

A URL to the JSON Schema for this object.

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 org's retention window; frames are withheld and the underlying data is deleted by a daily sweep.

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.

Example response

{
  "$schema": "/api/v1/RunSessionFramesResponse.json"
}