---
title: "List Run Events"
method: GET
path: "/api/v1/runs/{id}/events"
tags: ["Run Internals"]
---

# List Run Events

`GET /api/v1/runs/{id}/events`

Returns a paginated JSON list of stored run events. Ascending order
uses `since_seq` as an inclusive cursor. Descending order uses
`before_seq` as an exclusive cursor and starts at the newest event
when `before_seq` is omitted.

## Path parameters

- `id` string, required

## Query parameters

- `since_seq` integer
- `limit` integer
- `before_seq` integer
- `order` 'asc' | 'desc'

## Response `200`

Paginated list of run events

- PaginatedEventList — Paginated list of stored run events.
  - `data` EventEnvelope[], required
    - `seq` integer, required — Assigned event sequence number.
    - `id` string, required
    - `ts` string, date-time, required
    - `run_id` string, required
    - `node_id` string, nullable
    - `node_label` string, nullable
    - `stage_id` string, nullable — Stage execution identity, formatted as "{node_id}@{visit}".
    - `parallel_group_id` string, nullable — Durable identity of one execution of a parallel node, formatted as "{node_id}@{visit}".
    - `parallel_branch_id` string — Durable identity of one branch within a parallel execution, in `{parallel_group_id}:{index}` form.
    - `session_id` string, nullable
    - `parent_session_id` string, nullable
    - `tool_call_id` string, nullable — Stable identifier for a tool call, present on agent.tool.* events and other durable events that directly describe the same tool call.
    - `actor` union
      - PrincipalUser
        - `kind` 'user', required
        - `identity` IdpIdentity, required
          - `issuer` string, required
          - `subject` string, required
        - `login` string, required
        - `auth_method` 'github' | 'dev_token', required — Runtime user authentication method.
        - `avatar_url` string, nullable
      - PrincipalWorker
        - `kind` 'worker', required
        - `run_id` string, required
      - PrincipalWebhook
        - `kind` 'webhook', required
        - `delivery_id` string, required
      - PrincipalSlack
        - `kind` 'slack', required
        - `team_id` string, required
        - `user_id` string, required
        - `user_name` string, nullable
      - PrincipalAgent
        - `kind` 'agent', required
        - `session_id` string, nullable
        - `parent_session_id` string, nullable
        - `model` string, nullable
      - PrincipalSystem
        - `kind` 'system', required
        - `system_kind` 'engine' | 'watchdog' | 'timeout', required
    - `event` string, required — Event type discriminator.
    - `properties` object
  - `meta` PaginationMeta, required — Pagination metadata included in every paginated response.
    - `has_more` boolean, required — Whether additional pages of results are available.
    - `total` integer — Total number of items matching the current filters. Optional — only populated by endpoints that compute the full count cheaply (e.g. in-memory filtering). When omitted, clients should rely on `has_more` and cursor through pages.

## Other responses

- `400` — Invalid cursor and order combination
- `404` — Run not found

---

[API](https://skmtc.net/fabro-sh/apis/fabro-run-api.md) · [All operations](https://skmtc.net/fabro-sh/apis/fabro-run-api/llms.txt) · [OpenAPI document](https://skmtc-service-staging.skmtc.workers.dev/v1/apis/fabro-sh/fabro-run-api/versions/bee030053823/schema)
