Skip to content
中文
Google · Model API

Veo 3.1 API

Veo 3.1 API with VezAPI. Explore model capabilities, credit pricing, request parameters, and integration examples.

Text to VideoImage to Video

Veo 3.1 API documentation

Integrate Veo 3.1 with your VezAPI key. The operations below share the same authentication and account balance.

Base URL: https://api.vezapi.com
Send Authorization: Bearer YOUR_VEZAPI_KEY. Use a unique Idempotency-Key for each submission; reuse it only when checking the same request.

extend-video

POST/api/v1/jobs/createTask

Model IDs: veo/extend

ParameterTypeDescription & constraints
model
required
string

The outer model name, fixed to veo/extend

Default: "veo/extend"

callBackUrl
optional
string

Callback URL when the task is completed (optional). Highly recommended for use in production environments. - When the video extension is completed, the system will send a POST request containing the task status and results to this URL - The callback includes the generated video URL, task information, etc. - Your callback endpoint should accept a POST request with a JSON payload containing the video results - For detailed callback format and implementation guidelines, see [Video Generation Callbacks]([see VezAPI documentation]) - Alternatively, poll Get Task Details (/market/common/get-task-detail). - To ensure callback security, please refer to the [Webhook Verification Guide](/common-api/webhook-verification) for signature verification implementation

input
required
object
input.task_id
required
string

The task ID of the original video generation. Must be a valid task ID returned by the video generation API.

input.prompt
required
string

A text prompt describing the content of the extended video. It should detail how you want the video to be extended, including actions, scene changes, styles, etc.

input.seeds
optional
integer

A random seed parameter that controls the randomness of the generated content. Range: 10000-99999. The same seed will generate similar video content, while different seeds will generate different video content. If not specified, the system will automatically assign a random seed.

minimum: 10000

maximum: 99999

input.model
optional
string

Extension tier: "fast" (default), "quality" or "lite". Billed per extension at the chosen tier.

Values: "fast", "quality", "lite"

Default: "fast"

input.watermark
optional
string

Watermark text (optional). If provided, a watermark will be added to the generated video.

Request example
curl -X POST 'https://api.vezapi.com/api/v1/jobs/createTask' \
  -H 'Authorization: Bearer YOUR_VEZAPI_KEY' \
  -H 'Idempotency-Key: your-unique-request-id' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "veo/extend",
  "callBackUrl": "https://example.com/input.png",
  "input": {
    "task_id": "veo_task_abcdef123456",
    "prompt": "The dog continues running through the park, jumping over obstacles and playing with other dogs",
    "seeds": 12345,
    "watermark": "MyBrand"
  }
}'
Responses and errors

HTTP 200

Request successful

ParameterTypeDescription & constraints
code
optional
integer

Status code of the request. The HTTP status is 200 even when the request fails, so always check this field: 200 means success; any other value means the request failed and msg describes the reason. Common values: 401 invalid or missing API key; 402 insufficient credits; 429 rate limit exceeded; 422 or 500 the request could not be processed (read msg and check your parameters before retrying).

Values: 200, 400, 401, 402, 404, 422, 429, 455, 500, 501, 505

msg
optional
string

Response message

data
optional
object
data.taskId
optional
string

Task ID, can be used with [Get Task Details](/market/common/get-task-detail) endpoint to query task status

HTTP 500

Server error.

ParameterTypeDescription & constraints
code
required
integer

Response status code - **200**: Success - Request has been processed successfully - **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 - **408**: Timeout - No result has been returned for over 10 minutes. - **422**: Validation Error - The request parameters failed validation checks - **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 - Content generation task failed - **505**: Feature Disabled - The requested feature is currently disabled

msg
required
string

Response message, error description when failed

data
required
object

generate-veo-3-video

POST/api/v1/jobs/createTask

Model IDs: veo-3-1

ParameterTypeDescription & constraints
model
required
string

Must be "veo-3-1". Use input.model to choose the Fast / Lite / Quality tier.

