# List deliveries

`GET https://api.signwithsigil.com/v1/webhooks/{uid}/deliveries`

The endpoint's delivery log, newest first: every event queued for it in the last 30 days and how it went.

Payloads are left out here; [get a delivery](/api-reference/webhooks/get-delivery) for one. A `pending` delivery with `attempts` above 0 is waiting for its next try at `next_attempt`.

## Authorization

Header `Authorization: Bearer sgk_…` (or `X-Api-Key: sgk_…`).

## Path parameters

- `uid` (string, required): The webhook's 8-character id. Not case-sensitive.

## Query parameters

- `limit` (integer, default `50`): Deliveries per page, 1 to 200.
- `offset` (integer, default `0`): How many to skip.

## Response

`200 OK`: A page of deliveries.

- `data` (array of objects): The deliveries, without `payload`.
  - `uid` (string): The delivery's id, also sent as `X-Sigil-Delivery`. A retry repeats it.
  - `event_id` (string): The event's id, the body's `id`: the same for this event's delivery to each of your endpoints.
  - `type` (string): The [event type](/webhooks#events). One of: `pact.sent`, `pact.viewed`, `pact.signed`, `pact.declined`, `pact.voided`, `pact.sealed`, `pact.lapsed`, `ping`.
  - `pact_uid` (string | null): The pact the event is about. `null` for a `ping`.
  - `status` (string): `pending` is queued or waiting for its next attempt; `sent` got a `2xx`; `failed` was given up on. One of: `pending`, `sent`, `failed`.
  - `attempts` (integer): Attempts made so far (7 at most).
  - `last_code` (integer | null): The HTTP status of the last attempt, or `null` when it got no response.
  - `last_error` (string | null): Why the last attempt did not count as delivered: the status and the start of your response body, a timeout, or a connection error.
  - `next_attempt` (string (date-time) | null): When it will next be tried, while `pending`.
  - `date_created` (string (date-time)): When the event was queued.
  - `date_sent` (string (date-time) | null): When it was delivered.
- `total` (integer): How many the endpoint has in all.
- `limit` (integer): The page size used.
- `offset` (integer): The offset used.

## Errors

| Status | When |
|---|---|
| 400 | `limit` or `offset` out of range. |
| 401 | The API key is missing, wrong or revoked. |
| 403 | The account's plan does not include API access (Pro and Business do). |
| 404 | No webhook with that id belongs to your account. |

Every error body is `{ "error": "message" }`.

## Example request

```bash
curl 'https://api.signwithsigil.com/v1/webhooks/W8NQ3KTE/deliveries?limit=20' \
  -H "Authorization: Bearer $SIGIL_API_KEY"
```

## Example response

```json
{
  "data": [
    {
      "uid": "HD7KQ4WEPZ9TXM3C",
      "event_id": "EV3QK9WT7PZMXDH4",
      "type": "pact.sealed",
      "pact_uid": "K4TQ7MZE",
      "status": "sent",
      "attempts": 1,
      "last_code": 200,
      "last_error": null,
      "next_attempt": null,
      "date_created": "2026-10-21T09:12:45Z",
      "date_sent": "2026-10-21T09:12:46Z"
    },
    {
      "uid": "HD2MX7QKWT4PZ9EC",
      "event_id": "EV7PZ2KQMX9TWH4D",
      "type": "pact.signed",
      "pact_uid": "K4TQ7MZE",
      "status": "pending",
      "attempts": 2,
      "last_code": 503,
      "last_error": "HTTP 503: Service Unavailable",
      "next_attempt": "2026-10-21T09:48:12Z",
      "date_created": "2026-10-20T15:31:40Z",
      "date_sent": null
    },
    {
      "uid": "HD9TWQ4KMZ7XPE2H",
      "event_id": "PNG4K7QWT9ZXMEH2",
      "type": "ping",
      "pact_uid": null,
      "status": "sent",
      "attempts": 1,
      "last_code": 200,
      "last_error": null,
      "next_attempt": null,
      "date_created": "2026-10-20T14:00:12Z",
      "date_sent": "2026-10-20T14:00:12Z"
    }
  ],
  "total": 3,
  "limit": 50,
  "offset": 0
}
```
