Skip to main content
POST
/
v1
/
tasks
Veo Series
curl --request POST \
  --url https://www.qingbo.dev/v1/tasks \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "<string>",
  "action": "<string>",
  "prompt": "<string>",
  "aspect_ratio": "<string>",
  "resolution": "<string>",
  "duration": 123,
  "image_urls": [
    "<string>"
  ],
  "first_frame_image": "<string>",
  "last_frame_image": "<string>",
  "callback_url": "<string>",
  "callback_events": [
    "<string>"
  ]
}
'
{
  "task_id": "task-wave1775285160b950328499",
  "model": "veo3.1-quality-official",
  "action": "generate",
  "status": "queued",
  "created_at": 1775285160040,
  "progress": 0
}

Documentation Index

Fetch the complete documentation index at: https://docs.qingbo.dev/llms.txt

Use this file to discover all available pages before exploring further.

Google Veo 3.1 video generation, available through both official direct and reverse-engineered channels, with 4 variants in total.
  • Official tiers (Vertex AI direct): billed per second; supports 4 / 6 / 8 second durations and 720P / 1080P / 4K resolutions.
  • Reverse-engineered tiers: billed per call (fixed price per call); only 8-second fixed duration.
VariantChannelBillingPositioning
veo3.1-quality-officialOfficial directPer-secondFlagship tier, final-delivery quality
veo3.1-fast-officialOfficial directPer-secondFast tier, suited for iteration drafts
veo3.1-qualityReverse-engineeredPer-callReverse-engineered flagship, fixed 8 sec
veo3.1-liteReverse-engineeredPer-callReverse-engineered lightweight, fixed 8 sec
Both channels natively support audio, first/last-frame keyframes, and Remix continuation.

Pricing

4K resolution does not support muted output — you must set generate_audio=true (720p / 1080p can be either muted or with audio). In the table below, 720p_sound / 1080p_sound are the audio-on premium tiers, and 4k_sound is the only available 4K tier.

Official Tiers (per-second)

720P and 1080P share the same price (Google’s official tiered pricing); enabling generate_audio=true doubles the unit price.

veo3.1-fast-official

SpecUnit price (per sec)8-second video
720P muted$0.08$0.64
1080P muted$0.08$0.64
720P + audio$0.12$0.96
1080P + audio$0.12$0.96
4K + audio$0.28$2.24

veo3.1-quality-official

SpecUnit price (per sec)8-second video
720P muted$0.16$1.28
1080P muted$0.16$1.28
720P + audio$0.32$2.56
1080P + audio$0.32$2.56
4K + audio$0.48$3.84

Reverse-Engineered Tiers (per-call)

Reverse-engineered tiers use a fixed per-call price independent of duration, resolution, or audio (only 8 seconds is supported). Refer to the admin panel / console for the published price.
Model IDBillingDurationPer-call price
veo3.1-qualityPer-call8 seconds (fixed)TBD (see console)
veo3.1-litePer-call8 seconds (fixed)TBD (see console)

Request Examples

curl -X POST https://www.qingbo.dev/v1/tasks \
  -H "Authorization: Bearer $WAVE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo3.1-fast-official",
    "prompt": "Neon-lit street on a rainy night, a red sports car drives through a puddle, cinematic slow motion",
    "duration": 8,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }'
{
  "task_id": "task-wave1775285160b950328499",
  "model": "veo3.1-quality-official",
  "action": "generate",
  "status": "queued",
  "created_at": 1775285160040,
  "progress": 0
}
After submission, poll status with GET /v1/tasks/{task_id}. See Task System for details.

Available Models

Model IDChannelVariantBillingDurationResolution
veo3.1-quality-officialOfficial directQuality flagshipPer-second4 / 6 / 8 sec720P / 1080P / 4K
veo3.1-fast-officialOfficial directFast tierPer-second4 / 6 / 8 sec720P / 1080P / 4K
veo3.1-qualityReverse-engineeredQuality flagship variantPer-call8 sec (fixed)720P / 1080P
veo3.1-liteReverse-engineeredLite lightweight variantPer-call8 sec (fixed)720P / 1080P

Common Parameters

model
string
required
Model ID — one of veo3.1-quality-official / veo3.1-fast-official / veo3.1-quality / veo3.1-lite
action
string
default:"generate"
Operation type, valid values:
  • generate — text-to-video (T2V)
  • image2video — image-to-video (I2V); requires first_frame_image
  • first_last_frame — first/last-frame keyframes; requires both first_frame_image and last_frame_image
  • remix — continuation based on an existing clip
prompt
string
required
Video description text; required for all actions
aspect_ratio
string
default:"16:9"
Frame aspect ratio, valid values:
  • 16:9 — landscape widescreen
  • 9:16 — portrait
resolution
string
default:"1080p"
Output resolution, valid values:
  • 720p
  • 1080p
  • 4kofficial tiers only, and must have generate_audio=true (4K does not support muted output)
duration
integer
default:"8"
Video duration in seconds:
  • Official tiers: 4 / 6 / 8
  • Reverse-engineered tiers: 8 only (fixed)
image_urls
string[]
Generic image-reference array (in some scenarios equivalent to first_frame_image)
first_frame_image
string
First-frame image URL. Required for image2video / first_last_frame / remix modes
last_frame_image
string
Last-frame image URL — required only in first_last_frame mode
callback_url
string
Webhook callback URL, invoked when the task reaches a terminal state. See Callback Mechanism
callback_events
string[]
Subscribed callback event types; defaults to terminal states (completed / failed)

Model-Specific Parameters

All four variants share the same parameters; only the channel, billing model, and available duration / resolution differ. Tab order is Quality before Fast / Lite, and official before reverse-engineered.
generate_audio
boolean
default:"false"
Whether to generate the audio track. When enabled, unit price doubles; 4K must be true
sample_count
integer
default:"1"
Number of samples to generate; range 1-4
resize_mode
string
default:"pad"
Image resize strategy for image-to-video, valid values:
  • pad — edge padding, preserves the entire frame
  • crop — center crop, fits the output ratio
enhance_prompt
boolean
default:"true"
Upstream prompt enhancement; must be true (forced on by Vertex AI)
person_generation
string
default:"allow_adult"
Person-generation policy, valid values:
  • allow_adult — allow generating adult persons
  • disallow — disallow generating persons
raw
boolean
default:"false"
Remix-mode only; when true, returns only the extension, not concatenated with the original clip

Resource Limits

ItemLimit
Reference imageJPG / PNG / WEBP, ≤ 20MB each, 720P or higher recommended
Output videoMP4, link valid for 24 hours
DurationOfficial tiers 4 / 6 / 8 sec; reverse-engineered tiers fixed 8 sec only
Resolution720P / 1080P freely; 4K only on official tiers and requires generate_audio=true
AudioNatively generated, no extra TTS needed; 4K must include audio, 720P / 1080P optional
PersonsConstrained by person_generation; non-compliant content is blocked upstream