Skip to main content
POST
Create a Veo 3.1 video from text or an image. The API returns a task ID immediately. Store the returned 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

To animate an image, upload one file through 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 integer seconds value and the output size with size. Send both values as form fields. Set size to one of the WxH values below.

Task flow

1

Create the task

Send the multipart form request and store the returned id.
2

Poll the task

Use Veo3 Retrieve until status is completed, failed, or error.
3

Download the result

When the task is completed, download the MP4 file from the completed task response.

Authorizations

Authorization
string
header
required

Bearer authentication. Use your CometAPI API key.

Body

multipart/form-data
model
enum<string>
required

Veo 3.1 model ID. Use veo3.1-fast for the default route or veo3.1 when you specifically need the standard model.

Available options:
veo3.1-fast,
veo3.1
Example:

"veo3.1-fast"

prompt
string
required

Text prompt for the video job.

Example:

"A paper kite floats above a field."

seconds
enum<integer>
default:4

Requested clip duration in whole seconds. Send 4, 6, or 8 as a form field.

Available options:
4,
6,
8
Example:

4

size
string

Supported WxH size values: 1280x720, 720x1280, 1920x1080, 3840x2160. Default is 1280x720.

Example:

"1280x720"

input_reference
file

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}.

id
string
required

Task ID. Use this value with retrieve and content endpoints.

Example:

"task_example"

object
string
required

Object type. Video tasks return video.

Example:

"video"

model
string
required

Model ID used for the task.

Example:

"veo3.1-fast"

status
enum<string>
required

Task lifecycle status. Poll until the value is completed, failed, or error.

Available options:
queued,
in_progress,
completed,
failed,
error
Example:

"queued"

progress
integer
required

Task progress as a coarse percentage.

Required range: 0 <= x <= 100
Example:

0

created_at
integer
required

Task creation time as a Unix timestamp in seconds.

Example:

1779938152

task_id
string

Compatibility alias for id when present.

Example:

"task_example"

completed_at
integer

Task completion time as a Unix timestamp in seconds. This field appears on completed tasks.

Example:

1779938219

video_url
string

Temporary video delivery URL. This field appears on completed tasks.

Example:

"<temporary-video-url>"

error
object

Failure details. This field appears when the task fails.

Last modified on September 9, 2026