Webhooks
Receive real-time notifications when events happen.
Event catalog
| Event | Description |
|---|---|
| stream.started | A live stream started broadcasting |
| stream.ended | A live stream stopped |
| stream.recording.ready | Recording ready for playback |
| billing.subscription.created | New subscription created |
| billing.subscription.cancelled | Subscription cancelled |
| billing.invoice.paid | Invoice paid successfully |
| billing.invoice.failed | Invoice payment failed |
| billing.usage.threshold | Usage exceeded threshold |
| transcription.completed | Transcription finished |
| asset.ready | Video asset processed |
| asset.errored | Video asset failed |
Signature verification
import crypto from 'crypto';
function verify(payload, signature, secret) {
const expected = crypto.createHmac('sha256', secret).update(payload).digest('hex');
return crypto.timingSafeEqual(Buffer.from(signature), Buffer.from(expected));
}Retry behavior
Retries: immediate, 1min, 5min, 30min, 2h. After 5 fails, sent to dead-letter queue. Return 2xx within 30s.