curl "https://api.tracklysms.com/api/v2/webhooks/66b0f7c84a1d4b2e9c3a1f2e/deliveries?state=dead" \
-H "X-Api-Key: trk_your_api_key"
{
"deliveries": [
{
"id": "66d1a8d95b2e4c3f0d4b2e6f",
"endpointId": "66b0f7c84a1d4b2e9c3a1f2e",
"accountId": 1042,
"eventId": "b2e0f7c8-4a1d-4b2e-9c3a-1f2e3d4c5b6a",
"eventType": "message.delivered",
"attemptCount": 6,
"state": "dead",
"statusCode": 500,
"latencyMs": 143,
"responseBodyPreview": "Internal Server Error",
"lastError": "HTTP 500",
"nextRetryAt": null,
"createdAt": "2026-07-26T14:03:11Z",
"updatedAt": "2026-07-26T18:03:11Z"
}
],
"page": 1,
"perPage": 25,
"total": 1
}
Webhooks (v2)
List Deliveries
Inspect an endpoint’s delivery log — what was sent, the response, and the retry state.
GET
/
v2
/
webhooks
/
{endpoint_id}
/
deliveries
curl "https://api.tracklysms.com/api/v2/webhooks/66b0f7c84a1d4b2e9c3a1f2e/deliveries?state=dead" \
-H "X-Api-Key: trk_your_api_key"
{
"deliveries": [
{
"id": "66d1a8d95b2e4c3f0d4b2e6f",
"endpointId": "66b0f7c84a1d4b2e9c3a1f2e",
"accountId": 1042,
"eventId": "b2e0f7c8-4a1d-4b2e-9c3a-1f2e3d4c5b6a",
"eventType": "message.delivered",
"attemptCount": 6,
"state": "dead",
"statusCode": 500,
"latencyMs": 143,
"responseBodyPreview": "Internal Server Error",
"lastError": "HTTP 500",
"nextRetryAt": null,
"createdAt": "2026-07-26T14:03:11Z",
"updatedAt": "2026-07-26T18:03:11Z"
}
],
"page": 1,
"perPage": 25,
"total": 1
}
Every webhook attempt is logged. Use the delivery log to see what was sent to an endpoint and how it responded, then replay anything your receiver missed.
Path Parameters
string
required
The endpoint’s id.
Query Parameters
integer
default:"1"
Page number.
integer
default:"25"
Page size, max 100.
string
Filter by delivery state:
pending, delivered, failed, or dead.Examples
curl "https://api.tracklysms.com/api/v2/webhooks/66b0f7c84a1d4b2e9c3a1f2e/deliveries?state=dead" \
-H "X-Api-Key: trk_your_api_key"
{
"deliveries": [
{
"id": "66d1a8d95b2e4c3f0d4b2e6f",
"endpointId": "66b0f7c84a1d4b2e9c3a1f2e",
"accountId": 1042,
"eventId": "b2e0f7c8-4a1d-4b2e-9c3a-1f2e3d4c5b6a",
"eventType": "message.delivered",
"attemptCount": 6,
"state": "dead",
"statusCode": 500,
"latencyMs": 143,
"responseBodyPreview": "Internal Server Error",
"lastError": "HTTP 500",
"nextRetryAt": null,
"createdAt": "2026-07-26T14:03:11Z",
"updatedAt": "2026-07-26T18:03:11Z"
}
],
"page": 1,
"perPage": 25,
"total": 1
}
Delivery states
| State | Meaning |
|---|---|
pending | Scheduled for retry. |
delivered | A 2xx was received. |
failed | The attempt failed and is orphaned — needs a manual replay. |
dead | The retry budget is exhausted. |
Error Codes
| HTTP Status | Error Code | Description |
|---|---|---|
| 400 | validation_failed | Invalid state. |
| 404 | not_found | No endpoint with that id on the account. |