List a webhook's recent delivery attempts
Returns the 50 most recent delivery attempts for this endpoint, newest first, as an unpaginated list.
Returns the 50 most recent delivery attempts for this endpoint, newest first, as an unpaginated list. Each row reports eventId, eventType, status (pending, delivered, failed, or exhausted), attempts, lastStatusCode, error, nextRetryAt (set only while status is failed), deliveredAt, and redrivable. lastStatusCode is the coarse HTTP status class the endpoint returned (200, 300, 400, or 500), not its precise code. A failed delivery still has automatic retries remaining, while an exhausted one has used them all and can be redriven manually; the redrivable flag tells you which rows a redrive will accept. Requires the webhooks:read scope.
Scope: webhooks:read. Send the API key as a bearer token; Scopes lists what each one reaches.
Request
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
webhook | string | yes | The webhook's ID. |
Response
200 Success. Body: application/json, WebhookDeliveryListResponse.
| Field | Type | Required | Description |
|---|---|---|---|
object | "list" | yes | |
data | array of WebhookDelivery | yes | |
pagination | Pagination | yes |
Errors
Every error has the same body, {"error": {"type", "code", "message", "param"}}; branch on code. Errors lists every code.
| Status | Meaning |
|---|---|
400 | The request is malformed or a value is invalid (invalid_request, invalid_domain, idempotency_key_mismatch). |
401 | The API key is missing or invalid. |
403 | The key lacks the scope this endpoint needs (scope_missing) or may not do this (not_permitted). |
404 | No such resource in this account (resource_not_found). |
429 | Rate limit, plan limit, budget or spend cap reached (rate_limited, plan_limit_reached, budget_exceeded, spend_cap_reached). |
500 | An unexpected error; retry with backoff, then contact support (internal_error). |
Resume a paused webhook subscription
Sets the webhook's status back to active so it receives matching events again, and resets its delivery-failure state — consecutiveFailures returns to 0 and pausedReason/autoPausedAt clear.
Redrive a single failed webhook delivery
Re-attempts one previously-unsuccessful delivery (status failed or exhausted) to this endpoint, reconstructing the event byte-for-byte from the [event ledger](/events/event-ledger) with the same X-Dairo-Event-Id, so consumer-side dedupe stays exact and a redrive never changes the payload.