Values: "veo-3-1"

Default: "veo-3-1"

callBackUrl
optional
string

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]([see VezAPI documentation]) - Alternatively, poll Get Task Details (/market/common/get-task-detail). - To ensure callback security, see [Webhook Verification Guide](/common-api/webhook-verification) for signature verification implementation

input
required
object
input.prompt
required
string

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

input.model
optional
string

Veo 3.1 tier: "veo3_fast" (default), "veo3_lite" or "veo3" (Quality). The top-level model stays "veo-3-1". REFERENCE_2_VIDEO supports veo3_fast and veo3_lite.

Values: "veo3_fast", "veo3_lite", "veo3"

Default: "veo3_fast"

input.image_urls
optional
array

Image URLs. FIRST_AND_LAST_FRAMES_2_VIDEO: 1 image (first frame) or 2 images (first + last frame). REFERENCE_2_VIDEO: 1–3 reference images, 8-second duration only.

input.generation_type
optional
string

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 supports the veo3_fast and veo3_lite models. - If not specified, the system will automatically determine the generation mode based on whether imageUrls are provided

Values: "TEXT_2_VIDEO", "FIRST_AND_LAST_FRAMES_2_VIDEO", "REFERENCE_2_VIDEO"

input.aspect_ratio
optional
string

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.

Values: "16:9", "9:16", "Auto"

Default: "16:9"

input.enable_fallback
optional
boolean

Deprecated. Remove it from requests.

Default: false

input.enable_translation
optional
boolean

Optional. When true, the prompt is translated to English before generation.

input.watermark
optional
string

Watermark text. - Optional parameter - If provided, a watermark will be added to the generated video

input.resolution
optional
string

Output resolution: 720p (default), 1080p or 4k. For 1080p and 4k, the video URL is in resultJson.data.result_urls (the 720p version is in data.origin_urls). Controls the pixel dimensions of the generated video. Higher resolution results in greater clarity and detail, while lower resolution allows for faster generation.

Values: "720p", "1080p", "4k"

Default: "720p"

input.duration
optional
integer

The duration of the generated video, in seconds. Optional values are 4, 6, 8. **Important Note**: - The REFERENCE_2_VIDEO mode currently only supports a duration of 8 seconds.

Values: 4, 6, 8

Default: 8

Request example
curl -X POST 'https://api.vezapi.com/api/v1/jobs/createTask' \
  -H 'Authorization: Bearer YOUR_VEZAPI_KEY' \
  -H 'Idempotency-Key: your-unique-request-id' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "veo-3-1",
  "callBackUrl": "https://example.com/input.png",
  "input": {
    "prompt": "A dog playing in a park",
    "image_urls": [
      "https://example.com/input.png",
      "https://example.com/input.png"
    ],
    "watermark": "MyBrand",
    "aspect_ratio": "16:9",
    "enable_translation": true,
    "generation_type": "REFERENCE_2_VIDEO"
  }
}'
Responses and errors

HTTP 200

Request successful

ParameterTypeDescription & constraints
code
optional
integer

Status code of the request. The HTTP status is 200 even when the request fails, so always check this field: 200 means success; any other value means the request failed and msg describes the reason. Common values: 401 invalid or missing API key; 402 insufficient credits; 429 rate limit exceeded; 422 or 500 the request could not be processed (read msg and check your parameters before retrying).

Values: 200, 400, 401, 402, 404, 422, 429, 455, 500, 501, 505

msg
optional
string

Error message when code != 200

data
optional
object
data.taskId
optional
string

Task ID, can be used with [Get Task Details](/market/common/get-task-detail) endpoint to query task status

HTTP 500

Server error.

ParameterTypeDescription & constraints
code
required
integer

Response status code - **200**: Success - Request has been processed successfully - **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 - **408**: Timeout - No result has been returned for over 10 minutes. - **422**: Validation Error - The request parameters failed validation checks - **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 - Content generation task failed - **505**: Feature Disabled - The requested feature is currently disabled

