List an endpoint's delivery log (every attempt's status, response and next retry), newest first.
Request
curl "https://api.appgoat.ai/v1/webhooks/123/deliveries" \
-H "x-api-key: $APPGOAT_API_KEY"const res = await fetch("https://api.appgoat.ai/v1/webhooks/123/deliveries", {
headers: {
"x-api-key": process.env.APPGOAT_API_KEY,
},
});
const { data, meta } = await res.json();import os, requests
res = requests.get(
"https://api.appgoat.ai/v1/webhooks/123/deliveries",
headers={"x-api-key": os.environ["APPGOAT_API_KEY"]}
)
body = res.json()Path parameters
idintegerrequiredQuery parameters
status"pending" | "succeeded" | "failed"limitintegerDefault 50
cursorstringmeta.next_cursor from the previous page.Response
200 with data: WebhookDelivery[]. See the envelope for meta.
idstringendpoint_idintegerevent_idstring | nullnull for test sends.
event_typestringstatus"pending" | "succeeded" | "failed"attemptsintegernext_attempt_atstring | nullresponse_statusinteger | nullresponse_bodystring | nullFirst 1000 characters.
errorstring | nullduration_msinteger | nullcreated_atstringdelivered_atstring | nullExample
{
"data": [
{
"id": "string",
"endpoint_id": 1,
"event_id": "string",
"event_type": "string",
"status": "pending",
"attempts": 1,
"next_attempt_at": "2026-10-22T10:00:00Z",
"response_status": 1,
"response_body": "string",
"error": "string",
"duration_ms": 1,
"created_at": "2026-10-22T10:00:00Z",
"delivered_at": "2026-10-22T10:00:00Z"
}
],
"meta": {
"credits_used": 0,
"credits_remaining": 9981,
"request_id": "req_123"
}
}Status codes
200
Deliveries.
Missing or invalid API key.
404
not_foundNot found.
429
rate_limitedToo many requests per second for your plan.