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

# List Deliveries

> List webhook delivery attempts for your workspace.

Returns the delivery history for your workspace, most recent first. Use it to investigate events that never arrived, or that arrived more than once.

Filter by `status` to isolate failures, and page through results with `limit` and `cursor`.

| State                | Meaning                                     |
| -------------------- | ------------------------------------------- |
| `pending`            | Recorded and waiting to be sent.            |
| `sweeping`           | Claimed for delivery or retry.              |
| `delivered`          | Your endpoint returned a `2xx`.             |
| `failed`             | An attempt failed and will be retried.      |
| `permanently_failed` | Retries are exhausted. No further attempts. |

See [Webhooks](/essentials/v2/webhooks) for retry behaviour.


## OpenAPI

````yaml api-reference/v2/openapi.json GET /webhooks/indexing/deliveries
openapi: 3.1.0
info:
  contact:
    email: support@hydradb.com
    name: HydraDB Support
  description: >-
    HydraDB Application API — knowledge ingestion, search, and memory
    management.
  license:
    name: Proprietary
  title: HydraDB Application API
  version: 0.1.0
servers:
  - description: Production server
    url: https://api.hydradb.com
security: []
externalDocs:
  description: ''
  url: ''
paths:
  /webhooks/indexing/deliveries:
    get:
      tags:
        - webhooks
      summary: List recent webhook delivery attempts
      description: >-
        List recent webhook delivery attempts with optional cursor-based
        pagination.
      parameters:
        - description: Max deliveries to return
          in: query
          name: limit
          schema:
            type: integer
        - description: Pagination cursor
          in: query
          name: cursor
          schema:
            type: string
        - description: Filter by delivery status
          in: query
          name: status
          schema:
            type: string
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: >-
                  #/components/schemas/handler.Envelope-webhooks_DeliveryListResponse
          description: OK
      security:
        - BearerAuth: []
