> ## Documentation Index
> Fetch the complete documentation index at: https://docs.routerbase.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Google Veo 3.1 API

> Quickstart for Google Veo 3.1 — high-quality video generation from text or image prompts.

## Overview

**Google Veo 3.1** is the current GA video-generation model from Google,
available on RouterBase. It generates 720p / 1080p video at 4–8 second
durations with optional Gemini-synthesized audio. Two tasks are
exposed: text-to-video and image-to-video.

|                     |                                   |
| ------------------- | --------------------------------- |
| **Provider**        | Google                            |
| **Family**          | `veo-3-1-novita`                  |
| **Modality**        | Video                             |
| **Supported tasks** | `text-to-video`, `image-to-video` |

## Endpoint

```http theme={null}
POST https://routerbase.com/v1/videos/generations
```

This is an **async** endpoint. The POST returns immediately with
`{id, status: "pending"}`; poll `GET /v1/videos/generations/{id}`
until `status` is `success` (with `data: [{url}]`) or `failed`.

## Playground

Try Google Veo 3.1 live without writing code:

* [Image-to-Video](https://routerbase.com/models/google/veo-3-1/image-to-video)
* [Text-to-Video](https://routerbase.com/models/google/veo-3/text-to-video)

## Supported Tasks

* [`image-to-video`](/google-veo-3-1-api/image-to-video) — animate a
  still image from a text prompt. The active model is also reachable
  via the `google/veo-3-1-i2v-novita` model id.
* [`text-to-video`](/google-veo-3-1-api/text-to-video) — generate a
  clip from a text prompt only. Reachable via
  `google/veo-3-preview-t2v-novita`; the id retains the legacy
  `preview` slug, but the underlying upstream is the GA Veo 3.1
  text-to-video endpoint.

## Pricing

Both tasks price along the same two dimensions — `duration_seconds`
and `generate_audio` — so the per-call cost depends on which tier
the request lands in.

| Duration × audio | Image-to-Video | Text-to-Video |
| ---------------- | -------------- | ------------- |
| 4s, audio off    | \$0.76         | —             |
| 4s, audio on     | \$1.52         | —             |
| 6s, audio off    | \$1.14         | —             |
| 6s, audio on     | \$2.28         | —             |
| 8s, audio off    | \$1.52         | \$1.52        |
| 8s, audio on     | \$3.04         | \$3.04        |

(Text-to-Video on this model is fixed at 8s; the text-to-video form
hides the duration control accordingly.)

## Authentication

All requests require a Bearer token — create one at
[routerbase.com/api-key](https://routerbase.com/api-key).

```bash theme={null}
curl https://routerbase.com/v1/videos/generations \
  -H "Authorization: Bearer $ROUTERBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model": "<model-id>", "prompt": "…"}'
```
