List a hook's deliveries
The hook's delivery log, newest first: every request that reached a known hook in the last 7 days, the GET verifications included, whatever the answer (a run started, a duplicate, `if` false, a handshake, a 401 with its `reason`, a 422, a 503). An entry is listed within a second of the answer. Each entry has the status, the error `code`, `reason` and `detail`, the run, the size of the body and a fixed set of headers (`content-type`, `content-length`, `user-agent`, `idempotency-key`, `traceparent`, `x-github-event`, `x-github-delivery`, `x-github-hook-id`, `x-slack-retry-num`, `x-slack-retry-reason`, `webhook-id`, `webhook-timestamp`); no body, signature, cookie, credential or infrastructure header is stored. At most the newest 10,000 entries per hook are kept, and at most 1,200 POST and 60 GET requests per hook and minute are written: requests past that are answered as usual but not listed.
/v1/routines/{routine}/hooks/{hook_id}/deliveries
Authentication
Path Parameters
routine
string
required
path
"nightly-digest"hook_id
string
required
path
"hk_01m5t3r2qwz23751t0x74bhahz"Query Parameters
limit
integer
optional
query
cursor
string
optional
query
Responses
application/jsonobject
string
REQUIRED
listdata
object[]
REQUIRED
object
string
REQUIRED
hook_delivery_entryhook_id
string
REQUIRED
received_at
string (date-time)
REQUIRED
method
string
REQUIRED
POST, GETsource
string
REQUIRED
provider, edge_replay, teststatus
integer
REQUIRED
outcome
string
REQUIRED
started, deduplicated, not_started, handshake, rejected, unavailablecode
string | null
REQUIRED
reason
string | null
REQUIRED
detail
string | null
REQUIRED
run_id
string | null
REQUIRED
delivery_id
string | null
REQUIRED
deduplicated
boolean
REQUIRED
handshake
string | null
REQUIRED
slack_url_verification, slack_ssl_check, github_ping, get_challenge, nullsize
integer
REQUIRED
headers
object
REQUIRED
next_cursor
string | null
REQUIRED
curl -X GET 'https://beta-api.b3os.org/v1/routines/nightly-digest/hooks/hk_01m5t3r2qwz23751t0x74bhahz/deliveries' \ -H 'Authorization: Bearer YOUR_API_TOKEN'
const response = await fetch('https://beta-api.b3os.org/v1/routines/nightly-digest/hooks/hk_01m5t3r2qwz23751t0x74bhahz/deliveries', { method: 'GET', headers: { "Authorization": "Bearer YOUR_API_TOKEN" }});const data = await response.json();console.log(data);
import requestsheaders = { 'Authorization': 'Bearer YOUR_API_TOKEN'}response = requests.get('https://beta-api.b3os.org/v1/routines/nightly-digest/hooks/hk_01m5t3r2qwz23751t0x74bhahz/deliveries', headers=headers)print(response.json())
{ "object": "list", "data": [ { "object": "hook_delivery_entry", "hook_id": "hk_01m5t3r2qwz23751t0x74bhahz", "received_at": "2026-10-30T18:20:00.120Z", "method": "POST", "source": "provider", "status": 202, "outcome": "started", "code": null, "reason": null, "detail": null, "run_id": "run_01m5t40dnvfxq40j1zrjj42gpg", "delivery_id": "72d3162e-cc78-11e3-81ab-4c9367dc0958", "deduplicated": false, "handshake": null, "size": 1834, "headers": { "content-type": "application/json", "user-agent": "GitHub-Hookshot/7b1c2f4", "x-github-event": "pull_request", "x-github-delivery": "72d3162e-cc78-11e3-81ab-4c9367dc0958" } }, { "object": "hook_delivery_entry", "hook_id": "hk_01m5t3r2qwz23751t0x74bhahz", "received_at": "2026-10-30T18:19:41.002Z", "method": "POST", "source": "provider", "status": 401, "outcome": "rejected", "code": "webhook_signature_invalid", "reason": "signature", "detail": "X-Hub-Signature-256 does not match", "run_id": null, "delivery_id": null, "deduplicated": false, "handshake": null, "size": 1834, "headers": { "content-type": "application/json", "x-github-event": "pull_request" } } ], "next_cursor": null}
Try this endpoint
/v1/routines/{routine}/hooks/{hook_id}/deliveries