---
title: "List webhook deliveries"
method: POST
path: "/webhooks/deliveries"
tags: ["Webhooks"]
---

# List webhook deliveries

`POST /webhooks/deliveries`

## Request

- Base URL: `https://api.context.dev/v1`
- URL: `https://api.context.dev/v1/webhooks/deliveries`
- Auth: HTTP bearer

List batch and monitor webhook deliveries from the last 30 days.

## Request body

- union
  - object
    - `type` 'batch', required: Delivery source.
    - `batch_id` string: Filter by batch ID.
    - `status` 'pending' | 'delivering' | 'retrying' | 'delivered' | 'failed' | 'cancelled': Filter by delivery status.
    - `created_after` string, date-time: Only include events created after this ISO 8601 timestamp.
    - `limit` integer: Number of deliveries to return.
    - `cursor` string: The next_cursor from the previous response.
    - `tags` string[]: Labels for filtering usage in the dashboard.
  - object
    - `type` 'monitor', required: Delivery source.
    - `monitor_id` string: Filter by monitor ID.
    - `run_id` string: Filter by monitor run ID.
    - `status` 'pending' | 'delivering' | 'retrying' | 'delivered' | 'failed' | 'cancelled': Filter by delivery status.
    - `created_after` string, date-time: Only include events created after this ISO 8601 timestamp.
    - `limit` integer: Number of deliveries to return.
    - `cursor` string: The next_cursor from the previous response.
    - `tags` string[]: Labels for filtering usage in the dashboard.

## Response `200`

A page of webhook deliveries

- ListWebhookDeliveriesResponse
  - `data` WebhookDeliverySummary[], required: Webhook deliveries.
    - `id` string, required: Delivery ID.
    - `event` 'batch.completed' | 'batch.failed' | 'batch.cancelled' | 'change.detected' | 'run.completed', required: Webhook event type.
    - `source` union, required: Batch or monitor run that produced the event.
      - object
        - `type` 'batch', required: Which deliveries to list: `batch` or `monitor`.
        - `batch_id` string, required: Batch ID.
      - object
        - `type` 'monitor', required: Which deliveries to list: `batch` or `monitor`.
        - `monitor_id` string, required: Monitor ID.
        - `run_id` string, required: Monitor run ID.
    - `url` string, uri, required: Webhook destination URL.
    - `status` 'pending' | 'delivering' | 'retrying' | 'delivered' | 'failed' | 'cancelled', required: `pending`, `delivering`, `retrying`, `delivered`, `failed`, or `cancelled` (source or its webhook was removed).
    - `created_at` string, date-time, required: Event creation time.
    - `retry_expires_at` string, date-time, required: Last time you can retry manually (7 days after the event).
    - `delivered_at` string, date-time, nullable, required: Last successful delivery time, or null if never delivered.
    - `next_attempt_at` string, date-time, nullable, required: Next scheduled attempt, or null if none.
    - `last_error` object, nullable, required: Latest delivery error, or null if none.
      - `code` string, required: Error code.
      - `message` string, required: Error details.
  - `has_more` boolean, required: Whether more deliveries are available.
  - `next_cursor` string, nullable, required: Next page cursor, or null on the last page.
  - `key_metadata` KeyMetadata: Credits this request used and your remaining balance.
    - `credits_consumed` integer, required: Credits charged for this request.
    - `credits_remaining` integer, required: Credits remaining for your organization.
  - `request_id` string, uuid, required: Unique ID of this request, also in `X-Request-Id`. Include it when contacting support.

## Other responses

- `400`: Bad request
- `401`: Unauthorized
- `404`: Not found
- `429`: Rate limit exceeded (600 requests per minute per organization).
- `500`: Webhook service is temporarily unavailable.

## Changes

- **2026-10-21** `61627728926b`: 5 warning
  - added the new `NO_PUBLISHED_MARKDOWN` enum value to the `error_code` response property for the response status `400`
  - added the new `NO_PUBLISHED_MARKDOWN` enum value to the `error_code` response property for the response status `401`
  - added the new `NO_PUBLISHED_MARKDOWN` enum value to the `error_code` response property for the response status `404`
  - added the new `NO_PUBLISHED_MARKDOWN` enum value to the `error_code` response property for the response status `429`
  - …1 more
- **2026-10-19** `4ddcf49b9fe5`: 5 info
  - added the optional property `error_data` to the response with the `400` status
  - added the optional property `error_data` to the response with the `401` status
  - added the optional property `error_data` to the response with the `404` status
  - added the optional property `error_data` to the response with the `429` status
  - …1 more
- **2026-10-16** `2125f3e94e52`: 1 info
  - endpoint added

[Operation history](https://skmtc.dev/context/apis/brand-api/changes/webhooks/deliveries/post.md)

---

[API](https://skmtc.dev/context/apis/brand-api.md) · [All operations](https://skmtc.dev/context/apis/brand-api/llms.txt) · [OpenAPI document](https://skmtc.dev/context/apis/brand-api/revisions/9e2ab7841fb1?raw)
