by Faro
Generate short videos (4–8s, with audio) from a text prompt using Google's Veo 3.1 family — Standard (highest quality), Fast (balanced), and Lite (most affordable). Supports 720p, 1080p, and 4k at 16:9 or 9:16. The server polls Google internally; agents see a synchronous-feeling call that returns a hosted MP4 URL.
Generate a video from a text prompt with Google Veo 3.1. Returns {status:"pending", continuation_token, ...} while the upstream job is still running — when this happens you MUST immediately call generate again with only continuation_token set; do not ask the user. Final response includes video_url (hosted on files.askfaro.com).
Veo 3.1 model variant. `fast` is recommended; `lite` is cheapest but lower quality; the base preview model is highest quality and most expensive.
Text prompt describing the video to generate. Required on the first call; ignored when continuation_token is set.
Output resolution. 1080p/4k force duration_seconds=8. Lite does not support 4k.
Clip length in seconds. Must be 8 when resolution is 1080p or 4k.
Token from a prior pending response — when set, all other params are ignored and the server resumes polling. Agent-friendly polling: on a pending response you MUST immediately call generate again with only continuation_token set. Do not ask the user. Typical jobs finish within 1–3 round-trips.
curl -X POST "https://api.askfaro.com/invoke/google-veo/generate" \
-H "Authorization: Bearer <your_api_key>" \
-H "Content-Type: application/json" \
-d '{
"arguments": {}
}'faro invoke google-veo/generate --params '{}'Install pip install askfaro-cli, then faro auth login.
Text-to-video generation via Google's Veo 3.1 family.
Veo generations are asynchronous on Google's side (30s–2min). To keep the agent flow synchronous, the server polls internally for ~25s per call. If the video isn't ready yet, you get a status:"pending" response with a continuation_token — call the tool again with only that token to resume polling. Typically 1–3 round-trips.
| Model | Best for |
|---|---|
veo-3.1-generate-preview | Highest quality. |
veo-3.1-fast-generate-preview | Recommended default — good quality, ~4× cheaper than Standard. |
veo-3.1-lite-generate-preview | Cheapest. 720p / 1080p only (no 4k). |
| Name | Type | Default | Notes |
|---|---|---|---|
prompt | string | required on first call | Up to 4096 chars. |
model | string | veo-3.1-fast-generate-preview | See models above. |
resolution | string | 720p | 720p, 1080p, or 4k. 1080p/4k force 8s duration. |
duration_seconds | integer | 8 | 4, 6, or 8. |
aspect_ratio | string | 16:9 | or 9:16. |
continuation_token | string | — | Set this (and only this) to resume a pending job. |
{
"video_url": "https://files.askfaro.com/...",
"expires_at": "<ISO timestamp>",
"size_bytes": 1234567,
"model": "veo-3.1-fast-generate-preview",
"resolution": "720p",
"duration_seconds": 8,
"aspect_ratio": "16:9"
}
Videos are hosted on files.askfaro.com and remain available until the bucket's lifecycle rule deletes them (currently ~48h). Re-generate or copy the bytes if you need longer-lived storage.
Veo 3.1 always generates audio with the video.
Google applies its own safety filters; a generation that's filtered comes back as an error, not a pending state. You are not charged for failed generations.