Skip to content

Build real-time integrations with webhooks

Receive an HTTPS request as soon as a supported resource or relation changes in bsport. Most Public API webhook events send the same resource shape exposed by the V2 REST API; relation and delete events use the event-specific schema shown in the catalogue.

Payload version

New registrations are always created through the V2 route and deliver V2 payloads with canonical event names such as class.updated. Existing registrations keep delivering V1 payloads and historical event names. See Webhook event payloads.

Back Office webhooks are being retired

Existing Back Office webhooks are configured in Settings > Webhook. They use a separate legacy registration system and legacy payloads. All new webhook integrations must be created and managed through the Public API. Read Migrating from Back Office webhooks if an existing integration still depends on the legacy system.

One contract from event to API

Every Public API webhook delivery uses the same envelope:

{
  "event_type": "class.updated",
  "date": 1787394600,
  "data": {
    "id": 186280,
    "company_id": 2,
    "name": "Morning yoga"
  }
}
  • event_type identifies exactly what changed.
  • date is the Unix timestamp of the captured database change.
  • data contains the event-specific payload. The event catalogue expands its complete schema.

Integration path

1

Create a registration

Subscribe a company to one event using the Public API registration endpoint.

2

Verify every request

Validate the HMAC signature against the raw request body before processing data.

3

Process idempotently

Store the delivery identifier and return a 2xx response only after accepting the event.

Available resources

Continue

New integrations use V2 payloads. Existing V1 registrations retain their historical contract; see existing V1 registrations and the full V1 event reference.