Skip to content

Generate Veo3.1 Video

POST

/api/v1/veo/generate

Veo 3.1 Generation API #

Our Veo 3.1 Generation API is more than a direct wrapper around Google's baseline. It layers extensive optimisation and reliability tooling on top of the official models, giving you greater flexibility and markedly higher success rates - 25% of the official Google pricing (see kie.ai/pricing for full details).

CapabilityDetails
ModelsVeo 3.1 Quality - flagship model, highest fidelity• Veo 3.1 Fast - cost-efficient variant that still delivers strong visual results• Veo 3.1 Lite - most cost-effective model for high-volume generation
TasksText → VideoImage → Video (single reference frame or first and last frames)• Material → Video (based on material images)
Generation ModesTEXT_2_VIDEO - Text-to-video: using text prompts only• FIRST_AND_LAST_FRAMES_2_VIDEO - First and last frames to video: generate transition videos using one or two images• REFERENCE_2_VIDEO - Material-to-video: based on material images ( Fast model only, supports 16:9 & 9:16)
Aspect RatiosSupports both native 16:9 and 9:16 outputs. Auto mode lets the system decide aspect ratio based on input materials and internal strategy (for production control, we recommend explicitly setting aspect_ratio).
Output QualityBoth 16:9 and 9:16 support 1080P and 4K outputs. 4K requires extra credits (approximately 2× the credits of generating a Fast mode video) and is requested via a separate 4K endpoint.
Audio TrackAll videos ship with background audio by default. In rare cases, upstream may suppress audio when the scene is deemed sensitive (e.g. minors).

Why our Veo 3.1 API is different #

True vertical video - Native Veo 3.1 supports 9:16 output, delivering authentic vertical videos without the need for re-framing or manual editing.

Global language reach - Our flow supports multilingual prompts by default (no extra configuration required).

Significant cost savings - Our rates are 25% of Google's direct API pricing.

Callbacks

onVideoGenerated

POST

Request

Authorization

Bearer Token

Provide your bearer token in the Authorization header when making requests to protected resources.

Example:

Authorization: Bearer ********************

or

Body Params application/jsonRequired

Generate Code

prompt

string

required

Text prompt describing the desired video content. Required for all generation modes.

Should be detailed and specific in describing video content

Can include actions, scenes, style and other information

For image-to-video, describe how you want the image to come alive

Example: A dog playing in a park

imageUrls

array[string]

optional

Image URL list (used in image-to-video mode). Supports 1 or 2 images:

1 image: The generated video will unfold around this image, with the image content presented dynamically

2 images: The first image serves as the video's first frame, and the second image serves as the video's last frame, with the video transitioning between them

Must be valid image URLs

Images must be accessible to the API server.

Example: ["http://example.com/image1.jpg","http://example.com/image2.jpg"]

model

enum<string>

optional

Select the model type to use.

veo3: Veo 3.1 Quality, supports both text-to-video and image-to-video generation

veo3_fast: Veo3.1 Fast generation model, supports both text-to-video and image-to-video generation

Allowed values: veo3veo3_fastveo3_lite

Default: veo3_fast

Example: veo3_fast

generationType

enum<string>

optional

Video generation mode (optional). Specifies different video generation approaches:

TEXT_2_VIDEO: Text-to-video - Generate videos using only text prompts

FIRST_AND_LAST_FRAMES_2_VIDEO: First and last frames to video - Flexible image-to-video generation mode

1 image: Generate video based on the provided image

2 images: First image as first frame, second image as last frame, generating transition video

REFERENCE_2_VIDEO: Reference-to-video - Generate videos based on reference images, requires 1-3 images in imageUrls (minimum 1, maximum 3)

Important Notes:

REFERENCE_2_VIDEO mode currently only supports veo3_fast model

If not specified, the system will automatically determine the generation mode based on whether imageUrls are provided

Allowed values: TEXT_2_VIDEOFIRST_AND_LAST_FRAMES_2_VIDEOREFERENCE_2_VIDEO

Example: TEXT_2_VIDEO

aspect_ratio

enum<string>

optional

Video aspect ratio. Specifies the dimension ratio of the generated video. Available options:

16:9: Landscape video format.

9:16: Portrait video format, suitable for mobile short videos

