API reference

Webhooks API

Signed event delivery to your own endpoints. Register an endpoint, rotate its signing secret, browse the event catalogue, and inspect, test or replay individual deliveries.

Endpoints

Authentication

Every call here needs Authorization: Bearer with a key from the dashboard — Authentication covers keys and scopes.

Objects returned

The models these endpoints send back, with every field. Open one to read it.

WebhookResponse19 fields
  • api_versionstringrequired
  • bot_idstring (uuid) | nullrequired
  • consecutive_failuresintegerrequired
  • created_atstring (date-time)required
  • delivery_countintegerrequired
  • descriptionstring | nullrequired
  • disabled_atstring (date-time) | nullrequired
  • eventsarray of stringrequired
  • failure_countintegerrequired
  • healthstringrequired

    One word for a status dot, derived rather than stored.

    Stored health is health that goes stale the moment a delivery lands and nothing recomputes it.

  • idstring (uuid)required
  • is_activebooleanrequired
  • last_errorstring | nullrequired
  • last_failure_atstring (date-time) | nullrequired
  • last_success_atstring (date-time) | nullrequired
  • org_idstring (uuid)required
  • updated_atstring (date-time)required
  • urlstringrequired
  • secret_hintstring | null
WebhookCreated20 fields
  • api_versionstringrequired
  • bot_idstring (uuid) | nullrequired
  • consecutive_failuresintegerrequired
  • created_atstring (date-time)required
  • delivery_countintegerrequired
  • descriptionstring | nullrequired
  • disabled_atstring (date-time) | nullrequired
  • eventsarray of stringrequired
  • failure_countintegerrequired
  • healthstringrequired

    One word for a status dot, derived rather than stored.

    Stored health is health that goes stale the moment a delivery lands and nothing recomputes it.

  • idstring (uuid)required
  • is_activebooleanrequired
  • last_errorstring | nullrequired
  • last_failure_atstring (date-time) | nullrequired
  • last_success_atstring (date-time) | nullrequired
  • org_idstring (uuid)required
  • secretstringrequired

    The signing secret, shown exactly once. Store it now - it cannot be retrieved again, only rotated.

  • updated_atstring (date-time)required
  • urlstringrequired
  • secret_hintstring | null
PaginatedResponse_WebhookDeliveryResponse_6 fields
  • itemsarray of WebhookDeliveryResponserequired
    12 fields · WebhookDeliveryResponse
    • attemptsintegerrequired
    • created_atstring (date-time)required
    • delivered_atstring (date-time) | nullrequired
    • duration_msinteger | nullrequired
    • eventstringrequired
    • idstring (uuid)required
    • response_bodystring | nullrequired
    • response_statusinteger | nullrequired
    • statusstringrequired
    • webhook_idstring (uuid)required
    • payloadobject | null
    • replay_of_idstring (uuid) | null
  • pageintegerrequired
  • page_sizeintegerrequired
  • totalintegerrequired
  • has_moreboolean

    Default: false

  • next_cursorstring | null
WebhookDeliveryResponse12 fields
  • attemptsintegerrequired
  • created_atstring (date-time)required
  • delivered_atstring (date-time) | nullrequired
  • duration_msinteger | nullrequired
  • eventstringrequired
  • idstring (uuid)required
  • response_bodystring | nullrequired
  • response_statusinteger | nullrequired
  • statusstringrequired
  • webhook_idstring (uuid)required
  • payloadobject | null
  • replay_of_idstring (uuid) | null
EventDescriptor4 fields
  • deliverystringrequired

    One of: immediate, batched

  • descriptionstringrequired
  • exampleobjectrequired
  • namestringrequired
Message2 fields
  • messagestringrequired
  • okboolean

    Default: true

RotateSecretResponse2 fields
  • rotated_atstring (date-time)required
  • secretstringrequired
WebhookTestResponse5 fields
  • delivery_idstring (uuid)required
  • okbooleanrequired
  • duration_msinteger

    Default: 0

  • errorstring | null
  • status_codeinteger | null

Something here wrong or missing? Tell us — the documentation and the API are maintained by the same person, so a correction is a fix rather than a ticket.

Building on it? Start on the free plan — no card — and call the same API the dashboard uses.

Start free