Get API Key Get API
Docs

Vidu Q3(pro/turbo) Video Generation

- Async processing mode, returns task ID for subsequent queries

  • Supports text-to-video, image-to-video, first-last frame video generation
  • Supports 540p / 720p / 1080p resolution
  • Duration range 1-16 seconds, audio enabled by default

Request example

curl --request POST \
  --url https://api.openveer.com/v1/videos/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "viduq3-pro",
    "prompt": "A cat playing piano, camera slowly zooms in",
    "duration": 8,
    "resolution": "1080p",
    "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 it to the request header:

Authorization: Bearer YOUR_API_KEY

Request Parameters

model string

Video generation model name

Supported models:

  • viduq3-pro - Vidu Q3 Pro
  • viduq3-turbo - Vidu Q3 Turbo
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

Text prompt, maximum 2000 characters

Required for text-to-video. Optional for image-to-video and first-last frame modes.

Example: "A cat playing piano, camera slowly zooms in"

duration integer

Video duration (seconds)

Range: 1 to 16

Default: 5

resolution string

Video resolution

Options:

  • 540p - Standard definition
  • 720p - HD (default)
  • 1080p - Full HD

Default: 720p

aspect_ratio string

Video aspect ratio (only for text-to-video mode)

Options:

  • 16:9 - Landscape
  • 9:16 - Portrait
  • 4:3 - Traditional
  • 3:4 - Portrait traditional
  • 1:1 - Square

Warning



This parameter is only available in text-to-video mode (when image_urls is not provided).

image_urls string

">
Image URL array for image-to-video generation

The system automatically determines the generation mode based on the number of images:

  • 0 images (not provided): Text-to-video mode
  • 1 image: Image-to-video mode (image used as starting frame)
  • 2 images: First-last frame mode (first image = first frame, second image = last frame)

Example: ["https://example.com/photo.jpg"]

Warning



* Maximum 2 images supported

* For first-last frame mode, exactly 2 images must be provided

* When image_urls is provided (whether 1 or 2 images), the aspect_ratio parameter cannot be used — the video aspect ratio will be automatically determined by the image

audio boolean

Whether to generate audio (dialogue, sound effects)

Default: true

Set to false if you need a silent video.

seed integer

Seed integer used to control randomness in generated content

Range: integer between -1 and 2^32-1

Note



* With the same request, different seed values (including unspecified or -1, which uses a random number instead) will produce different results

* With the same request, the same seed value will produce similar results, but exact reproducibility is not guaranteed

Auto Routing

The system automatically determines the generation mode based on the number of images in image_urls:

Images Count Mode Description
0 (not provided) Text-to-Video Generate from text description only
1 Image-to-Video Use the image as starting frame
2 First-Last Frame First image = first frame, second image = last frame

Parameter Support Matrix

Parameter Text-to-Video Image-to-Video First-Last Frame
model ✅ Required ✅ Required ✅ Required
prompt ✅ Required Optional Optional
image_urls - ✅ 1 image ✅ 2 images
duration ✅ 1-16s ✅ 1-16s ✅ 1-16s
resolution ✅ ✅ ✅
aspect_ratio ✅ - -
audio ✅ ✅ ✅
seed ✅ ✅ ✅

Response

code integer

Response status code, 200 on success

data array
Response data array
status string

Task status, submitted when initially submitted

task_id string

Unique task identifier for querying task status and results

Use Cases

Case 1: Text-to-Video

{
  "model": "viduq3-pro",
  "prompt": "A cat playing piano, camera slowly zooms in",
  "duration": 8,
  "resolution": "1080p",
  "aspect_ratio": "16:9"
}

Case 2: Image-to-Video (Single Image)

{
  "model": "viduq3-pro",
  "prompt": "The person slowly turns and smiles",
  "image_urls": ["https://example.com/photo.jpg"],
  "duration": 5,
  "resolution": "720p"
}

Case 3: First-Last Frame Video

{
  "model": "viduq3-pro",
  "prompt": "The person gradually sits down from standing",
  "image_urls": [
    "https://example.com/first.jpg",
    "https://example.com/last.jpg"
  ],
  "duration": 8
}

Case 4: Silent Video (Audio Disabled)

{
  "model": "viduq3-pro",
  "prompt": "Sunset seascape timelapse photography",
  "duration": 10,
  "resolution": "1080p",
  "audio": false
}
Note

Query Task Results

Video generation is an async 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.