Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.runflow.io/llms.txt

Use this file to discover all available pages before exploring further.

Pricing: $0.2/second. Endpoint: POST /v1/models/google/veo3.1/runs.
Veo 3.1 by Google, the most advanced AI video generation model in the world. With sound on!

Overview

Pricing

  • Base price: $0.2/second
  • Note: Without audio

Veo 3.1 API

Endpoint: POST /v1/models/google/veo3.1/runs

Run the model

Python

import requests

response = requests.post(
    "https://api.runflow.io/v1/models/google/veo3.1/runs",
    headers={"Authorization": "Bearer RUNFLOW_API_KEY"},
    json={
        "input": {
            "prompt": "An astronaut in a white spacesuit with gold visor steps off a lander's bottom rung onto the surface of Mars. Their boot presses slowly into fine rust-red Martian dust, leaving a crisp bootprint. Red dust particles float upward in the low gravity, suspended in the thin atmosphere. The astronaut straightens up and looks toward the horizon - a vast, barren landscape of red-orange sand dunes and distant mountains under a butterscotch-pink sky. The small irregular moon Phobos is visible near the horizon. The astronaut's radio crackles and a voice says with emotion: 'Houston... it is even more beautiful than we imagined.' Wind-blown dust drifts past. 4K cinematic, anamorphic lens flare from the distant sun. Epic, historic moment.",
            "duration": "8s",
            "resolution": "4k",
            "aspect_ratio": "16:9",
            "generate_audio": True
        },
        "callback_url": "https://your-server.com/webhook"
    },
)

data = response.json()
print(data)

Node.js

const response = await fetch(
  "https://api.runflow.io/v1/models/google/veo3.1/runs",
  {
    method: "POST",
    headers: {
      "Authorization": "Bearer RUNFLOW_API_KEY",
      "Content-Type": "application/json",
    },
    body: JSON.stringify({
        "input": {
            "prompt": "An astronaut in a white spacesuit with gold visor steps off a lander's bottom rung onto the surface of Mars. Their boot presses slowly into fine rust-red Martian dust, leaving a crisp bootprint. Red dust particles float upward in the low gravity, suspended in the thin atmosphere. The astronaut straightens up and looks toward the horizon - a vast, barren landscape of red-orange sand dunes and distant mountains under a butterscotch-pink sky. The small irregular moon Phobos is visible near the horizon. The astronaut's radio crackles and a voice says with emotion: 'Houston... it is even more beautiful than we imagined.' Wind-blown dust drifts past. 4K cinematic, anamorphic lens flare from the distant sun. Epic, historic moment.",
            "duration": "8s",
            "resolution": "4k",
            "aspect_ratio": "16:9",
            "generate_audio": true
        },
        "callback_url": "https://your-server.com/webhook"
    }),
  }
);

const data = await response.json();
console.log(data);

cURL

curl -X POST https://api.runflow.io/v1/models/google/veo3.1/runs \
  -H "Authorization: Bearer $RUNFLOW_API_KEY" \
  -H "Content-Type: application/json" \
  --data-binary @- <<'JSON'
{
    "input": {
        "prompt": "An astronaut in a white spacesuit with gold visor steps off a lander's bottom rung onto the surface of Mars. Their boot presses slowly into fine rust-red Martian dust, leaving a crisp bootprint. Red dust particles float upward in the low gravity, suspended in the thin atmosphere. The astronaut straightens up and looks toward the horizon - a vast, barren landscape of red-orange sand dunes and distant mountains under a butterscotch-pink sky. The small irregular moon Phobos is visible near the horizon. The astronaut's radio crackles and a voice says with emotion: 'Houston... it is even more beautiful than we imagined.' Wind-blown dust drifts past. 4K cinematic, anamorphic lens flare from the distant sun. Epic, historic moment.",
        "duration": "8s",
        "resolution": "4k",
        "aspect_ratio": "16:9",
        "generate_audio": true
    },
    "callback_url": "https://your-server.com/webhook"
}
JSON

Request parameters

ParameterTypeRequiredDescription
inputobjectrequiredModel input parameters. See “Input schema” below.
callback_urlstring | nulloptionalWebhook URL - POSTed when the run reaches a terminal state.
metadataobject | nulloptionalArbitrary key-value pairs attached to the run.

Input schema

FieldTypeRequiredAllowed valuesDescription
promptstringrequiredAnyThe text prompt describing the video you want to generate
auto_fixbooleanoptionalAnyWhether to automatically attempt to fix prompts that fail content policy or other validation checks by rewriting them.
durationstringoptional4s, 6s, 8sThe duration of the generated video.
generate_audiobooleanoptionalAnyWhether to generate audio for the video.
resolutionstringoptional720p, 1080p, 4kThe resolution of the generated video.
aspect_ratiostringoptional16:9, 9:16Aspect ratio of the generated video
safety_tolerancestringoptional1, 2, 3, 4, 5, 6The safety tolerance level for content moderation. 1 is the most strict (blocks most content), 6 is the least strict.
seedintegeroptionalAnyThe seed for the random number generator.
negative_promptstringoptionalAnyA negative prompt to guide the video generation.

Output schema

FieldTypeDescription
outputsjsonUnified output array - one entry per generated artifact with url/type/width/height/duration/etc.
nsfw_detectedjsontrue if the provider flagged output as NSFW, false if cleared, null if not checked.
seedjsonDeterministic seed used for generation, or null if the provider doesn’t return one.
timingjsonProvider timing info (inference_ms etc.), or null.

Callback payload

When you provide a callback_url, Runflow POSTs to it once the run reaches a terminal state.
FieldTypeDescription
eventstringEvent type: “run.completed”, “run.failed”, or “run.cancelled”.
run_idstringThe unique identifier of the run.
statusstringTerminal status: “succeeded”, “failed”, or “cancelled”.
outputobject | nullThe run output. Null if the run failed or was cancelled.
duration_msnumber | nullTotal run duration in milliseconds.
created_atstring | nullISO 8601 timestamp when the run was created.
completed_atstring | nullISO 8601 timestamp when the run reached terminal state.
metadataobject | nullThe metadata object passed at run creation, if any.
  • Retries: 3 attempts with exponential backoff (1s, 2s). Retries on 5xx / network errors only.
  • Headers: Runflow-Request-Id is always sent. Runflow-Signature is sent if a signing secret is configured.

Additional Resources

Browse all models

Browse the catalog.

Run lifecycle

Callbacks, polling, statuses.

Callbacks

Handle async results.

Pricing

How requests bill out.