curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "minimax_h3_turbo",
"params": {
"prompt": "Create a polished ecommerce product video with consistent product appearance and cinematic motion",
"image_url": [
"https://example.com/product-front.jpg",
"https://example.com/product-lifestyle.jpg"
],
"audio_url": [
"https://example.com/voice-reference.mp3"
],
"video_length": 8,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_reference_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "minimax_h3_turbo",
params: {
prompt: "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length: 5,
resolution: "720p",
aspect_ratio: "16:9"
},
out_task_id: "minimax_h3_turbo_text_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "minimax_h3_turbo",
"params": map[string]interface{}{
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
},
"out_task_id": "minimax_h3_turbo_text_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "minimax_h3_turbo",
"params" => [
"prompt" => "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length" => 5,
"resolution" => "720p",
"aspect_ratio" => "16:9"
],
"out_task_id" => "minimax_h3_turbo_text_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "minimax_h3_turbo",
params: {
prompt: "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length: 5,
resolution: "720p",
aspect_ratio: "16:9"
},
out_task_id: "minimax_h3_turbo_text_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
let payload: [String: Any] = [
"model": "minimax_h3_turbo",
"params": [
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
],
"out_task_id": "minimax_h3_turbo_text_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = @"
{
""model"": ""minimax_h3_turbo"",
""params"": {
""prompt"": ""A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot"",
""video_length"": 5,
""resolution"": ""720p"",
""aspect_ratio"": ""16:9""
},
""out_task_id"": ""minimax_h3_turbo_text_123456""
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{\"model\":\"minimax_h3_turbo\",\"params\":{\"prompt\":\"A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot\",\"video_length\":5,\"resolution\":\"720p\",\"aspect_ratio\":\"16:9\"},\"out_task_id\":\"minimax_h3_turbo_text_123456\"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSDictionary *payload = @{
@"model": @"minimax_h3_turbo",
@"params": @{
@"prompt": @"A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
@"video_length": @5,
@"resolution": @"720p",
@"aspect_ratio": @"16:9"
},
@"out_task_id": @"minimax_h3_turbo_text_123456"
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "minimax_h3_turbo",
params = list(
prompt = "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length = 5,
resolution = "720p",
aspect_ratio = "16:9"
),
out_task_id = "minimax_h3_turbo_text_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "minimax_h3_turbo_text_123456",
"status": "pending",
"created_at": "2026-09-17T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
MiniMax H3
MiniMax H3 Turbo Video Generation
- MiniMax H3 Turbo, an accelerated version of MiniMax H3
- Asynchronous processing mode, returns a task ID for subsequent queries
- Supports text-to-video, up to 9 reference images, and 3 reference audio tracks
- Supports 480P / 720P output, video duration of 5-15 seconds, with native audio track by default
POST
/
api
/
openapi
/
submit
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "minimax_h3_turbo",
"params": {
"prompt": "Create a polished ecommerce product video with consistent product appearance and cinematic motion",
"image_url": [
"https://example.com/product-front.jpg",
"https://example.com/product-lifestyle.jpg"
],
"audio_url": [
"https://example.com/voice-reference.mp3"
],
"video_length": 8,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_reference_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "minimax_h3_turbo",
params: {
prompt: "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length: 5,
resolution: "720p",
aspect_ratio: "16:9"
},
out_task_id: "minimax_h3_turbo_text_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "minimax_h3_turbo",
"params": map[string]interface{}{
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
},
"out_task_id": "minimax_h3_turbo_text_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "minimax_h3_turbo",
"params" => [
"prompt" => "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length" => 5,
"resolution" => "720p",
"aspect_ratio" => "16:9"
],
"out_task_id" => "minimax_h3_turbo_text_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "minimax_h3_turbo",
params: {
prompt: "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length: 5,
resolution: "720p",
aspect_ratio: "16:9"
},
out_task_id: "minimax_h3_turbo_text_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
let payload: [String: Any] = [
"model": "minimax_h3_turbo",
"params": [
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
],
"out_task_id": "minimax_h3_turbo_text_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = @"
{
""model"": ""minimax_h3_turbo"",
""params"": {
""prompt"": ""A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot"",
""video_length"": 5,
""resolution"": ""720p"",
""aspect_ratio"": ""16:9""
},
""out_task_id"": ""minimax_h3_turbo_text_123456""
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{\"model\":\"minimax_h3_turbo\",\"params\":{\"prompt\":\"A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot\",\"video_length\":5,\"resolution\":\"720p\",\"aspect_ratio\":\"16:9\"},\"out_task_id\":\"minimax_h3_turbo_text_123456\"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSDictionary *payload = @{
@"model": @"minimax_h3_turbo",
@"params": @{
@"prompt": @"A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
@"video_length": @5,
@"resolution": @"720p",
@"aspect_ratio": @"16:9"
},
@"out_task_id": @"minimax_h3_turbo_text_123456"
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "minimax_h3_turbo",
params = list(
prompt = "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length = 5,
resolution = "720p",
aspect_ratio = "16:9"
),
out_task_id = "minimax_h3_turbo_text_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "minimax_h3_turbo_text_123456",
"status": "pending",
"created_at": "2026-09-17T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
The model name for MiniMax H3 Turbo in AIReiter is
minimax_h3_turbo. This model differs from minimax_h3: resolution is 480P / 720P, duration is 5-15 seconds, and it does not support reference videos or first/last frames.Authorizations
string
required
All endpoints require authentication using a Bearer Token.Get an API Key:Visit the API Key Management Page to get your API Key.Add to the request header when using:
Authorization: Bearer YOUR_API_KEY
Body
string
required
Model name, fixed value:
minimax_h3_turbo
object
required
Model parameter object.
Show params Object Properties
Show params Object Properties
string
required
Text description for video generation.Can describe subjects, scenes, camera movements, actions, styles, lighting, pacing, etc.When using reference assets, you can use “Image 1 / Audio 1” in the prompt to refer to uploaded content in sequential order.
number
default:"5"
Generated video duration, in seconds.Supports integers:
5 to 15.string
default:"720p"
Output resolution:
480p720p- Default
string
default:"16:9"
Video aspect ratio.Supported aspect ratios:
21:9- Ultrawide16:9- Landscape, Default4:3- Standard landscape3:2- Photo landscape1:1- Square3:4- Standard portrait2:3- Photo portrait9:16- Portrait
string | string[]
Reference image URL, optional. Up to 9 images.When no images are provided, it performs text-to-video; when images are provided, they serve as reference images to guide the subject, style, or composition.Image requirements:
- Supports JPEG, PNG, WEBP
- Maximum 20 MB per image
- URL must be publicly accessible
string | string[]
Reference audio URL, optional. Up to 3 clips.Audio requirements:
- Supports MP3, WAV
- Maximum 20 MB per audio file
- Duration must not exceed 15 seconds per audio file
- URL must be publicly accessible
string
required
Initiator task ID.User-defined task identifier, required. Can be used later to query task status and results.
Response
string
Caller task ID, which can be used to query results.
string
Initial status, usually
"pending".string
Creation time, ISO format.
Query Task
MiniMax H3 Turbo is an asynchronous video generation model. After submitting a task, please useout_task_id to query the task status.
string
required
The initiator task ID passed when submitting the task.
curl --request POST \
--url https://aireiter.com/api/openapi/query \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"out_task_id": "minimax_h3_turbo_task_123456"
}'
output field in the response will contain the generation results. The video URL is located in output.list[].video.
Request Examples
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}'
curl --request POST \
--url https://aireiter.com/api/openapi/submit \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{
"model": "minimax_h3_turbo",
"params": {
"prompt": "Create a polished ecommerce product video with consistent product appearance and cinematic motion",
"image_url": [
"https://example.com/product-front.jpg",
"https://example.com/product-lifestyle.jpg"
],
"audio_url": [
"https://example.com/voice-reference.mp3"
],
"video_length": 8,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_reference_123456"
}'
import requests
url = "https://aireiter.com/api/openapi/submit"
payload = {
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.json())
const url = "https://aireiter.com/api/openapi/submit";
const payload = {
model: "minimax_h3_turbo",
params: {
prompt: "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length: 5,
resolution: "720p",
aspect_ratio: "16:9"
},
out_task_id: "minimax_h3_turbo_text_123456"
};
const headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
};
fetch(url, {
method: "POST",
headers: headers,
body: JSON.stringify(payload)
})
.then(response => response.json())
.then(data => console.log(data))
.catch(error => console.error('Error:', error));
package main
import (
"bytes"
"encoding/json"
"fmt"
"io/ioutil"
"net/http"
)
func main() {
url := "https://aireiter.com/api/openapi/submit"
payload := map[string]interface{}{
"model": "minimax_h3_turbo",
"params": map[string]interface{}{
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9",
},
"out_task_id": "minimax_h3_turbo_text_123456",
}
jsonData, _ := json.Marshal(payload)
req, _ := http.NewRequest("POST", url, bytes.NewBuffer(jsonData))
req.Header.Set("Authorization", "Bearer <token>")
req.Header.Set("Content-Type", "application/json")
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
panic(err)
}
defer resp.Body.Close()
body, _ := ioutil.ReadAll(resp.Body)
fmt.Println(string(body))
}
import java.net.http.HttpClient;
import java.net.http.HttpRequest;
import java.net.http.HttpResponse;
import java.net.URI;
public class Main {
public static void main(String[] args) throws Exception {
String url = "https://aireiter.com/api/openapi/submit";
String payload = """
{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}
""";
HttpClient client = HttpClient.newHttpClient();
HttpRequest request = HttpRequest.newBuilder()
.uri(URI.create(url))
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.POST(HttpRequest.BodyPublishers.ofString(payload))
.build();
HttpResponse<String> response = client.send(request,
HttpResponse.BodyHandlers.ofString());
System.out.println(response.body());
}
}
<?php
$url = "https://aireiter.com/api/openapi/submit";
$payload = [
"model" => "minimax_h3_turbo",
"params" => [
"prompt" => "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length" => 5,
"resolution" => "720p",
"aspect_ratio" => "16:9"
],
"out_task_id" => "minimax_h3_turbo_text_123456"
];
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($payload));
curl_setopt($ch, CURLOPT_HTTPHEADER, [
"Authorization: Bearer <token>",
"Content-Type: application/json"
]);
$response = curl_exec($ch);
curl_close($ch);
echo $response;
?>
require 'net/http'
require 'json'
require 'uri'
url = URI("https://aireiter.com/api/openapi/submit")
payload = {
model: "minimax_h3_turbo",
params: {
prompt: "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length: 5,
resolution: "720p",
aspect_ratio: "16:9"
},
out_task_id: "minimax_h3_turbo_text_123456"
}
http = Net::HTTP.new(url.host, url.port)
request = Net::HTTP::Post.new(url)
request["Authorization"] = "Bearer <token>"
request["Content-Type"] = "application/json"
request.body = payload.to_json
response = http.request(request)
puts response.body
import Foundation
let url = URL(string: "https://aireiter.com/api/openapi/submit")!
let payload: [String: Any] = [
"model": "minimax_h3_turbo",
"params": [
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
],
"out_task_id": "minimax_h3_turbo_text_123456"
]
var request = URLRequest(url: url)
request.httpMethod = "POST"
request.setValue("Bearer <token>", forHTTPHeaderField: "Authorization")
request.setValue("application/json", forHTTPHeaderField: "Content-Type")
request.httpBody = try? JSONSerialization.data(withJSONObject: payload)
let task = URLSession.shared.dataTask(with: request) { data, response, error in
if let error = error {
print("Error: \(error)")
return
}
if let data = data, let responseString = String(data: data, encoding: .utf8) {
print(responseString)
}
}
task.resume()
using System;
using System.Net.Http;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
var url = "https://aireiter.com/api/openapi/submit";
var payload = @"
{
""model"": ""minimax_h3_turbo"",
""params"": {
""prompt"": ""A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot"",
""video_length"": 5,
""resolution"": ""720p"",
""aspect_ratio"": ""16:9""
},
""out_task_id"": ""minimax_h3_turbo_text_123456""
}";
using var client = new HttpClient();
client.DefaultRequestHeaders.Add("Authorization", "Bearer <token>");
var content = new StringContent(payload, Encoding.UTF8, "application/json");
var response = await client.PostAsync(url, content);
var result = await response.Content.ReadAsStringAsync();
Console.WriteLine(result);
}
}
#include <stdio.h>
#include <curl/curl.h>
int main(void) {
CURL *curl;
CURLcode res;
curl_global_init(CURL_GLOBAL_DEFAULT);
curl = curl_easy_init();
if(curl) {
const char *url = "https://aireiter.com/api/openapi/submit";
const char *payload = "{\"model\":\"minimax_h3_turbo\",\"params\":{\"prompt\":\"A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot\",\"video_length\":5,\"resolution\":\"720p\",\"aspect_ratio\":\"16:9\"},\"out_task_id\":\"minimax_h3_turbo_text_123456\"}";
struct curl_slist *headers = NULL;
headers = curl_slist_append(headers, "Authorization: Bearer <token>");
headers = curl_slist_append(headers, "Content-Type: application/json");
curl_easy_setopt(curl, CURLOPT_URL, url);
curl_easy_setopt(curl, CURLOPT_POSTFIELDS, payload);
curl_easy_setopt(curl, CURLOPT_HTTPHEADER, headers);
res = curl_easy_perform(curl);
if(res != CURLE_OK) {
fprintf(stderr, "curl_easy_perform() failed: %s\n",
curl_easy_strerror(res));
}
curl_slist_free_all(headers);
curl_easy_cleanup(curl);
}
curl_global_cleanup();
return 0;
}
#import <Foundation/Foundation.h>
int main(int argc, const char * argv[]) {
@autoreleasepool {
NSURL *url = [NSURL URLWithString:@"https://aireiter.com/api/openapi/submit"];
NSDictionary *payload = @{
@"model": @"minimax_h3_turbo",
@"params": @{
@"prompt": @"A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
@"video_length": @5,
@"resolution": @"720p",
@"aspect_ratio": @"16:9"
},
@"out_task_id": @"minimax_h3_turbo_text_123456"
};
NSError *error;
NSData *jsonData = [NSJSONSerialization dataWithJSONObject:payload
options:0
error:&error];
NSMutableURLRequest *request = [NSMutableURLRequest requestWithURL:url];
[request setHTTPMethod:@"POST"];
[request setValue:@"Bearer <token>" forHTTPHeaderField:@"Authorization"];
[request setValue:@"application/json" forHTTPHeaderField:@"Content-Type"];
[request setHTTPBody:jsonData];
NSURLSessionDataTask *task = [[NSURLSession sharedSession]
dataTaskWithRequest:request
completionHandler:^(NSData *data, NSURLResponse *response, NSError *error) {
if (error) {
NSLog(@"Error: %@", error);
return;
}
NSString *result = [[NSString alloc] initWithData:data
encoding:NSUTF8StringEncoding];
NSLog(@"%@", result);
}];
[task resume];
[[NSRunLoop mainRunLoop] run];
}
return 0;
}
(* Requires cohttp and yojson libraries *)
open Lwt
open Cohttp
open Cohttp_lwt_unix
let url = "https://aireiter.com/api/openapi/submit"
let payload = {|{
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
}|}
let () =
let headers = Header.init ()
|> fun h -> Header.add h "Authorization" "Bearer <token>"
|> fun h -> Header.add h "Content-Type" "application/json"
in
let body = Cohttp_lwt.Body.of_string payload in
let response = Client.post ~headers ~body (Uri.of_string url) >>= fun (resp, body) ->
body |> Cohttp_lwt.Body.to_string >|= fun body_str ->
print_endline body_str
in
Lwt_main.run response
import 'dart:convert';
import 'package:http/http.dart' as http;
void main() async {
final url = Uri.parse('https://aireiter.com/api/openapi/submit');
final payload = {
"model": "minimax_h3_turbo",
"params": {
"prompt": "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
"video_length": 5,
"resolution": "720p",
"aspect_ratio": "16:9"
},
"out_task_id": "minimax_h3_turbo_text_123456"
};
final response = await http.post(
url,
headers: {
'Authorization': 'Bearer <token>',
'Content-Type': 'application/json'
},
body: jsonEncode(payload),
);
print(response.body);
}
library(httr)
library(jsonlite)
url <- "https://aireiter.com/api/openapi/submit"
payload <- list(
model = "minimax_h3_turbo",
params = list(
prompt = "A lone traveler walks along a windswept cliff at golden hour, cinematic tracking shot",
video_length = 5,
resolution = "720p",
aspect_ratio = "16:9"
),
out_task_id = "minimax_h3_turbo_text_123456"
)
response <- POST(
url,
add_headers(
Authorization = "Bearer <token>",
`Content-Type` = "application/json"
),
body = toJSON(payload, auto_unbox = TRUE),
encode = "raw"
)
cat(content(response, "text"))
{
"statusCode": 200,
"message": "",
"data": {
"out_task_id": "minimax_h3_turbo_text_123456",
"status": "pending",
"created_at": "2026-09-17T06:03:28.242Z"
}
}
{
"statusCode": 400,
"message": "Invalid request parameters",
"ok": false
}
{
"error": {
"code": 401,
"message": "Authentication failed, please check your API key"
}
}
{
"error": {
"code": 433,
"message": "Insufficient account balance, please recharge and try again"
}
}
{
"error": {
"code": 500,
"message": "Internal server error, please try again later"
}
}
Mode Notes
When
image_url is not provided, it defaults to text-to-video. When a reference image is provided, the image is used to guide the subject, style, or composition, rather than serving as the first or last frame.This model does not support reference videos or the
first_last_frame mode. Please do not pass video_url, end_image_url, type, or quality.