Auto: In auto mode, the video will be automatically center-cropped based on whether your uploaded image is closer to 16:9 or 9:16.

Default value is 16:9.

Allowed values: 16:99:16Auto

Default: 16:9

Example: 16:9

callBackUrl

string

optional

Completion callback URL for receiving video generation status updates.

Optional but recommended for production use

System will POST task completion status to this URL when the video generation is completed

Callback will include task results, video URLs, and status information

Your callback endpoint should accept POST requests with JSON payload

For detailed callback format and implementation guide, see Callback Documentation

Alternatively, use the Get Video Details endpoint to poll task status

To ensure callback security, see Webhook Verification Guide for signature verification implementation

Example: http://your-callback-url.com/complete

enableFallback

boolean

deprecated

Deprecated Enable fallback functionality. When set to true, if the official Veo3.1 video generation service is unavailable or encounters exceptions, the system will automatically switch to a backup model for video generation to ensure task continuity and reliability. Default value is false.

When fallback is enabled, backup model will be used for the following errors:

public error minor upload

Your prompt was flagged by Website as violating content policies

public error prominent people upload

Fallback mode requires 16:9 aspect ratio and uses 1080p resolution by default

Note: Videos generated through fallback mode cannot be accessed via the Get 1080P Video endpoint

Credit Consumption: Successful fallback has different credit consumption, please see https://kie.ai/pricing for pricing details

Note: This parameter is deprecated. Please remove this parameter from your requests. The system has automatically optimized the content review mechanism without requiring manual fallback configuration.

Default: false

Example: false

enableTranslation

boolean

optional

Enable prompt translation to English. When set to true, the system will automatically translate prompts to English before video generation for better generation results. Default value is true.

true: Enable translation, prompts will be automatically translated to English

false: Disable translation, use original prompts directly for generation

Default: true

Example: true

watermark

string

optional

Watermark text.

Optional parameter

If provided, a watermark will be added to the generated video

Example: MyBrand

resolution

enum<string>

optional

Controls the pixel dimensions of the generated image. Higher resolution results in greater clarity and detail, while lower resolution allows for faster generation.

Allowed values: 720p1080p4k

Default: 720p

Examples

Responses

🟢200success

application/json

Request successful

Bodyapplication/json

Generate Code

code

enum<integer>

optional

Response status code

200: Success - Request has been processed successfully

400: 1080P is processing. It should be ready in 1-2 minutes. Please check back shortly.

401: Unauthorized - Authentication credentials are missing or invalid

402: Insufficient Credits - Account does not have enough credits to perform the operation

404: Not Found - The requested resource or endpoint does not exist

422: Validation Error - Request parameters failed validation. When fallback is not enabled and generation fails, error message format: Your request was rejected by Flow(original error message). You may consider using our other fallback channels, which are likely to succeed. Please refer to the documentation.

429: Rate Limited - Request limit has been exceeded for this resource

455: Service Unavailable - System is currently undergoing maintenance

500: Server Error - An unexpected error occurred while processing the request

501: Generation Failed - Video generation task failed

505: Feature Disabled - The requested feature is currently disabled

Allowed values: 200400401402404422429455500501505

msg

string

optional

Error message when code != 200

Example: success

data

object

optional

taskId

string

optional

Task ID, can be used with Get Video Details endpoint to query task status

Example: veo_task_abcdef123456

🔴500Error

Request Request Example

Shell

JavaScript

Java

Swift

Go

PHP

Python

HTTP

C

C#

Objective-C

Ruby

OCaml

Dart

R

cURLcURL-WindowsHttpiewgetPowerShell

curl --location 'https://api.kie.ai/api/v1/veo/generate' \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
  "prompt": "A dog playing in a park",
  "imageUrls": [\
    "http://example.com/image1.jpg",\
    "http://example.com/image2.jpg"\
  ],
  "model": "veo3_fast",
  "watermark": "MyBrand",
  "callBackUrl": "http://your-callback-url.com/complete",
  "aspect_ratio": "16:9",
  "enableFallback": false,
  "enableTranslation": true,
  "generationType": "REFERENCE_2_VIDEO"
}'

Response Response Example

200 - Example of Success

{
    "code": 200,
    "msg": "success",
    "data": {
        "taskId": "veo_task_abcdef123456"
    }
}

Self-contained reference. Not affiliated with kie.ai.