Qwen Video
Create Wan and HappyHorse text-to-video, image-to-video, reference, and editing tasks.
Endpoints
POST /v1/services/aigc/video-generation/video-synthesis
POST /v1/videos/generations
Authorization: Bearer $API_KEY
Content-Type: application/jsonBoth paths are equivalent and accept the same body. The upstream accepts the task immediately; poll via GET /v1/tasks/{taskId}.
Models
| Model | Capability | Resolutions | Duration |
|---|---|---|---|
qwen/wan3.0-video | text, image (first/last frame), reference, edit, extend | 480P/720P/1080P | 2–30s or -1 smart |
qwen/wan3.0-video-prime | same as above (high-speed) | 480P/720P/1080P | 2–30s or -1 smart |
qwen/wan2.7-t2v | text to video | 720P/1080P | 2–15s |
qwen/wan2.7-i2v | image to video (first / first+last frame) | 720P/1080P | 2–15s |
qwen/wan2.7-r2v | reference to video | 720P/1080P | 2–15s |
qwen/wan2.7-videoedit | video editing | 720P/1080P | 2–10s |
qwen/happyhorse-1.1-t2v | text to video with audio | 480P/720P/1080P | 3–15s |
qwen/happyhorse-1.1-i2v | image to video, first frame, with audio | 480P/720P/1080P | 3–15s |
qwen/happyhorse-1.1-r2v | reference to video (1–9 reference images) | 480P/720P/1080P | 3–15s |
qwen/happyhorse-1.0-video-edit | video editing | 720P/1080P | 3–15s |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
model | string | Yes | Complete public model ID. |
input.prompt | string | Conditional | Text prompt; required when no media is provided. |
input.media | array | Conditional | Media item list; required when no prompt is provided. |
parameters.resolution | string | No | Defaults to 1080p. Accepts 480p, 720p, 1080p. |
parameters.ratio | string | No | Aspect ratio; adaptive is recommended for image-to-video and editing modes. Accepts 21:9, 16:9, 9:16, 1:1, adaptive, and others. |
parameters.duration | integer | No | Seconds; -1 lets the model pick the duration automatically. wan3.0 defaults to -1; others default to 5. |
parameters.audio | boolean | No | Whether to generate synchronized audio; defaults to true for the HappyHorse series. |
callback_url | string | No | Public terminal callback URL handled by the platform. |
Each media item contains a type and url (public URL or base64):
type | Description |
|---|---|
first_frame | First-frame image |
last_frame | Last-frame image (requires a first frame) |
reference_image | Reference image for reference-to-video |
reference_video | Reference / edit / extend video |
reference_audio | Reference audio |
video | Source video for editing |
Examples
curl "https://api.modelrover.ai/v1/services/aigc/video-generation/video-synthesis" \
-H "Authorization: Bearer $API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "qwen/wan3.0-video",
"input": {
"prompt": "Detective noir: a rain-soaked New York street at night, neon signs flickering, a detective in a black trench coat walking briskly"
},
"parameters": {
"resolution": "1080p",
"ratio": "16:9",
"duration": -1
},
"callback_url": "https://example.com/hooks/video?token=unguessable"
}'Create response
{
"output": { "task_id": "9dcf8ab2-c4b7-42be-a516-597223897b99", "task_status": "PENDING" },
"request_id": "..."
}output.task_id is rewritten to the platform task ID.
Task response
curl "https://api.modelrover.ai/v1/tasks/9dcf8ab2-c4b7-42be-a516-597223897b99" \
-H "Authorization: Bearer $API_KEY"{
"output": {
"task_id": "9dcf8ab2-c4b7-42be-a516-597223897b99",
"task_status": "SUCCEEDED",
"video_url": "https://cdn.qwencloud.com/..."
}
}Task statuses are PENDING, RUNNING, SUCCEEDED, and FAILED. Video results are retained for 48 hours—download and transfer them immediately after completion.
Restrictions
- For
wan3.0-video, first-last-frame mode cannot be combined with reference media; different task-type media roles cannot be mixed. parameters.duration: -1is supported by thewan3.0series only; passing-1to other models returns an error.- Client routing and paid service-tier selections are rejected.
See Tasks and callbacks for polling, callback delivery, and task lifecycle.
Help us improve this page
Found something unclear, outdated, or incorrect?
Last updated on