List webhook deliveries
curl --request GET \
--url https://api.truthlocks.com/v1/webhooks/endpoints/{id}/deliveries \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.truthlocks.com/v1/webhooks/endpoints/{id}/deliveries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.truthlocks.com/v1/webhooks/endpoints/{id}/deliveries"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.truthlocks.com/v1/webhooks/endpoints/{id}/deliveries"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"items": [
{
"id": "<string>",
"event_type": "<string>",
"status_code": 123,
"delivered_at": "<string>",
"success": true
}
]
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Webhooks
List deliveries
Returns delivery history for a webhook endpoint.
GET
/
v1
/
webhooks
/
endpoints
/
{id}
/
deliveries
List webhook deliveries
curl --request GET \
--url https://api.truthlocks.com/v1/webhooks/endpoints/{id}/deliveries \
--header 'X-API-Key: <api-key>'const options = {method: 'GET', headers: {'X-API-Key': '<api-key>'}};
fetch('https://api.truthlocks.com/v1/webhooks/endpoints/{id}/deliveries', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.truthlocks.com/v1/webhooks/endpoints/{id}/deliveries"
headers = {"X-API-Key": "<api-key>"}
response = requests.get(url, headers=headers)
print(response.text)package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.truthlocks.com/v1/webhooks/endpoints/{id}/deliveries"
req, _ := http.NewRequest("GET", url, nil)
req.Header.Add("X-API-Key", "<api-key>")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}{
"items": [
{
"id": "<string>",
"event_type": "<string>",
"status_code": 123,
"delivered_at": "<string>",
"success": true
}
]
}{
"code": "AUTH_REQUIRED",
"message": "Authentication required",
"http_status": 401
}Returns the most recent delivery attempts for a webhook endpoint (up to 50). Use this to monitor delivery health, debug failures, and verify that events are reaching your server.
Delivery statuses
| Status | Description |
|---|---|
pending | Delivery is queued and has not been attempted yet |
delivered | Your endpoint returned a 2xx status code |
failed | Delivery failed but may be retried |
dead | All retry attempts exhausted — delivery permanently failed |
Response fields
| Field | Type | Description |
|---|---|---|
id | uuid | Unique identifier for the delivery attempt |
endpoint_id | uuid | The webhook endpoint this delivery belongs to |
event_id | string | Unique event identifier — use this to deduplicate retried events |
event_type | string | Event type that triggered the delivery (e.g., attestation.created) |
payload_hash | string | SHA-256 hash of the delivered payload |
status | string | Current delivery status: pending, delivered, failed, or dead |
attempt_count | integer | Total number of delivery attempts so far |
next_attempt_at | string | ISO 8601 timestamp of the next retry, or null if no retry is scheduled |
last_error | string | Error message from the most recent failed attempt, or null if successful |
http_status | integer | HTTP status code returned by your endpoint, if available |
created_at | string | ISO 8601 timestamp when the delivery was first queued |
updated_at | string | ISO 8601 timestamp of the most recent status change |
Responses
Results are limited to the 50 most recent deliveries, sorted by creation time (newest first). Pagination is not currently supported.

