Hookbase
Docs
GuideAPI ReferenceIntegrationsUse CasesCLIMCP
Getting StartedSDK ReferencePortal ComponentsAPI Reference
Get Started

API Reference

OverviewAPI ExplorerAuthenticationAPI Keys

Core Endpoints

SourcesDestinationsRoutesEventsDeliveriesDelivery ClustersTransformsFiltersSchemasWebhook IngestAnalytics

Development Tools

TunnelsCron JobsCron GroupsScheduled Sends

Administration

Custom DomainsAudit LogsNotification ChannelsAlert RulesRedaction PoliciesObservability Export
DocsReceiveAPIEvents

Events API

Events are webhook payloads received by sources.

Endpoints

MethodPathDescription
GET/api/eventsList events
GET/api/events/{id}Get event (with payload and deliveries)
GET/api/events/{id}/debugGet event with delivery + routing/circuit analysis
GET/api/events/exportExport 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

StatusDescription
pendingAwaiting delivery
deliveredAll deliveries succeeded
partialSome deliveries failed
failedAll deliveries failed

List Events

GET /api/events

Query Parameters

ParameterTypeDescription
limitnumberMax items to return (default: 50)
offsetnumberNumber of items to skip (default: 0)
sourceIdstringFilter by source
eventTypestringFilter by event type
statusstringdelivered, failed, pending, partial
fromDatestringStart date (ISO 8601)
toDatestringEnd date (ISO 8601)
searchstringSearch event metadata
payloadSearchstringFull-text search within payloads
payloadField / payloadFieldValuestringMatch a specific payload field to a value
signatureValid0 | 1Filter by signature validation result
methodstringHTTP method the webhook arrived with
idsstringComma-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}/debug

Export Events

Stream matching events as a downloadable file.

GET /api/events/export?format=csv

Query Parameters

ParameterTypeDescription
formatstringjson (default) or csv
sourceId, eventType, status, fromDate, toDate, signatureValid, method—Same filters as List Events

Error Responses

404 Not Found

{
  "error": "Event not found"
}
PreviousRoutesNextDeliveries

On this page

EndpointsEvent ObjectStatus ValuesList EventsQuery ParametersExampleResponseGet EventExampleResponseDebug EventExport EventsQuery ParametersError Responses404 Not Found