msg
required
string

Response message, error description when failed

data
required
object

get-veo-3-1080-p-video

POST/api/v1/jobs/createTask

Model IDs: veo/get-1080p-video

ParameterTypeDescription & constraints
model
required
string

Model name; the fixed value here is veo/get-1080p-video.

callBackUrl
optional
string

Callback URL for task completion notifications. Optional parameter. If provided, the system will send a POST request to this URL when the task completes, whether it succeeds or fails. If omitted, no callback notification will be sent.

input
required
object
input.taskId
required
string

taskId

input.index
optional
string

video index

Request example
curl -X POST 'https://api.vezapi.com/api/v1/jobs/createTask' \
  -H 'Authorization: Bearer YOUR_VEZAPI_KEY' \
  -H 'Idempotency-Key: your-unique-request-id' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "veo/get-1080p-video",
  "input": {
    "taskId": "Your prompt"
  }
}'
Responses and errors

HTTP 200

Request successful

ParameterTypeDescription & constraints
code
optional
integer

Status code of the request. The HTTP status is 200 even when the request fails, so always check this field: 200 means success; any other value means the request failed and msg describes the reason. Common values: 401 invalid or missing API key; 402 insufficient credits; 429 rate limit exceeded; 422 or 500 the request could not be processed (read msg and check your parameters before retrying). If taskId does not exist or the source task failed, the request returns a non-200 code; retrying will not help.

Values: 200, 401, 404, 422, 429, 451, 455, 500

msg
optional
string

Error message when code != 200

data
optional
object
data.resultUrl
optional
string

1080P high-definition video download URL

HTTP 500

Server error.

ParameterTypeDescription & constraints
code
required
integer

Response status code - **200**: Success - Request has been processed successfully - **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 - **408**: Timeout - No result has been returned for over 10 minutes. - **422**: Validation Error - The request parameters failed validation checks - **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 - Content generation task failed - **505**: Feature Disabled - The requested feature is currently disabled

msg
required
string

Response message, error description when failed

data
required
object

get-veo-3-4k-video

POST/api/v1/jobs/createTask

Model IDs: veo/get-4k-video

ParameterTypeDescription & constraints
model
required
string

Fixed: veo/get-4k-video.

Default: "veo/get-4k-video"

callBackUrl
optional
string

The URL to receive 4K video generation task completion updates. Optional but recommended for production use. - System will POST task status and results to this URL when 4K video generation completes - Callback includes generated video URLs, media IDs, and related information - Your callback endpoint should accept POST requests with JSON payload containing results - Alternatively, poll Get Task Details (/market/common/get-task-detail). - To ensure callback security, see [Webhook Verification Guide](/common-api/webhook-verification) for signature verification implementation

input
required
object
input.task_id
required
string

Task ID

input.index
optional
integer

video index

Default: 0

Request example
curl -X POST 'https://api.vezapi.com/api/v1/jobs/createTask' \
  -H 'Authorization: Bearer YOUR_VEZAPI_KEY' \
  -H 'Idempotency-Key: your-unique-request-id' \
  -H 'Content-Type: application/json' \
  -d '{
  "model": "veo/get-4k-video",
  "input": {
    "task_id": "veo_task_abcdef123456"
  }
}'
Responses and errors

HTTP 200

Request successful

ParameterTypeDescription & constraints
code
optional
integer

Status code of the request. The HTTP status is 200 even when the request fails, so always check this field: 200 means success; any other value means the request failed and msg describes the reason. Common values: 401 invalid or missing API key; 402 insufficient credits; 429 rate limit exceeded; 422 or 500 the request could not be processed (read msg and check your parameters before retrying). If taskId does not exist or the source task failed, the request returns a non-200 code; retrying will not help.

Values: 200, 401, 404, 422, 429, 451, 455, 500

msg
optional
string

Error message when code != 200

data
optional
object
data.taskId
optional
string

Task ID, can be used with [Get Task Details](/market/common/get-task-detail) endpoint to query task status

data.resultUrls
optional
array

Generated 4K video URLs

data.imageUrls
optional
array

Related thumbnail or preview image URLs

HTTP 500

Server error.

ParameterTypeDescription & constraints
code
required
integer

Response status code - **200**: Success - Request has been processed successfully - **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 - **408**: Timeout - No result has been returned for over 10 minutes. - **422**: Validation Error - The request parameters failed validation checks - **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 - Content generation task failed - **505**: Feature Disabled - The requested feature is currently disabled

msg
required
string

Response message, error description when failed

data
required
object

Task status and callbacks

For asynchronous tasks, keep the returned taskId. Query GET /api/v1/jobs/recordInfo?taskId=... or provide callBackUrl when creating the task. Only the account that created a task can access it or derive new resources from it.

A timeout can mean the submission was accepted. Inspect the existing request in your dashboard; do not create another task automatically. Callback delivery is retried and may arrive more than once. Deduplicate with X-VezAPI-Event-Id.

Files, logs and billing

Generated media normally follows a 14-day provider lifetime; uploaded files expire after 24 hours. Save the files you need before expiration. VezAPI streams registered files without keeping a permanent media library. Request logs are retained for two calendar months.

Credits are reserved before submission. Final deductions match actual discounted consumption one for one. Unknown usage pauses new paid requests. If available funds cannot cover final usage while protecting other reservations, settlement stays pending until funded; model usage cannot make the wallet negative. Time-based inputs require server-side metadata reads; a failed read prevents submission.

Open full documentation →

Veo 3.1 API pricing

Rates below are reference estimates; final deductions equal actual discounted consumption, one for one. At the standard pack rate, 1,000 credits ≈ $10. Larger packs reduce the effective credit price.

SpecificationCreditsUnitUSD reference
Google veo 3.1, reference-to-video, Lite-4k150per video$1.5
Google veo 3.1, reference-to-video, Lite-1080p35per video$0.35
Google veo 3.1, reference-to-video, Lite-720p30per video$0.3
Google veo 3.1, reference-to-video, Fast-4k180per video$1.8
Google veo 3.1, reference-to-video, Fast-1080p65per video$0.65
Google veo 3.1, Extend, Lite30per video$0.3
Google veo 3.1, text-to-video, Quality-4K370per video$3.7
Google veo 3.1, image-to-video, Quality-4K370per video$3.7
Google veo 3.1, text-to-video, Quality-1080p255per video$2.55
Google veo 3.1, image-to-video, Quality-1080p255per video$2.55
Google veo 3.1, text-to-video, Quality-720p250per video$2.5
Google veo 3.1, image-to-video, Quality-720p250per video$2.5
Google veo 3.1, text-to-video, Fast-4K180per video$1.8
Google veo 3.1, image-to-video, Fast-4K180per video$1.8
Google veo 3.1, text-to-video, Fast-1080p65per video$0.65
Google veo 3.1, image-to-video, Fast-1080p65per video$0.65
Google veo 3.1, text-to-video, Fast-720p60per video$0.6
Google veo 3.1, image-to-video, Fast-720p60per video$0.6
Google veo 3.1, text-to-video, Lite-4K150per video$1.5
Google veo 3.1, image-to-video, Lite-4K150per video$1.5
Google veo 3.1, text-to-video, Lite-1080p35per video$0.35
Google veo 3.1, image-to-video, Lite-1080p35per video$0.35
Google veo 3.1, text-to-video, Lite-720p30per video$0.3
Google veo 3.1, image-to-video, Lite-720p30per video$0.3
Google veo 3.1, Extend, Quality250per video$2.5
Google veo 3.1, Extend, Fast60per video$0.6
Google veo 3.1, Get 1080P Video5per video$0.05
Google veo 3.1, Get 4K Video120.0per video$1.2
Google veo 3.1, reference-to-video, Fast-720p60.0per video$0.6