Pricing guide

Veo 3.1 API pricing: Veo 3.1, Fast and Lite compared

Google's Veo 3.1 comes in three tiers, each priced per second of video, with or without sound. Here is what each tier costs, which one to use for what, and how to call all three with one API key.

The three Veo 3.1 tiers

Google announced Veo 3.1 in October 2025, with richer native audio and more control from images, such as setting the first and last frame of a shot. It is offered in three tiers: Veo 3.1 itself, and the lower-cost Veo 3.1 Fast and Veo 3.1 Lite. All three generate sound with the picture, and all three are available on Revana with the same request format.

Veo 3.1 tiers compared
Veo 3.1Veo 3.1 FastVeo 3.1 Lite
Taskstext to video, image to video and first and last frametext to video, image to video, first and last frame and reference imagestext to video, image to video, first and last frame and reference images
Resolution720p, 1080p and 4K720p, 1080p and 4K720p, 1080p and 4K
Length4, 6 or 8 s4, 6 or 8 s4, 6 or 8 s
Aspect ratio16:9 or 9:1616:9, 9:16 or Auto16:9, 9:16 or Auto
Reference imagesnot listedup to 3up to 3
Routesone routetwo routesone route

Clip lengths are fixed steps rather than a range: 4, 6 or 8 s. That makes the price of every job easy to know in advance, because it is always the per-second rate times one of three lengths.

Veo 3.1 price per second (October 2026)

Veo 3.1 and Veo 3.1 Fast list two rates at each resolution: one for silent video and one with sound. Veo 3.1 Lite lists one rate per resolution, with sound on or off.

Veo 3.1 price per second by tier and resolution
ResolutionVeo 3.1 silentVeo 3.1 with soundFast silentFast with soundLite
720p$0.20$0.40$0.08$0.10$0.05
1080p$0.20$0.40$0.10$0.12$0.06
4K$0.40$0.60$0.25$0.30$0.24

Prices are per second of output video, from the Revana catalogue in October 2026. The pricing page always has the current numbers for every model.

What a Veo 3.1 clip costs

Here are four common jobs priced on each tier. Lite has one rate, so its with-sound and silent prices are the same.

Veo 3.1 price per clip
ClipVeo 3.1Veo 3.1 FastVeo 3.1 Lite
4 s, 720p, silent$0.80$0.32$0.20
8 s, 720p, with sound$3.20$0.80$0.40
8 s, 1080p, with sound$3.20$0.96$0.48
8 s, 4K, with sound$4.80$2.40$1.92

When you submit a job, its price is held from your prepaid balance. It is charged only if the job succeeds; a failed job releases the hold. The exact amount comes back on the finished generation as cost_usd.

Which Veo 3.1 tier should you use?

  • Veo 3.1 is Google's flagship tier. Use it for final renders and hero shots, where the higher price per second is worth it.
  • Veo 3.1 Fast is the quicker, lower-cost tier, built for iterating on shots before you commit to a final render. It also takes up to 3 reference images and an Auto aspect ratio.
  • Veo 3.1 Lite starts from $0.05 per second. It suits drafts, previews and high-volume jobs, and it has the same tasks and options as Fast.

One caution: a prompt that works on one tier will not give an identical shot on another. Treat Fast and Lite drafts as a guide to composition and timing, and expect the final render to differ in detail.

Generate a Veo 3.1 Fast clip with sound

All three tiers use the same endpoint and fields; only the model string changes. This request asks Veo 3.1 Fast for an 8 second 720p clip with sound, which costs $0.80.

cURL
export REVANA_API_KEY="sr_live_..."

# 1. Submit the job (returns 202 with the generation id)
curl https://api.revana.si/v1/generations \
  -H "Authorization: Bearer $REVANA_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "veo-3.1-fast",
    "input": {
      "prompt": "A barista slides a latte across the counter and says: \"Here you go, one oat latte.\" Close-up, shallow depth of field, warm morning light. Espresso machine hiss, quiet cafe chatter, no music.",
      "resolution": "720p",
      "duration": 8,
      "aspect_ratio": "16:9",
      "audio": true
    },
    "max_cost_usd": 1.5
  }'

# 2. Poll with the id from step 1 until status is "succeeded" or "failed"
curl https://api.revana.si/v1/generations/gen_01JBX7Q2M4 \
  -H "Authorization: Bearer $REVANA_API_KEY"
Python
import os
import time

import requests

API = "https://api.revana.si/v1"
HEADERS = {"Authorization": f"Bearer {os.environ['REVANA_API_KEY']}"}

resp = requests.post(f"{API}/generations", headers=HEADERS, json={
    "model": "veo-3.1-fast",
    "input": {
        "prompt": "A barista slides a latte across the counter and says: \"Here you go, one oat latte.\" Close-up, shallow depth of field, warm morning light. Espresso machine hiss, quiet cafe chatter, no music.",
        "resolution": "720p",
        "duration": 8,
        "aspect_ratio": "16:9",
        "audio": True,
    },
    "max_cost_usd": 1.5,
})
resp.raise_for_status()
job = resp.json()

while job["status"] in ("queued", "running"):
    time.sleep(5)
    job = requests.get(f"{API}/generations/{job['id']}", headers=HEADERS).json()

if job["status"] == "succeeded":
    print(job["output"]["urls"], job["cost_usd"])
else:
    print("Failed:", job["error"])
Node.js
// Node 18 or later. Save as generate.mjs and run: node generate.mjs
const API = "https://api.revana.si/v1";
const headers = {
  Authorization: `Bearer ${process.env.REVANA_API_KEY}`,
  "Content-Type": "application/json",
};

