Async Video Generation
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
| Model ID | When to use it | Notes |
|---|---|---|
veo3.1-fast | Default choice for most short clips | Faster Veo 3.1 route. |
veo3.1 | Use when you specifically want the standard Veo 3.1 model | Standard Veo 3.1 route. |
Choose an input mode
| Goal | Required fields | Optional fields |
|---|---|---|
| Text-to-video | model, prompt | seconds, size |
| Image-to-video | model, prompt, input_reference | seconds, size |
Set duration and size
For the OpenAI-compatible route, useseconds for duration and size for the output size. Send values as form fields.
| Model ID | seconds | Default |
|---|---|---|
veo3.1-fast | 4, 6, 8 | 4 seconds, 1280x720 |
veo3.1 | 4, 6, 8 | 4 seconds, 1280x720 |
size to one of the WxH values below.
| Resolution tier | Aspect ratio | size (WxH) |
|---|---|---|
720p | 16:9 | 1280x720 |
9:16 | 720x1280 | |
1080p | 16:9 | 1920x1080 |
4K | 16:9 | 3840x2160 |
Task flow
Poll the task
status is completed, failed, or error.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.