Follow turns as they change
The turn index's change feed (Host feature turns): each turn's status, times, totals and A2A context and task, in the order the turns changed, a turn again each time it changes. Pass the page's cursor as changedAfter to read on; it is returned even when no turn changed. With sessionId, one session's turns, oldest first. An application key reads the whole Tenant; acting for a person, only theirs.
AuthorizationBearer <token>An application key of the Tenant (PUT /v1/tenant/keys/{keyId}), or Studio's key, derived from the admin key. With Nylorun-Subject and Nylorun-Scopes, it acts for that person, narrowed to those scopes. Never accepted from a browser (Origin).
changedAfter?stringThe cursor a previous page returned: read the changes after it. Absent: from the first turn.
sessionId?stringOnly this session's turns.
limit?integerAt most this many turns, up to 500; a larger limit gets that many. Default 100
1 <= valueNylorun-Protocol*stringThe protocol version, 18
Nylorun-Subject?stringThe person an application key acts for
Nylorun-Scopes?stringThe subject's space-separated scopes; required with a subject
The turns that changed after the cursor
application/json- response
turns*array<>cursor*stringhasMore*booleancurl -X GET "https://example.com/v1/turns" \ -H "Nylorun-Protocol: string"{ "turns": [ { "turnId": "string", "sessionId": "string", "agentId": "string", "status": "running", "startedAt": "string", "endedAt": "string", "changedAt": "string", "totals": { "steps": 0, "tokens": 0, "costUsd": 0 }, "a2a": { "contextId": "string", "taskId": "string" } } ], "cursor": "string", "hasMore": true}Run a sandbox tool in a session POST
For an app's own tools; not while a turn is running.
Run an agent POST
For a person, named by a trusted issuer's token or by `Nylorun-Subject`. The thread is one session per person, agent and thread, created on its first run with `forwardedProps.nylorun.session`. The trailing user message starts a turn (its id is the idempotency key); its media parts are files: bytes sent inline (`data`, at most 20 MiB each) are stored as artifacts of the session, a `file` source with provider `nylorun` names an artifact, and a URL is refused. `resume` answers interrupts. A busy session is a `RUN_ERROR` in the stream; any file type is accepted, and the agent's harness decides how its model sees it.