List deliveries
/v1/webhooks/{id}/deliveriesWhat we sent and how it went, newest first. The row carries the response status and error text but not the payload — the payload is reachable through the event's own links.
Price
Free.
Parameters
| Name | In | Type | Required | Default | Description |
|---|---|---|---|---|---|
id | path | string | Required | — | Webhook endpoint id. |
limit | query | integermin 1; max 100 | Optional | 25 | Items per page. |
cursor | query | string | Optional | — | Opaque next_cursor from the previous page. |
status | query | stringone of pending, delivered, failed | Optional | — | pending, delivered or failed. |
Responses
200 OK
{ items, next_cursor }.
object
itemsarray of objectrequiredidstringrequiredevent_idstringrequiredStable across replays, so a receiver can de-duplicate.event_typestringrequiredone ofrun.completed,tracker.changed,webhook.teststatusstringrequiredone ofpending,delivered,failedattemptsintegerrequiredresponse_statusintegerrequirednullableerrorstringrequirednullablerun_idstringrequirednullabletracker_idstringrequirednullablechange_report_idstringrequirednullablereplay_ofstringrequirednullablecreated_atstringrequiredlast_attempt_atstringrequirednullabledelivered_atstringrequirednullablefailed_atstringrequirednullable
next_cursorstringrequirednullablePass back ascursor. Null on the last page.
200 · `{ items, next_cursor }`.
{
"items": [
{
"id": "whd_51c8b0f81a",
"event_id": "evt_pR4Vm8s2XqNb7cTfKdYw1E",
"event_type": "run.completed",
"status": "failed",
"attempts": 5,
"response_status": 503,
"error": "receiver returned 503",
"run_id": "run_8f2c1ad04b",
"tracker_id": null,
"change_report_id": null,
"replay_of": null,
"created_at": "2026-09-08T09:14:02.911Z",
"last_attempt_at": "2026-09-08T09:14:03.006Z",
"delivered_at": null,
"failed_at": "2026-09-08T09:41:10.220Z"
},
{
"id": "whd_51c8b0f7e3",
"event_id": "evt_kZ8Qw3n1TfLd0aZmVbYpRc",
"event_type": "webhook.test",
"status": "delivered",
"attempts": 1,
"response_status": 200,
"error": null,
"run_id": null,
"tracker_id": null,
"change_report_id": null,
"replay_of": null,
"created_at": "2026-09-08T09:14:02.911Z",
"last_attempt_at": "2026-09-08T09:14:03.006Z",
"delivered_at": "2026-09-08T09:14:03.006Z",
"failed_at": null
}
],
"next_cursor": null
}400 Bad Request
invalid_request for a cursor that is not a next_cursor this API issued. Nothing is charged.
object
RFC 9457 problem document, served as application/problem+json. Branch on code, never on the prose.
typestringrequiredtitlestringrequiredstatusintegerrequiredcodestringrequiredone ofmissing_authorization,invalid_key,key_revoked,invalid_token,organization_not_selected,organization_access_revoked,connection_revoked,forbidden,invalid_request,unsupported_platform,unsupported_kind,kind_deprecated,not_found,video_too_long,idempotency_conflict,run_not_ready,advertiser_ambiguous,insufficient_balance,rate_limit_exceeded,concurrency_limit_exceeded,tracker_limit_exceeded,webhook_limit_exceeded,webhook_rotation_in_progress,collection_limit_exceeded,collection_name_taken,collection_kind_mismatch,media_unavailable,vendor_error,source_unavailable,service_unavailable,internal_errorStable machine-readable code.detailstring
400 · Example
{
"type": "https://www.shortsintel.com/docs/reference/errors/invalid_request",
"title": "Invalid request",
"status": 400,
"code": "invalid_request",
"detail": "`cursor` is not a cursor this API issued. Pass back the `next_cursor` from the previous page."
}401 Unauthorized
missing_authorization, invalid_key, key_revoked or invalid_token.
object
RFC 9457 problem document, served as application/problem+json. Branch on code, never on the prose.
typestringrequiredtitlestringrequiredstatusintegerrequiredcodestringrequiredone ofmissing_authorization,invalid_key,key_revoked,invalid_token,organization_not_selected,organization_access_revoked,connection_revoked,forbidden,invalid_request,unsupported_platform,unsupported_kind,kind_deprecated,not_found,video_too_long,idempotency_conflict,run_not_ready,advertiser_ambiguous,insufficient_balance,rate_limit_exceeded,concurrency_limit_exceeded,tracker_limit_exceeded,webhook_limit_exceeded,webhook_rotation_in_progress,collection_limit_exceeded,collection_name_taken,collection_kind_mismatch,media_unavailable,vendor_error,source_unavailable,service_unavailable,internal_errorStable machine-readable code.detailstring
401 · Example
{
"type": "https://www.shortsintel.com/docs/reference/errors/invalid_key",
"title": "Invalid key",
"status": 401,
"code": "invalid_key",
"detail": "That API key does not exist. Keys look like `sk_live_...` and are created in the console."
}404 Not Found
not_found — including anything belonging to another Customer.
object
RFC 9457 problem document, served as application/problem+json. Branch on code, never on the prose.
typestringrequiredtitlestringrequiredstatusintegerrequiredcodestringrequiredone ofmissing_authorization,invalid_key,key_revoked,invalid_token,organization_not_selected,organization_access_revoked,connection_revoked,forbidden,invalid_request,unsupported_platform,unsupported_kind,kind_deprecated,not_found,video_too_long,idempotency_conflict,run_not_ready,advertiser_ambiguous,insufficient_balance,rate_limit_exceeded,concurrency_limit_exceeded,tracker_limit_exceeded,webhook_limit_exceeded,webhook_rotation_in_progress,collection_limit_exceeded,collection_name_taken,collection_kind_mismatch,media_unavailable,vendor_error,source_unavailable,service_unavailable,internal_errorStable machine-readable code.detailstring
404 · Example
{
"type": "https://www.shortsintel.com/docs/reference/errors/not_found",
"title": "Not found",
"status": 404,
"code": "not_found",
"detail": "No such resource for this Customer."
}Request samples
curl "https://www.shortsintel.com/v1/webhooks/whe_6d2f10ab44/deliveries?limit=25&status=pending" \
-H "Authorization: Bearer sk_live_YOUR_KEY"const response = await fetch(
"https://www.shortsintel.com/v1/webhooks/whe_6d2f10ab44/deliveries?limit=25&status=pending",
{
method: "GET",
headers: {
"Authorization": "Bearer sk_live_YOUR_KEY",
},
},
);
if (!response.ok) {
throw new Error(`ShortsIntel ${response.status}`);
}
const data = await response.json();import requests
response = requests.get(
"https://www.shortsintel.com/v1/webhooks/whe_6d2f10ab44/deliveries?limit=25&status=pending",
headers={
"Authorization": "Bearer sk_live_YOUR_KEY",
},
)
response.raise_for_status()
data = response.json()Related guides
- Pagination: Following
next_cursorthrough a list. - Webhooks: The events we send, how to verify a signature, what happens when your endpoint is down, and how to rotate a secret.