Skip to main content
Lumenfall can send webhook notifications to your server when asynchronous operations like video generation complete or fail. Webhooks follow the Standard Webhooks specification.

Setup

Provide a webhook_url when creating an asynchronous request. Lumenfall will POST to that URL when the operation completes or fails.
A signing secret is automatically provisioned for your organization the first time you use a webhook URL. Retrieve it with the Get webhook secret endpoint.

Webhook format

Each webhook delivery is a POST request with a JSON body and Standard Webhooks signature headers:

Event types

Example payload

Retries

Failed deliveries are retried up to 3 times with increasing delays (5s, 15s, 45s). Each attempt has a 30-second timeout. A delivery is considered successful when your server responds with a 2xx status code.

URL restrictions

Webhook URLs are validated when you submit your request. If the URL does not meet the requirements below, the request is rejected with a 400 error. URLs are also re-validated before each delivery attempt. These restrictions prevent Server-Side Request Forgery (SSRF). If you believe a valid URL is being incorrectly rejected, contact support.

Verifying signatures

Verify the webhook-signature header to confirm deliveries are authentic and have not been tampered with. The signed content is ${webhook-id}.${webhook-timestamp}.${body}, signed with the base64-decoded portion of your whsec_-prefixed secret. Retrieve your secret with the Get webhook secret endpoint. Store it securely - treat it like an API key.
Always verify signatures before processing webhook payloads. Reject any delivery where the timestamp is more than 5 minutes old to prevent replay attacks.