Job finished
Sent to every enabled endpoint when a job made with an API key succeeds, fails or is cancelled. Answer with a 2xx status within 10 seconds.
webhook-id*stringThe delivery id. It stays the same on every attempt, so use it to skip events you already handled.
webhook-timestamp*stringWhen this attempt was sent, in Unix seconds.
webhook-signature*stringv1, a comma, then the base64 HMAC-SHA256 of webhook-id, webhook-timestamp and the body joined with dots. The key is the part of your secret after whsec_, decoded from base64.
application/json- body
The JSON body of every webhook request.
type*stringWhat happened. webhook.test comes from Send test in Settings > API.
"job.succeeded""job.failed""job.cancelled""webhook.test"timestamp*stringWhen this attempt was sent.
date-timeapi_key_id*|The key that made the request, or null for webhook.test.
data*|The job, the same as GET /v1/jobs/{id} returns it. For webhook.test, the endpoint id.
Any 2xx status within 10 seconds marks the event delivered. Anything else, including a redirect, is sent again later.
The JSON body of every webhook request.
{ "type": "job.succeeded", "timestamp": "2026-10-30T00:18:01Z", "api_key_id": "5f0c2a8e-3b1d-4c7e-9a62-1d8f4e7b2c90", "data": { "id": "04bd0571-e2c8-4d5b-a3cc-e56f85773abf", "type": "cut", "status": "succeeded", "progress": null, "result": { "video_url": "https://files.example.com/cut.mp4", "download_url": "https://files.example.com/cut.mp4?download=cut.mp4", "duration_s": 281.344, "source_duration_s": 485.87, "width": 1080, "height": 1920, "removed": [ { "start": 0, "end": 107.62, "reasons": [ "retake" ] }, { "start": 120.786, "end": 121.106, "reasons": [ "filler" ] }, { "start": 129.3, "end": 129.44, "reasons": [ "silence" ] } ], "language": "English", "incomplete": [], "expires_at": "2026-10-31T00:10:42Z" }, "error": null, "tokens_charged": 16311, "resource_id": "857fcb81-9073-4f26-97c7-a388979fcdca", "created_at": "2026-10-30T00:10:42Z", "finished_at": "2026-10-30T00:18:01Z" }}{ "webhook-id": "string", "webhook-timestamp": "string", "webhook-signature": "string"}