Events API
Events are webhook payloads received by sources.
Endpoints
| Method | Path | Description |
|---|---|---|
| GET | /api/events | List events |
| GET | /api/events/{id} | Get event (with payload and deliveries) |
| GET | /api/events/{id}/debug | Get event with delivery + routing/circuit analysis |
| GET | /api/events/export | Export events as JSON or CSV |
Info
To re-deliver an event, use the Deliveries API: POST /api/deliveries/bulk-replay-events with eventIds, or replay an individual delivery with POST /api/deliveries/{id}/replay. See the Deliveries API.
Event Object
{
"id": "evt_abc123",
"sourceId": "src_xyz789",
"sourceName": "GitHub",
"eventType": "push",
"status": "delivered",
"headers": {
"Content-Type": "application/json",
"X-GitHub-Event": "push",
"X-GitHub-Delivery": "72d3162e-cc78-11e3-81ab-4c9367dc0958"
},
"payloadHash": "sha256:abc123...",
"signatureValid": true,
"deliveryStats": { "total": 2, "delivered": 2, "failed": 0, "pending": 0 },
"receivedAt": "2024-01-15T10:30:00Z"
}Status Values
| Status | Description |
|---|---|
pending | Awaiting delivery |
delivered | All deliveries succeeded |
partial | Some deliveries failed |
failed | All deliveries failed |
List Events
GET /api/eventsQuery Parameters
| Parameter | Type | Description |
|---|---|---|
| limit | number | Max items to return (default: 50) |
| offset | number | Number of items to skip (default: 0) |
| sourceId | string | Filter by source |
| eventType | string | Filter by event type |
| status | string | delivered, failed, pending, partial |
| fromDate | string | Start date (ISO 8601) |
| toDate | string | End date (ISO 8601) |
| search | string | Search event metadata |
| payloadSearch | string | Full-text search within payloads |
| payloadField / payloadFieldValue | string | Match a specific payload field to a value |
| signatureValid | 0 | 1 | Filter by signature validation result |
| method | string | HTTP method the webhook arrived with |
| ids | string | Comma-separated event IDs (bookmark filtering) |
Example
curl "https://api.hookbase.app/api/events?sourceId=src_xyz&status=failed&limit=20" \
-H "Authorization: Bearer whr_your_api_key"Response
{
"events": [
{
"id": "evt_abc123",
"sourceId": "src_xyz789",
"sourceName": "GitHub",
"eventType": "push",
"status": "delivered",
"signatureValid": true,
"deliveryStats": { "total": 2, "delivered": 2, "failed": 0, "pending": 0 },
"receivedAt": "2024-01-15T10:30:00Z"
}
],
"total": 1,
"limit": 20,
"offset": 0
}Get Event
Returns the event, its stored payload, and its deliveries in one response.
GET /api/events/{id}Example
curl "https://api.hookbase.app/api/events/evt_abc123" \
-H "Authorization: Bearer whr_your_api_key"Response
{
"event": {
"id": "evt_abc123",
"sourceId": "src_xyz789",
"sourceName": "GitHub",
"eventType": "push",
"payloadHash": "sha256:abc123...",
"headers": {
"X-GitHub-Event": "push"
},
"signatureValid": true,
"receivedAt": "2024-01-15T10:30:00Z"
},
"payload": {
"ref": "refs/heads/main",
"repository": { "full_name": "user/repo" }
},
"deliveries": [
{
"id": "dlv_111",
"destinationId": "dst_slack1",
"status": "delivered",
"attemptCount": 1,
"responseStatus": 200,
"latencyMs": 245,
"deliveredAt": "2024-01-15T10:30:01Z"
}
]
}Info
Payloads for events processed in transient mode are not stored and come back as null. Payloads may also be removed once your plan's retention window elapses.
Debug Event
Returns everything in Get Event plus routing analysis for the event's source — which routes matched, filter evaluation, transform IDs, and circuit-breaker state per destination. Useful for diagnosing why an event did or didn't deliver.
GET /api/events/{id}/debugExport Events
Stream matching events as a downloadable file.
GET /api/events/export?format=csvQuery Parameters
| Parameter | Type | Description |
|---|---|---|
| format | string | json (default) or csv |
| sourceId, eventType, status, fromDate, toDate, signatureValid, method | — | Same filters as List Events |
Error Responses
404 Not Found
{
"error": "Event not found"
}