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 to poll the task and download the completed video.
POST /v1/videos uses multipart/form-data. Send controls as form fields and an image as an input_reference file field.
Choose a model
Choose an input mode
input_reference, using the field once. The image sets the opening frame; prompt describes the motion and camera behavior that follow.
Set duration and size
For this OpenAI-compatible route, set the duration with an explicit integerseconds value and the output size with size. Send both 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 in whole seconds. Send 4, 6, or 8 as a form field.
4, 6, 8 4
Supported WxH size values: 1280x720, 720x1280, 1920x1080, 3840x2160. Default is 1280x720.
"1280x720"
One image file that sets the opening frame for image-to-video. Send input_reference once with one file. Use prompt to describe the motion and camera behavior that follow.
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.