const res = await fetch(`${API}/generations`, {
  method: "POST",
  headers,
  body: JSON.stringify({
    model: "veo-3.1-fast",
    input: {
      prompt: "A barista slides a latte across the counter and says: \"Here you go, one oat latte.\" Close-up, shallow depth of field, warm morning light. Espresso machine hiss, quiet cafe chatter, no music.",
      resolution: "720p",
      duration: 8,
      aspect_ratio: "16:9",
      audio: true,
    },
    max_cost_usd: 1.5,
  }),
});
if (!res.ok) throw new Error(`${res.status} ${await res.text()}`);
let job = await res.json();

while (job.status === "queued" || job.status === "running") {
  await new Promise((r) => setTimeout(r, 5000));
  job = await (await fetch(`${API}/generations/${job.id}`, { headers })).json();
}

if (job.status === "succeeded") console.log(job.output.urls, job.cost_usd);
else console.error("Failed:", job.error);

The submit call returns 202 with an id and status queued. Poll until the status is succeeded or failed. A finished job:

Response
{
  "id": "gen_01JBX7Q2M4",
  "model": "veo-3.1-fast",
  "status": "succeeded",
  "output": {
    "urls": [
      "https://cdn.revana.si/g/gen_01JBX7Q2M4/0.mp4"
    ]
  },
  "cost_usd": 0.8,
  "attempts": 1,
  "error": null,
  "created_at": "2026-10-19T14:02:11Z",
  "completed_at": "2026-10-19T14:03:47Z"
}

Setting audio to false on Veo 3.1 or Veo 3.1 Fast bills the silent rate instead. To move the same job to the flagship tier, change model to veo-3.1 and raise max_cost_usd to cover its price; routes quoted above your cap are skipped.

First and last frames on Veo 3.1

Give the model a start frame in image_url and an end frame in end_image_url, and describe the movement between them. This 8 second 1080p job with sound costs $3.20.

Request body
{
  "model": "veo-3.1",
  "input": {
    "prompt": "The camera rises slowly from the busy street to the rooftop garden as evening falls. Traffic noise fades into wind and birdsong.",
    "image_url": "https://example.com/street.jpg",
    "end_image_url": "https://example.com/rooftop.jpg",
    "resolution": "1080p",
    "duration": 8,
    "aspect_ratio": "16:9",
    "audio": true
  },
  "max_cost_usd": 4
}

Reference images on Veo 3.1 Lite

Fast and Lite accept up to 3 reference images in image_urls to keep a person, product or setting consistent. Describe each image by its position in the prompt. Use frames or references in a request, not both. This 6 second vertical clip costs $0.30.

Request body
{
  "model": "veo-3.1-lite",
  "input": {
    "prompt": "The chef from the first image plates the dish from the second image in a bright restaurant kitchen, then looks up at the camera. Sizzling pans, a short laugh.",
    "image_urls": [
      "https://example.com/chef.jpg",
      "https://example.com/dish.jpg"
    ],
    "resolution": "720p",
    "duration": 6,
    "aspect_ratio": "9:16",
    "audio": true
  },
  "max_cost_usd": 1
}

Prompting Veo 3.1 for sound

  • Quote the dialogue and name the speaker. For example: the woman in the red coat says: "We should go back."
  • List the sounds separately. After describing the picture, describe ambience (rain, traffic, a quiet office) and specific effects (a door closing, footsteps on gravel).
  • Say what you do not want. "No music" or "no dialogue" stops the model filling silence you meant to keep.
  • Fit the words to the length. An 8 second clip has room for one or two short sentences, not a paragraph.
  • Turn sound off when you will replace it. If your editor adds the music and voice-over anyway, set audio to false: Veo 3.1 and Fast then bill the silent rate.

Routing and fallback for Veo 3.1

Veo 3.1 has one route on Revana today, Veo 3.1 Fast has two routes and Veo 3.1 Lite has one route. Where a model has more than one route, the router tries the cheapest route first and moves the job to the next one if it fails or times out. You pay the listed price whichever route serves it, and only once.

With a single route there is nothing to fall back to: if that route fails, the job ends as failed and costs nothing. Handle that case in your app, for example by retrying later or switching to Veo 3.1 Fast.

Compare Veo with other video models on the models page, read the field reference in the docs, or get an API key to run the samples.

Frequently asked questions

How much does the Veo 3.1 API cost?

In October 2026, Veo 3.1 costs $0.20 per second at 720p without sound and $0.40 with sound, so an 8 second 720p clip with sound is $3.20. Veo 3.1 Fast starts from $0.08 per second and Veo 3.1 Lite from $0.05.

Is sound priced separately on Veo 3.1?

On Veo 3.1 and Veo 3.1 Fast, yes: each resolution has a silent rate and a rate with sound. Veo 3.1 Lite has one rate per resolution.

What is the difference between Veo 3.1, Veo 3.1 Fast and Veo 3.1 Lite?

They are Google's three tiers of the same model generation. Veo 3.1 is the flagship; Fast and Lite are lower-cost tiers. On Revana, Fast and Lite also accept up to 3 reference images and an Auto aspect ratio.

How long can a Veo 3.1 video be?

4, 6 or 8 seconds per request, on all three tiers. For longer pieces, generate several clips and edit them together.

Does the Veo 3.1 API support 4K?

Yes. All three tiers list 720p, 1080p and 4K output.

Can Veo 3.1 make vertical video?

Yes. Set aspect_ratio to 9:16. Veo 3.1 Fast and Lite also accept Auto.

Use every Veo 3.1 tier with one key

Switch between Veo 3.1, Fast and Lite by changing one string. Prepaid credit from $10; failed jobs are not charged.