NylorunDocsBeta
Runtime APIAgents

Read an Agent's events

GET
/v1/agents/{agentId}/events

agent.created, .attached, .detached, .deleted, a pod's .running, .suspended, .relaunched, .lost, .reset and .failed, .forked, a move's .outdated, .version_changed and .start_failed, and agent.egress for every connection its sandbox opens through egress-gate, naming the turns that were running, in order, numbered from 0, at most the Tenant's Runtime limit environmentEventItems (default 1000) per call: from reads on.

Authorization

headerAuthorizationBearer <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).

Path Parameters

agentId*string

The Agent id, percent-encoded: users%2Falice%2Ftriage for users/alice/triage

Query Parameters

from?string

The first seq to return

types?string

Only these event types, comma-separated (agent.egress)

since?string

Only events recorded at or after this ISO time

until?string

Only events recorded before this ISO time

Header Parameters

Nylorun-Protocol*string

The protocol version, 18

Nylorun-Subject?string

The person an application key acts for

Nylorun-Scopes?string

The subject's space-separated scopes; required with a subject

Response Body

The events

application/json
  1. response
events*array<>
import { createClient } from "@nylorun/agents";const client = await createClient();const egress = await client.agents.events("users/alice/assistant", {  types: ["agent.egress"],  since: "2026-10-17T09:00:00Z",});
{  "events": [    {      "schema": "nylorun.agent-event/1",      "eventId": "string",      "tenantId": "string",      "agentId": "string",      "seq": 0,      "time": "string",      "type": "agent.created",      "payload": {        "property1": null,        "property2": null      }    }  ]}