> ## Documentation Index
> Fetch the complete documentation index at: https://docs.modelhunter.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Text to Video

> Generate a video from text using Veo 3.1.

## Body Parameters

<ParamField body="model" type="string" required>
  Veo model to use. In this phase:

  * `veo3` — billed at `$3.20` per request
  * `veo3_fast` — billed at `$1.20` per request

  This endpoint currently bills a fixed default `8s` clip.
</ParamField>

<ParamField body="input" type="object" required>
  Input parameters for the generation.

  <Expandable title="properties">
    <ParamField body="prompt" type="string" required>
      Text description of the video to generate.
    </ParamField>

    <ParamField body="aspect_ratio" type="string" default="16:9">
      Output aspect ratio. Options: `16:9`, `9:16`, `Auto`.
    </ParamField>

    <ParamField body="seed" type="number">
      Optional deterministic seed. Must be an integer between `10000` and `99999`.
    </ParamField>

    <ParamField body="enable_translation" type="boolean">
      Enable upstream prompt translation before generation.
    </ParamField>

    <ParamField body="watermark" type="string">
      Optional watermark mode passed through to the upstream Veo provider.
    </ParamField>
  </Expandable>
</ParamField>

<ParamField body="webhookUrl" type="string">
  URL to receive a webhook when the task completes.
</ParamField>

<ParamField body="metadata" type="object">
  Custom key-value metadata to attach to the task.
</ParamField>

<ResponseExample>
  ```json 202 theme={null}
  {
    "success": true,
    "data": {
      "id": "task_veo_t2v_123",
      "status": "pending",
      "type": "text-to-video",
      "provider": "veo",
      "model": "veo3",
      "created_at": "2026-03-14T10:00:00Z",
      "estimated_seconds": 180
    }
  }
  ```

  ```json 400 theme={null}
  {
    "success": false,
    "error": {
      "code": "VALIDATION_ERROR",
      "message": "input.prompt is required"
    }
  }
  ```
</ResponseExample>
