---
title: "List webhook deliveries"
method: GET
path: "/v1/webhooks/{id}/deliveries"
tags: ["Webhooks"]
---

# List webhook deliveries

`GET /v1/webhooks/{id}/deliveries`

## Request

- Base URL: `https://api.chronary.ai`
- URL: `https://api.chronary.ai/v1/webhooks/{id}/deliveries`
- Auth: HTTP bearer

Returns delivery history for a webhook subscription. Useful for diagnosing failed deliveries. Payload bodies are omitted by default — pass `include_payload=true` to include them. Requires an org-level API key; agent-scoped keys receive 403.

## Path parameters

- `id` string, required: Webhook ID

## Query parameters

- `limit` integer
- `offset` integer, nullable
- `status` 'pending' | 'delivered' | 'failed'
- `include_payload` 'true' | 'false'

## Response `200`

Delivery history with pagination and all-time status counts

- WebhookDeliveryList
  - `data` WebhookDelivery[], required
    - `id` string, required
    - `subscription_id` string, required
    - `event_type` 'agent.created' | 'agent.updated' | 'event.created' | 'event.updated' | 'event.deleted' | 'event.started' | 'event.ended' | 'event.reminder' | 'event.hold_created' | 'event.hold_expired' | 'event.hold_released' | 'event.hold_confirmed' | 'proposal.created' | 'proposal.responded' | 'proposal.confirmed' | 'proposal.expired' | 'proposal.cancelled' | 'webhook.deactivated', required
    - `status` 'pending' | 'delivered' | 'failed', required
    - `attempts` integer, required
    - `last_attempt_at` string, date-time, nullable, required
    - `next_retry_at` string, date-time, nullable, required
    - `created_at` string, date-time, required
    - `payload` object: Present only when include_payload=true
  - `total` integer, required
  - `limit` integer, required
  - `offset` integer, required
  - `stats` object, required: All-time delivery counts for this webhook
    - `pending` integer, required
    - `delivered` integer, required
    - `failed` integer, required

## Other responses

- `400`: Validation error — invalid request body or query parameters
- `401`: Unauthorized — missing or invalid API key
- `403`: Forbidden — quota exceeded or operation not permitted
- `404`: Resource not found
- `429`: Rate limited — 10 requests per second per key exceeded
- `500`: Internal server error

---

[API](https://skmtc.dev/chronary/apis/chronary-api.md) · [All operations](https://skmtc.dev/chronary/apis/chronary-api/llms.txt) · [OpenAPI document](https://skmtc.dev/chronary/apis/chronary-api/revisions/0d1a330294ae?raw)
