Endpoint
Authentication
Bearer token required.Request Body
The URL to send webhook payloads to. Must be a valid, reachable URL.
List of events to subscribe to. At least one event is required.
Scope the webhook to a specific room. If omitted, the webhook fires for events in all rooms.
Available Events
All payloads are wrapped in a base envelope:{ id, event, timestamp, ...payload }.
| Event | Description | Payload |
|---|---|---|
participant.joined | A user came online in a room | { room: CollabKitRoom, user: CollabKitUser } |
participant.left | A user went offline | { room: CollabKitRoom, user: CollabKitUser } |
session.started | A new session started (first user joined) | { room: CollabKitRoom } |
session.closed | A session ended (last user left) | { room: CollabKitRoom, users: CollabKitUser[] } |
user.created | A new user was added to a room | { room: { id }, user: CollabKitUser } |
user.updated | A user’s fields changed | { room: { id }, user: CollabKitUser } |
user.deleted | A user was removed | { room: { id }, user: CollabKitUser } |
Response
The created webhook, including the signing secret (only returned at creation time). See
WebhookRegistration.Example
Response (201)
Verifying Webhook Signatures
Each webhook delivery includes an HMAC-SHA256 signature in the headers. Verify it using thesecret: