Skip to main content
POST

Authorizations

Authorization
string
header
required

All APIs require Bearer Token authentication

Get API Key:

Visit API Key Management Page to get your API Key

Add to request header:

Body

application/json
model
enum<string>
default:veo-3.1-lite-generate-preview
required

Video generation model name. image_start, image_end and model_params are not accepted on this model (returns 400)

Available options:
veo-3.1-lite-generate-preview
Example:

"veo-3.1-lite-generate-preview"

prompt
string
required

Prompt describing the video, up to 2000 tokens. Counted with cl100k; tokens are not characters. Google lists English as the supported prompt language. EvoLink does not reject requests based on prompt language; results in other languages are not guaranteed.

Example:

"A golden retriever puppy running through a sunlit meadow, slow motion, cinematic lighting"

image_urls
string<uri>[]

Input image URLs for image-to-video

Notes:

  • Up to 2 images per request: 1 image is used as the first frame, 2 images are used as the first and last frames
  • Image size: no larger than 10 MB
  • Supported file formats: .jpg, .jpeg, .png
Maximum array length: 2
Example:
generation_type
enum<string>

Generation mode. When omitted it is inferred from the number of images:

  • TEXT: Text-to-video (input images, if any, are not used)
  • FIRST&LAST: First-last frame, 1-2 images

REFERENCE (reference images) is not supported by this model and returns 400

Available options:
TEXT,
FIRST&LAST
aspect_ratio
enum<string>

Video aspect ratio. auto is the same as omitting aspect_ratio: no ratio is specified and the model decides

Available options:
auto,
16:9,
9:16
generate_audio
boolean
default:true

Whether to generate audio, default true. Generating audio increases the per-second rate

duration
enum<integer>
default:4

Video duration in seconds, default 4. Longer videos cost more

Available options:
4,
6,
8
n
integer
default:1

Number of videos to generate, default 1. Each video is billed separately

Required range: 1 <= x <= 4
quality
enum<string>
default:720p

Output resolution, default 720p. 1080p has a higher per-second rate; 4k is not supported by this model

Available options:
720p,
1080p
seed
integer

Random seed used to reproduce generation results

Required range: 1 <= x <= 4294967295
negative_prompt
string

Negative prompt describing content to exclude from the video

person_generation
enum<string>

Person generation control. When omitted, the upstream default is allow_adult. allow_adult: allow adults only; dont_allow: do not generate videos containing people or faces

Available options:
allow_adult,
dont_allow
resize_mode
enum<string>

Image resize mode for image-to-video. When omitted, the upstream default is pad. pad: add padding to fit the output aspect ratio; crop: center-crop to fit the output aspect ratio. Requires an input image; providing this parameter without an image returns 400

Available options:
pad,
crop
callback_url
string<uri>

HTTPS callback URL for task completion

Callback Timing:

  • Triggered when the task is completed or failed
  • Sent after billing confirmation

Security Restrictions:

  • HTTPS protocol only
  • Internal IP addresses are prohibited (127.0.0.1, 10.x.x.x, 172.16-31.x.x, 192.168.x.x, etc.)
  • URL length must not exceed 2048 UTF-8 bytes

Callback Mechanism:

  • Timeout: 10 seconds
  • Maximum 3 retries after failure (at 1/2/4 seconds after failure)
  • Callback response format is consistent with task query API
  • 2xx status code is considered successful, other codes trigger retry
Example:

"https://your-domain.com/webhooks/video-task-completed"

Response

Video generation task created successfully

created
integer

Task creation timestamp

Example:

1757169743

id
string

Task ID

Example:

"task-unified-1757169743-7cvnl5zw"

model
string

Actual model name used

Example:

"veo-3.1-lite-generate-preview"

object
enum<string>

Specific type of the task

Available options:
video.generation.task
progress
integer

Task progress percentage (0-100)

Required range: 0 <= x <= 100
Example:

0

status
enum<string>

Task status

Available options:
pending,
processing,
completed,
failed
Example:

"processing"

task_info
object

Video task details

type
enum<string>

Output type of the task

Available options:
text,
image,
audio,
video
Example:

"video"

usage
object

Usage and billing information