components:
  schemas:
    handler.Envelope-webhooks_DeliveryListResponse:
      properties:
        data:
          $ref: '#/components/schemas/webhooks.DeliveryListResponse'
          example:
            count: 12
            deliveries:
              - attempts: 1
                created_at: '2026-07-02T10:00:00Z'
                delivery_id: dlv_9f8e7d6c
                doc_id: HydraDoc1234
                error_code: ''
                error_message: ''
                event_type: indexing.status_changed
                indexing_status: completed
                status: completed
                updated_at: '2026-07-02T10:00:05Z'
            next_cursor: eyJvZmZzZXQiOjUwfQ==
        error:
          $ref: '#/components/schemas/handler.apiError'
          description: Error message, empty string on success.
          example:
            code: DATABASE_NOT_FOUND
            message: Database not found
        meta:
          $ref: '#/components/schemas/handler.responseMeta'
          example:
            collection: team_docs
            database: acme_corp
            latency_ms: 12.3
            request_id: 9d13aef4-02f4-4e73-8c62-4c2601d04f9d
            source_type: file
            sub_tenant_id: sub_tenant_4567
            tenant_id: tenant_1234
        success:
          description: Whether the request succeeded.
          example: true
          type: boolean
      type: object
    webhooks.DeliveryListResponse:
      properties:
        count:
          description: Total number of items returned.
          example: 12
          type: integer
        deliveries:
          description: List of webhook delivery attempt records.
          example:
            - attempts: 1
              created_at: '2026-07-02T10:00:00Z'
              delivery_id: dlv_9f8e7d6c
              doc_id: HydraDoc1234
              error_code: ''
              error_message: ''
              event_type: indexing.status_changed
              indexing_status: completed
              status: completed
              updated_at: '2026-07-02T10:00:05Z'
          items:
            $ref: '#/components/schemas/webhooks.DeliveryItem'
          type: array
          uniqueItems: false
        next_cursor:
          description: >-
            Opaque pagination cursor for the next page; null or absent when no
            more pages.
          example: eyJvZmZzZXQiOjUwfQ==
          type: string
      type: object
    handler.apiError:
      properties:
        code:
          description: Machine-readable error code (e.g. `DATABASE_NOT_FOUND`).
          example: DATABASE_NOT_FOUND
          type: string
        message:
          description: Human-readable description of the error.
          example: Database not found
          type: string
      type: object
    handler.responseMeta:
      properties:
        api_version:
          description: >-
            APIVersion echoes the version of the API that served the request
            (PRO-1209),

            sourced from reqmeta.APIVersion — the same value carried by OpenAPI

            info.version and /health — so a client always knows which API
            version

            produced a response. Always present (no omitempty).
          type: string
        collection:
          description: >-
            Collection scope. Defaults to the default collection when omitted.
            Formerly `sub_tenant_id`; the `sub_tenant_id` alias is still
            accepted (deprecated).
          example: team_docs
          type: string
        database:
          description: >-
            Owning database. Formerly `tenant_id`; the `tenant_id` alias is
            still accepted (deprecated).
          example: acme_corp
          type: string
        deprecation:
          description: >-
            Deprecation lists any migration nudges that apply to this request —
            the

            caller used a legacy /tenants route, a legacy
            tenant_id/sub_tenant_id field,

            or the deprecated sub_tenant_ids selector. It is a non-breaking
            signal (the

            status code is unchanged); omitempty keeps it absent for
            fully-migrated

            requests. A list so independent deprecations coexist without
            clobbering.
          items:
            $ref: '#/components/schemas/handler.deprecationNotice'
          type: array
          uniqueItems: false
        latency_ms:
          description: Server-side processing time in milliseconds.
          example: 12.3
          type: number
        request_id:
          description: Unique identifier for this request, useful for support and tracing.
          example: 9d13aef4-02f4-4e73-8c62-4c2601d04f9d
          type: string
        source_type:
          description: Type of the parent source (e.g. `file`, `slack`, `notion`).
          example: file
          type: string
        sub_tenant_id:
          deprecated: true
          example: sub_tenant_4567
          type: string
          x-deprecated: 'true'
        tenant_id:
          deprecated: true
          example: tenant_1234
          type: string
          x-deprecated: 'true'
      type: object
    webhooks.DeliveryItem:
      properties:
        attempts:
          description: Number of delivery attempts made.
          example: 1
          type: integer
        created_at:
          description: RFC3339 timestamp when this item was created.
          example: '2026-07-02T10:00:00Z'
          type: string
        delivery_id:
          description: Unique identifier for this webhook delivery attempt.
          example: dlv_9f8e7d6c
          type: string
        doc_id:
          description: Source ID that triggered this delivery.
          example: HydraDoc1234
          type: string
        error_code:
          description: Machine-readable error code, empty string on success.
          example: ''
          type: string
        error_message:
          description: Human-readable error description, empty string on success.
          example: ''
          type: string
        event_type:
          description: Event that triggered this delivery (e.g. `indexing.status_changed`).
          example: indexing.status_changed
          type: string
        indexing_status:
          description: >-
            Current processing state: `queued`, `processing`, `completed`, or
            `failed`.
          example: completed
          type: string
        status:
          description: >-
            Current delivery status (e.g. `completed`, `failed`,
            `permanently_failed`).
          example: completed
          type: string
        updated_at:
          description: RFC3339 timestamp of the most recent update.
          example: '2026-07-02T10:00:05Z'
          type: string
        webhook_url:
          description: >-
            Endpoint this delivery was aimed at. Attributes history to the
            endpoint

            that was registered when the delivery was created, rather than to
            whatever

            is registered now, so a changed URL does not inherit the old one's
            failures.
          type: string
      type: object
    handler.deprecationNotice:
      properties:
        deprecated:
          description: Whether this response concerns a deprecated field or route.
          example: true
          type: boolean
        deprecated_field:
          description: The deprecated field name.
          example: tenant_id
          type: string
        deprecated_since:
          description: API version when the field was deprecated.
          example: 2.0.1
          type: string
        message:
          description: Migration guidance message.
          example: tenant_id is deprecated; use database instead.
          type: string
        preferred_field:
          description: The canonical replacement for the deprecated field.
          example: database
          type: string
      type: object
  securitySchemes:
    BearerAuth:
      bearerFormat: API key
      description: 'API key sent as a Bearer token: "Bearer prefix.secret"'
      scheme: bearer
      type: http

````