Skip to main content
GET
Get root timeline events

Authorizations

Authorization
string
header
required

A Recursion API key, created in the console under API keys.

Path Parameters

session_id
string<uuid>
required

Session id (UUID) whose root timeline is read.

Query Parameters

after_event_id
string

Exclusive continuation cursor: a lowercase canonical UUID event id, normally the previous page's next_page_token. Malformed values return 400.

limit
integer
default:100

Maximum event count requested. The response may contain fewer events when the aggregate serialized-byte budget is reached.

hydrate
enum<string>

Opt-in compatibility mode. images rehydrates private image refs under strict response caps; omitted by default.

Available options:
images
image_urls
enum<string>

Set to signed to add a short-lived url (and url_expires_at) to stored image blocks within the per-read signing budget. Omitted when signing is unavailable or the budget is exhausted; the authenticated getSessionImage endpoint always works.

Available options:
signed
payloads
enum<string>

External event payloads hydrate by default. Set refs to return bounded stubs and private reference metadata only.

Available options:
refs

Response

Response body of GET /v1/sessions/{session_id}/events: one page of the merged chronological timeline for the whole session tree the path session belongs to, not just that session's own events. The page is bounded twice, by the limit parameter and by an aggregate serialized-byte budget, and the byte budget wins; a single event too large for the budget is returned alone with its content marked oversized and must be fetched in full from the per-event content endpoint.

Response body of GET /v1/sessions/{session_id}/events: one page of the merged chronological timeline for the whole session tree the path session belongs to, not just that session's own events. The page is bounded twice, by the limit parameter and by an aggregate serialized-byte budget, and the byte budget wins; a single event too large for the budget is returned alone with its content marked oversized and must be fetched in full from the per-event content endpoint.

events
object[] | null
required

One chronological page of the root timeline, oldest first. Null rather than an empty array when no event follows the requested watermark, which is the normal answer when a caller has already read to the end.

next_page_token
string
required

Watermark to continue from: pass it back as the after_event_id query parameter to fetch the next page. Its value is the event_id of the last event in this page. Always present, and an empty string means this page reached the end of the timeline as of this read. Because the page can be cut short by a byte budget before the requested limit is reached, a short events array with a non-empty token means more remain, not that the timeline ended.