Skip to main content
POST
Asynchronously generate Veo 3.1 videos. Prefer the dedicated endpoint POST /v1/veo/frames; you can also use the shared POST /v1/videos with the same model values. On success you get a task_id; poll Query video task and read result.video_url when completed.

Models

Billing is per_task. See the model catalog and the cost field on create for live unit prices. If model is omitted, it defaults to veo3.1-fast. Legacy aliases such as veo_3_1_fast are normalized to the hyphenated form.

Modes

These three modes are mutually exclusive: Reference images and first/last frames cannot be combined. If you send a last frame, you must also send a first frame. References must be public https:// direct links.

Request fields

Examples

Text-to-video (Fast)

Reference images

First / last frames (Lite)

Shared /v1/videos entry

Example success response:
cost is the points charged for this job. data.model is the billing key (e.g. Lite with 1080p may bill as veo3.1-lite-hd).

Polling

See Query video task for status values. When completed, read data.result.video_url (kept about 3 days — download promptly).

Authorizations

Authorization
string
header
required

控制台创建的 API Key,格式:Bearer sk_xxx

Body

application/json
prompt
string
required
model
string

veo3.1-fast (default), veo3.1-lite, veo3.1-lite-hd

Example:

"veo3.1-fast"

resolution
string

720p or 1080p; 4k is not supported

Example:

"720p"

orientation
string

landscape (16:9) or portrait (9:16)

Example:

"landscape"

aspect_ratio
string

16:9 or 9:16; can replace orientation

ratio
string
images
string<uri>[]

Up to 3 reference images; mutually exclusive with first/last frames

Maximum array length: 3
image_urls
string<uri>[]
Maximum array length: 3
first_frame_url
string<uri>
last_frame_url
string<uri>
first_image
string<uri>
last_image
string<uri>

Response

200 - application/json

Submitted

code
integer
Example:

20000

msg
string
data
object
Last modified on October 19, 2026