---
title: "List a webhook's deliveries"
description: "The endpoint's delivery log, newest first and cursor-paginated: one row per event delivered (or being delivered) to it, with its status, attempts, your endpoint's last HTTP status and error, and the event's type and data. `GET /api/v1/webhooks/{id}/deliveries`"
url: https://www.unitpost.com/docs/platform/get-webhooks-id-deliveries
section: "Platform API reference"
updated: 2026-10-13
---
# List a webhook's deliveries

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

The endpoint's delivery log, newest first and cursor-paginated: one row per event delivered (or being delivered) to it, with its status, attempts, your endpoint's last HTTP status and error, and the event's type and `data`. Use it to see why deliveries fail; [Send a test event](https://www.unitpost.com/docs/platform/post-webhooks-id-test) probes the endpoint without adding a row. Requires the `webhooks:read` capability.

## Parameters

| Name | In | Type | Required | Description |
| --- | --- | --- | --- | --- |
| `id` | path | string | yes | — |
| `limit` | query | integer | no | Max rows to return (default 20, max 100). |
| `after` | query | string | no | Return rows after this id (forward paging). |
| `before` | query | string | no | Return rows before this id (backward paging). |

## Response fields (200)

| Field | Type | Required | Description |
| --- | --- | --- | --- |
| `object` | enum | yes | One of: `webhook_delivery`. |
| `id` | string | yes | The delivery id (`msg_…`). |
| `svix_id` | string | yes | The `svix-id` header this delivery's requests carried; retries reuse it, so dedupe on it. |
| `webhook_id` | string | yes | — |
| `event_id` | string | yes | The event (`evt_…`). The delivered payload's `event_id` is the same id without the `evt_` prefix. |
| `event_type` | string | yes | — |
| `status` | enum | yes | `queued`: held while the endpoint is disabled. `retrying`: an attempt failed and another is scheduled at `next_attempt_at`. `exhausted`: every retry failed. One of: `pending`, `queued`, `retrying`, `succeeded`, `failed`, `exhausted`. |
| `attempt` | integer | yes | Attempts made so far. |
| `response_status` | integer | yes | Your endpoint's last HTTP status, or null before an attempt or on a network error. |
| `error` | string | yes | — |
| `scheduled_at` | string | yes | — |
| `next_attempt_at` | string | yes | — |
| `delivered_at` | string | yes | — |
| `event_created_at` | string | yes | — |
| `data` | object | yes | The event's `data`, as delivered. |

## Responses

| Status | Description |
| --- | --- |
| 200 | A page of deliveries. |
| 401 | Missing or invalid API key. |
| 403 | Insufficient scope. |
| 404 | Webhook not found. |
| 422 | Invalid pagination params. |

## Example request

```bash
curl -X GET 'https://www.unitpost.com/api/v1/webhooks/wh_123/deliveries' \
  -H 'Authorization: Bearer YOUR_API_KEY' \
  -H 'User-Agent: my-app/1.0'
```

## Example response (200)

```json
{
  "object": "list",
  "has_more": false,
  "data": [
    {
      "object": "webhook_delivery",
      "id": "id_123",
      "svix_id": "svix_123",
      "webhook_id": "webhook_123",
      "event_id": "event_123",
      "event_type": "string",
      "status": "pending",
      "attempt": 0,
      "response_status": 0,
      "error": "string",
      "scheduled_at": "2026-01-01T00:00:00.000Z",
      "next_attempt_at": "2026-01-01T00:00:00.000Z",
      "delivered_at": "2026-01-01T00:00:00.000Z",
      "event_created_at": "2026-01-01T00:00:00.000Z",
      "data": {}
    }
  ]
}
```

## Links

- HTML reference (with Node.js, Python, Ruby, PHP, Laravel, Go, Java, Rust, .NET and CLI examples): https://www.unitpost.com/docs/platform/get-webhooks-id-deliveries
- OpenAPI 3.1 (full schemas): https://www.unitpost.com/api/v1/openapi.json
