Skip to main content
POST
https://llm.ai-nebula.com
/
v1
/
video
/
generations
Gemini Native (Video)
curl --request POST \
  --url https://llm.ai-nebula.com/v1/video/generations \
  --header 'Authorization: <authorization>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "prompt": "<string>",
  "durationSeconds": 123,
  "aspectRatio": "<string>",
  "resolution": "<string>",
  "image": "<string>",
  "lastFrame": "<string>",
  "generateAudio": true,
  "sampleCount": 123
}
'

Introduction

Veo is Google Vertex AI’s multimodal video generation model. It supports text-to-video (T2V), first-frame constraint, and first-and-last-frame constraint (3.1 series only) for coherent video generation. Use Nebula’s unified video API: submit a task to get a task_id, then query the task to poll status and get the result.

Authentication

Authorization
string
required
Bearer Token, e.g. Bearer sk-xxxxxxxxxx

Supported models

Model IDDescription
veo-3.0-fast-generate-001Text-to-video, first-frame; fast (audio included by default)
veo-3.1-fast-generate-previewText-to-video, first/first+last frame; fast
veo-3.0-generate-previewText-to-video, first-frame
veo-3.1-generate-previewText-to-video, first/first+last frame

Call flow

  1. Submit task: POST /v1/video/generations with model, prompt, and Veo-specific parameters.
  2. Poll status: GET /v1/video/generations/{task_id} until status is succeeded or failed.
  3. Get result: On success, url in the response contains the video (Veo may return data:video/mp4;base64,... or an OSS link).

Veo-specific parameters

prompt
string
required
Video generation prompt describing the scene and motion.
durationSeconds
integer
default:"4"
Video duration in seconds; supported: 4, 6, 8.
aspectRatio
string
default:"16:9"
Aspect ratio; only 16:9 and 9:16 supported.
resolution
string
default:"1080p"
Resolution: 720p, 1080p.
image
string
First-frame reference image (URL or Base64) for image-to-video / first-frame constraint.
lastFrame
string
Last-frame reference image (veo-3.1 series only); use with first frame for start-and-end constraint.
generateAudio
boolean
default:"false"
Whether to generate synchronized audio. Fast models ignore this and always include audio.
sampleCount
integer
default:"1"
Number of videos to generate per request, range 1-4.
For more parameters (e.g. personGeneration, addWatermark, seed), see Submit Video Task.

Request examples

Submit Veo task (text-to-video):
curl -X POST "https://llm.ai-nebula.com/v1/video/generations" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-fast-generate-preview",
    "prompt": "Morning light over a cyberpunk city skyline, camera slowly pushing in",
    "durationSeconds": 6,
    "aspectRatio": "16:9",
    "resolution": "1080p",
    "generateAudio": false
  }'
Query task status:
curl -X GET "https://llm.ai-nebula.com/v1/video/generations/{task_id}" \
  -H "Authorization: Bearer sk-xxxxxxxxxx"
For full request/response details and multi-model comparison, see Submit Video Task and Query Video Task.