---
title: "Get the composed activity timeline for a trail"
method: GET
path: "/api/v1/trails/{forge}/{owner}/{repo}/{number}/timeline"
tags: ["Trails"]
---

# Get the composed activity timeline for a trail

`GET /api/v1/trails/{forge}/{owner}/{repo}/{number}/timeline`

Server-composed, newest-first activity feed: trail creation, comments, approvals, lifecycle changes, and a live commit/checkpoint overlay.

## Path parameters

- `forge` string, required
- `owner` string, required
- `repo` string, required
- `number` string, required

## Query parameters

- `cursor` string

## Response `200`

Trail timeline events

- object
  - `events` union[], required
    - union
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_created', required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_status_changed', required
        - `from_status` 'draft' | 'open' | 'merged' | 'closed', nullable, required
        - `to_status` 'draft' | 'open' | 'merged' | 'closed', required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_priority_changed', required
        - `from_priority` 'urgent' | 'high' | 'medium' | 'low' | 'none', nullable, required
        - `to_priority` 'urgent' | 'high' | 'medium' | 'low' | 'none', required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_type_changed', required
        - `from_type` 'bug' | 'feature' | 'task', nullable, required
        - `to_type` 'bug' | 'feature' | 'task', required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'assignee_assignment_changed', required
        - `added` string[], required
        - `removed` string[], required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'reviewer_assignment_changed', required
        - `added` string[], required
        - `removed` string[], required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_branch_merged', required
        - `branch` string, nullable, required
        - `base` string, nullable, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_branch_updated', required
        - `from_branch` string, nullable, required
        - `to_branch` string, nullable, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_branch_pushed', required
        - `branch` string, required
        - `forced` boolean, required
        - `commit_count` number, required
        - `head_sha` string, nullable, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_title_changed', required
        - `from_title` string, nullable, required
        - `to_title` string, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'trail_base_changed', required
        - `from_base` string, nullable, required
        - `to_base` string, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'review_posted', required
        - `finding_count` number, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'finding_resolved', required
        - `comment_id` string, required
        - `discussion_id` string, nullable, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'finding_dismissed', required
        - `comment_id` string, required
        - `discussion_id` string, nullable, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'comment', required
        - `comment_id` string, required
        - `discussion_id` string, nullable, required
        - `is_reply` boolean, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'approval', required
        - `approval_status` 'approved' | 'changes_requested' | 'pending', required
        - `body` string, nullable, required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'commit', required
        - `title` string, required
        - `commit_sha` string, required
        - `additions` number, nullable, required
        - `deletions` number, nullable, required
        - `files_changed` number, nullable, required
        - `stats_pending` boolean, required
        - `checkpoint_count` number, required
        - `session_count` number, required
        - `agents` string[], required
      - object
        - `id` string, required
        - `occurred_at` string, nullable, required
        - `actor` object, nullable, required
          - `login` string, nullable, required
          - `label` string
          - `identity` object, nullable
            - `kind` string, required
            - `accountId` string, nullable, required
            - `displayName` string, nullable, required
            - `avatarUrl` string, nullable, required
            - `handles` object[], required
              - …
        - `kind` 'gate_bypassed', required
        - `bypassed_gates` object[], required
          - `gate_type` 'approvals' | 'findings' | 'checks' | 'up_to_date' | 'base_checks' | 'eval', required
          - `gate_key` string, required
          - `status` 'passed' | 'failed' | 'pending' | 'error' | 'skipped', required
          - `rationale` string, nullable, required
  - `event_cursor` string, nullable, required
  - `has_more` boolean, required
  - `next_cursor` string, nullable, required
  - `incomplete` boolean, required

## Other responses

- `400` — Invalid or expired cursor
- `404` — Trail not found
- `409` — Cell timeline continuation is unavailable
- `501` — Timeline pagination is not supported for API-token callers

## Changes

- **2026-09-24** `ba1409f8f36b` — 1 breaking, 1 info
  - added `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10, subschema #11, subschema #12, subschema #13, subschema #14, subschema #15, subschema #16, subschema #17, subschema #18` to the `events/items/` response property `oneOf` list for the response status `200`
  - removed `subschema #1, subschema #2, subschema #3, subschema #4, subschema #5, subschema #6, subschema #7, subschema #8, subschema #9, subschema #10, subschema #11, subschema #12, subschema #13, subschema #14, subschema #15, subschema #16, subschema #17, subschema #18` from the `events/items/` response property `oneOf` list for the response status `200`
- **2026-09-23** `a7ac2797c1a0` — 1 breaking, 1 info
  - added `subschema #13, subschema #14, subschema #15` to the `events/items/` response property `oneOf` list for the response status `200`
  - removed `subschema #13, subschema #14, subschema #15` from the `events/items/` response property `oneOf` list for the response status `200`

[Change history](https://skmtc.dev/entire/apis/entire-api/changes/api/v1/trails/:forge/:owner/:repo/:number/timeline/get.md)

---

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