Video generation
Veo 3.1
Veo 3.1 is Google's state-of-the-art model for generating high-fidelity, 8-second 720p, 1080p or 4k videos featuring stunning realism and natively generated audio.
From $0.21 per second · 720p, 1080p and 4K · 4, 6 or 8 seconds · Optional audio · MP4 kept 24 hours
Price per second
- 720p · 1280 × 720
- $0.21
- $0.42 with audio
- 1080p · 1920 × 1080
- $0.21
- $0.42 with audio
- 4K · 3840 × 2160
- $0.42
- $0.63 with audio
Includes the 5% MiniRouter fee. The final charge uses the provider’s actual cost for the delivered video and stays within your reserved hold. MiniRouter absorbs any overrun. Failed jobs are free.
Estimate your credit hold
Credit is reserved when the job starts. The final charge may be lower.
Estimated hold
Your length plus 1 second at the per-second price, including the 5% fee. Unused credit is released.
Use the Videos API
Set MINIROUTER_API_KEY to your inference key. Each example starts a job, polls it and saves the MP4.
VIDEO_ID=$(curl --fail-with-body --retry 0 -sS https://api.minirouter.sh/v1/videos \
-H "Authorization: Bearer $MINIROUTER_API_KEY" \
-H 'Content-Type: application/json' \
--data '{
"model": "google/veo-3.1-generate-001",
"prompt": "A paper boat drifting down a rainy city street, cinematic.",
"seconds": 4,
"size": "1280x720"
}' | jq -r .id)
until curl --fail-with-body -sS "https://api.minirouter.sh/v1/videos/$VIDEO_ID" \
-H "Authorization: Bearer $MINIROUTER_API_KEY" \
| jq -e '.status == "completed" or .status == "failed"' > /dev/null; do sleep 10; done
curl --fail-with-body -sS -o video.mp4 "https://api.minirouter.sh/v1/videos/$VIDEO_ID/content" \
-H "Authorization: Bearer $MINIROUTER_API_KEY"Retries are off, so a dropped connection cannot start a second job. The MP4 stays available for 24 hours after the job completes.
Supported operations
- Start a job
- POST /v1/videos
- JSON or multipart fields: model, prompt, seconds, size and optional audio. Prompts up to 2,000 characters.
- Check status
- GET /v1/videos/{id}
- Poll until the status is completed or failed.
- Download
- GET /v1/videos/{id}/content
- Streams the MP4 for 24 hours after the job completes.