> ## 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.

# Stream changes

> SSE over the same journal. Last-Event-ID takes precedence over query cursor on reconnect. id is an opaque Change Cursor; data.event_id is deduplication identity. Named change events carry ChangeEvent JSON. checkpoint events carry a cursor when no visible event is emitted, including initial start-now checkpoint. Resume cursor expires or scope changes: before headers use HTTP 410/409; after headers send stream_error with Error JSON then close, without advancing id. Use authenticated streaming fetch/http client. See contract for checkpoint framing and resync.



## OpenAPI

````yaml /openapi.yaml get /v0/changes/stream
openapi: 3.1.0
info:
  title: Quivr V2 public text foundation contract
  version: 0.0.0-draft
  description: >-
    THE-543 and THE-547 evaluation contracts; endpoint implementations are
    separate work. Matching criterion is plugin-owned and deferred. One
    configured webhook destination, immutable Matches, independent at-least-once
    Delivery and reference-only notifications. OpenAPI is authoritative for
    transport shapes. THE-640 adds text search and asynchronous Corpus
    projection rebuild initiation.
servers: []
security:
  - ApiKey: []
paths:
  /v0/changes/stream:
    get:
      tags:
        - Changes
      summary: Stream changes
      description: >-
        SSE over the same journal. Last-Event-ID takes precedence over query
        cursor on reconnect. id is an opaque Change Cursor; data.event_id is
        deduplication identity. Named change events carry ChangeEvent JSON.
        checkpoint events carry a cursor when no visible event is emitted,
        including initial start-now checkpoint. Resume cursor expires or scope
        changes: before headers use HTTP 410/409; after headers send
        stream_error with Error JSON then close, without advancing id. Use
        authenticated streaming fetch/http client. See contract for checkpoint
        framing and resync.
      operationId: streamChanges
      parameters:
        - name: cursor
          in: query
          required: false
          schema:
            type: string
            minLength: 1
        - name: corpus_id
          in: query
          required: true
          schema:
            type: string
            minLength: 1
        - name: Last-Event-ID
          in: header
          required: false
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: Successful response
          content:
            text/event-stream:
              schema:
                type: string
              example: >+
                id: opaque-cursor

                event: change

                data:
                {"event_id":"event_1","type":"record.searchable","schema_version":"1","occurred_at":"2026-09-14T12:00:00Z","resource":{"kind":"record","id":"record_1","corpus_id":"corpus_1"},"cursor":"opaque-cursor"}

        default:
          description: Structured error; see contract HTTP mapping.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    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
  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.

````