Skip to main content

Studio sends HTTP POST requests to your endpoint when stream or asset events occur. Your server responds with 200 to acknowledge. Any other response is treated as a failure and Studio retries.

Available events

Step 1 — Create a webhook

Step 2 — Handle incoming events

Set up an HTTP endpoint that accepts POST requests. Express.js example:

Step 3 — Verify webhook signatures

Studio signs every request with HMAC-SHA256. Verifying the signature rejects spoofed or tampered requests. The Livepeer-Signature header format:
Verification logic:

Testing locally

Use ngrok to expose your local server during development:
Register the ngrok URL as your webhook endpoint in Studio, or via API with the URL from ngrok. Studio’s webhook dashboard at https://livepeer.studio/dashboard/developers/webhooks shows delivery history and lets you resend failed events.

Webhook payload structure

The payload object shape varies by event type. Refer to the Studio API Reference for per-event schemas.

Access Control

Use playback.accessControl webhooks to gate content dynamically.

Create a Livestream

Create streams and attach webhook event subscriptions.
Last modified on May 18, 2026