# Veo 3.1 API (Google)

> Google Veo 3.1 generates 4–8 second cinematic videos with synchronized dialogue, effects and ambience at 720p, 1080p or 4K, from text or a first and last frame.

Page: https://cheapergen.com/models/google/veo-3.1 · API reference: https://cheapergen.com/models/google/veo-3.1/api

## Pricing
Official list price source: Google Cloud Vertex AI list price for veo-3.1-generate-001 ($0.40 / s with audio, $0.20 / s video only at 720p–1080p; 4K $0.60 / $0.40). Prices verified 2026-10-16.

| Tier | Official | Cheaper Gen. | Save |
|---|---|---|---|
| 720p + audio | $0.4000/s | $0.1719/s | 57% |
| 720p | $0.2000/s | $0.1760/s | 12% |
| 1080p + audio | $0.4000/s | $0.3520/s | 12% |
| 1080p | $0.2000/s | $0.1760/s | 12% |
| 4K + audio | $0.6000/s | $0.5280/s | 12% |
| 4K | $0.4000/s | $0.3520/s | 12% |

## Specs
- Resolutions: 720p · 1080p · 4K
- Duration: 4, 6 or 8 s
- Aspect ratios: 16:9 · 9:16
- Frame rate: 24 fps
- Audio: Optional (billed higher)

## Endpoints

### Text to Video — `POST https://cheapergen.com/api/v1/run/google/veo-3.1/text-to-video`

| Param | Type | Required | Description |
|---|---|---|---|
| prompt | string | yes | Describe the shot: subject, action, camera movement, lighting and style. |
| aspect_ratio | string (enum) (16:9, 9:16) | no | Landscape or portrait. |
| resolution | string (enum) (720p, 1080p, 4k) | no | Output resolution. 1080p and 4K clips are always 8 seconds; 4K costs more per second. |
| duration | integer (enum) (4, 6, 8) | no | Clip length: 4, 6 or 8 seconds at 720p (1080p and 4K are always 8 s). You pay per second. |
| generate_audio | boolean | no | Generate synchronized sound, ambience and dialogue. Clips with audio are billed at a higher per-second rate. |
| negative_prompt | string | no | Things to avoid in the output. |
| seed | integer | no | Use the same seed and settings to reproduce a result. Leave empty for random. |

```bash
curl -X POST https://cheapergen.com/api/v1/run/google/veo-3.1/text-to-video \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "A tide pool at sunrise, a tiny crab scuttles across glistening rocks, macro lens, gentle waves and gull calls",
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 8
}'
```

### Image to Video — `POST https://cheapergen.com/api/v1/run/google/veo-3.1/image-to-video`

| Param | Type | Required | Description |
|---|---|---|---|
| prompt | string | yes | Describe the shot: subject, action, camera movement, lighting and style. |
| image_url | string (URL) | yes | Image used as the opening frame. JPG/PNG/WebP, URL or upload. |
| end_image_url | string (URL) | no | Optional closing frame — the model animates between the two. |
| aspect_ratio | string (enum) (16:9, 9:16) | no | Landscape or portrait. |
| resolution | string (enum) (720p, 1080p, 4k) | no | Output resolution. 1080p and 4K clips are always 8 seconds; 4K costs more per second. |
| duration | integer (enum) (4, 6, 8) | no | Clip length: 4, 6 or 8 seconds at 720p (1080p and 4K are always 8 s). You pay per second. |
| generate_audio | boolean | no | Generate synchronized sound, ambience and dialogue. Clips with audio are billed at a higher per-second rate. |
| negative_prompt | string | no | Things to avoid in the output. |
| seed | integer | no | Use the same seed and settings to reproduce a result. Leave empty for random. |

```bash
curl -X POST https://cheapergen.com/api/v1/run/google/veo-3.1/image-to-video \
  -H "Authorization: Bearer $CHEAPERGEN_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "prompt": "The camera slowly pushes in as steam rises from the cup and rain streaks the window",
  "image_url": "https://cdn.cheapergen.ai/samples/portrait.jpg",
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "duration": 8
}'
```

## Getting the result
Jobs are async. Poll `GET https://cheapergen.com/api/v1/generations/{id}` until status is succeeded/failed/canceled, or pass `webhook_url`. Failed generations are refunded automatically.

## FAQ
**How is Veo 3.1 priced?**
Veo 3.1 is billed per second of output video, at Google's rates for the chosen resolution, with a higher rate when native audio is on. Clips are 4, 6 or 8 seconds at 720p; 1080p and 4K clips are always 8 seconds. Failed generations are never charged.

**Is this the official Veo 3.1 model?**
Yes. Requests run on Google's Veo 3.1 through an official Google Cloud channel — the same model as the Gemini API and Vertex AI, at a lower price.

**Does it support first and last frames?**
Yes — image-to-video animates a first frame, and can interpolate to an optional last frame.

**Can I use the output commercially?**
Yes, subject to Google's Generative AI terms and our Terms of Service. Every Veo video carries Google's invisible SynthID watermark.

Veo 3.1 is developed by Google. Cheaper Gen. provides API access and does not own the model.