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

# Text to Video

> Veo 3 Text-to-Video — Generate videos from text descriptions

Use Google Veo 3.1 to generate high-quality videos from text descriptions. Supports multiple speed modes.

### Available Models

`veo3` · `veo3_fast` · `veo3_lite`

### Speed Modes

<AccordionGroup>
  <Accordion title="Quality Mode (Default) — veo3">
    Best generation quality. Recommended for most use cases.
  </Accordion>

  <Accordion title="Fast Mode — veo3_fast">
    Optimized for speed. Ideal for time-sensitive scenarios.
  </Accordion>

  <Accordion title="Lite Mode — veo3_lite">
    Lightweight variant at 720p output. Lowest cost per video, ideal for drafts and high-volume use. Does not support 4K/1080p upscaling — `resolution` is ignored if provided.
  </Accordion>
</AccordionGroup>

<ParamField body="model" type="string" required>
  Model name, e.g. `veo3`, `veo3_fast`, `veo3_lite`.
</ParamField>

<ParamField body="callBackUrl" type="string">
  Webhook callback URL.
</ParamField>

<ParamField body="input" type="object" required>
  <Expandable title="properties" defaultOpen>
    <ParamField body="prompt" type="string" required>
      Prompt describing the video you want to generate.
    </ParamField>

    <ParamField body="ratio" type="string">
      Video aspect ratio. Options: `16:9`, `9:16`. Default: `16:9`.
    </ParamField>

    <ParamField body="resolution" type="string">
      Resolution upscale. Options: `1080p`, `4k`. Default: standard resolution (no upscale).
    </ParamField>

    <ParamField body="duration" type="integer">
      Video length in seconds. Options: `4`, `6`, `8`. Default: `8`.

      Credits scale linearly with duration: a 4-second video costs half of an 8-second video at the same resolution and mode. See pricing page for the exact rate per tier.

      Notes:

      * `r2v` mode supports only `8` seconds (4/6 will silently fall back to 8 with a warning).
      * `i2v` (single-image) Quality tier supports only `8` seconds; pick `i2v-fl` (first+last frame) if you need 4s/6s at Quality.
    </ParamField>
  </Expandable>
</ParamField>

<RequestExample>
  ```bash Quality Mode (Default) theme={null}
  curl --request POST \
    --url https://api.maxapi.io/api/v1/task/submit \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "model": "veo3",
    "callBackUrl": "https://example.com/webhook",
    "input": {
      "prompt": "Ocean waves crashing on a rocky shore at golden hour",
      "ratio": "16:9",
      "resolution": "1080p"
    }
  }'
  ```

  ```bash Fast Mode theme={null}
  curl --request POST \
    --url https://api.maxapi.io/api/v1/task/submit \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "model": "veo3_fast",
    "callBackUrl": "https://example.com/webhook",
    "input": {
      "prompt": "Ocean waves crashing on a rocky shore at golden hour",
      "ratio": "9:16",
      "resolution": "1080p"
    }
  }'
  ```

  ```bash Lite Mode (720p only) theme={null}
  curl --request POST \
    --url https://api.maxapi.io/api/v1/task/submit \
    --header 'Authorization: Bearer <token>' \
    --header 'Content-Type: application/json' \
    --data '{
    "model": "veo3_lite",
    "callBackUrl": "https://example.com/webhook",
    "input": {
      "prompt": "Ocean waves crashing on a rocky shore at golden hour",
      "ratio": "16:9"
    }
  }'
  ```
</RequestExample>

<ResponseExample>
  ```json 200 Submitted successfully theme={null}
  {
    "code": 0,
    "msg": "ok",
    "data": {
      "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890"
    }
  }
  ```
</ResponseExample>

***

## Query Result

Retrieve the generation result via the [Query Task](/api-reference/query-task) endpoint or Webhook:

```json theme={null}
{
  "code": 0,
  "msg": "ok",
  "data": {
    "taskId": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
    "status": "SUCCESS",
    "input": {
      "model": "veo3",
      "prompt": "Ocean waves crashing on a rocky shore at golden hour",
      "ratio": "16:9",
      "resolution": "1080p"
    },
    "result": {
      "type": "video",
      "urls": [
        "https://example.com/output/video-a1b2c3d4.mp4"
      ]
    },
    "created_at": "2026-02-12T10:00:00.000000Z",
    "updated_at": "2026-02-12T10:02:30.000000Z"
  }
}
```

<Note>
  Veo 3 returns 1 video per generation. The video typically lasts 5-8 seconds. No `mode` parameter needed — the system auto-detects based on image count.
</Note>
