Webhooks
Receive render.completed and render.failed callbacks when jobs finish.
Pass webhookUrl (or webhook_url) when you create a render or batch. We deliver events with retries until your endpoint acknowledges them.
Payload
{
"eventId": "…",
"event": "render.completed",
"data": {
"id": "550e8400-e29b-41d4-a716-446655440000",
"status": "done",
"assetUrl": "https://…/api/v1/renders/…/asset?sig=…",
"error": null
}
}Use eventId for idempotency. Failed jobs send event: "render.failed". assetUrl includes ?sig= so it works in <img> without an API key.
Signature verification
When webhook signing is enabled for your workspace, every delivery includes:
X-Render-Signature: sha256=<hex>Compute HMAC-SHA256 of the raw JSON body with your shared secret and compare it to <hex>.
When to use webhooks
Prefer webhooks for server-to-server integrations. Use /wait for scripts without a public endpoint, and SSE for browser UIs.