curl --request POST \
--url https://api.krea.ai/generate/video/minimax/hailuo-3 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "An Art Deco skyscraper in New York, jazzing with the skyline."
}
'import requests
url = "https://api.krea.ai/generate/video/minimax/hailuo-3"
payload = { "prompt": "An Art Deco skyscraper in New York, jazzing with the skyline." }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({prompt: 'An Art Deco skyscraper in New York, jazzing with the skyline.'})
};
fetch('https://api.krea.ai/generate/video/minimax/hailuo-3', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.krea.ai/generate/video/minimax/hailuo-3",
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' => 'An Art Deco skyscraper in New York, jazzing with the skyline.'
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.krea.ai/generate/video/minimax/hailuo-3"
payload := strings.NewReader("{\n \"prompt\": \"An Art Deco skyscraper in New York, jazzing with the skyline.\"\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.krea.ai/generate/video/minimax/hailuo-3")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"An Art Deco skyscraper in New York, jazzing with the skyline.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.krea.ai/generate/video/minimax/hailuo-3")
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\": \"An Art Deco skyscraper in New York, jazzing with the skyline.\"\n}"
response = http.request(request)
puts response.read_body{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "backlogged",
"created_at": "2023-11-07T05:31:56Z",
"completed_at": null,
"result": null,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}MiniMax H3
Frontier 2K model with references and frame animation.
curl --request POST \
--url https://api.krea.ai/generate/video/minimax/hailuo-3 \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '
{
"prompt": "An Art Deco skyscraper in New York, jazzing with the skyline."
}
'import requests
url = "https://api.krea.ai/generate/video/minimax/hailuo-3"
payload = { "prompt": "An Art Deco skyscraper in New York, jazzing with the skyline." }
headers = {
"Authorization": "Bearer <token>",
"Content-Type": "application/json"
}
response = requests.post(url, json=payload, headers=headers)
print(response.text)const options = {
method: 'POST',
headers: {Authorization: 'Bearer <token>', 'Content-Type': 'application/json'},
body: JSON.stringify({prompt: 'An Art Deco skyscraper in New York, jazzing with the skyline.'})
};
fetch('https://api.krea.ai/generate/video/minimax/hailuo-3', options)
.then(res => res.json())
.then(res => console.log(res))
.catch(err => console.error(err));<?php
$curl = curl_init();
curl_setopt_array($curl, [
CURLOPT_URL => "https://api.krea.ai/generate/video/minimax/hailuo-3",
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' => 'An Art Deco skyscraper in New York, jazzing with the skyline.'
]),
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;
}package main
import (
"fmt"
"strings"
"net/http"
"io"
)
func main() {
url := "https://api.krea.ai/generate/video/minimax/hailuo-3"
payload := strings.NewReader("{\n \"prompt\": \"An Art Deco skyscraper in New York, jazzing with the skyline.\"\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.krea.ai/generate/video/minimax/hailuo-3")
.header("Authorization", "Bearer <token>")
.header("Content-Type", "application/json")
.body("{\n \"prompt\": \"An Art Deco skyscraper in New York, jazzing with the skyline.\"\n}")
.asString();require 'uri'
require 'net/http'
url = URI("https://api.krea.ai/generate/video/minimax/hailuo-3")
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\": \"An Art Deco skyscraper in New York, jazzing with the skyline.\"\n}"
response = http.request(request)
puts response.read_body{
"job_id": "3c90c3cc-0d44-4b50-8888-8dd25736052a",
"status": "backlogged",
"created_at": "2023-11-07T05:31:56Z",
"completed_at": null,
"result": null,
"error": {
"code": "<string>",
"message": "<string>"
}
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}{
"error": "<string>"
}Pricing
| BillableSeconds | Reference Images | Price |
|---|---|---|
| 5 | 0 | $0.6825 |
| 5 | 1 | $0.6825 |
| 5 | 2 | $0.6825 |
| 5 | 3 | $0.6825 |
| 5 | 4 | $0.6825 |
| 5 | 5 | $0.6825 |
| 5 | 6 | $0.7245 |
| 5 | 7 | $0.7665 |
| 5 | 8 | $0.8085 |
| 6 | 0 | $0.819 |
| 6 | 1 | $0.819 |
| 6 | 2 | $0.819 |
| 6 | 3 | $0.819 |
| 6 | 4 | $0.819 |
| 6 | 5 | $0.819 |
| 5 | 9 | $0.8505 |
| 6 | 6 | $0.861 |
| 6 | 7 | $0.903 |
| 6 | 8 | $0.945 |
| 7 | 0 | $0.9555 |
| 7 | 1 | $0.9555 |
| 7 | 2 | $0.9555 |
| 7 | 3 | $0.9555 |
| 7 | 4 | $0.9555 |
| 7 | 5 | $0.9555 |
| 6 | 9 | $0.987 |
| 7 | 6 | $0.9975 |
| 7 | 7 | $1.0395 |
| 7 | 8 | $1.0815 |
| 8 | 0 | $1.092 |
| 8 | 1 | $1.092 |
| 8 | 2 | $1.092 |
| 8 | 3 | $1.092 |
| 8 | 4 | $1.092 |
| 8 | 5 | $1.092 |
| 7 | 9 | $1.1235 |
| 8 | 6 | $1.134 |
| 8 | 7 | $1.176 |
| 8 | 8 | $1.218 |
| 9 | 0 | $1.2285 |
| 9 | 1 | $1.2285 |
| 9 | 2 | $1.2285 |
| 9 | 3 | $1.2285 |
| 9 | 4 | $1.2285 |
| 9 | 5 | $1.2285 |
| 8 | 9 | $1.26 |
| 9 | 6 | $1.2705 |
| 9 | 7 | $1.3125 |
| 9 | 8 | $1.3545 |
| 10 | 0 | $1.365 |
| 10 | 1 | $1.365 |
| 10 | 2 | $1.365 |
| 10 | 3 | $1.365 |
| 10 | 4 | $1.365 |
| 10 | 5 | $1.365 |
| 9 | 9 | $1.3965 |
| 10 | 6 | $1.407 |
| 10 | 7 | $1.449 |
| 10 | 8 | $1.491 |
| 11 | 0 | $1.5015 |
| 11 | 1 | $1.5015 |
| 11 | 2 | $1.5015 |
| 11 | 3 | $1.5015 |
| 11 | 4 | $1.5015 |
| 11 | 5 | $1.5015 |
| 10 | 9 | $1.533 |
| 11 | 6 | $1.5435 |
| 11 | 7 | $1.5855 |
| 11 | 8 | $1.6275 |
| 12 | 0 | $1.638 |
| 12 | 1 | $1.638 |
| 12 | 2 | $1.638 |
| 12 | 3 | $1.638 |
| 12 | 4 | $1.638 |
| 12 | 5 | $1.638 |
| 11 | 9 | $1.6695 |
| 12 | 6 | $1.68 |
| 12 | 7 | $1.722 |
| 12 | 8 | $1.764 |
| 13 | 0 | $1.7745 |
| 13 | 1 | $1.7745 |
| 13 | 2 | $1.7745 |
| 13 | 3 | $1.7745 |
| 13 | 4 | $1.7745 |
| 13 | 5 | $1.7745 |
| 12 | 9 | $1.806 |
| 13 | 6 | $1.8165 |
| 13 | 7 | $1.8585 |
| 13 | 8 | $1.9005 |
| 14 | 0 | $1.911 |
| 14 | 1 | $1.911 |
| 14 | 2 | $1.911 |
| 14 | 3 | $1.911 |
| 14 | 4 | $1.911 |
| 14 | 5 | $1.911 |
| 13 | 9 | $1.9425 |
| 14 | 6 | $1.953 |
| 14 | 7 | $1.995 |
| 14 | 8 | $2.037 |
| 15 | 0 | $2.0475 |
| 15 | 1 | $2.0475 |
| 15 | 2 | $2.0475 |
| 15 | 3 | $2.0475 |
| 15 | 4 | $2.0475 |
| 15 | 5 | $2.0475 |
| 14 | 9 | $2.079 |
| 15 | 6 | $2.0895 |
| 15 | 7 | $2.1315 |
| 15 | 8 | $2.1735 |
| 16 | 0 | $2.184 |
| 16 | 1 | $2.184 |
| 16 | 2 | $2.184 |
| 16 | 3 | $2.184 |
| 16 | 4 | $2.184 |
| 16 | 5 | $2.184 |
| 15 | 9 | $2.2155 |
| 16 | 6 | $2.226 |
| 16 | 7 | $2.268 |
| 16 | 8 | $2.31 |
| 17 | 0 | $2.3205 |
| 17 | 1 | $2.3205 |
| 17 | 2 | $2.3205 |
| 17 | 3 | $2.3205 |
| 17 | 4 | $2.3205 |
| 17 | 5 | $2.3205 |
| 16 | 9 | $2.352 |
| 17 | 6 | $2.3625 |
| 17 | 7 | $2.4045 |
| 17 | 8 | $2.4465 |
| 18 | 0 | $2.457 |
| 18 | 1 | $2.457 |
| 18 | 2 | $2.457 |
| 18 | 3 | $2.457 |
| 18 | 4 | $2.457 |
| 18 | 5 | $2.457 |
| 17 | 9 | $2.4885 |
| 18 | 6 | $2.499 |
| 18 | 7 | $2.541 |
| 18 | 8 | $2.583 |
| 19 | 0 | $2.5935 |
| 19 | 1 | $2.5935 |
| 19 | 2 | $2.5935 |
| 19 | 3 | $2.5935 |
| 19 | 4 | $2.5935 |
| 19 | 5 | $2.5935 |
| 18 | 9 | $2.625 |
| 19 | 6 | $2.6355 |
| 19 | 7 | $2.6775 |
| 19 | 8 | $2.7195 |
| 20 | 0 | $2.73 |
| 20 | 1 | $2.73 |
| 20 | 2 | $2.73 |
| 20 | 3 | $2.73 |
| 20 | 4 | $2.73 |
| 20 | 5 | $2.73 |
| 19 | 9 | $2.7615 |
| 20 | 6 | $2.772 |
| 20 | 7 | $2.814 |
| 20 | 8 | $2.856 |
| 21 | 0 | $2.8665 |
| 21 | 1 | $2.8665 |
| 21 | 2 | $2.8665 |
| 21 | 3 | $2.8665 |
| 21 | 4 | $2.8665 |
| 21 | 5 | $2.8665 |
| 20 | 9 | $2.898 |
| 21 | 6 | $2.9085 |
| 21 | 7 | $2.9505 |
| 21 | 8 | $2.9925 |
| 22 | 0 | $3.003 |
| 22 | 1 | $3.003 |
| 22 | 2 | $3.003 |
| 22 | 3 | $3.003 |
| 22 | 4 | $3.003 |
| 22 | 5 | $3.003 |
| 21 | 9 | $3.0345 |
| 22 | 6 | $3.045 |
| 22 | 7 | $3.087 |
| 22 | 8 | $3.129 |
| 23 | 0 | $3.1395 |
| 23 | 1 | $3.1395 |
| 23 | 2 | $3.1395 |
| 23 | 3 | $3.1395 |
| 23 | 4 | $3.1395 |
| 23 | 5 | $3.1395 |
| 22 | 9 | $3.171 |
| 23 | 6 | $3.1815 |
| 23 | 7 | $3.2235 |
| 23 | 8 | $3.2655 |
| 24 | 0 | $3.276 |
| 24 | 1 | $3.276 |
| 24 | 2 | $3.276 |
| 24 | 3 | $3.276 |
| 24 | 4 | $3.276 |
| 24 | 5 | $3.276 |
| 23 | 9 | $3.3075 |
| 24 | 6 | $3.318 |
| 24 | 7 | $3.36 |
| 24 | 8 | $3.402 |
| 25 | 0 | $3.4125 |
| 25 | 1 | $3.4125 |
| 25 | 2 | $3.4125 |
| 25 | 3 | $3.4125 |
| 25 | 4 | $3.4125 |
| 25 | 5 | $3.4125 |
| 24 | 9 | $3.444 |
| 25 | 6 | $3.4545 |
| 25 | 7 | $3.4965 |
| 25 | 8 | $3.5385 |
| 26 | 0 | $3.549 |
| 26 | 1 | $3.549 |
| 26 | 2 | $3.549 |
| 26 | 3 | $3.549 |
| 26 | 4 | $3.549 |
| 26 | 5 | $3.549 |
| 25 | 9 | $3.5805 |
| 26 | 6 | $3.591 |
| 26 | 7 | $3.633 |
| 26 | 8 | $3.675 |
| 27 | 0 | $3.6855 |
| 27 | 1 | $3.6855 |
| 27 | 2 | $3.6855 |
| 27 | 3 | $3.6855 |
| 27 | 4 | $3.6855 |
| 27 | 5 | $3.6855 |
| 26 | 9 | $3.717 |
| 27 | 6 | $3.7275 |
| 27 | 7 | $3.7695 |
| 27 | 8 | $3.8115 |
| 28 | 0 | $3.822 |
| 28 | 1 | $3.822 |
| 28 | 2 | $3.822 |
| 28 | 3 | $3.822 |
| 28 | 4 | $3.822 |
| 28 | 5 | $3.822 |
| 27 | 9 | $3.8535 |
| 28 | 6 | $3.864 |
| 28 | 7 | $3.906 |
| 28 | 8 | $3.948 |
| 29 | 0 | $3.9585 |
| 29 | 1 | $3.9585 |
| 29 | 2 | $3.9585 |
| 29 | 3 | $3.9585 |
| 29 | 4 | $3.9585 |
| 29 | 5 | $3.9585 |
| 28 | 9 | $3.99 |
| 29 | 6 | $4.0005 |
| 29 | 7 | $4.0425 |
| 29 | 8 | $4.0845 |
| 30 | 0 | $4.095 |
| 30 | 1 | $4.095 |
| 30 | 2 | $4.095 |
| 30 | 3 | $4.095 |
| 30 | 4 | $4.095 |
| 30 | 5 | $4.095 |
| 29 | 9 | $4.1265 |
| 30 | 6 | $4.137 |
| 30 | 7 | $4.179 |
| 30 | 8 | $4.221 |
| 30 | 9 | $4.263 |
Deprecated request aliases
Deprecated request aliases
| Deprecated | Use instead | Accepted until |
|---|---|---|
startImage | start_image | 2026-06-19 |
aspectRatio | aspect_ratio | 2026-06-19 |
endImage | end_image | 2026-06-19 |
referenceImages | reference_images | 2026-06-19 |
referenceVideos | reference_videos | 2026-06-19 |
referenceVideoSeconds | reference_video_seconds | 2026-06-19 |
referenceAudios | reference_audios | 2026-06-19 |
Authorizations
Bearer authentication header of the form Bearer <token>, where <token> is your auth token.
Headers
URL to receive a POST request when the job completes. The webhook will receive the job data including results.
Body
1 - 7000Can be an external URL, base64 data URI, or uploaded asset URL.
1024adaptive, 21:9, 16:9, 4:3, 1:1, 3:4, 9:16 Can be an external URL, base64 data URI, or uploaded asset URL.
10249Can be an external URL, base64 data URI, or uploaded asset URL.
10243Can be an external URL, base64 data URI, or uploaded asset URL.
10240 <= x <= 153Can be an external URL, base64 data URI, or uploaded asset URL.
10245 <= x <= 15Response
The resulting job data. This will be returned in a pending state until the job is completed. See /jobs/{id} for retrieving the results.
^([0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[1-8][0-9a-fA-F]{3}-[89abAB][0-9a-fA-F]{3}-[0-9a-fA-F]{12}|00000000-0000-0000-0000-000000000000|ffffffff-ffff-ffff-ffff-ffffffffffff)$backlogged, queued, scheduled, processing, sampling, intermediate-complete, completed, failed, cancelled ^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z))$Show child attributes
Show child attributes
Was this page helpful?