Webhook Delivery Logs
GET/api/webhooks/{id}/logs
The delivery history of one webhook, newest first: one row per attempt, with the HTTP status code, the attempt number, a snippet of the response body, the error reason when there was one, how long the attempt took and when it ran. Blocked deliveries are logged too, with the SSRF reason in error_message.
A row appears here when an attempt is actually made, which is when the RISE cron job drains the delivery queue - not at the moment the CRM produced the event. An empty log right after a change in the CRM usually means the cron job has not run yet.
Only the most recent 500 attempts of a webhook are kept; older rows are pruned automatically.
Headers
| Field | Type | Description |
|---|---|---|
| authtoken | String | Authentication token, generated from admin area |
Parameters
| Field | Type | Description |
|---|---|---|
| id | Number | Webhook unique ID |
| status | String | optional Optional Only return attempts with this outcome |
| event | String | optional Optional Only return attempts of this event name |
| limit | Number | optional Optional Page size, 1 to 200
|
| offset | Number | optional Optional Rows to skip
|
curl -X GET "https://yoursite.com/api/webhooks/123/logs" \
-H "authtoken: YOUR_API_TOKEN" Success-Response:
HTTP/1.1 200 OK
{
"webhook_id": 3,
"count": 2,
"total": 2,
"limit": 50,
"offset": 0,
"logs": [
{
"id": 982,
"webhook_id": 3,
"event": "invoices.created",
"url": "https://hooks.example.com/rise",
"delivery_id": "dlv_9f2c7a1b4d5e6f708192a3b4",
"payload": "{\"event\":\"invoices.created\",\"resource\":\"invoices\",\"action\":\"created\",\"delivery_id\":\"dlv_9f2c7a1b4d5e6f708192a3b4\",\"timestamp\":1784000000,\"data\":{\"id\":42}}",
"status": "success",
"response_code": 200,
"response_body": "{\"ok\":true}",
"error_message": null,
"attempt_number": 1,
"duration_ms": 142,
"triggered_at": "2026-07-22 14:32:10"
},
{
"id": 981,
"webhook_id": 3,
"event": "tickets.updated",
"url": "https://hooks.example.com/rise",
"delivery_id": "dlv_1a2b3c4d5e6f708192a3b4c5",
"status": "failed",
"response_code": 500,
"response_body": "Internal Server Error",
"error_message": "HTTP 500: Internal Server Error",
"attempt_number": 2,
"duration_ms": 3011,
"triggered_at": "2026-07-22 14:21:40"
}
]
} Error-Response:
HTTP/1.1 404 Not Found
{ "status": false, "messages": { "error": "No data were found" } }