Platform · Webhooks
Webhooks
Webhooks let your backend react to events without polling. Every delivery is signed with HMAC-SHA256 and includes a replayable ID so you can deduplicate at-least-once delivery.
Available events
redaction.completedFired when a /redact or /process call returns 2xx.redaction.failedFired on any 5xx that exhausts internal retries.pattern.createdFired when POST /patterns creates a custom detector.pattern.deletedFired when a pattern is removed.subscription.updatedPlan or seat count changed on a workspace.key.rotatedFired when an API key is rotated or revoked.
Payload format
Every webhook is a POST with a JSON body. The signature is in the Savitar-Signature header.
POST https://your.app/webhook
Verifying signatures
Compute an HMAC-SHA256 of the request body using your endpoint's secret, then compare in constant time.
Retries & replays
We retry non-2xx responses with exponential backoff for 24 hours. After that, deliveries are marked failed and can be manually replayed from the dashboard for up to 30 days.
