curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "A boy playing basketball by the sea",
"duration": 5,
"size": "2K",
"metadata": {
"ratio": "16:9"
}
}'
curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "Camera slowly pushes in, waves crashing against rocks and splashing",
"duration": 5,
"size": "2K",
"image": "https://cdn.example.com/first-frame.jpg",
"metadata": {
"ratio": "adaptive"
}
}'
curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "Re-generate following the reference video motion and the reference audio mood",
"duration": 5,
"size": "2K",
"metadata": {
"ratio": "adaptive",
"reference_video": "https://cdn.example.com/reference.mp4",
"reference_audio": "https://cdn.example.com/bgm.wav"
}
}'
{
"id": "task_a1b2xxxxx5f6",
"task_id": "task_a1b2xxxxx5f6",
"object": "video",
"model": "MiniMax-H3",
"status": "queued",
"progress": 0,
"created_at": 1785125529
}
{
"code": "invalid_request",
"message": "prompt is required",
"data": null
}
{
"code": "unprocessable_entity_error",
"message": "video description contains sensitive content (1026)",
"data": null
}
OpenAI Format
MiniMax-H3 Video Generation
Create a MiniMax-H3 async video generation task with POST /v1/videos.
POST
https://zx1.deepwl.net
/
v1
/
videos
curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "A boy playing basketball by the sea",
"duration": 5,
"size": "2K",
"metadata": {
"ratio": "16:9"
}
}'
curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "Camera slowly pushes in, waves crashing against rocks and splashing",
"duration": 5,
"size": "2K",
"image": "https://cdn.example.com/first-frame.jpg",
"metadata": {
"ratio": "adaptive"
}
}'
curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "Re-generate following the reference video motion and the reference audio mood",
"duration": 5,
"size": "2K",
"metadata": {
"ratio": "adaptive",
"reference_video": "https://cdn.example.com/reference.mp4",
"reference_audio": "https://cdn.example.com/bgm.wav"
}
}'
{
"id": "task_a1b2xxxxx5f6",
"task_id": "task_a1b2xxxxx5f6",
"object": "video",
"model": "MiniMax-H3",
"status": "queued",
"progress": 0,
"created_at": 1785125529
}
{
"code": "invalid_request",
"message": "prompt is required",
"data": null
}
{
"code": "unprocessable_entity_error",
"message": "video description contains sensitive content (1026)",
"data": null
}
MiniMax-H3 Video Generation
OpenAI-compatible entry point. Uses a JSON request body and supports text-to-video, image-to-video, and multimodal reference-to-video. For the unified video format, see Create Video.Method and Path
POST /v1/videos
curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "A boy playing basketball by the sea",
"duration": 5,
"size": "2K",
"metadata": {
"ratio": "16:9"
}
}'
curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "Camera slowly pushes in, waves crashing against rocks and splashing",
"duration": 5,
"size": "2K",
"image": "https://cdn.example.com/first-frame.jpg",
"metadata": {
"ratio": "adaptive"
}
}'
curl -X POST https://zx1.deepwl.net/v1/videos \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "MiniMax-H3",
"prompt": "Re-generate following the reference video motion and the reference audio mood",
"duration": 5,
"size": "2K",
"metadata": {
"ratio": "adaptive",
"reference_video": "https://cdn.example.com/reference.mp4",
"reference_audio": "https://cdn.example.com/bgm.wav"
}
}'
Generation Scenarios
| Scenario | Parameters | Aspect ratio |
|---|---|---|
| Text-to-video | prompt only | Defaults to 16:9; adaptive not allowed |
| Image-to-video | image or images | Forced to adaptive |
| Multimodal reference-to-video | metadata.reference_video(s) / reference_audio(s) | Defaults to adaptive |
Image-to-video and multimodal reference-to-video are mutually exclusive. The total request body size must not exceed 64 MB; for large files use a public URL instead of Base64.
Body
string
required
Model name. Currently only
MiniMax-H3 is supported.string
required
Non-empty prompt, up to 7000 characters.
integer
default:"5"
Duration in seconds, range 4–15. Out-of-range values are clamped to the boundary by the server.
string
default:"2K"
Output resolution:
768P or 2K. Case-insensitive; unrecognized values fall back to 2K.string
A single input image used as the first frame. Takes precedence over
images when both are present.Supports public URLs, mm_file://{file_id}, and Data URLs. Formats: JPG, JPEG, PNG, WEBP, HEIC, HEIF; max 30 MB per file; dimensions 256–5760 px; aspect ratio 0.4–2.5.array<string>
Multiple input images. One image is the first frame, two are first and last frame, three or more are all treated as reference images; up to 9 reference images.
string
One of
adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16. Text-to-video defaults to 16:9; image-to-video is forced to adaptive; multimodal reference defaults to adaptive.string
A single reference video URL. Supports MP4, MOV, encoded H.264/H.265; max 50 MB per file; duration 2–15 seconds.
array<string>
Multiple reference video URLs, up to 3 with total duration ≤ 15 seconds. Takes precedence over
reference_video when both are present.string
A single reference audio URL. Supports WAV, MP3; max 15 MB per file; duration 2–15 seconds.
array<string>
Multiple reference audio URLs, up to 3 with total duration ≤ 15 seconds. Takes precedence over
reference_audio when both are present.boolean
default:"false"
Whether to add an AIGC watermark.
Response Example
{
"id": "task_a1b2xxxxx5f6",
"task_id": "task_a1b2xxxxx5f6",
"object": "video",
"model": "MiniMax-H3",
"status": "queued",
"progress": 0,
"created_at": 1785125529
}
{
"code": "invalid_request",
"message": "prompt is required",
"data": null
}
{
"code": "unprocessable_entity_error",
"message": "video description contains sensitive content (1026)",
"data": null
}
Response
string
Task ID. Use this for subsequent queries.
string
Legacy task ID; same value as
id. New integrations should use id.string
Object type, always
video.string
Model name used by the task.
string
Task status:
queued, in_progress, completed, or failed.integer
Task progress percentage, 0–100.
integer
Task creation time, Unix timestamp (seconds).
Error Codes
| HTTP Status | Description |
|---|---|
400 | Invalid request parameters |
401 | Token missing, invalid, or expired |
402 | Insufficient quota |
422 | Input contains sensitive content |
429 | Rate limited, retry later |
500 | Server error |