---
title: "Get document timeline"
method: GET
path: "/v1beta/documents/{document_id}/timeline"
tags: ["Timelines"]
---

# Get document timeline

`GET /v1beta/documents/{document_id}/timeline`

Retrieves timeline events for a document. Admins see all events; viewers see only their own.

## Path parameters

- `document_id` string, required

## Query parameters

- `cursor` string
- `page_size` integer

## Response `200`

Success

- GetTimelineResponse
  - `events` TimelineEvent[]
    - `event_id` string, uuid
    - `event_type` 'TIMELINE_EVENT_TYPE_UNSPECIFIED' | 'TIMELINE_EVENT_TYPE_COMMENT_CREATED' | 'TIMELINE_EVENT_TYPE_COMMENT_UPDATED' | 'TIMELINE_EVENT_TYPE_THREAD_CREATED' | 'TIMELINE_EVENT_TYPE_THREAD_UPDATED' | 'TIMELINE_EVENT_TYPE_APPROVAL_VOTED' | 'TIMELINE_EVENT_TYPE_APPROVAL_STARTED' | 'TIMELINE_EVENT_TYPE_APPROVAL_TERMINATED' | 'TIMELINE_EVENT_TYPE_DOCUMENT_LOADED' | 'TIMELINE_EVENT_TYPE_APPROVAL_READY' | 'TIMELINE_EVENT_TYPE_APPROVAL_SUBMITTED' | 'TIMELINE_EVENT_TYPE_APPROVAL_SKIP_DISSEMINATION' | 'TIMELINE_EVENT_TYPE_DOCUMENT_CREATED' | 'TIMELINE_EVENT_TYPE_DOCUMENT_UPDATED' | 'TIMELINE_EVENT_TYPE_COMMENT_DELETED' | 'TIMELINE_EVENT_TYPE_DOCUMENT_USER_ACCESS_GRANTED' | 'TIMELINE_EVENT_TYPE_DOCUMENT_USER_ACCESS_REVOKED' | 'TIMELINE_EVENT_TYPE_DOCUMENT_ENTRY_PAGE_DOWNLOADED' | 'TIMELINE_EVENT_TYPE_DOCUMENT_VERSION_UPLOADED' | 'TIMELINE_EVENT_TYPE_DOCUMENT_PRINTED' | 'TIMELINE_EVENT_TYPE_DOCUMENT_SETTINGS_ACCESS_CHANGED' | 'TIMELINE_EVENT_TYPE_ANNOTATION_ADDED' | 'TIMELINE_EVENT_TYPE_ANNOTATION_EDITED' | 'TIMELINE_EVENT_TYPE_ANNOTATION_DELETED' | 'TIMELINE_EVENT_TYPE_ANNOTATION_RESOLVED'
    - `occurred_at` string, date-time
    - `payload` Struct — `Struct` represents a structured data value, consisting of fields which map to dynamically typed values. In some languages, `Struct` might be supported by a native representation. For example, in scripting languages like JS a struct is represented as an object. The details of that representation are described together with the proto support for the language. The JSON representation for `Struct` is JSON object.
  - `has_more` boolean
  - `next_cursor` string, nullable

## Other responses

- `400` — Invalid request parameters
- `401` — Authentication failed - missing or invalid API key
- `403` — Authorization failed - valid key but insufficient permissions
- `404` — Resource not found
- `429` — Too many requests
- `500` — Internal server error

## Changes

- **2026-03-19** `ebe16ef03cb2` — 1 info
  - endpoint added

[Change history](https://skmtc.dev/factify-inc/apis/factify-api/changes/v1beta/documents/:document_id/timeline/get.md)

---

[API](https://skmtc.dev/factify-inc/apis/factify-api.md) · [All operations](https://skmtc.dev/factify-inc/apis/factify-api/llms.txt) · [OpenAPI document](https://skmtc-service-production.skmtc.workers.dev/v1/apis/factify-inc/factify-api/revisions/ebe16ef03cb2/schema)
