Skip to main content
POST
https://console.mixroute.io
/
v1
/
video
/
generations
curl --request POST \
  --url https://console.mixroute.io/v1/video/generations \
  --header 'Authorization: Bearer sk-xxxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "veo-3.1-fast-generate-preview",
    "prompt": "A cute kitten playing in the garden",
    "durationSeconds": 6,
    "aspectRatio": "16:9"
  }'
{
  "task_id": "video_xxx",
  "status": "submitted",
  "format": "mp4"
}

Introduction

The submit video task endpoint is used to create video generation tasks. Mixroute Api supports multiple video generation models with a unified API endpoint.
Video generation is an asynchronous task. After submission, you need to poll the task status.

Authentication

Bearer Token, e.g., Bearer sk-xxxxxxxxxx

Workflow

  1. Submit Task: POST /v1/video/generations
  2. Poll Status: GET /v1/video/generations/{task_id}
  3. Get Result: Download video or get URL after completion

Supported Models

Model IDProviderDescription
sora-2OpenAISora 2 video generation model
veo-3.0-fast-generate-001GoogleVeo 3.0 fast version
veo-3.1-fast-generate-previewGoogleVeo 3.1 fast version
veo-3.0-generate-previewGoogleVeo 3.0 standard version
veo-3.1-generate-previewGoogleVeo 3.1 standard version
wanx-video-v1AlibabaAlibaba Wanxiang video generation
seedance-1.0ByteDance DoubaoDoubao Seedance 1.0 video generation
seedance-1.0-proByteDance DoubaoDoubao Seedance 1.0 Pro video generation
seedance-1.5-proByteDance DoubaoDoubao Seedance 1.5 Pro video generation

Model-Specific Parameters

Sora 2 Parameters

model
string
required
Model name: sora-2
prompt
string
required
Video description prompt
duration
integer
Video duration (seconds): 5, 10, 15, 20, default 5
resolution
string
Resolution: 480p, 720p, 1080p, default 720p
aspect_ratio
string
Aspect ratio: 16:9, 9:16, 1:1, default 16:9
image_url
string
Reference image URL (image-to-video mode)
remix_url
string
Original video URL (Remix mode)

Veo Parameters

model
string
required
Model name: veo-3.1-fast-generate-preview, etc.
prompt
string
required
Video description prompt
durationSeconds
integer
Video duration: 4, 6, 8
aspectRatio
string
Aspect ratio: 16:9, 9:16
resolution
string
Resolution: 720p, 1080p
image
string
First frame reference image (Base64 or URL)
lastFrameImage
string
Last frame reference image (only supported by veo-3.1 series)
generateAudio
boolean
Whether to generate synchronized audio, default false

Alibaba Wanxiang Parameters

model
string
required
Model name: wanx-video-v1
prompt
string
required
Video description prompt
duration
integer
Video duration (seconds): 3, 5, 10
size
string
Video size: 1280x720, 720x1280, 960x960
style
string
Style: realistic, anime, 3d, etc.
seed
integer
Random seed for reproducible results
image_url
string
Reference image URL (image-to-video mode)

Doubao Seedance Parameters

model
string
required
Model name: seedance-1.0, seedance-1.0-pro, seedance-1.5-pro
prompt
string
required
Video description prompt
duration
integer
Video duration (seconds): 4, 6, 8
aspect_ratio
string
Aspect ratio: 16:9, 9:16, 1:1
resolution
string
Resolution: 720p, 1080p
first_frame
string
First frame image (Base64 or URL)
last_frame
string
Last frame image (Base64 or URL)
reference_image
string
Reference image (for style or character reference)
negative_prompt
string
Negative prompt, describing unwanted elements

Usage Examples

curl -X POST "https://console.mixroute.io/v1/video/generations" \
  -H "Content-Type: application/json" \
  -H "Authorization: Bearer sk-xxxxxxxxxx" \
  -d '{
    "model": "sora-2",
    "prompt": "A golden retriever running on the beach, sunny day, slow motion shot",
    "duration": 10,
    "resolution": "1080p",
    "aspect_ratio": "16:9"
  }'

Response Example

{
  "task_id": "video_xxx",
  "status": "pending"
}

Python Example

import requests
import time

def generate_video(prompt, model="veo-3.1-fast-generate-preview"):
    """Submit a video generation task and wait for completion"""
    api_key = "sk-xxxxxxxxxx"
    base_url = "https://console.mixroute.io/v1"
    
    # Submit task
    response = requests.post(
        f"{base_url}/video/generations",
        headers={
            "Authorization": f"Bearer {api_key}",
            "Content-Type": "application/json"
        },
        json={
            "model": model,
            "prompt": prompt,
            "durationSeconds": 6,
            "aspectRatio": "16:9"
        }
    )
    
    task_id = response.json()["task_id"]
    print(f"Task submitted: {task_id}")
    
    # Poll status
    while True:
        status_response = requests.get(
            f"{base_url}/video/generations/{task_id}",
            headers={"Authorization": f"Bearer {api_key}"}
        )
        result = status_response.json()
        status = result.get("status")
        
        print(f"Current status: {status}")
        
        if status == "succeeded":
            return result.get("url")
        elif status == "failed":
            raise Exception(f"Generation failed: {result.get('error')}")
        
        time.sleep(5)

# Usage example
video_url = generate_video("A sailboat sailing on calm water at sunset")
print(f"Video URL: {video_url}")

Model Comparison

FeatureSora 2VeoAlibaba WanxiangDoubao Seedance
Max Duration20s8s10s8s
Max Resolution1080p1080p720p1080p
First Frame Constraint
Last Frame Constraint✅ (3.1)
Audio Generation
Chinese UnderstandingGoodGoodExcellentExcellent
Video generation consumes significant resources. Please control your request frequency. Different models have different pricing, see the pricing page for details.

Notes

  • Video generation is an asynchronous task, polling for status is required
  • Parameter names may vary slightly between models, please refer to each model’s examples
  • Prompts should describe scene content, camera movements, style, etc. in detail
  • Generated videos have an expiration period, download and save them promptly
  • Please follow content policies and avoid generating prohibited content
curl --request POST \
  --url https://console.mixroute.io/v1/video/generations \
  --header 'Authorization: Bearer sk-xxxxxxxxxx' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "veo-3.1-fast-generate-preview",
    "prompt": "A cute kitten playing in the garden",
    "durationSeconds": 6,
    "aspectRatio": "16:9"
  }'
{
  "task_id": "video_xxx",
  "status": "submitted",
  "format": "mp4"
}