Brume ships outbound webhooks. You register an HTTP endpoint, and Brume posts events to it with an HMAC signature so you can verify the request came from Brume.
The event catalog is intentionally small during soft launch:
| Event | Fires when |
|---|---|
webhook.test | You trigger a test delivery from the dashboard or POST /v1/webhooks/:id/test |
Rate-limiting is a synchronous request/response product — the verdict is already in your caller's hand, so there is no per-check event stream. The webhook surface exists for operational notifications and will grow as the product does. Registering an unknown event name is rejected.
The response includes a secret — the HMAC signing key, returned exactly once. Store it with the webhook.
Every delivery carries three headers:
| Header | Meaning |
|---|---|
X-Brume-Event | The event type, e.g. webhook.test |
X-Brume-Signature | sha256=<hex HMAC-SHA256 of the raw body> |
X-Brume-Delivery-Id | Unique delivery ID (idempotency key) |
Verify by computing HMAC-SHA256 of the raw request body with your secret and comparing to the signature in constant time:
Use X-Brume-Delivery-Id to deduplicate: retries reuse the same delivery ID.
GET /v1/webhooks — list registrationsDELETE /v1/webhooks/:id — remove a registrationGET /v1/webhooks/:id/deliveries — delivery history with statusesPOST /v1/webhooks/:id/test — fire a webhook.test eventWebhook management requires the manage_project scope.