Skip to main content
The webhook subscription family. Subscribe an HTTPS URL to a set of event types, and ByteSpike POSTs signed payloads at you when those events fire. Payloads are signed with HMAC-SHA256 over the body using the secret returned at create-time. The console UI for this family is console.bytespike.ai/webhooks. For org-scope subscriptions (owner / admin events), use the parallel /orgs/:id/webhooks family — see Tier 3 orgs docs when shipped.

Endpoint family

All require a logged-in key (Authorization: Bearer … or x-api-key). All non-mutating endpoints are free; create/update/delete are free too — webhooks don’t burn credits.

Create

Body

Response — create

The only response that includes the raw secret. Save it now — every subsequent list/update response omits it.

List

Returns { items: [...], total }. secret is omitted on every row.

Update

The secret can’t be rotated via PUT — delete and re-create if you need a fresh one.

Delete

Returns 204 No Content. Delivery history for this webhook is kept for 30 days post-delete, then purged.

Deliveries

One row per delivery attempt. Retries land as attempt: 2 / 3 under the same event_type. response_status: 0 means a network/timeout failure (no HTTP response received).

Event catalog

Pass any subset on event_types. Grouped by source:

user.* — your account self-config writes

  • user.webhook.create / user.webhook.update / user.webhook.delete

system.* — gateway side

  • system.balance.notify.dispatched — fired when the low-balance cron pages you
  • system.payment.received — fired when a top-up posts

org.* — only if your account is an org owner/admin

  • org.settings.update
  • org.member.concurrency
  • org.member.allowed_models / org.member.allowed_models.bulk
  • org.api_key.create / org.api_key.revoke
  • org.webhook.create / org.webhook.update / org.webhook.delete

admin.* — only if your account has platform-admin role

  • admin.org.create / admin.org.update / admin.org.delete
  • admin.org.member.add / admin.org.member.role / admin.org.member.remove
  • admin.org.member.allowed_models / admin.org.member.allotment
  • admin.org.allowed_models
  • admin.user.create / admin.user.update / admin.user.delete
  • admin.group.create / admin.group.update / admin.group.delete
  • admin.balance.adjust
Subscribing to an event you don’t have permission for returns 403.

Payload signing

Outgoing POST bodies are signed by the gateway. Verify before trusting:
The signature lands in the X-ByteSpike-Signature header. Reject any payload whose signature doesn’t verify — we treat that as the contract.

Retry & failure model

  • Retry: up to 3 attempts on 5xx / network failures. Backoff: 30s, then 5min.
  • fail_count: cumulative since last successful delivery. Reset on the next 2xx.
  • Auto-disable: when fail_count reaches 50, the gateway flips status to disabled and stops dispatching. The webhook row is preserved so you can inspect deliveries and re-enable via PUT.
  • No bypass: 4xx responses count as a delivery (your endpoint rejected the payload); retries don’t fire on 4xx.

Errors