Skip to content

Page the gap-free Session Event log

GET
/v1/sessions/{sessionId}/events
curl --request GET \
--url 'https://example.com/v1/sessions/9f2b7c14-59d3-4f7a-b8e1-2a6c05d4e731/events?after=0&limit=100' \
--header 'Authorization: Bearer <token>'

Persist nextAfter after every page. Webhook delivery may be duplicated or out of order; this ascending sequence is the repair authority. Event types and fields evolve additively.

sessionId
required

A UUID identifying one Cloud resource; Session, Turn, Publication and Merge ids are minted by the caller so an ambiguous retry addresses the same durable command instead of creating a second one.

string format: uuid
Example
9f2b7c14-59d3-4f7a-b8e1-2a6c05d4e731

A UUID you mint and own; it is the idempotency key for creation and the address of every Turn, artifact and publication underneath

after
integer
0

Exclusive Session sequence cursor

limit
integer
default: 100 >= 1 <= 100

Turns per page, 1-100, default 100

Event page

Media typeapplication/json

One page of the Session event log in ascending sequence order, the surface used both for catch-up and for repairing a missed or duplicated webhook.

object
events
required

Events on this page, in ascending sequence order

Array<object>

One immutable, ordered fact in a Session’s event log. Webhooks are a low-latency signal; this log is the authority for ordering and completeness, so page it to repair any gap.

object
id
required

Globally unique event id — deduplicate repeated webhook deliveries on this value

string format: uuid
type
required

Namespaced additive event type; unknown future values must be ignored safely

string
createdAt
required

When the event was appended to the Session log

string format: date-time
sequence
required

Gap-free Session-local sequence starting at 1; sort by it and page from the last contiguous value you committed

integer
>= 1
visibility
required

Always summary on this API — internal trace events are never exposed here

Allowed value: summary
subject
required

What the event is about: always the Session id, plus the Run id for run-scoped events

object
sessionId
required

A UUID identifying one Cloud resource; Session, Turn, Publication and Merge ids are minted by the caller so an ambiguous retry addresses the same durable command instead of creating a second one.

string format: uuid
runId

A UUID identifying one Cloud resource; Session, Turn, Publication and Merge ids are minted by the caller so an ambiguous retry addresses the same durable command instead of creating a second one.

string format: uuid
data
required

Payload determined by type; unknown types and unknown fields are additive by design, so ignore what you do not recognize instead of failing

object
key
additional properties
any
nextAfter
required

Exclusive sequence cursor to send as after next time; it never regresses, so an empty page hands back the value you sent

integer
hasMore
required

Whether more events follow this page; keep paging until it is false before trusting a Run’s terminal state

boolean
Example
{
"events": [
{
"id": "d1f0a934-2b57-4c86-9e1d-3a0b7f625c48",
"type": "wamp.run.started",
"createdAt": "2026-08-12T09:21:07Z",
"sequence": 12,
"visibility": "summary",
"subject": {
"sessionId": "9f2b7c14-59d3-4f7a-b8e1-2a6c05d4e731",
"runId": "c47a1e08-3d6b-4a92-9f15-8b70d2e5c6a4"
},
"data": {
"status": "running"
}
},
{
"id": "f5b83c27-91ad-4e60-b724-8c1e0d59a3f6",
"type": "wamp.artifact.created",
"createdAt": "2026-08-12T09:43:58Z",
"sequence": 13,
"visibility": "summary",
"subject": {
"sessionId": "9f2b7c14-59d3-4f7a-b8e1-2a6c05d4e731",
"runId": "c47a1e08-3d6b-4a92-9f15-8b70d2e5c6a4"
},
"data": {
"artifactId": "b6e0d857-4a19-4f52-9c83-1d7e64a05b2f",
"runId": "c47a1e08-3d6b-4a92-9f15-8b70d2e5c6a4",
"kind": "result.summary",
"role": "output",
"contentType": "text/markdown; charset=utf-8",
"size": 1843,
"sha256": "76100793e5ca92df907f7b13f4d9ff43cc39482e072b800eacaf5fc393ad0269",
"truncated": false,
"state": "available"
}
}
],
"nextAfter": 13,
"hasMore": true
}

The resource is missing or inaccessible

Media typeapplication/json

Failure body returned with every non-2xx JSON response; branch on the machine code, never on prose or on the HTTP status alone.

object
error
required

Stable machine code

string
requiredScope

The installation capability the presented credential lacks, returned with insufficient_scope so an integrator knows exactly which capability to request

string
retryAfterSeconds

Advisory seconds to wait before retrying; returned on rate-limit denials, where the Retry-After header carries the same value

integer
>= 1
key
additional properties
any
Example
{
"error": "cloud_session_not_found"
}