Skip to main content
GET
List live session events

Authorizations

Authorization
string
header
required

Your Reason API key from Settings › API keys. New keys use reason_; legacy ara_ keys remain accepted. Keys are capability-scoped: run, mcp:read, mcp:write, secrets:read, secrets:write, sessions:read, sessions:debug, knowledge:read, memory:read, memory:write, skills:read, skills:write, repos:read, repos:write, reviews:read, reviews:write, deployment:read, analytics:read, org:read, org:write, attachments:read, attachments:write, guardrails:read, guardrails:write, network:read, network:write, automations:read, automations:write, agent_auth:read. network:read and network:write are opt-in, excluded from default keys. network:read reads the saved workspace network policy; network:write replaces custom allowed hosts and requires a current organization owner/admin. Legacy project PATCH requests containing network_allowed_hosts also require network:write plus their existing run scope and project management permission; saved project hosts do not affect current session egress. Only owners/admins can mint or manage keys with network:write; keys cannot grant themselves more authority. See /docs/network-policies for replacement semantics and runtime applicability. mcp:write manages MCP server configuration only; it does not authorize remote MCP-tool execution. sessions:read reads sessions, including the assistant, reasoning and tool activity in their events. sessions:debug is privileged: only for organization owners/admins, it expands session events to the full diagnostic projection (diagnostic event kinds, status text and raw event metadata).

Path Parameters

orgId
string
required

Organization id or slug. Resolve it with GET /v3/self.

sessionId
string
required

The session id, returned as session_id by createSession and listSessions.

Query Parameters

after_seq
integer

Return only events whose seq is higher than this value: pass the previous response's next_seq, or -1 (the default) to start before the first event. Use it as a cursor to compare, not a count: seq is the Attempt's number times 4294967296 plus a counter inside that Attempt, so it jumps by about 4.29 billion whenever a follow-up, a retry or a machine change starts a new Attempt, and it has gaps. seq is delivery order; sort by each event's position for the order things happened in.

view
enum<string>

conversation returns only what was said and done: assistant, reasoning, tool_use and tool_result events with their text and the fixed data fields, and no status, tracing or diagnostic events, whatever the caller's scopes. Omit it for the caller's full projection. Both use the same cursor, so a next_seq from one is a valid after_seq for the other. With wait_ms, the wait passes over events the view does not list.

Available options:
conversation
limit
integer
default:200

Most events one page returns, 1 to 1000 (other values return 400); a busy Session takes several pages, read on with next_seq.

wait_ms
integer
default:0

When no event follows after_seq and the session is running, the server may wait up to this many milliseconds (max 20000) for one before responding. It may also answer immediately, and a response may carry no events; poll again with the same cursor.

Response

The current session plus a bounded page of live events.

session is the current lifecycle snapshot. Without sessions:debug held by an organization owner/admin, it includes Session identity, status, timestamps, resolved session_policy, error_class, duration_ms, cost_usd and usage, and excludes prompt, result content and diagnostic context.

session
object
items
object[]

Events after after_seq, in ascending seq.

next_seq
integer

The last item's seq, or the request's after_seq when items is empty. Pass it as the next after_seq.