List Delivery Logs
curl --request GET \
--url https://api.example.com/v1/webhooks/{id}/logsimport requests
url = "https://api.example.com/v1/webhooks/{id}/logs"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/webhooks/{id}/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/webhooks/{id}/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/webhooks/{id}/logs"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v1/webhooks/{id}/logs")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/webhooks/{id}/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"logs": [
{
"delivery_id": "<string>",
"event": "<string>",
"status": "<string>",
"response_status_code": 123,
"response_body": "<string>",
"duration_ms": 123,
"attempt": 123,
"error": "<string>",
"delivered_at": "<string>"
}
]
},
"meta": {
"page": 123,
"per_page": 123,
"total": 123
}
}Webhooks
List Delivery Logs
Inspect recent delivery attempts for a webhook, including status codes and response bodies
GET
/
v1
/
webhooks
/
{id}
/
logs
List Delivery Logs
curl --request GET \
--url https://api.example.com/v1/webhooks/{id}/logsimport requests
url = "https://api.example.com/v1/webhooks/{id}/logs"
response = requests.get(url)
print(response.text)const options = {method: 'GET'};
fetch('https://api.example.com/v1/webhooks/{id}/logs', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.example.com/v1/webhooks/{id}/logs",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "GET",
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}package main
import (
"fmt"
"net/http"
"io"
)
func main() {
url := "https://api.example.com/v1/webhooks/{id}/logs"
req, _ := http.NewRequest("GET", url, nil)
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.get("https://api.example.com/v1/webhooks/{id}/logs")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.example.com/v1/webhooks/{id}/logs")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Get.new(url)
response = http.request(request)
puts response.read_body{
"data": {
"logs": [
{
"delivery_id": "<string>",
"event": "<string>",
"status": "<string>",
"response_status_code": 123,
"response_body": "<string>",
"duration_ms": 123,
"attempt": 123,
"error": "<string>",
"delivered_at": "<string>"
}
]
},
"meta": {
"page": 123,
"per_page": 123,
"total": 123
}
}Request
Path Parameters
string
required
The webhook’s unique ID (UUID)
Query Parameters
integer
default:"1"
Page number for pagination
integer
default:"50"
Number of logs per page (max: 100)
string
Filter by delivery status:
success, failed, or pendingHeaders
Authorization: Bearer wbk_your_api_key_here
Requires an API key with the
webhooks:read permission. Logs are retained for 30 days.Response
object
Show properties
Show properties
array
Array of delivery log entries, newest first.
Show Log object
Show Log object
string
Unique delivery UUID (matches the
X-LeadLex-Delivery-ID header)string
Event type that triggered this delivery
string
success, failed, or pendinginteger
HTTP status code returned by your endpoint (null if request timed out)
string
First 2 KB of your endpoint’s response body
integer
How long the delivery attempt took, in milliseconds
integer
Retry attempt number (1 = initial delivery)
string
Error reason if delivery failed (e.g.,
timeout, connection_refused, dns_failure, http_error)string
ISO 8601 timestamp of the delivery attempt
object
curl "https://data.leadlex.com/functions/v1/api-gateway/v1/webhooks/7f3c4d2a-1b8e-4a9c-9d6f-2e5b8c7a1f3d/logs?status=failed&per_page=20" \
-H "Authorization: Bearer wbk_your_api_key_here"
import requests
API_KEY = "wbk_your_api_key_here"
BASE_URL = "https://data.leadlex.com/functions/v1/api-gateway"
WEBHOOK_ID = "7f3c4d2a-1b8e-4a9c-9d6f-2e5b8c7a1f3d"
response = requests.get(
f"{BASE_URL}/v1/webhooks/{WEBHOOK_ID}/logs",
headers={"Authorization": f"Bearer {API_KEY}"},
params={"status": "failed", "per_page": 20},
)
logs = response.json()["data"]["logs"]
const WEBHOOK_ID = '7f3c4d2a-1b8e-4a9c-9d6f-2e5b8c7a1f3d';
const response = await fetch(
`https://data.leadlex.com/functions/v1/api-gateway/v1/webhooks/${WEBHOOK_ID}/logs?status=failed&per_page=20`,
{
headers: { 'Authorization': 'Bearer wbk_your_api_key_here' }
}
);
const { data } = await response.json();
console.log(data.logs);
Example Response
{
"data": {
"logs": [
{
"delivery_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"event": "contact.created",
"status": "success",
"response_status_code": 200,
"response_body": "OK",
"duration_ms": 234,
"attempt": 1,
"error": null,
"delivered_at": "2026-04-17T14:23:05Z"
},
{
"delivery_id": "b2c3d4e5-f6a7-8901-bcde-f12345678901",
"event": "deal.updated",
"status": "failed",
"response_status_code": 500,
"response_body": "Internal Server Error",
"duration_ms": 1820,
"attempt": 3,
"error": "http_error",
"delivered_at": "2026-04-17T14:20:11Z"
}
]
},
"meta": {
"page": 1,
"per_page": 20,
"total": 142
}
}
Errors
| Status | Code | Description |
|---|---|---|
| 401 | invalid_key | Invalid or expired API key |
| 403 | insufficient_permissions | Missing webhooks:read permission |
| 404 | webhook_not_found | No webhook with this ID in your workspace |
| 429 | rate_limited | Rate limit exceeded |