List a run's events
Lists an agent run’s events as pages, oldest first: the frames its stream sends (its spans, the model’s text and the run’s own run_status, run_input_required, run_resumed, run_result and user_message logs) in time order, for a caller that polls rather than holds the stream open. A live run’s page always has a next_cursor to poll from; an ended run’s last page closes with its final run_status, as the run itself has it, and has none. Pages never repeat a frame, except that a cursor older than the stream’s 10-minute window starts again from the run’s first event, so a reader that keeps one deduplicates on span_id and phase, as a stream reader does across reconnects. A page keeps a stream entry’s frames together, so it can hold a few more than limit. The run’s own events and the model’s text are live only: past the stream’s 10-minute window a page has the archived spans and the closing run_status but no run_result, and a run with telemetry off has only its events while they are live. The run itself always has its result.
Authorizations
Customer API key (axl_ prefix).
Path Parameters
The run's id.
Query Parameters
The next_cursor of the page before; leave out for the first page.
Page size.
1 <= x <= 500Response
OK
One page of an agent run's events, oldest first: its archived and live frames in time order. An ended run's last page closes with its final run_status and has no next_cursor.
The run's frames on this page: spans and logs, its own run_status, run_input_required, run_resumed, run_result and user_message logs among them.
One telemetry frame: a completed span or a log event, discriminated on kind. 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.
- Option 1
- Option 2
Pass as cursor for the next page. Absent on an ended run's last page; a live run's page always has one to poll from.