Skip to main content
POST
/
v1
/
jobs
/
submit
Hailuo 2.3 Standard — Text to Video
curl --request POST \
  --url https://api.muvi.video/v1/jobs/submit \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '
{
  "model": "<string>",
  "input": {
    "prompt": "<string>",
    "duration": "<string>"
  }
}
'
import requests

url = "https://api.muvi.video/v1/jobs/submit"

payload = {
    "model": "<string>",
    "input": {
        "prompt": "<string>",
        "duration": "<string>"
    }
}
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({model: '<string>', input: {prompt: '<string>', duration: '<string>'}})
};

fetch('https://api.muvi.video/v1/jobs/submit', options)
  .then(res => res.json())
  .then(res => console.log(res))
  .catch(err => console.error(err));
{
  "jobId": "<string>",
  "status": "<string>",
  "estimatedCompletionTime": "<string>",
  "costMicroCents": 123
}
Generate 768p videos from text descriptions with MiniMax Plus Hailuo 2.3 Standard — supports selectable duration with balanced quality/cost.
PropertyValue
ProviderMiniMax Plus
ModelHailuo 2.3 Standard
CapabilityText to Video
Base Cost35,000 micro-cents/second ($0.035/sec)
Processing Time~180 seconds

Request Body

model
string
required
Model slug. Use minimax-plus/hailuo-2.3-standard/text-to-video for text-to-video generation.
input
object
required
Input parameters for text-to-video generation.
webhookUrl
string
HTTPS URL to receive a webhook notification when the job completes or fails.

Pricing

Base cost: 35,000 micro-cents per second ($0.035/sec)
finalCost = baseCost × duration
FactorOptionMultiplier
Duration66x
1010x
Default cost: 6 seconds = 35,000 × 6 = 210,000 micro-cents ($0.21)

Response

jobId
string
Unique identifier for the submitted job.
status
string
Initial job status. Always "pending" on successful submission.
estimatedCompletionTime
string
ISO 8601 timestamp of the estimated completion time.
costMicroCents
number
The cost of the job in micro-cents.

Code Examples

curl -X POST https://api.muvi.video/v1/jobs/submit \
  -H "Authorization: Bearer $PIXELBYTE_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "minimax-plus/hailuo-2.3-standard/text-to-video",
    "input": {
      "prompt": "A timelapse of clouds rolling over a mountain range at sunrise",
      "duration": "6"
    }
  }'
import requests

response = requests.post(
    "https://api.muvi.video/v1/jobs/submit",
    headers={
        "Authorization": "Bearer YOUR_API_KEY",
        "Content-Type": "application/json"
    },
    json={
        "model": "minimax-plus/hailuo-2.3-standard/text-to-video",
        "input": {
            "prompt": "A timelapse of clouds rolling over a mountain range at sunrise",
            "duration": "6"
        }
    }
)

data = response.json()
print(data)
const response = await fetch("https://api.muvi.video/v1/jobs/submit", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
    model: "minimax-plus/hailuo-2.3-standard/text-to-video",
    input: {
      prompt: "A timelapse of clouds rolling over a mountain range at sunrise",
      duration: "6"
    }
  })
});

const data = await response.json();
console.log(data);