Create a Veo 3 video
Generate Veo 3.1 videos asynchronously through CometAPI with POST /v1/videos, then poll the task and download the completed MP4 file.
id and poll the task until it reaches a terminal status.
POST /v1/videos uses multipart/form-data; pass scalar controls as form fields and media inputs as input_reference file fields.
Choose a model
Choose an input mode
Set duration and size
For the OpenAI-compatible route, useseconds for duration and size for the output size. Send values as form fields.
size to one of the WxH values below.
Task flow
Create the task
id.Poll the task
status is completed, failed, or error.Download the result
completed, download the MP4 file from the completed task response.Authorizations
Bearer authentication. Use your CometAPI API key.
Body
Veo 3.1 model ID. Use veo3.1-fast for the default route or veo3.1 when you specifically need the standard model.
veo3.1-fast, veo3.1 "veo3.1-fast"
Text prompt for the video job.
"A paper kite floats above a field."
Requested clip duration. Use 4, 6, or 8. Send the value as a form field string.
4, 6, 8 "4"
Supported WxH size values: 1280x720, 720x1280, 1920x1080, 3840x2160. Default is 1280x720.
"1280x720"
Optional first-frame image file for image-to-video.
Response
Task created. Store the returned id and poll GET /v1/videos/{task_id}.
Task ID. Use this value with retrieve and content endpoints.
"task_example"
Object type. Video tasks return video.
"video"
Model ID used for the task.
"veo3.1-fast"
Task lifecycle status. Poll until the value is completed, failed, or error.
queued, in_progress, completed, failed, error "queued"
Task progress as a coarse percentage.
0 <= x <= 1000
Task creation time as a Unix timestamp in seconds.
1779938152
Compatibility alias for id when present.
"task_example"
Task completion time as a Unix timestamp in seconds. This field appears on completed tasks.
1779938219
Temporary video delivery URL. This field appears on completed tasks.
"<temporary-video-url>"
Failure details. This field appears when the task fails.