Get API Key Get API
Docs

VEO3 Official Video Generation

- Asynchronous processing mode, returns task ID for subsequent queries

  • Supports text-to-video and image-to-video (first frame / first & last frame control)
  • Supports 720P and 1080P resolution
  • Supports 4/6/8 second video duration
  • Supports audio track generation
  • Supports person generation policy control

Request example

curl --request POST \
  --url https://api.openveer.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "veo3.1-fast-official",
    "prompt": "a golden retriever running on the beach, sunset, cinematic",
    "duration": 8,
    "aspect_ratio": "16:9"
  }'

Response example

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_xxxxxxxxxx"
    }
  ]
}

Authorization

Authorization string

All API endpoints require Bearer Token authentication

Get your API Key:

Visit the API Key Management Page to get your API Key

Add to the request header:

Authorization: Bearer YOUR_API_KEY

Request Parameters

model string

Video generation model name

Available models:

  • veo3.1-fast-official - Veo 3.1 Official Fast version
  • veo3.1-quality-official - Veo 3.1 Official High Quality version
nsfw_check boolean

Whether to run content moderation before submitting the video task.

  • true: use omni-moderation-latest to review prompts and input images
  • false or omitted: do not send a moderation request, adding no moderation cost or latency (default)
prompt string

Positive text prompt

Describe scenes, actions, styles, etc. in detail for better generation results. English prompts are recommended.

Example: "a golden retriever running on the beach, sunset, cinematic"

negative_prompt string

Negative prompt to exclude unwanted content

Example: "blurry, low quality, watermark, text"

duration integer

Video duration in seconds

Recommended values: 4 / 6 / 8

Default: 8

Note: Must be a pure number (e.g. 8), do not add quotes, otherwise an error will occur

aspect_ratio string

Video aspect ratio

Available values:

  • 16:9 - Landscape
  • 9:16 - Portrait

Default: 16:9

resolution string

Video resolution

Available values:

  • 720p - Standard resolution
  • 1080p - High definition
  • 4K - Ultra high definition

Default: 720p

first_frame_image string

First frame image URL for image-to-video generation

Warning



* Image URL must be publicly accessible without hotlink protection

* Object storage URLs are recommended over temporary download links

last_frame_image string

Last frame image URL for image-to-video generation

Used with first_frame_image to control first and last frames

seed integer

Random seed for reproducing generation results

Value range: 0 - 4294967295

sample_count integer

Number of samples to generate (1-4), currently recommended to use 1

Default: 1

generate_audio boolean

Whether to generate audio track

person_generation string

Person generation policy

Available values:

  • allow_adult - Only allow generating adult persons/faces
  • disallow - Do not allow generating persons or faces

Default: allow_adult

resize_mode string

Image resize strategy (effective for image-to-video)

Available values:

  • pad - Padding mode
  • crop - Cropping mode

Default: pad

enhance_prompt boolean

Whether to enable upstream prompt enhancement

Default: true

Warning



* This parameter can only be set to true. Setting it to false will cause a request error

* If you don't need this parameter, do not include it

Text-to-Video vs Image-to-Video

The system automatically determines the mode based on whether image parameters are provided: no images for text-to-video, images for image-to-video.

Parameter Text-to-Video Image-to-Video
prompt Required Required
first_frame_image Not used Required (at least one)
last_frame_image Not used Optional (last frame)
negative_prompt Optional Optional
duration Optional Optional
aspect_ratio Optional Optional
resolution Optional Optional
seed Optional Optional
generate_audio Optional Optional
person_generation Optional Optional
resize_mode Not applicable Optional
enhance_prompt Optional Optional

Response

code integer

Response status code, 200 on success

data array
Response data array
status string

Task status, initially submitted upon submission

task_id string

Unique task identifier for querying task status and results

Usage Scenarios

Scenario 1: Text-to-Video (Basic)

{
  "model": "veo3.1-fast-official",
  "prompt": "a golden retriever running on the beach, sunset, cinematic"
}

Scenario 2: Text-to-Video (Full Parameters)

{
  "model": "veo3.1-quality-official",
  "prompt": "a cinematic close-up of a ragdoll cat slowly walking through a sunlit living room",
  "negative_prompt": "blurry, low quality, watermark, text",
  "duration": 8,
  "aspect_ratio": "16:9",
  "resolution": "1080p",
  "seed": 12345,
  "generate_audio": true,
  "person_generation": "disallow",
  "enhance_prompt": true
}

Scenario 3: Image-to-Video (Single First Frame)

{
  "model": "veo3.1-fast-official",
  "prompt": "the cat slowly walks forward and looks around",
  "first_frame_image": "https://example.com/cat.png",
  "duration": 8,
  "resolution": "720p"
}

Scenario 4: Image-to-Video (First Frame + Last Frame)

{
  "model": "veo3.1-quality-official",
  "prompt": "smooth cinematic transition from the first frame to the last frame",
  "first_frame_image": "https://example.com/frame-start.png",
  "last_frame_image": "https://example.com/frame-end.png",
  "duration": 8,
  "resolution": "1080p"
}

Scenario 5: Video with Audio

{
  "model": "veo3.1-quality-official",
  "prompt": "a busy coffee shop with people chatting and barista making latte art",
  "duration": 8,
  "generate_audio": true,
  "aspect_ratio": "16:9"
}
Note

Query Task Results

Video generation is an asynchronous task that returns a task_id upon submission. Use the Get Task Status endpoint to query generation progress and results.

This documentation is built and hosted on Mintlify, a developer documentation platform.