Skip to content
Google logo

Veo 3.1

Text-to-Video • Google

View as MarkdownAgent setup
  • Third-party
  • Zero data retention

Google's latest video generation model with improved quality, motion, and audio generation.

Model Info
Terms and Licenselink ↗
More informationlink ↗
Zero data retentionYes
Pricing
  • Default (per second)$0.40
  • @720p (per second)$0.20
  • @1080p (per second)$0.20
  • @4k (per second)$0.40
  • @720p w/ audio (per second)$0.40
  • @1080p w/ audio (per second)$0.40
  • @4k w/ audio (per second)$0.60

Usage

const response = await env.AI.run(
  'google/veo-3.1',
  {
    prompt:
      'A majestic eagle soaring over snow-capped mountains, tracking shot following the bird as it glides through clouds',
    aspect_ratio: '16:9',
    duration: '8s',
    generate_audio: true,
    resolution: '1080p',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/veo-3.1",
  "input": {
    "prompt": "A majestic eagle soaring over snow-capped mountains, tracking shot following the bird as it glides through clouds",
    "aspect_ratio": "16:9",
    "duration": "8s",
    "generate_audio": true,
    "resolution": "1080p"
  }
}'
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/nature-documentary.mp4"
  },
  "state": "Completed"
}

Examples

Urban Time-lapse — City life time-lapse video
const response = await env.AI.run(
  'google/veo-3.1',
  {
    prompt:
      'A time-lapse of a busy city intersection at night, car lights creating streaks, people walking in fast motion',
    aspect_ratio: '16:9',
    duration: '6s',
    generate_audio: true,
    resolution: '1080p',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/veo-3.1",
  "input": {
    "prompt": "A time-lapse of a busy city intersection at night, car lights creating streaks, people walking in fast motion",
    "aspect_ratio": "16:9",
    "duration": "6s",
    "generate_audio": true,
    "resolution": "1080p"
  }
}'
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/urban-time-lapse.mp4"
  },
  "state": "Completed"
}
Abstract Art — Abstract motion graphics
const response = await env.AI.run(
  'google/veo-3.1',
  {
    prompt:
      'Colorful ink drops falling into water in slow motion, creating organic swirling patterns',
    aspect_ratio: '16:9',
    duration: '6s',
    generate_audio: false,
    resolution: '720p',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/veo-3.1",
  "input": {
    "prompt": "Colorful ink drops falling into water in slow motion, creating organic swirling patterns",
    "aspect_ratio": "16:9",
    "duration": "6s",
    "generate_audio": false,
    "resolution": "720p"
  }
}'
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/abstract-art.mp4"
  },
  "state": "Completed"
}
Food Video — Appetizing food footage
const response = await env.AI.run(
  'google/veo-3.1',
  {
    prompt: 'Melted chocolate being poured over fresh strawberries in slow motion, rich and glossy',
    aspect_ratio: '9:16',
    duration: '4s',
    generate_audio: true,
    resolution: '1080p',
  },
)
console.log(response)
curl https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/ai/run \
  --header "Authorization: Bearer $CLOUDFLARE_API_TOKEN" \
  --header "Content-Type: application/json" \
  --data '{
  "model": "google/veo-3.1",
  "input": {
    "prompt": "Melted chocolate being poured over fresh strawberries in slow motion, rich and glossy",
    "aspect_ratio": "9:16",
    "duration": "4s",
    "generate_audio": true,
    "resolution": "1080p"
  }
}'
{
  "gatewayMetadata": {
    "keySource": "Unified"
  },
  "result": {
    "video": "https://pub-04a6d208d361438ea01b797e6973bd19.r2.dev/catalog/google__veo-3.1/food-video.mp4"
  },
  "state": "Completed"
}

Parameters

prompt
stringrequiredText prompt describing the video to generate
image_input
stringBase64-encoded reference image for i2v
duration
stringrequireddefault: 6senum: 4s, 6s, 8sVideo duration
aspect_ratio
stringrequireddefault: 16:9enum: 16:9, 9:16, 1:1Video aspect ratio
resolution
stringrequireddefault: 720penum: 720p, 1080pVideo resolution
generate_audio
booleanrequireddefault: trueWhether to generate audio with the video
video
stringformat: uriURL to the generated video

API Schemas (Raw)

Input
Output

Was this helpful?