# Veo 3.1 text to video

Needs prompt. Served by fal.ai.

Veo 3.1 (Google), text to video, served by fal.ai. The OpenAPI schema for the fal-ai/veo3.1 queue. Price: Per second: $0.20 without audio or $0.40 with audio (720p/1080p); 4K $0.40 / $0.60. Asynchronous: returns a request_id; poll fal/status and fetch fal/result with model "fal-ai/veo3.1" and that request_id. Billed once, when the result is ready; a generation that fails is refunded.

- Tool ID: `fal/veo-3-1-text-to-video`
- Name in the catalog: Veo 3.1 (Google), text to video
- Provider: [fal.ai](/providers/fal.md)
- Capability: [Veo 3.1](/tools/video-generation/veo.md)
- Price: usage based, the maximum is shown before a run
- Authentication: an authorised Agentik workspace is required for execution, including zero-price tools.

## Pricing contract

The provider’s price, with no markup. Billed for measured usage.


```json
{
  "model": "per_unit",
  "amountUsd": 0.4,
  "unitsField": "duration",
  "unitsDefault": 8,
  "maxUnits": 8,
  "multipliers": [
    {
      "when": {
        "field": "generate_audio",
        "equals": false
      },
      "setUsd": 0.2
    },
    {
      "all": [
        {
          "field": "resolution",
          "equals": "4k"
        },
        {
          "field": "generate_audio",
          "equals": false
        }
      ],
      "setUsd": 0.4
    },
    {
      "all": [
        {
          "field": "resolution",
          "equals": "4k"
        },
        {
          "field": "generate_audio",
          "truthy": true
        }
      ],
      "setUsd": 0.6
    }
  ]
}
```

Pricing source: [https://fal.ai/models/fal-ai/veo3.1](https://fal.ai/models/fal-ai/veo3.1). Per second: $0.20 without audio or $0.40 with audio (720p/1080p); 4K $0.40 / $0.60..

Price verification date: 2026-10-08.

## Complete input schema


```json
{
  "type": "object",
  "properties": {
    "auto_fix": {
      "default": true,
      "description": "Whether to automatically attempt to fix prompts that fail content policy or other validation checks by rewriting them.",
      "title": "Auto Fix",
      "type": "boolean"
    },
    "duration": {
      "default": "8s",
      "description": "The duration of the generated video.",
      "title": "Duration",
      "type": "string",
      "enum": [
        "4s",
        "6s",
        "8s"
      ]
    },
    "aspect_ratio": {
      "default": "16:9",
      "description": "Aspect ratio of the generated video",
      "title": "Aspect Ratio",
      "type": "string",
      "enum": [
        "16:9",
        "9:16"
      ]
    },
    "prompt": {
      "description": "The text prompt describing the video you want to generate",
      "maxLength": 20000,
      "title": "Prompt",
      "type": "string"
    },
    "resolution": {
      "default": "720p",
      "description": "The resolution of the generated video.",
      "title": "Resolution",
      "type": "string",
      "enum": [
        "720p",
        "1080p",
        "4k"
      ]
    },
    "seed": {
      "type": "integer",
      "description": "The seed for the random number generator.",
      "title": "Seed"
    },
    "negative_prompt": {
      "type": "string",
      "description": "A negative prompt to guide the video generation.",
      "title": "Negative Prompt"
    },
    "safety_tolerance": {
      "default": "4",
      "description": "The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.",
      "title": "Safety Tolerance",
      "type": "string",
      "enum": [
        "1",
        "2",
        "3",
        "4",
        "5",
        "6"
      ]
    },
    "generate_audio": {
      "default": true,
      "description": "Whether to generate audio for the video.",
      "title": "Generate Audio",
      "type": "boolean"
    }
  },
  "required": [
    "prompt"
  ],
  "additionalProperties": false
}
```

## Published example

This is the provider tool’s published example. Replace example values with the user’s requested inputs, respecting the schema; do not execute an example merely to test a connection.


```json
{
  "tool_id": "fal/veo-3-1-text-to-video",
  "input": {
    "prompt": "a red cube slowly rotating on a white table, soft studio light",
    "duration": "4s",
    "resolution": "720p",
    "generate_audio": false
  }
}
```

## Execute and retrieve

Inspect again before execution, explain the price and obtain the required authority. Use MCP run_tool or POST /v1/run with this tool ID, valid input and an idempotency key. Save the returned run ID and follow the actual state. If Agentik answers that the tool is temporarily unavailable, do not retry it blindly; use discovery to propose an alternative.

This tool uses deferred settlement. Follow its returned task/run instructions; preserve the existing reservation until the result is reconciled.

A partial or uncertain result can still have consumed provider resources. Consult [billing](/docs/billing.md), [idempotency](/docs/idempotency.md) and [asynchronous results](/docs/async.md).

[Provider documentation](https://fal.ai/models/fal-ai/veo3.1)

[REST inspection](https://api.agentik.cc/v1/tools/fal/veo-3-1-text-to-video) · [OpenAPI](/openapi.json) · [Connection guide](/connect.md)

---

[HTML page](/providers/fal/veo-3-1-text-to-video) · [Agent index](/llms.txt)
