Veo 3.1 Text to Video API

veo3.1
Veo 3.
Output
$0.2 / sec (variable)
Released
Nov 24, 2025

Overview

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.

Use cases

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.

How to use Veo 3.1 Text to Video API

Install any OpenAI-compatible SDK, point it at api.aimlapi.com/v1, and set the model to veo3.1.
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.

Veo 3.1 Text to Video API Pricing

TypePrice
Output
$0.2 / sec (variable)

Veo 3.1 Text to Video Benchmarks

BenchmarkScoreWhat it measuresSourceRetrieved
Text-to-Video Arena
1214
Human preference Elo from blind pairwise comparisons of generated videos, measured independently by Artificial AnalysisSourceSeptember 28, 2026

Veo 3.1 Text to Video vs other models

ModelInputOutputContextBest for
$0.2 / sec (variable)
Video generation
$0.2 / sec (variable)
Video generation
$1.95 / 1M tokens
$0.10136 / sec
Video generation
$0.0711 / sec
Cinematic video + native audio

Frequently asked questions

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.

Start building with Veo 3.1 Text to Video

Get API Key
1000+ models, one API.