Receive notifications when asynchronous operations complete
Lumenfall can send webhook notifications to your server when asynchronous operations like video generation complete or fail. Webhooks follow the Standard Webhooks specification.
Provide a webhook_url when creating an asynchronous request. Lumenfall will POST to that URL when the operation completes or fails.
curl https://api.lumenfall.ai/openai/v1/videos \ -H "Authorization: Bearer $LUMENFALL_API_KEY" \ -H "Content-Type: application/json" \ -d '{ "model": "veo-3.1-fast", "prompt": "A capybara swimming in a pool", "webhook_url": "https://yourapp.com/hooks/lumenfall" }'
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.
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.
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.
Rule
Details
HTTPS required
Only https:// URLs are accepted. Plain http:// is rejected.
No IP addresses
Bare IPv4 (https://10.0.0.1/...) and IPv6 (https://[::1]/...) addresses are rejected. Use a domain name.
Port restrictions
Only port 443 (default HTTPS) and 8443 are allowed.
Blocked hostnames
localhost, cloud metadata endpoints (metadata.google.internal, metadata.goog), and similar internal hostnames are rejected.
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.