Supported events
1. Prepare the receiver
Before subscribing, deploy an HTTPS endpoint that can:- Read the raw request and parse the callback payload.
- Return a successful response quickly.
- Place longer processing work on an internal queue.
- Safely handle repeated delivery of the same logical event.
- Record sanitized delivery metadata for troubleshooting.
2. Subscribe to an event
Create one subscription for each event your application needs:presentation.generation.failed if failures should also reach the receiver.
The subscription response includes its identifier:
id; it is required to remove that subscription later. Treat the configured secret as a credential and never commit it to source control.
3. Enable delivery during generation
Settrigger_webhook to true on a supported synchronous, asynchronous, or structured-JSON generation request:
trigger_webhook requests delivery for that generation operation. Use both parts.
4. List subscriptions
Audit the current account configuration withGET /webhook/all:
5. Remove a subscription
DELETE /webhook/unsubscribe/all only when every subscription for the authenticated account should be removed.
Reliability checklist
- Use a different callback URL or subscription inventory for development, staging, and production.
- Generate a strong, unique secret for each environment and rotate it when access changes.
- Make event processing idempotent so repeated callbacks do not create duplicate notifications or records.
- Associate callbacks with previously stored task or presentation identifiers when those values are present.
- Use polling as a recovery path when a callback is delayed or your receiver was temporarily unavailable.
- Never place an API key in the webhook URL.
- Remove subscriptions before permanently deleting an environment or callback endpoint.
Polling remains the source-of-truth recovery mechanism for an individual async task. A webhook should trigger application work, while a status request can confirm the task’s current state when needed.
Generate asynchronously
Submit a background job and monitor the same task through its status endpoint.