curl "https://api.sitespeak.ai/v1/agency/webhooks/{webhook_id}/deliveries" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
const response = await fetch(
'https://api.sitespeak.ai/v1/agency/webhooks/{webhook_id}/deliveries',
{
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer YOUR_API_TOKEN'
}
}
);
const data = await response.json();
console.log(data);
Agency
List Webhook Deliveries
Lists recent delivery attempts for a webhook endpoint
GET
/
v1
/
agency
/
webhooks
/
{webhook_id}
/
deliveries
curl "https://api.sitespeak.ai/v1/agency/webhooks/{webhook_id}/deliveries" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
const response = await fetch(
'https://api.sitespeak.ai/v1/agency/webhooks/{webhook_id}/deliveries',
{
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer YOUR_API_TOKEN'
}
}
);
const data = await response.json();
console.log(data);
Available on agency plans. The API token must belong to the agency owner.
Returns the delivery log for one endpoint, newest first. Deliveries are kept for 30 days.
A delivery with
Path Parameters
| Name | Type | Description |
|---|---|---|
| webhook_id* | String | The ID of the webhook. |
Query Parameters
| Name | Type | Description |
|---|---|---|
| page | Integer | Page number. |
| per_page | Integer | Results per page, max 100. Default 25. |
Headers
| Name | Type | Description |
|---|---|---|
| Accept* | String | application/json |
| Authorization* | String | Bearer |
curl "https://api.sitespeak.ai/v1/agency/webhooks/{webhook_id}/deliveries" \
-H "Accept: application/json" \
-H "Authorization: Bearer YOUR_API_TOKEN"
const response = await fetch(
'https://api.sitespeak.ai/v1/agency/webhooks/{webhook_id}/deliveries',
{
headers: {
'Accept': 'application/json',
'Authorization': 'Bearer YOUR_API_TOKEN'
}
}
);
const data = await response.json();
console.log(data);
Response
Standard Laravel pagination envelope. Each delivery shows the payload that was sent, the last response status, the attempt count, and when it was delivered.- 200 Success
{
"current_page": 1,
"data": [
{
"id": "9194bb86-10ab-443c-829c-5c420c475e2f",
"agency_webhook_id": "4e1d795f-16b5-412a-b324-5f34779829a7",
"event": "lead.captured",
"payload": {
"id": "9194bb86-10ab-443c-829c-5c420c475e2f",
"event": "lead.captured",
"timestamp": "2026-08-18T11:43:08+00:00",
"team_id": "8e7a1b4c-8c7c-4029-aa4e-c3bf3c8b7abc",
"external_reference": "your-billing-id-123",
"chatbot_id": "8cc9fd44-4c7c-4d5d-aebe-68b03e8236fd",
"data": {
"visitor": {
"id": "a176e7eb-c8bb-4be0-bc1a-608f4377df8d",
"email": "customer@example.com",
"first_name": "Jane",
"last_name": "Doe",
"phone": null,
"visitor_id": "wh-visitor-1",
"custom_data": null
},
"chatbot_name": "Support Agent"
}
},
"response_status": 200,
"attempts": 1,
"last_error": null,
"delivered_at": "2026-08-18T11:43:10.000000Z",
"created_at": "2026-08-18T11:43:08.000000Z",
"updated_at": "2026-08-18T11:43:10.000000Z"
}
],
"per_page": 25,
"total": 1
}
delivered_at: null and a last_error is still retrying, unless the error ends with (retries exhausted) or (not sent), which is terminal.Last modified on August 18, 2026