webhook_url when uploading a video or creating a job. Clipzy sends an HTTP POST to that URL when the job finishes.
Set a webhook URL
Supplywebhook_url in either the upload request or the job creation request. You only need to provide it in one place.
The
webhook_url must be publicly reachable by the Clipzy servers. Localhost URLs will not work in production.Webhook payload
When a job reaches a terminal state (completed, failed, or cancelled), Clipzy sends a POST request to your webhook_url with the following JSON body:
| Field | Type | Description |
|---|---|---|
job_id | string | The job that triggered this notification. |
status | string | Terminal status: completed, failed, or cancelled. |
progress_percent | number | Final progress value (100 on completion). |
output_video_url | string | URL of the rendered output. Present only when status is "completed". |
processing_time_seconds | number | Total wall-clock processing time in seconds. |
Handle the webhook in your server
Your endpoint must:- Return HTTP
200quickly (before doing any heavy processing). - Process the payload asynchronously if needed.
Acknowledge receipt immediately
Return
200 OK as soon as you receive the request. Clipzy considers any non-2xx response a failure and will retry.Python Flask example
Python
Retry behavior
To avoid missing notifications:- Ensure your endpoint is deployed and reachable before creating jobs.
- Return
200immediately, even if you haven’t finished processing the payload. - If you miss a webhook, you can always fetch the job result directly with
GET /api/v1/jobs/{job_id}/result. See Track progress for details.