> ## 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 — Text to Video

> Generate a high-quality 8s video from a text prompt with Google Veo 3.1.

|              |                                   |
| ------------ | --------------------------------- |
| **Model ID** | `google/veo-3-preview-t2v-novita` |
| **Family**   | `veo-3-preview-novita`            |
| **Task**     | `text-to-video`                   |
| **Modality** | Video                             |

<Note>
  The `preview` slug is legacy — the upstream endpoint behind this
  model id is now the GA Veo 3.1 text-to-video endpoint
  (`async/veo-3.1-generate-text2video`). The id, URL slug, and
  pricing tier didn't change so existing integrations keep working.
</Note>

## Endpoint

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

Async — returns `{id, status: "pending"}`; poll
`GET /v1/videos/generations/{id}` until `success` or `failed`.

## Parameters

<ParamField body="prompt" type="string" required>
  Text prompt describing the desired video.
</ParamField>

<ParamField body="resolution" type="&#x22;720p&#x22; | &#x22;1080p&#x22;" default="&#x22;720p&#x22;">
  Output resolution.
</ParamField>

<ParamField body="sound" type="boolean" default="false">
  Whether to include Gemini-synthesized audio. The audio-on tier is
  $3.04, audio-off is $1.52.
</ParamField>

<ParamField body="duration_seconds" type="integer" default="8">
  Server-side constant for this model — Veo 3.1 text-to-video at
  RouterBase is fixed at 8s. Submit-time defaults are filled in by
  the schema's hidden constants; don't set this from your client.
</ParamField>

## Example

```bash theme={null}
curl https://routerbase.com/v1/videos/generations \
  -H "Authorization: Bearer $ROUTERBASE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "google/veo-3-preview-t2v-novita",
    "prompt": "a calm beach at sunrise, gentle waves",
    "resolution": "720p",
    "sound": false
  }'
```

```json theme={null}
{ "id": "xyz789…", "status": "pending", "model": "google/veo-3-preview-t2v-novita" }
```

```bash theme={null}
curl https://routerbase.com/v1/videos/generations/xyz789… \
  -H "Authorization: Bearer $ROUTERBASE_API_KEY"
```

```json theme={null}
{
  "id": "xyz789…",
  "status": "success",
  "data": [{ "url": "https://…mp4" }]
}
```

<Note>
  Try it live in the
  [Playground](https://routerbase.com/models/google/veo-3/text-to-video).
</Note>
