Veo
Veo is an advanced AI video generation model series supporting text-to-video and image-to-video generation, with audio ("sound on") output.
POST
https://llm.siraya.ai/v1/videos/generations
Supported Models
| Model ID | Description |
|---|---|
veo-3.1-generate-001 |
Veo 3.1 video generation, with sound on |
Header
Authorization
string
Required
Your API Key (e.g., `Bearer `).
Body
model
string
Required
The model ID: `veo-3.1-generate-001`.
prompt
string
Required
A text description for the video content.
seconds
integer
Default: 8
The duration of the video in seconds. Possible enum values: 4, 6, 8. Any other value is rejected with a `400` at submit. `duration` is not a supported field; use `seconds`.
seed
integer
Random seed for reproducibility. The same seed produces the same video.
image_url
string
(Optional) Input image URL for image-to-video generation.
size
string
Pixel dimensions, e.g.
1280x720. A standard size resolves to resolution + aspect_ratio; if you send both, they must agree with size or the request returns a 400.
resolution
string
Output resolution:
720p, 1080p, or 4k. Other values are rejected.
aspect_ratio
string
Default: "16:9"
Aspect ratio:
16:9 (landscape) or 9:16 (portrait).
generate_audio
boolean
Generate an AI audio track for the video.
frame_images
array
First-frame and/or last-frame control. Each item has a `frame_type` (`first_frame` or `last_frame`) and an `image_url`.
input_references
array
Soft-guidance references (image / video / audio). Each item has a `type`, a `url`, and an optional `role`.
extra_body
map[string]any
Specific parameters.
negative_prompt
string
Negative prompt describing content to exclude.
async
boolean
Default: false
When
false, the request waits for generation to finish and returns the completed video URL. When true, it returns immediately with a video id you poll for status. See Asynchronous generation.
callbackUrl
string
Only used when
async is true. An http(s) URL the router will POST to once generation completes (or fails), so you don't have to poll.
import requests
url = "https://llm.siraya.ai/v1/videos/generations"
headers = {
"Content-Type": "application/json",
"Authorization": "Bearer <API_KEY>"
}
data = {
"model": "veo-3.1-generate-001",
"prompt": "A cute baby sea otter"
}
response = requests.post(url, headers=headers, json=data)
print(response.json())
Example Response
{
"created": 1760347750,
"data": [
{
"url": "https://resources.siraya.ai/v1/videos/video_n6Sn-1aIT3z8x.../content"
}
],
"error": {}
}
With "async": true the status response for Veo has no output_url; download the result from GET /v1/videos/{video_id}/content. See Asynchronous generation.