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

> Read logical notification status and current admission view. Rights on the referenced Subscription/Corpus are still required for withdrawal-notice metadata.



## OpenAPI

````yaml /openapi.yaml get /v0/deliveries/{delivery_id}
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/deliveries/{delivery_id}:
    get:
      tags:
        - Deliveries
      summary: Get delivery
      description: >-
        Read logical notification status and current admission view. Rights on
        the referenced Subscription/Corpus are still required for
        withdrawal-notice metadata.
      operationId: getDelivery
      parameters:
        - name: delivery_id
          in: path
          required: true
          schema:
            type: string
            minLength: 1
      responses:
        '200':
          description: Successful response
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Delivery'
        default:
          description: >-
            Structured error. Existing /v0 authentication, scope, pagination and
            idempotency semantics apply.
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/Error'
components:
  schemas:
    Delivery:
      type: object
      additionalProperties: false
      properties:
        delivery_id:
          type: string
          minLength: 1
        match_id:
          type: string
          minLength: 1
        destination_id:
          type: string
          minLength: 1
        state:
          type: string
          enum:
            - pending
            - delivering
            - delivered
            - exhausted
        event:
          $ref: '#/components/schemas/WebhookEvent'
        attempt_count:
          type: integer
          minimum: 0
        admission:
          $ref: '#/components/schemas/DeliveryAdmission'
        last_error:
          $ref: '#/components/schemas/Error'
        next_attempt_at:
          type: string
          format: date-time
          description: >-
            When the next automatic attempt becomes eligible. Present only while
            the Delivery is pending and admission is allowed; a retry waits with
            jittered exponential backoff (or a valid Retry-After on 429/503),
            never beyond the delivery window.
      required:
        - delivery_id
        - match_id
        - destination_id
        - state
        - event
        - attempt_count
        - admission
    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
    WebhookEvent:
      type: object
      additionalProperties: false
      properties:
        event_id:
          type: string
          pattern: ^[A-Za-z0-9_-]+$
        type:
          type: string
          enum:
            - match.created
            - match.corrected
            - match.no_longer_matches
            - match.withdrawn
        schema_version:
          type: string
          enum:
            - '1'
        occurred_at:
          type: string
          format: date-time
        references:
          $ref: '#/components/schemas/MonitoringReferences'
      required:
        - event_id
        - type
        - schema_version
        - occurred_at
        - references
      description: >-
        Immutable reference-only notification. Retries preserve event_id and the
        exact stored body bytes; signing timestamp changes per attempt. No
        document content, excerpt, explanation, cursor or secret is embedded.
    DeliveryAdmission:
      type: object
      additionalProperties: false
      properties:
        allowed:
          type: boolean
        reason:
          type: string
          enum:
            - subscription_disabled
            - subscription_deleted
            - record_withdrawn
            - superseded
            - access_denied
            - destination_unavailable
            - terminal
      required:
        - allowed
      description: >-
        Current derived admission view, separate from durable Delivery state. A
        disallowed pending Delivery makes no new network attempt; it does not
        become a new lifecycle state. destination_unavailable means its
        destination is no longer configured for the Organization.
        subscription_disabled lasts until a re-enable; subscription_deleted is
        permanent. record_withdrawn refuses match.created, match.corrected and
        match.no_longer_matches; match.withdrawn is admitted for a withdrawn
        Record. superseded refuses an undelivered match.created or
        match.corrected once a later match.corrected or match.no_longer_matches
        exists for the same Subscription and Record, and an undelivered
        match.no_longer_matches once a later match.corrected exists;
        match.withdrawn is never superseded.
    MonitoringReferences:
      type: object
      additionalProperties: false
      properties:
        match_id:
          type: string
          minLength: 1
        record_id:
          type: string
          minLength: 1
        record_version_id:
          type: string
          minLength: 1
        subscription_id:
          type: string
          minLength: 1
        subscription_version_id:
          type: string
          minLength: 1
        delivery_id:
          type: string
          minLength: 1
        previous_match_id:
          type: string
          minLength: 1
        owner:
          $ref: '#/components/schemas/SubscriptionOwner'
      required:
        - match_id
        - record_id
        - record_version_id
        - subscription_id
        - subscription_version_id
        - delivery_id
      description: >-
        owner is the Subscription Owner, so a client routes the notice to its
        user; absent for a global Subscription and in notices committed before
        owners existed. match_id is the new Match for created/corrected, prior
        positive Match for no_longer_matches/withdrawn. record_version_id is the
        causal correction version for corrected/no_longer_matches, otherwise the
        matched version. References alone confer no access.
    SubscriptionOwner:
      type: string
      minLength: 1
      maxLength: 128
      description: >-
        Subscription Owner, an opaque end-user reference defined by the client
        application (for example user-123). Quivr stores, filters and echoes it
        without interpreting it. At most 128 characters without control
        characters; none is reserved for the listing filter (422 invalid_owner).
  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.

````