What is Veo 3.1 Text to Video API?
Veo 3.1 generates high-quality videos with audio from text prompts using Google's latest video generation model.
Technical Specifications
- Supported inputs: Text
- Output: Video
Performance Benchmarks
[embed]
Veo 3.1 Text to Video API Pricing
- Pricing on request
Where to Use Veo 3.1 Text to Video
Short-form video generation
Create clips for social, ads, and product demos from text or image prompts.
Previsualization and storyboards
Rapidly prototype motion concepts before committing to production.
Veo 3.1 is documented as suited for high-end creative storytelling and experimental video production. It is also positioned for professional-grade 4K output, natively synchronized audio generation, and complex camera movements that need strong temporal consistency and artistic control.
It can be used for reference-guided video generation by supplying reference images of a scene, character, or object to steer the result. This is described as helpful for maintaining character consistency across multiple shots or applying a specific style to a video.
It is also suited to extending existing videos. The documented scene-extension capability lets users create longer clips by generating new footage that connects to the previous video, preserving visual continuity.
Another documented use is generating transitions between a first and last frame. By providing a starting image and an ending image, Veo 3.1 can generate the bridge between them, including accompanying audio.
import requests, time headers = {"Authorization": "Bearer " + AIMLAPI_KEY} job = requests.post( "https://api.aimlapi.com/v2/video/generations", headers=headers, json={ "model": "veo3.1", "prompt": "A serene timelapse of clouds over a mountain range" }, ).json() gid = job["id"] while True: res = requests.get(f"https://api.aimlapi.com/v2/video/generations?generation_id={gid}", headers=headers).json() if res.get("status") in ("completed", "error"): break time.sleep(5) print(res["video"]["url"])
const headers = { Authorization: `Bearer ${process.env.AIMLAPI_KEY}`, "Content-Type": "application/json", }; const job = await (await fetch("https://api.aimlapi.com/v2/video/generations", { method: "POST", headers, body: JSON.stringify({ "model": "veo3.1", "prompt": "A serene timelapse of clouds over a mountain range" }), })).json(); let res; do { await new Promise((r) => setTimeout(r, 5000)); res = await (await fetch(`https://api.aimlapi.com/v2/video/generations?generation_id=${job.id}`, { headers })).json(); } while (!["completed", "error"].includes(res.status)); console.log(res.video.url);
# submit the generation — the response contains the job "id" curl -X POST https://api.aimlapi.com/v2/video/generations \ -H "Authorization: Bearer $AIMLAPI_KEY" \ -H "Content-Type: application/json" \ -d '{"model":"veo3.1","prompt":"A serene timelapse of clouds over a mountain range"}' # then poll until status is "completed" — video.url holds the result curl "https://api.aimlapi.com/v2/video/generations?generation_id={id}" -H "Authorization: Bearer $AIMLAPI_KEY"
OpenAI-compatible — swap the base URL and it works with your existing SDK.
| Type | Price |
|---|---|
| Output | |
| Benchmark | Score | What it measures | Source | Retrieved |
|---|---|---|---|---|
| Text-to-Video Arena | 1214 | Human preference Elo from blind pairwise comparisons of generated videos, measured independently by Artificial Analysis | Source | September 28, 2026 |
| Model | Input | Output | Context | Best for |
|---|---|---|---|---|
Veo 3.1 Text to Video This page | Video generation |
Veo 3.1 Text to Video takes text as input and returns video.
Veo 3.1 Text to Video is priced at $0.26 / sec (variable).
Veo 3.1 Text to Video is billed per generation — a fixed charge per output rather than by prompt length.
Veo 3.1 Text to Video was built by Google.
Use veo3.1 as the model id on AI/ML API.
Yes. Veo 3.1 Text to Video is served through AI/ML API, so the same key and endpoint format used for other models applies.