Use polling as the baseline for video generation because every async job returns a task ID that you can query. Add webhooks only when the selected video endpoint supports callback URLs, and keep polling as the source of truth for missed or provider-specific callback delivery.
Create a video task
The following request creates a minimal video task and stores the returned ID. Add duration, resolution, or callback fields only when the selected model page documents those fields.
The response includes a task ID and status:
Poll status
The following request checks the video task status:
The response changes as the task progresses. Completed responses can include video_url when the model adapter has a result URL; otherwise use model-specific result fields or the /v1/videos/{id}/content content route when that model supports proxied downloads.
Receive a webhook
CometAPI does not define one universal callback payload for every video model. Treat callbacks as provider-specific pass-through events, store the raw body, and reconcile final state with polling.
The following Express handler accepts a video callback and stores the event:
A callback payload commonly includes task identity and status fields, but exact nesting depends on the selected model or provider:
Common errors
Last modified on June 23, 2026