Query delivery logs
const url = 'https://api.hookbridge.io/v1/logs?endpoint_id=ep_550e8400e29b41d4a716446655440000&status=failed_permanent&start_time=2025-12-01T00%3A00%3A00Z&end_time=2025-12-06T23%3A59%3A59Z&limit=100&cursor=eyJpZCI6Im1zZ18xMjMiLCJ0cyI6MTczMzQ1Njc4OX0%3D';const options = {method: 'GET', headers: {Authorization: 'Bearer <token>'}};
try { const response = await fetch(url, options); const data = await response.json(); console.log(data);} catch (error) { console.error(error);}curl --request GET \ --url 'https://api.hookbridge.io/v1/logs?endpoint_id=ep_550e8400e29b41d4a716446655440000&status=failed_permanent&start_time=2025-12-01T00%3A00%3A00Z&end_time=2025-12-06T23%3A59%3A59Z&limit=100&cursor=eyJpZCI6Im1zZ18xMjMiLCJ0cyI6MTczMzQ1Njc4OX0%3D' \ --header 'Authorization: Bearer <token>'Retrieve a paginated list of webhook messages with optional filters. Useful for debugging, monitoring, and auditing webhook deliveries.
Authorizations
Section titled “Authorizations”Parameters
Section titled “Parameters”Query Parameters
Section titled “Query Parameters”Filter by specific endpoint
Example
ep_550e8400e29b41d4a716446655440000Filter by message status
Example
failed_permanentFilter messages created after this timestamp (ISO 8601)
Example
2025-12-01T00:00:00ZFilter messages created before this timestamp (ISO 8601)
Example
2025-12-06T23:59:59ZMaximum number of results to return
Example
100Pagination cursor from previous response
Example
eyJpZCI6Im1zZ18xMjMiLCJ0cyI6MTczMzQ1Njc4OX0=Responses
Section titled “Responses”Logs retrieved successfully
object
object
When the first delivery attempt was made
Time spent processing the delivery (signing, headers, etc.)
Total time from message creation to successful delivery
Time spent waiting in the queue before first attempt
When the message was soft-deleted. Only present on deleted rows; omitted for live messages.
object
Unique identifier for this request (useful for support)
Cursor for the next page of results
Whether more results are available
Example
{ "data": [ { "message_id": "01935abc-def0-7123-4567-890abcdef012", "endpoint": "https://customer.app/webhooks", "status": "succeeded", "attempt_count": 1, "created_at": "2025-12-06T12:00:00Z", "delivered_at": "2025-12-06T12:00:05Z", "response_status": 200, "response_latency_ms": 120 }, { "message_id": "01935abc-def0-7123-4567-890abcdef013", "endpoint": "https://customer.app/webhooks", "status": "pending_retry", "attempt_count": 3, "created_at": "2025-12-06T11:00:00Z", "next_attempt_at": "2025-12-06T17:00:00Z", "last_error": "connection timeout" } ], "meta": { "next_cursor": "eyJpZCI6Im1zZ18xMjMiLCJ0cyI6MTczMzQ1Njc4OX0=", "has_more": true, "request_id": "req_xyz123" }}Invalid request
object
object
Machine-readable error code
Human-readable error message
object
Unique identifier for this request (useful for support)
Examples
Endpoint not found
{ "error": { "code": "ENDPOINT_NOT_FOUND", "message": "endpoint not found" }, "meta": { "request_id": "req_xyz123" }}Invalid endpoint ID format
{ "error": { "code": "INVALID_REQUEST", "message": "endpoint_id must be in format ep_xxx" }, "meta": { "request_id": "req_xyz123" }}Invalid payload
{ "error": { "code": "INVALID_REQUEST", "message": "payload must be valid JSON" }, "meta": { "request_id": "req_xyz123" }}Invalid headers
{ "error": { "code": "INVALID_HEADERS", "message": "header 'Host' is forbidden and cannot be overridden" }, "meta": { "request_id": "req_xyz123" }}Unauthorized - Invalid or missing API key
object
object
Machine-readable error code
Human-readable error message
object
Unique identifier for this request (useful for support)
Example
{ "error": { "code": "UNAUTHORIZED", "message": "Invalid or missing API key" }, "meta": { "request_id": "req_xyz123" }}Enter your credentials to populate code examples throughout the docs.