curl --request POST \
--url https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "Remix the motion with cinematic lighting",
"reference_videos": [
"https://example.com/ref.mp4"
],
"duration": 5,
"resolution": "2K"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'Remix the motion with cinematic lighting',
reference_videos: ['https://example.com/ref.mp4'],
duration: 5,
resolution: '2K'
})
};
fetch('https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v"
payload = {
"prompt": "Remix the motion with cinematic lighting",
"reference_videos": ["https://example.com/ref.mp4"],
"duration": 5,
"resolution": "2K"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v"
payload := strings.NewReader("{\n \"prompt\": \"Remix the motion with cinematic lighting\",\n \"reference_videos\": [\n \"https://example.com/ref.mp4\"\n ],\n \"duration\": 5,\n \"resolution\": \"2K\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Remix the motion with cinematic lighting\",\n \"reference_videos\": [\n \"https://example.com/ref.mp4\"\n ],\n \"duration\": 5,\n \"resolution\": \"2K\"\n}")
.asString();const url = 'https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'Remix the motion with cinematic lighting',
reference_videos: ['https://example.com/ref.mp4'],
duration: 5,
resolution: '2K'
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => 'Remix the motion with cinematic lighting',
'reference_videos' => [
'https://example.com/ref.mp4'
],
'duration' => 5,
'resolution' => '2K'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"Remix the motion with cinematic lighting\",\n \"reference_videos\": [\n \"https://example.com/ref.mp4\"\n ],\n \"duration\": 5,\n \"resolution\": \"2K\"\n}"
response = http.request(request)
puts response.read_bodyimport Foundation
let parameters = [
"prompt": "Remix the motion with cinematic lighting",
"reference_videos": ["https://example.com/ref.mp4"],
"duration": 5,
"resolution": "2K"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"prompt": "Remix the motion with cinematic lighting",
"reference_videos": [
"https://example.com/ref.mp4"
],
"duration": 5,
"resolution": "2K"
}'{
"code": 0,
"message": "success",
"data": {
"status": "pending",
"task_id": "task-abc123",
"model_id": "model-123",
"get_result": {
"method": "GET",
"url": "https://api.modellix.ai/api/v1/tasks/task-abc123"
}
}
}MiniMax H3 V2V
[Core Function] MiniMax H3 V2V generates video guided by one or more reference videos plus a text prompt. [Strengths] It accepts up to 3 reference videos with optional reference images and audios, 4-15 second duration, 768P or 2K output, and optional aspect ratio defaulting to 16:9. [Best For] Highly recommended for: motion remix, style transfer from video clips, keeping subject motion while changing the scene description, and multi-clip reference guidance. [Limitations] Do NOT use this model for text-only generation or first or last frame transitions. prompt, duration, resolution, and reference_videos are required. Do NOT send first_frame_image or last_frame_image on this endpoint. [Routing] Choose MiniMax H3 V2V when the user provides reference videos. For reference stills only, use MiniMax H3 I2V. For start or end frames, use MiniMax H3 FL2V. For text only, use MiniMax H3 T2V.
curl --request POST \
--url https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "Remix the motion with cinematic lighting",
"reference_videos": [
"https://example.com/ref.mp4"
],
"duration": 5,
"resolution": "2K"
}
'const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'Remix the motion with cinematic lighting',
reference_videos: ['https://example.com/ref.mp4'],
duration: 5,
resolution: '2K'
})
};
fetch('https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));import requests
url = "https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v"
payload = {
"prompt": "Remix the motion with cinematic lighting",
"reference_videos": ["https://example.com/ref.mp4"],
"duration": 5,
"resolution": "2K"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v"
payload := strings.NewReader("{\n \"prompt\": \"Remix the motion with cinematic lighting\",\n \"reference_videos\": [\n \"https://example.com/ref.mp4\"\n ],\n \"duration\": 5,\n \"resolution\": \"2K\"\n}")
req, _ := http.NewRequest("POST", url, payload)
req.Header.Add("Authorization", "Bearer <token>")
req.Header.Add("Content-Type", "application/json")
res, _ := http.DefaultClient.Do(req)
defer res.Body.Close()
body, _ := io.ReadAll(res.Body)
fmt.Println(string(body))
}HttpResponse<String> response = Unirest.post("https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"Remix the motion with cinematic lighting\",\n \"reference_videos\": [\n \"https://example.com/ref.mp4\"\n ],\n \"duration\": 5,\n \"resolution\": \"2K\"\n}")
.asString();const url = 'https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v';
const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({
prompt: 'Remix the motion with cinematic lighting',
reference_videos: ['https://example.com/ref.mp4'],
duration: 5,
resolution: '2K'
})
};
fetch(url, options)
.then(res => res.json())
.then(json => console.log(json))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode([
'prompt' => 'Remix the motion with cinematic lighting',
'reference_videos' => [
'https://example.com/ref.mp4'
],
'duration' => 5,
'resolution' => '2K'
]),
CURLOPT_HTTPHEADER => [
"Authorization: Bearer <token>",
"Content-Type: application/json"
],
]);
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}require 'uri'
require 'net/http'
url = URI("https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v")
http = Net::HTTP.new(url.host, url.port)
http.use_ssl = true
request = Net::HTTP::Post.new(url)
request["Authorization"] = 'Bearer <token>'
request["Content-Type"] = 'application/json'
request.body = "{\n \"prompt\": \"Remix the motion with cinematic lighting\",\n \"reference_videos\": [\n \"https://example.com/ref.mp4\"\n ],\n \"duration\": 5,\n \"resolution\": \"2K\"\n}"
response = http.request(request)
puts response.read_bodyimport Foundation
let parameters = [
"prompt": "Remix the motion with cinematic lighting",
"reference_videos": ["https://example.com/ref.mp4"],
"duration": 5,
"resolution": "2K"
] as [String : Any?]
let postData = try JSONSerialization.data(withJSONObject: parameters, options: [])
let url = URL(string: "https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v")!
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.timeoutInterval = 10
request.allHTTPHeaderFields = [
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
]
request.httpBody = postData
let (data, _) = try await URLSession.shared.data(for: request)
print(String(decoding: data, as: UTF8.self))$headers=@{}
$headers.Add("Authorization", "Bearer <token>")
$headers.Add("Content-Type", "application/json")
$response = Invoke-WebRequest -Uri 'https://api.modellix.ai/api/v1/minimax/minimax-h3-v2v' -Method POST -Headers $headers -ContentType 'application/json' -Body '{
"prompt": "Remix the motion with cinematic lighting",
"reference_videos": [
"https://example.com/ref.mp4"
],
"duration": 5,
"resolution": "2K"
}'{
"code": 0,
"message": "success",
"data": {
"status": "pending",
"task_id": "task-abc123",
"model_id": "model-123",
"get_result": {
"method": "GET",
"url": "https://api.modellix.ai/api/v1/tasks/task-abc123"
}
}
}Authorizations
API Key authentication. Format: Bearer YOUR_API_KEY.
Body
Video content description.
1 - 7000Reference video URLs used to guide motion or content (1-3).
1 - 3 elements1Required video duration in seconds.
4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15 Required output resolution.
768P, 2K Optional reference image URLs (up to 9).
91Optional reference audio URLs (up to 3).
31Optional video aspect ratio. One of the listed values. Default: 16:9.
21:9, 16:9, 4:3, 1:1, 3:4, 9:16