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

# List deliveries

> The delivery log for one endpoint, newest first.

Payloads are omitted here; fetch a single delivery to see exactly what was
sent. A delivery with `status: pending` has a retry scheduled at
`next_attempt_at`; `failed` means every attempt was used.



## OpenAPI

````yaml api-reference/openapi.json GET /v1/webhook-endpoints/{endpoint_id}/deliveries
openapi: 3.1.0
info:
  description: >-
    Programmatic access to Contour from your own backend: place outbound calls,
    read their results, and manage the webhook endpoints that receive signed
    `call.started`, `call.ended` and `call.analyzed` events.
  title: Contour API
  version: '1.0'
servers:
  - url: https://api.contourvoice.com
security:
  - HTTPBearer: []
tags:
  - description: Place outbound calls and read their state and recordings.
    name: Calls
  - description: >-
      Register URLs to receive signed events, send test events, and inspect or
      retry deliveries.
    name: Webhook Endpoints
paths:
  /v1/webhook-endpoints/{endpoint_id}/deliveries:
    get:
      tags:
        - Webhook Endpoints
      summary: List deliveries
      description: >-
        The delivery log for one endpoint, newest first.


        Payloads are omitted here; fetch a single delivery to see exactly what
        was

        sent. A delivery with `status: pending` has a retry scheduled at

        `next_attempt_at`; `failed` means every attempt was used.
      operationId: list_webhook_deliveries
      parameters:
        - in: path
          name: endpoint_id
          required: true
          schema:
            format: uuid
            title: Endpoint Id
            type: string
        - description: Only deliveries for this call.
          in: query
          name: call_id
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: Only deliveries for this call.
            title: Call Id
        - description: >-
            Only this event: `call.started`, `call.ended`, `call.analyzed`, or
            `test`.
          in: query
          name: event
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Only this event: `call.started`, `call.ended`, `call.analyzed`, or
              `test`.
            title: Event
        - description: >-
            Only this status: `pending`, `in_flight`, `succeeded`, `failed`,
            `cancelled`.
          in: query
          name: status
          required: false
          schema:
            anyOf:
              - type: string
              - type: 'null'
            description: >-
              Only this status: `pending`, `in_flight`, `succeeded`, `failed`,
              `cancelled`.
            title: Status
        - description: 1-based page number.
          in: query
          name: page
          required: false
          schema:
            default: 1
            description: 1-based page number.
            minimum: 1
            title: Page
            type: integer
        - description: Items per page, at most 200.
          in: query
          name: page_size
          required: false
          schema:
            default: 25
            description: Items per page, at most 200.
            maximum: 200
            minimum: 1
            title: Page Size
            type: integer
      responses:
        '200':
          content:
            application/json:
              schema:
                $ref: '#/components/schemas/PaginatedWebhookDeliveryResponse'
          description: Successful Response
        '401':
          content:
            application/json:
              example:
                detail: Invalid or expired API key
          description: Missing or invalid API key.
        '404':
          content:
            application/json:
              example:
                detail: Webhook endpoint not found.
          description: No webhook endpoint with this id in your organization.
        '422':
          content:
            application/json:
              example:
                detail: >-
                  status must be one of cancelled, failed, in_flight, pending,
                  succeeded.
          description: Unknown `status` filter.
      security:
        - HTTPBearer: []
components:
  schemas:
    PaginatedWebhookDeliveryResponse:
      properties:
        items:
          items:
            $ref: '#/components/schemas/WebhookDeliverySummary'
          title: Items
          type: array
        page:
          title: Page
          type: integer
        page_size:
          title: Page Size
          type: integer
        total:
          description: Matching deliveries across all pages.
          title: Total
          type: integer
      required:
        - items
        - total
        - page
        - page_size
      title: PaginatedWebhookDeliveryResponse
      type: object
    WebhookDeliverySummary:
      examples:
        - attempts: 1
          call_id: 9d2f7a3c-8e4b-4f1d-a6c7-2b3c4d5e6f70
          created_at: '2026-09-10T14:04:36Z'
          delivered_at: '2026-09-10T14:04:36Z'
          endpoint_id: b7e1c2d3-4f5a-4b6c-8d7e-9f0a1b2c3d4e
          event: call.ended
          id: 6a0d5e4f-3c2b-4a19-8e7d-6c5b4a392817
          last_status_code: 200
          max_attempts: 8
          status: succeeded
      properties:
        attempts:
          description: Attempts made so far.
          title: Attempts
          type: integer
        call_id:
          description: The call this event is about.
          title: Call Id
          type: string
        created_at:
          format: date-time
          title: Created At
          type: string
        delivered_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When your server first answered 2xx.
          title: Delivered At
        endpoint_id:
          format: uuid
          title: Endpoint Id
          type: string
        event:
          description: >-
            One of `call.started`, `call.ended`, `call.analyzed`, or `test` for
            sample events.
          title: Event
          type: string
        id:
          description: >-
            Delivery id. Sent as `X-Contour-Delivery-Id` and as `id` in the body
            on every attempt; deduplicate on it.
          format: uuid
          title: Id
          type: string
        last_error:
          anyOf:
            - type: string
            - type: 'null'
          description: Error from the most recent attempt.
          title: Last Error
        last_status_code:
          anyOf:
            - type: integer
            - type: 'null'
          description: HTTP status from the most recent attempt.
          title: Last Status Code
        max_attempts:
          description: Attempts allowed before the delivery is marked failed.
          title: Max Attempts
          type: integer
        next_attempt_at:
          anyOf:
            - format: date-time
              type: string
            - type: 'null'
          description: When the next retry is due, while `status` is `pending`.
          title: Next Attempt At
        status:
          description: >-
            One of `pending`, `in_flight`, `succeeded`, `failed`, `cancelled`.
            `pending` means a retry is scheduled; `failed` means every attempt
            was used.
          title: Status
          type: string
      required:
        - id
        - endpoint_id
        - event
        - call_id
        - status
        - attempts
        - max_attempts
        - created_at
      title: WebhookDeliverySummary
      type: object
  securitySchemes:
    HTTPBearer:
      description: >-
        Your organization's API key (`sk_cont_...`), sent as `Authorization:
        Bearer sk_cont_...`. Keep it server-side.
      scheme: bearer
      type: http

````