Page a session's tool calls
applicationKeyAuthorizationBearer <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).
sessionId*stringturnId?stringlimit?integerA page holds at most the Tenant's Runtime limit pageItems (default 200); a larger limit gets that many. Default 50, or that limit when it is lower
1 <= valuecursor?stringNylorun-Protocol*stringThe protocol version, 18
Each tool call in the order it was first sent, with its status and sends
application/json- response
calls*array<>nextCursor*string|nullasOf*stringimport { createClient } from "@nylorun/agents";const client = await createClient();const calls = await client.session("ses_123").toolCalls({ limit: 50 });{ "calls": [ { "effectId": "string", "turnId": "string", "callId": "string", "toolName": "string", "kind": "mcp", "server": "string", "tool": "string", "skill": "string", "plugin": { "name": "string", "version": "string" }, "status": "invoking", "attempts": 0, "input": null, "error": { "code": "string", "message": "string" }, "startedAt": "string", "settledAt": "string", "durationMs": 0 } ], "nextCursor": "string", "asOf": "string"}Page a session's model calls GET
Previous Page
Read a turn's trace GET
The turn's spans as OTLP/HTTP JSON (`resourceSpans`), as the Runtime posts them to an OTLP collector: a root span for the turn, a span for each model, tool and egress crossing, ids derived so every read agrees. Post it to a collector's `/v1/traces` to backfill. A turn still running has no root span yet; a turn the session never had has no spans.