Video Generation¶
Generate videos from text prompts using async job processing.
Generate Video¶
Endpoint: POST /api/v1/videos/generations
Auth: Required
Request Body¶
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
prompt |
string |
Yes | — | Text description of the video |
model |
string |
No | veo-3.0-generate-001 |
Model ID |
provider |
string |
No | — | Provider name |
aspect_ratio |
string |
No | — | 16:9, 9:16, 1:1 |
resolution |
string |
No | — | 720p, 1080p |
duration |
integer |
No | — | Duration in seconds |
n |
integer |
No | 1 |
Number of videos |
response_format |
string |
No | url |
url or b64_json |
additional_params |
object |
No | {} |
Provider-specific parameters |
byok_api_key |
string |
No | — | Your own provider API key |
Google-Specific Parameters¶
| Field | Type | Description |
|---|---|---|
input_image |
string |
Base64 or URL for image-to-video |
reference_image |
string |
Reference image for style guidance |
generate_audio |
boolean |
Generate audio track |
negative_prompt |
string |
What to avoid |
last_frame |
string |
Base64 image for frame interpolation |
video |
string |
Base64 video for video extension |
Example¶
import requests
response = requests.post(
"https://api.indoxhub.com/api/v1/videos/generations",
headers={"Authorization": "Bearer YOUR_API_KEY"},
json={
"prompt": "A golden retriever playing in autumn leaves",
"model": "google/veo-3.0-generate-001",
"aspect_ratio": "16:9"
}
)
result = response.json()
print(result["data"])
Get Job Status¶
Endpoint: GET /api/v1/videos/jobs/{job_id}
Auth: Required
curl https://api.indoxhub.com/api/v1/videos/jobs/job_abc123 \
-H "Authorization: Bearer YOUR_API_KEY"
Response¶
{
"job_id": "job_abc123",
"status": "completed",
"progress": 100,
"provider": "google",
"model": "veo-3.0-generate-001",
"prompt": "A golden retriever playing in autumn leaves",
"created_at": "2026-04-07T12:00:00Z",
"completed_at": "2026-04-07T12:02:30Z",
"result": { "url": "https://cdn.example.com/videos/output.mp4" }
}
Status values: pending, in_progress, completed, failed
List Jobs¶
Endpoint: GET /api/v1/videos/jobs
Auth: Required
| Parameter | Type | Default | Description |
|---|---|---|---|
limit |
integer |
20 |
Max jobs to return |
skip |
integer |
0 |
Pagination offset |
curl "https://api.indoxhub.com/api/v1/videos/jobs?limit=10" \
-H "Authorization: Bearer YOUR_API_KEY"
Cancel Job¶
Endpoint: POST /api/v1/videos/jobs/{job_id}/cancel
Auth: Required
Only jobs with pending status can be cancelled.