Skip to main content
Webhooks let you receive real-time HTTP notifications when events occur in your IllumiChat workspace. Instead of polling the API, configure a webhook endpoint and IllumiChat will send a POST request to your URL each time a subscribed event fires.

List Webhooks

Returns all webhooks configured for the workspace.
Response 200 OK

Create Webhook

Registers a new webhook endpoint. Requires owner or admin role.
Response 201 Created
The secret field is only returned in the create response. Store it securely — you will need it to verify webhook signatures. It cannot be retrieved later.

Get Webhook

Retrieves a webhook by ID.
Response 200 OK with the webhook object (excluding secret).

Update Webhook

Updates a webhook’s configuration. Requires owner or admin role.
Response 200 OK with the updated webhook object.

Delete Webhook

Permanently removes a webhook and all its delivery history. Requires owner or admin role.
Response 204 No Content

List Deliveries

Returns recent delivery attempts for a webhook. Uses cursor-based pagination.
Response 200 OK

Retry Delivery

Manually retries a failed webhook delivery.
Response 202 Accepted

Event Types

Subscribe to any combination of the following event types.
Use ["*"] as the events array to subscribe to all current and future event types.

Payload Format

Every webhook delivery sends a JSON payload with a consistent structure.

Signature Verification

Every webhook request includes an X-IllumiChat-Signature header containing an HMAC-SHA256 signature of the request body. Always verify this signature to ensure the payload was sent by IllumiChat. The signature is computed as:

Verification Examples

Always use a constant-time comparison function (such as crypto.timingSafeEqual or hmac.compare_digest) when verifying signatures. Standard string comparison is vulnerable to timing attacks.

Retry Policy

If your endpoint does not return a 2xx status code within 30 seconds, IllumiChat retries the delivery with exponential backoff. After 3 failed attempts, the delivery is marked as failed. You can manually retry failed deliveries at any time using the Retry Delivery endpoint.
Return 200 quickly. Acknowledge the webhook immediately and process the event asynchronously.Deduplicate by event ID. The same event may be delivered more than once during retries. Use the id field to detect duplicates.Verify the signature. Always validate the X-IllumiChat-Signature header before processing.Handle unknown events gracefully. New event types may be added in the future. Return 200 for events you do not recognize.
If a webhook consistently fails (more than 50 consecutive failures over 7 days), IllumiChat automatically disables the webhook and notifies workspace admins.