GET /v1/watches/{id}/deliveries
| Call | GET /v1/watches/{id}/deliveries |
| Price | free |
| Scope | watches:manage |
| Operation id | listWatchDeliveries |
What it does
Section titled “What it does”Delivery attempts for one watch, newest first, with status, attempts and the last response code. Use it to debug your endpoint or to replay missed events by id. Free. Scope: watches:manage.
Example request
Section titled “Example request”Copy it as curl. Set VERDICT_API_KEY first; uuidgen makes a fresh Idempotency-Key.
curl -X GET 'https://api.askverdict.io/v1/watches/wch_01JC3Z4Y8R9K2M5N7P1Q3S5T7V/deliveries' \ -H "Authorization: Bearer $VERDICT_API_KEY"Example response
Section titled “Example response”200: A page of deliveries.
{ "data": [ { "id": "dlv_01JC3Z4Y8R9K2M5N7P1Q3S5T7V", "watch_id": "wch_01JC3Z4Y8R9K2M5N7P1Q3S5T7V", "event_id": "evt_01JC3Z4Y8R9K2M5N7P1Q3S5T7V", "decision_id": "dec_01JC3Z4Y8R9K2M5N7P1Q3S5T7V", "status": "delivered", "attempts": 1, "last_attempt_at": "2026-11-07T15:00:04Z", "last_response_status": 200, "next_attempt_at": null, "delivered_at": "2026-11-07T15:00:04Z", "created_at": "2026-11-07T15:00:03Z" } ], "next_cursor": null, "has_more": false}Parameters
Section titled “Parameters”| Name | In | Type | Required | Description |
|---|---|---|---|---|
id |
path | string | yes | The watch id. |
cursor |
query | string | no | Opaque cursor from the next_cursor of the previous page. Omit it for the first page. |
limit |
query | integer | no | Page size, 1 to 200. Default 50. |
status |
query | enum: “pending”, “retrying”, “delivered”, “failed” | no | Only deliveries with this status. |
x-verdict-version |
header | string | no | API version to use, a date. Defaults to the version current when the key was created. The current version is 2026-11-01. |
Response fields (200)
Section titled “Response fields (200)”| Field | Type | Required | Description |
|---|---|---|---|
data |
array of Delivery | yes | Deliveries, newest first. |
data[].id |
string | yes | The delivery id; also the id of the delivered payload. |
data[].watch_id |
string | yes | The watch. |
data[].event_id |
string | yes | The delivered event. |
data[].decision_id |
string or null | yes | The score_signal decision behind it. |
data[].status |
enum: “pending”, “retrying”, “delivered”, “failed” | yes | Delivery status. |
data[].attempts |
integer | yes | Attempts so far. |
data[].last_attempt_at |
string or null (date-time) | yes | Time of the last attempt. |
data[].last_response_status |
integer or null | yes | HTTP status of the last attempt, if a response arrived. |
data[].next_attempt_at |
string or null (date-time) | yes | Time of the next retry, while retrying. |
data[].delivered_at |
string or null (date-time) | yes | When a 2xx was received. |
data[].created_at |
string (date-time) | yes | When the delivery was queued. |
next_cursor |
string or null | yes | Pass as cursor to fetch the next page. null when this is the last page. |
has_more |
boolean | yes | Whether another page follows. |
Errors
Section titled “Errors”Errors are RFC 9457 problem details and are never billed. Branch on type. See Errors.
| Status | Meaning |
|---|---|
400 |
Invalid request: malformed JSON, an unknown field, a failed constraint or a size limit (invalid_request). |
401 |
Missing, malformed, revoked or expired API key, or a bad webhook signature (unauthorized). |
403 |
The key lacks the scope this operation needs (forbidden_scope). |
404 |
The resource does not exist in this organization (not_found). |
429 |
Rate limited (rate_limited). Wait Retry-After seconds. |
500 |
Unexpected server error (internal). Not billed; retry with the same Idempotency-Key. |
Try it
Section titled “Try it”Open the interactive reference to send this request from the browser. The full document is at /openapi.json.