---
title: "Run timeline"
method: GET
path: "/v1/admin/runs/{run_id}/timeline"
tags: ["admin"]
---

# Run timeline

`GET /v1/admin/runs/{run_id}/timeline`

## Request

- Base URL: `https://api.patricia.app` (the document declares no server; this is the origin it was published from)
- URL: `https://api.patricia.app/v1/admin/runs/{run_id}/timeline`
- Auth: HTTP bearer

Read one run's ordered timeline.

Requires the run identifier. Set `include=details` to reveal available scrubbed messages, tool arguments, results, and errors. Detailed reads are recorded against your staff account.

Returns `run`, `health`, `completeness`, `items`, and paging information. The detail window is bounded; missing details do not prove that an event had no content.

## Path parameters

- `run_id` string, uuid, required

## Query parameters

- `limit` integer: How many rows to return, 1 to 200. Defaults to 50.
- `pq` string, nullable: The page marker from the `next` or `previous` value of an earlier answer.
- `from_prev` boolean: True when the page marker came from `previous`.
- `include` 'details', nullable
- `sort_by` 'at:desc' | 'at:asc'

## Response `200`

Successful Response

- AdminRunTimeline
  - `run` AdminRunRef, required
    - `id` string, uuid, required
    - `status_code` string, required
    - `trigger_code` string, required
    - `started_at` string, date-time, nullable
    - `unavailable` boolean
  - `health` AdminRunHealth, required
    - `liveness` 'available' | 'unavailable', required
    - `attempt` integer, nullable
    - `heartbeat_at` string, date-time, nullable
  - `completeness` AdminRunCompleteness, required
    - `tool_calls` 'complete' | 'partial' | 'masked' | 'unavailable' | 'not_applicable', required
    - `messages` 'complete' | 'partial' | 'masked' | 'unavailable' | 'not_applicable', required
    - `permission_requests` 'complete' | 'partial' | 'masked' | 'unavailable' | 'not_applicable', required
    - `artifacts` 'complete' | 'partial' | 'masked' | 'unavailable' | 'not_applicable', required
    - `inbound_events` 'complete' | 'partial' | 'masked' | 'unavailable' | 'not_applicable', required
  - `items` AdminRunTimelineItem[], required
    - `id` string, required
    - `kind` 'tool_call' | 'message' | 'permission_request' | 'artifact' | 'journal_step', required
    - `journal_kind` 'tool_finished' | 'final_reply' | 'run_failed' | 'run_reaped': What one journal row records. The table's CHECK constraint lists exactly these.
    - `at` string, date-time, required
    - `clock` 'ingested'
    - `sequence` integer, required
    - `actor` AdminActorRef
      - `id` string, uuid, required
      - `display_name` string, required
      - `unavailable` boolean
    - `role` string, nullable
    - `summary` string, required
    - `status_code` string, nullable
    - `entity_refs` AdminTimelineEntityRef[], required
      - `kind` 'team' | 'person' | 'conversation' | 'request' | 'run', required
      - `id` string, uuid, required
      - `label` string, required
      - `unavailable` boolean
    - `tool_name` string, nullable
    - `input` object, nullable
    - `output` object, nullable
    - `error` string, nullable
    - `duration_ms` integer, nullable
    - `content` string, nullable
    - `detail` object, nullable
  - `first` string, nullable
  - `next` string, nullable
  - `previous` string, nullable

## Other responses

- `422`: Validation Error

---

[API](https://skmtc.dev/patricia/apis/patricia-api.md) · [All operations](https://skmtc.dev/patricia/apis/patricia-api/llms.txt) · [OpenAPI document](https://skmtc.dev/patricia/apis/patricia-api/revisions/0dfb44495ea1?raw)
