Skip to content

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"])
curl https://api.indoxhub.com/api/v1/videos/generations \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "prompt": "A golden retriever playing in autumn leaves",
    "model": "google/veo-3.0-generate-001",
    "aspect_ratio": "16:9"
  }'

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.

curl -X POST https://api.indoxhub.com/api/v1/videos/jobs/job_abc123/cancel \
  -H "Authorization: Bearer YOUR_API_KEY"
Documentation last built on May 23, 2026