Skip to main content
GET
List events
Returns a paginated list of events for a session. Use /changes for live tailing; this endpoint is for historical pagination. Auth is optional, so public shares are supported. Returns a paginated list of TrajectoryEvent objects.

Path parameters

string
required
The session ID.

Query parameters

integer
default:"1"
Page number (1-based).
integer
default:"50"
Items per page. Maximum: 200.
string
default:"timestamp"
Sort order. Options: timestamp, -timestamp.
string
Filter by event type, e.g. AgentEvent or MetricsUpdateEvent. See Event shape for the full list.

Event shape

Every event, on both this endpoint and /changes, is the same envelope:
Event envelope

Event types (type)

The most common event types are below. data is an open JSON object whose shape varies by type, so treat this list as representative rather than exhaustive (other types such as DelayAgentStartEvent, AgentRunStatusChangeEvent, and LiveViewUrlEvent may appear).

Agent activity (AgentEvent.data)

The agent’s step-by-step trace lives inside AgentEvent. Its data is the step event; data.kind tells you what happened: Each tool_reqs[] entry (and tool_result.tool_req) is { tool_name, args, id }. policy_event.content and reasoning_content may be null. Parsing a stream means switching on the outer type, then for AgentEvent, on data.kind:
AgentEvent

Observation shapes

An observation_event is flat: type names the environment that produced it, image is the screenshot (if any), and metadata is that environment’s snapshot, shaped by type (an open object, so switch on type to read it). The Browser emits one of two types, depending on the environment’s mode. The page text lives in metadata, not in the top-level text: read metadata.text for web and metadata.page_markdown (or page_html) for textual_web. The top-level text carries only occasional step notices (e.g. [page unchanged since previous observation]) and is null for most observations. web is emitted in visual mode: a screenshot (top-level image) plus page metadata. textual_web is emitted in text mode: paginated page text under metadata, no screenshot.

Images

The image on an observation_event, and any image inside message_event.content[], is { source, type, media_type }. type is url for platform-served screenshots (fetch source with your API key) or base64 for inline images. Images embedded in a tool_result.result or an answer_event.answer stay inline as base64 within that opaque payload, never as URLs.

Examples