---
title: "Veo 3.1 veo-3.1-fast API — Pricing, code samples | RunAPI"
url: "https://runapi.ai/models/veo-3.1/fast.md"
canonical: "https://runapi.ai/models/veo-3.1/fast.md"
locale: "en"
model: "Veo 3.1"
provider: "Google"
variant_id: "veo-3.1-fast"
sdk_model_id: "veo-3.1-fast"
modality: "video"
price_from_cents: 60
billing_unit: "call"
status: "active"
---

# Veo 3.1 veo-3.1-fast API

Same API, same SDK — switch variants by changing one parameter.

## Pricing

**$0.600** per call

Failed generations are not charged

## Spec sheet

| Field | Value |
|---|---|
| Model ID | `veo-3.1-fast` |
| Provider | Google |
| Modality | video |
| Task type | asynchronous |
| Billing unit | call |
| API endpoint | `/api/v1/veo_3_1/text_to_video` |
| Status | active |

## Install

```sh
npm install @runapi.ai/veo-3-1
```

## Quickstart

```sh
curl -X POST https://api.runapi.ai/api/v1/veo_3_1/text_to_video \
  -H "Authorization: Bearer $RUNAPI_KEY" \
  -H "Content-Type: application/json" \
  -d '{ "model": "veo-3.1-fast", "prompt": "..." }'
```

```js
import RunAPI from "@runapi.ai/veo-3-1";

const client = new RunAPI(process.env.RUNAPI_KEY);
const task = await client.create({
  model: "veo-3.1-fast",
  prompt: "...",
});
```

## FAQ

### Is the model ID stable across versions?

RunAPI keeps the model ID stable and handles compatible version refreshes without changing your request shape.

### What&#39;s the rate limit on this variant?

Per-key rate limits scale with usage tier. See pricing page for current limits.

### Can I switch variants later?

Yes — variant is a flag. Switch by changing the model parameter.

### Does it stream?

Where streaming is available, RunAPI streams end-to-end.

### Where do I report quality issues?

Open an issue on the public GitHub repo or email support.


## Related

Other Veo 3.1 variants:

- [veo-3.1](https://runapi.ai/models/veo-3.1/veo-3.1.md) — `veo-3.1` · $2.50
