> ## Documentation Index
> Fetch the complete documentation index at: https://docs.quivr.thevibecompany.co/llms.txt
> Use this file to discover all available pages before exploring further.

# Get document timeline

> One Record Version's finished steps in time order, each with how long it took since the step that caused it and, when known, the plugin that ran it. 404 for an unknown Version or one outside the key's Corpora. Requires observability:read.



## OpenAPI

````yaml /openapi.yaml get /v0/admin/documents/{version_id}/timeline
openapi: 3.1.0
info:
  title: Quivr HTTP API
  version: 0.0.0-draft
  description: >-
    Every endpoint of the Quivr v0 HTTP API. Send an API key as a bearer token;
    the key decides the Organization, the actions and the Corpora a request may
    reach.
servers: []
security:
  - ApiKey: []
paths:
  /v0/admin/documents/{version_id}/timeline:
    get:
      tags:
        - Admin
      summary: Get document timeline
      description: >-
        One Record Version's finished steps in time order, each with how long it
        took since the step that caused it and, when known, the plugin that ran
        it. 404 for an unknown Version or one outside the key's Corpora.
        Requires observability:read.
      operationId: getDocumentTimeline
      parameters:
        - name: version_id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/DocumentTimeline'
        default:
          description: >-
            Structured error; 401 unauthenticated, 403 without
            observability:read, 404 not found, 503 storage unavailable.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    DocumentTimeline:
      type: object
      additionalProperties: false
      properties:
        document:
          $ref: '#/components/schemas/AdminDocument'
        steps:
          type: array
          items:
            $ref: '#/components/schemas/TimelineStep'
      required:
        - document
        - steps
    Error:
      type: object
      additionalProperties: false
      properties:
        code:
          type: string
          minLength: 1
        message:
          type: string
          minLength: 1
        retryable:
          type: boolean
        field:
          type: string
          minLength: 1
          description: >-
            JSON Pointer (RFC 6901) to the request member that caused a 422,
            when known (for example /config/url or /credential/secret/token on
            connector commands).
        resync_url:
          type: string
          format: uri-reference
      required:
        - code
        - message
        - retryable
    AdminDocument:
      type: object
      additionalProperties: false
      properties:
        version_id:
          type: string
          minLength: 1
        record_id:
          type: string
          minLength: 1
        corpus_id:
          type: string
          minLength: 1
        source_namespace:
          type: string
        record_key:
          type: string
        title:
          type: string
          description: >-
            The inline title Part of the accepted command, truncated to 200
            characters; omitted when there is none.
        state:
          type: string
          enum:
            - received
            - materialized
            - building_baseline
            - retrieval_ready
            - quarantined
            - withdrawn
          description: >-
            received until the Version is materialized, then its Version
            Availability state, and withdrawn once its Record is.
        is_current:
          type: boolean
        steps:
          $ref: '#/components/schemas/VersionSteps'
      required:
        - version_id
        - record_id
        - corpus_id
        - source_namespace
        - record_key
        - state
        - is_current
        - steps
    TimelineStep:
      type: object
      additionalProperties: false
      properties:
        step:
          type: string
          enum:
            - accepted
            - materialized
            - segmented
            - retrieval_ready
            - enriched
            - evaluated
            - quarantined
            - withdrawn
        at:
          type: string
          format: date-time
        since:
          type: string
          description: >-
            The step the duration is measured from. Each step is timed from the
            step that causes it; enriched and evaluated both follow
            retrieval_ready, and quarantined follows the latest step finished
            before it. Omitted for accepted and withdrawn, and when that step
            has no time or a later one.
        duration_ms:
          type: integer
          minimum: 0
        plugin_id:
          type: string
          description: >-
            The plugin that ran the step, when known. materialized names the
            normalizer whose output was published; segmented, retrieval_ready
            and enriched name the ingestion plugin whose segments the Corpus
            serves.
        plugin_version:
          type: string
      required:
        - step
        - at
    VersionSteps:
      type: object
      additionalProperties: false
      description: >-
        When each processing step of the Version finished, written once by the
        transaction that commits the step. A step not finished yet is omitted.
        Versions materialized before step times were recorded carry only
        accepted_at, and withdrawn_at for a withdrawal after; history is not
        reconstructed.
      properties:
        accepted_at:
          type: string
          format: date-time
          description: Quivr accepted the revision.
        materialized_at:
          type: string
          format: date-time
          description: The Version was published from normalized content.
        segmented_at:
          type: string
          format: date-time
          description: The Version was first cut into segments.
        retrieval_ready_at:
          type: string
          format: date-time
          description: The Version first became searchable.
        enriched_at:
          type: string
          format: date-time
          description: Vectors were first attached to the Version.
        evaluated_at:
          type: string
          format: date-time
          description: >-
            Every Subscription asked to evaluate the Version had decided; one
            that waits for vectors decides on their round. Omitted when no
            Subscription evaluated it, or when one waiting for vectors was
            disabled before they arrived. With more than 100 Subscriptions on
            one Corpus it can be set once the first 100 have decided.
        quarantined_at:
          type: string
          format: date-time
          description: The Version was quarantined.
        withdrawn_at:
          type: string
          format: date-time
          description: The Version's Record was withdrawn.
  securitySchemes:
    ApiKey:
      type: http
      scheme: bearer
      description: >-
        API key, not necessarily a JWT. Server derives Organization, permitted
        actions and Corpus scope; every resource access is authorized.

````