Webhooks
Get notified when things happen in your Bold channel
Early access
Webhooks are in early access. The signing mechanism below is stable; the event catalog is still being finalized. If you want webhooks for a specific workflow, contact us and we'll set you up.
Webhooks let your systems react to events in Bold, most importantly knowing when a video has finished processing so you can publish it, notify members, or kick off your own pipeline.
Verifying payloads
Every webhook request is signed so you can verify it genuinely came from Bold.
- Generate your webhook signing secret under Settings → Developer
- Each delivery includes a signature header computed as an HMAC SHA-256 of the raw request body with your secret
- Recompute the HMAC on your side and compare (constant-time comparison, please)
import { createHmac, timingSafeEqual } from 'node:crypto';
function verify(rawBody: string, signatureHeader: string, secret: string) {
const expected = createHmac('sha256', secret).update(rawBody).digest('hex');
return timingSafeEqual(Buffer.from(expected), Buffer.from(signatureHeader));
}Reject anything that doesn't verify.
Delivery behavior
- Deliveries are
POSTrequests with a JSON body - Respond with a
2xxquickly (do heavy work async). Non-2xxresponses are retried - Handle duplicates idempotently: use the event ID to deduplicate
Typical events
The catalog is being finalized, but the workhorse is video lifecycle: video processed / ready, fired when transcription, chapters, and AI metadata are complete. This is the moment to flip your own publish switch or notify members of new content.