List a webhook's delivery attempts

View as Markdown
Returns the webhook's most recent delivery attempts, newest first. Only the last 25 attempts are kept, so a `limit` above 25 still returns at most 25 rows. The same rows are embedded in the webhook object as `delivery_logs`. Each retry is its own row, and all retries of one event share `delivered_at` (the event timestamp). Status `0` means no HTTP response: a timeout, a connection or DNS failure, or a delivery refused before sending. Events dropped by `filters` are never logged, so an empty log on a webhook you expected to fire usually means the filters did not match. Not paginated. The route also accepts an `offset` query parameter (0–100000) and validates it, but ignores it. **Idempotency.** A read with no side effects. Safe to retry. **Access** - **Required scope:** `read` or `write`. Any workspace role can call it. - **Rate limit:** General API — 120 requests/min per workspace on Starter or with no active plan, 200 on Growth, 300 on Business, 600 on Enterprise. See [Rate limits](/rate-limits). - **Plan:** Requires the `webhook` plan feature. Every plan includes it today, so this gate currently refuses nobody.

Authentication

AuthorizationBearer
Workspace API key: `jl_` followed by 64 lowercase hex characters, created by the workspace owner in the dashboard (**Settings → API Keys**) and sent as `Authorization: Bearer jl_...`. The plaintext is shown once, at creation; Jelliu stores only a SHA-256 hash. A workspace can hold up to 25 active keys. | Scope | GET / HEAD | POST / PUT / PATCH / DELETE | Admin-only routes | | --- | --- | --- | --- | | `read` | Yes | No | No | | `write` | Yes | Yes | No | | `full` | Yes | Yes | Yes | Operations restricted to admins or owners reject keys without the `full` scope with `403`, and say so in their description. No key, whatever its scope, can mint or revoke API keys or rotate a webhook secret — that requires a signed-in owner session. A revoked key stops authenticating within about 10 seconds. See [Authentication](/authentication).

Path parameters

webhookIdstringRequiredformat: "uuid"

UUID of the outbound webhook. It must belong to the authenticated workspace; an id from another workspace answers 404, exactly like an unknown one. Returned as id by GET /api/webhooks.

Query parameters

limitintegerOptional1-50Defaults to 20

Maximum number of attempts to return. Must be an integer from 1 to 50, or the request fails with 400. Values above 25 return at most 25 rows, because only 25 are kept.

Response

Delivery attempts, newest first.
datalist of objects

Attempts ordered by delivered_at descending. Empty array when nothing was delivered yet.

Errors

400
Bad Request Error
401
Unauthorized Error
403
Forbidden Error
404
Not Found Error
429
Too Many Requests Error