Returns the log of webhook attempts sent by the workspace, newest first. Every attempt is stored, including retries, so one event can appear several times with a rising attempt. Use it to debug a webhook endpoint that is failing or slow.
Request#
| Query parameter | Type | Required | Description |
|---|---|---|---|
limit |
integer | No | Attempts to return, 1 to 500. Default 100. |
call_id |
string | No | Only attempts for this call. |
event |
string | No | Only attempts for this event, for example call_ended or test. |
Example request#
curl "https://api.tried.com.au/webhook-deliveries?event=call_ended&limit=20" \
-H "Authorization: Bearer $TRIED_API_KEY"const params = new URLSearchParams({ event: "call_ended", limit: "20" });
const res = await fetch(`https://api.tried.com.au/webhook-deliveries?${params}`, {
headers: { Authorization: `Bearer ${process.env.TRIED_API_KEY}` },
});
const deliveries = await res.json();import os, requests
res = requests.get(
"https://api.tried.com.au/webhook-deliveries",
headers={"Authorization": f"Bearer {os.environ['TRIED_API_KEY']}"},
params={"event": "call_ended", "limit": 20},
)
deliveries = res.json()Response#
200 OK
[
{
"delivery_id": "whd_8a1c3e5b7d9f2a4c6e0b1d3f",
"call_id": "call_7b1d3f5a9c2e4b6d8f0a1c3e",
"event": "call_ended",
"url": "https://hooks.example.com.au/tried",
"attempt": 2,
"success": true,
"status_code": 200,
"error": null,
"duration_ms": 184,
"request_body": { "event": "call_ended", "call": { "call_id": "call_7b1d3f5a9c2e4b6d8f0a1c3e" } },
"response_body": "ok",
"created_timestamp": 1760918263500
},
{
"delivery_id": "whd_2f4b6d8a0c1e3f5a7b9d1c3e",
"call_id": "call_7b1d3f5a9c2e4b6d8f0a1c3e",
"event": "call_ended",
"url": "https://hooks.example.com.au/tried",
"attempt": 1,
"success": false,
"status_code": 503,
"error": "HTTP 503",
"duration_ms": 92,
"request_body": { "event": "call_ended", "call": { "call_id": "call_7b1d3f5a9c2e4b6d8f0a1c3e" } },
"response_body": "Service Unavailable",
"created_timestamp": 1760918262300
}
]The request_body above is shortened; the stored body holds the full payload that was sent.
| Field | Type | Description |
|---|---|---|
call_id |
string or null | The call the event belongs to. null for test events. |
attempt |
integer | 1 for the first try. Failed deliveries are retried up to 3 times with exponential backoff. |
success |
boolean | Whether the endpoint answered with a 2xx status. |
status_code |
integer or null | HTTP status from your endpoint. null when no response arrived (timeout, DNS failure, blocked address). |
error |
string or null | HTTP <status> for a non-2xx answer, or the network error. |
duration_ms |
integer | Time from sending the request to the end of the attempt. |
request_body |
object | The JSON payload that was sent. |
response_body |
string or null | Your endpoint's response body, cut to 4,000 characters. |
Errors#
| Status | When |
|---|---|
400 |
A query parameter fails validation, for example limit above 500. |
401 |
Missing or invalid API key. |
403 |
The key's IP allowlist or scopes reject the request. This route needs the admin scope. |
429 |
Rate limit exceeded. See Rate limits. |
See Errors for the body format.