Veo 3.1
google/veo-3.1
Veo 3.1 standard (`google/veo-3.1`) covers 1080p/4K with optional audio pricing bands.
Overview
Auth: Authorization: Bearer sk-… from the Console. Use this model id exactly in the model field.
Request parameters — Veo 3.1 video
Only parameters relevant to google/veo-3.1 are listed below.
| Field | Type | Req | Description |
|---|---|---|---|
| model | string | ✓ | google/veo-3.1 |
| prompt | string | ✓ | Video description |
| size / resolution | string | — | 1080p / 4K tiers for billing |
| generate_audio / with_audio | boolean | — | Audio tier multiplier |
| duration / seconds | integer | — | Output length in seconds |
Notes
| Field | Type | Req | Description |
|---|---|---|---|
| Fixed duration | — | — | All Veo 3.1 tier ids output 8 seconds — do not pass duration or seconds. |
| veo3.1-lite | — | — | Text-to-video only. Do not pass image_urls, images, or reference fields. |
| veo3.1-quality | — | — | Higher visual fidelity tier at premium per-second rates. Supports T2V and I2V like veo3.1-fast. |
Examples
curl https://api.lumeapi.site/v1/videos \
-H "Authorization: Bearer $LUMEAPI_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "google/veo-3.1",
"prompt": "Cinematic ocean waves at golden hour",
"resolution": "720p",
"aspect_ratio": "16:9"
}'Video async flow
All requests go to https://api.lumeapi.site/v1 with Authorization: Bearer sk-…
(1) POST /v1/videos → save id from response. (2) GET /v1/videos/{id} every 5–15s until status is completed or failed. (3) On completed, GET /v1/videos/{id}/content to download MP4.
Poll and download with the id returned by POST /v1/videos (e.g. task_Fk6QrnX6…). This is the only task id your client needs.
Poll every 5–15 seconds with back-off. Typical completion: 30s–5min depending on model. Stop after 15–30 minutes if still not completed.
When status=failed, read error.message. Do not call /content. Submit a new POST /v1/videos to retry.
Balance is debited when POST /v1/videos returns 200. Poll until completed or failed before treating the job as successful.
Status map
| Status | Meaning | Action |
|---|---|---|
| queued | Job accepted, waiting to start | Keep polling GET /v1/videos/{id} |
| in_progress | Video is being generated | Keep polling; progress may increase |
| completed | Ready to download | GET /v1/videos/{id}/content |
| failed | Generation failed | Read error.message; submit a new job to retry |
Errors
- 401 — invalid or missing Bearer key
- 402 — insufficient wallet balance (top up in Account)
- 403 — model id not on the whitelist / wrong id spelling
- 429 — rate limited; back off and retry
- 502 — temporary gateway error; retry