veo-3.1-generate-preview, veo-3.1-fast-generate-preview, veo-3.0-generate-preview, veo-3.0-fast-generate-001.| Item | Content |
|---|---|
| Base URL | https://llm.ai-nebula.com |
| Endpoint Path | POST /v1/video/generations |
| Authentication Method | Authorization: Bearer <API Key> |
| Content-Type | application/json |
| Task Mode | Asynchronous: Submit Task → Poll Status → Get Result |
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Model name: veo-3.1-generate-preview, veo-3.1-fast-generate-preview, veo-3.0-generate-preview, veo-3.0-fast-generate-001. |
prompt | string | Yes | Text prompt describing the video content to be generated. |
durationSeconds | int | No | Video duration (seconds), supports 4 / 6 / 8, default 4. |
aspectRatio | string | No | Aspect ratio, only supports 16:9 or 9:16, default 16:9. |
resolution | string | No | Resolution options, 720p or 1080p, default 1080p. |
fps | int | No | Frame rate, default 24, can be overridden as needed. |
sampleCount | int | No | Number of videos generated per request, range 1-4, default 1. |
generateAudio | bool | No | Whether to generate synchronized audio, default false; fast models will ignore this parameter and always output video with audio. |
personGeneration | string | No | Person generation policy: allow_all (all ages) / allow_adult (adults only) / dont_allow (prohibited), default allow_all. |
addWatermark | bool | No | Whether to add a watermark, default false. |
seed | int | No | Random seed, fixing it allows for reproducible results. |
image | string | No | Reference image for the first frame, supports HTTP(S) URL or Base64 Data URI. |
lastFrame | string | No | Reference image for the last frame, supports HTTP(S) URL or Base64 Data URI. |
Tip If imageis provided, Veo will use the first frame as the starting visual for transition; providinglastFramesimultaneously allows for first and last frame constraints.
GET /v1/video/generations/{task_id}sampleCount = 4):{
"task_id": "cHJvamVjdHMv...",
"status": "succeeded",
"format": "mp4",
"url": [
"https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/veo-demo-1.mp4",
"https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/veo-demo-2.mp4",
"https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/veo-demo-3.mp4",
"https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/veo-demo-4.mp4"
],
"metadata": {
"durationSeconds": 12,
"aspectRatio": "9:16",
"resolution": "1080p",
"fps": 24,
"generateAudio": true,
"response": {
"videos": [
{
"mimeType": "video/mp4",
"encoding": "mp4",
"url": "https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/veo-demo-1.mp4"
},
{
"mimeType": "video/mp4",
"encoding": "mp4",
"url": "https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/veo-demo-2.mp4"
},
{
"mimeType": "video/mp4",
"encoding": "mp4",
"url": "https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/veo-demo-3.mp4"
},
{
"mimeType": "video/mp4",
"encoding": "mp4",
"url": "https://nebula-ads.oss-cn-guangzhou.aliyuncs.com/2025/11/18/abc123/veo-demo-4.mp4"
}
]
}
}
}url field: A string when only 1 video is generated, an array of strings when multiple videos are generated.sampleCount = 1: "url": "https://.../veo-demo-1.mp4"sampleCount > 1: "url": ["https://.../veo-demo-1.mp4", "https://.../veo-demo-2.mp4", ...]metadata.response.videos array appends a url field, allowing direct access to the final address of each video segment.durationSeconds, aspectRatio, generateAudio, etc.) will echo the parameters used during invocation for easy tracking.| Scenario | Required Fields | Optional Fields |
|---|---|---|
| Pure Text Generation | model, prompt | durationSeconds, aspectRatio, resolution, generateAudio |
| First Frame Reference | model, prompt, image | Other fields same as above |
| Start and End Frame Constraints | model, prompt, image, lastFrame | Same as above |
| High Resolution Generation | model, prompt, resolution, aspectRatio | fps, generateAudio |
| Status | Description |
|---|---|
submitted / queued | Task is queued, waiting to start. |
in_progress | Task is processing, can be polled repeatedly. |
succeeded | Generation successful, url is the final video address (string or string array). |
failed | Task failed, error field provides error code and information. |
url is a string array, please download individually according to your needs; a single string can be used directly for <video> playback or saved to disk.generateAudio to true, and the system will automatically select the billing tier that includes audio.fps parameter can be passed to override this if necessary.failed is returned and the message suggests a policy issue, try modifying the prompt or reducing the duration/resolution before retrying.veo-3.0-fast-generate-001, veo-3.1-fast-generate-preview) include audio by default and ignore the generateAudio parameter; they can be called directly as scenarios with audio.