Crazyrouter GuidesMain Site
Video API Guide

Veo 3.1 API guide

This page covers the two public Veo aliases returned by the Pricing API: veo-3.1-fast and veo-3.1. The public contract is text-to-video and single-image-to-video through the unified video API.

Use case

Developers comparing Veo API options need to know which public aliases are exposed, whether the public contract covers their use case, and what per-second pricing rules apply.

Standard model names and pricing

Source: GET https://cn.crazyrouter.com/api/pricing, snapshot 2026-06-06.

POST /v1/video/create
veo-3.1-fast
$0.10/second
Billing: per_second
Public endpoints: unified-video
Supported endpoints: gemini, openai
Rule: t2v, 720p, verified
veo-3.1
$0.20/second
Billing: per_second
Public endpoints: unified-video
Supported endpoints: gemini, openai
Rule: t2v, 720p, verified

Available models and pricing

The current Pricing API returns veo-3.1-fast and veo-3.1 with public_endpoint_types set to unified-video and billing mode per_second.

  • veo-3.1-fast: $0.10/second; public_endpoint_types = unified-video.
  • veo-3.1: $0.20/second; public_endpoint_types = unified-video.

Current public contract

The public Veo guide currently covers text-to-video and single-image-to-video. For reference assets, start/end frames, audio-enabled rows, or 4K output, check the current Veo docs and pricing rules before adding them to a production workflow.

  • Creation: POST https://cn.crazyrouter.com/v1/video/create.
  • Query: GET https://cn.crazyrouter.com/v1/video/query?id={task_id}.
  • Recommended first test: one text prompt, 16:9, 720P, short duration.

Fast versus quality decision

Use veo-3.1-fast when time to first result matters. Use veo-3.1 when the output quality is more important than generation cost or latency.

cn.crazyrouter.com test evidence

Only checks that returned 200 are shown here. API requests use https://cn.crazyrouter.com; account, billing, and console actions use https://crazyrouter.com.

CheckRequestStatusResult
Pricing API reachableGET https://cn.crazyrouter.com/api/pricing200Returned the public model pricing catalog used by these pages.
Target models visible to API keyGET https://cn.crazyrouter.com/v1/models200Authenticated check confirmed gpt-image-2, veo-3.1-fast, veo-3.1, nano-banana-2, nano-banana-pro, nano-banana, grok-4-image, qwen-image-plus, qwen-image-max, and qwen-image-2.0 are visible to the local Crazyrouter API key.

Implementation examples

cURL
curl -X POST https://cn.crazyrouter.com/v1/video/create \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -d '{
    "model": "veo-3.1",
    "prompt": "A cinematic shot of a spaceship landing on Mars, dust clouds rising",
    "aspect_ratio": "16:9",
    "size": "720P"
  }'
Python
import requests

response = requests.post(
    "https://cn.crazyrouter.com/v1/video/create",
    headers={
        "Content-Type": "application/json",
        "Authorization": "Bearer YOUR_API_KEY",
    },
    json={
        "model": "veo-3.1",
        "prompt": "A cinematic shot of a spaceship landing on Mars, dust clouds rising",
        "aspect_ratio": "16:9",
        "size": "720P",
    },
    timeout=240,
)

print(response.json())

FAQ

Where do these model prices come from?

Prices are based on GET https://cn.crazyrouter.com/api/pricing and the current Crazyrouter pricing catalog. For final billing, confirm usage in the Crazyrouter console and consumption logs.

Can I test this without an API key?

Start by checking the public pricing endpoint. To list models or make model calls, create an API key at https://crazyrouter.com and send it as Bearer authorization.

Is Veo billed per request or per generated second?

The current Pricing API marks both veo-3.1-fast and veo-3.1 as per_second models. The cost calculator on this site uses seconds as the default input for these models.