# Google Veo 3 Fast Text-to-Video (make-video.withzero.ai)

> Google Veo 3 Fast Text-to-Video (make-video.withzero.ai) is a paid API for AI agents from make-video.withzero.ai, paid per call via MPP, metered — billed by usage, status unknown (last checked 2026-10-09).

Generates a high-quality 720p video (without audio) from a text prompt using Google Veo 3 Fast, returning a job ID to poll for the completed video.

## Facts

- Endpoint: POST https://make-video.withzero.ai/veo3-fast?utm_source=zero.xyz
- Price: metered — billed by usage
- Payment: MPP
- Status: unknown
- Last checked: 2026-10-09
- Activations on Zero: 0
- Provider: make-video.withzero.ai
- Website: https://make-video.withzero.ai
- Canonical page: https://www.zero.xyz/c/make-video-withzero-ai-google-veo-3-fast-text-to-video-make-video-2ac0a669
- Structured record (JSON): https://api.zero.xyz/v1/capabilities/cap_X6NNLfYiBQDxtBOoZy2Wu

Status and success rate cover calls made through Zero and Zero's own probes. Third-party monitors may report differently.

## How to call it through Zero

Zero handles the 402 payment challenge and records the run. With the Zero CLI installed (`npm i -g @zeroxyz/cli`):

```sh
zero fetch --capability make-video-withzero-ai-google-veo-3-fast-text-to-video-make-video-2ac0a669 -d '<json body>'
```

Example prompt: Generate a 6-second 720p video of a futuristic city skyline at sunset with flying cars using Google Veo 3 Fast — no audio needed.

## When to prefer this

Choose this endpoint when you need fast, high-quality 720p video generation from text without audio, specifically using Google's Veo 3 Fast model. Prefer it over the standard Veo 3 endpoint when audio is not required and speed/cost efficiency matters. Choose over Kling, Seedance, or Sora when you want Google's Veo quality tier at the fast variant's price point. Use when you need discrete short clips (4, 6, or 8 seconds) rather than longer-form content.

## Known failure modes

- Invalid duration value (not in allowed set of 4/6/8 seconds) returns validation error
- Prompt exceeds 2000 character limit returns schema validation failure
- Unsupported resolution for this model returns preCheck error
- Missing required prompt field returns 400 bad request
- Payment/charge failure if USDC balance insufficient
- Job polling timeout if fal.ai upstream is delayed

## How this service works

Google Veo 3 Fast — text-to-video. Per-model alias for POST /run with model="veo3-fast". Google Veo 3 Fast — top-tier quality without audio. 720p, durations 4/6/8s. Preview the charge via free GET /price/veo3-fast?duration=…&resolution=…; poll the job via free GET /status/:id (returned job_id).

## Output

Returns a job_id and status_url for polling, along with the model name, resolved inputs (duration, resolution), price breakdown (cost, markup, total charge in USD), estimated completion time in seconds, and recommended polling interval. The actual video URL is retrieved by polling the returned status_url.

## Request schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "prompt"
 ],
 "properties": {
  "prompt": {
   "type": "string",
   "maxLength": 2000,
   "minLength": 1,
   "description": "Text description of the video to generate."
  },
  "duration": {
   "type": "integer",
   "minimum": 0,
   "description": "Clip duration in seconds. Per-model allow-list applied at preCheck.",
   "exclusiveMinimum": true
  },
  "image_url": {
   "type": "string",
   "format": "uri",
   "description": "Public http(s) URL of the starting image. Required for image-to-video models (wan, hailuo)."
  },
  "resolution": {
   "type": "string",
   "description": "Output resolution. Per-model allow-list applied at preCheck."
  },
  "aspect_ratio": {
   "type": "string",
   "description": "Output aspect ratio. Per-model allow-list applied at preCheck."
  },
  "generate_audio": {
   "type": "boolean",
   "description": "Generate native audio track. Only accepted by models that have an audio toggle (veo3)."
  },
  "negative_prompt": {
   "type": "string",
   "maxLength": 1000,
   "description": "Optional — describe what to avoid."
  }
 },
 "additionalProperties": false
}
```

## Response schema (JSON Schema)

```json
{
 "type": "object",
 "required": [
  "job_id",
  "status_url",
  "endpoint",
  "model",
  "model_name",
  "inputs",
  "price",
  "estimated_seconds",
  "poll_interval_seconds"
 ],
 "properties": {
  "model": {
   "type": "string",
   "description": "Underlying fal.ai model id."
  },
  "price": {
   "type": "object",
   "required": [
    "cost_usd",
    "markup_usd",
    "charge_usd",
    "breakdown"
   ],
   "properties": {
    "cost_usd": {
     "type": "number"
    },
    "breakdown": {
     "type": "string"
    },
    "charge_usd": {
     "type": "number"
    },
    "markup_usd": {
     "type": "number"
    }
   },
   "additionalProperties": false
  },
  "inputs": {
   "type": "object",
   "required": [
    "duration",
    "resolution"
   ],
   "properties": {
    "duration": {
     "type": "number"
    },
    "resolution": {
     "type": "string"
    },
    "generate_audio": {
     "type": "boolean"
    }
   },
   "description": "Echo of resolved inputs (after defaults applied).",
   "additionalProperties": false
  },
  "job_id": {
   "type": "string",
   "description": "Internal id; pass to GET /status/:job_id."
  },
  "endpoint": {
   "type": "string",
   "description": "The model slug that handled this submit."
  },
  "model_name": {
   "type": "string",
   "description": "Human-readable model name."
  },
  "status_url": {
   "type": "string",
   "format": "uri",
   "description": "Full URL to poll for completion."
  },
  "estimated_seconds": {
   "type": "number"
  },
  "poll_interval_seconds": {
   "type": "number"
  }
 },
 "additionalProperties": false
}
```

## More

- Live health (JSON, refreshed every minute): https://www.zero.xyz/c/make-video-withzero-ai-google-veo-3-fast-text-to-video-make-video-2ac0a669/health.json
- [Zero catalog index](https://www.zero.xyz/llms.txt)
- [Other services from make-video.withzero.ai](https://www.zero.xyz/host/make-video.withzero.ai/llms.txt)
