Skip to main content
POST
/
v1
/
jobs
/
submit
Hailuo 2.3 Fast Pro — Image 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": {
    "image_url": "<string>",
    "prompt": "<string>"
  }
}
'
import requests

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

payload = {
    "model": "<string>",
    "input": {
        "image_url": "<string>",
        "prompt": "<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: {image_url: '<string>', prompt: '<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
}
Animate a still image with MiniMax Plus Hailuo 2.3 Fast Pro — a 1080p image-to-video model that combines fast generation with pro-tier quality at a flat per-request cost.
PropertyValue
ProviderMiniMax Plus
ModelHailuo 2.3 Fast Pro
CapabilityImage to Video
Base Cost35,000 micro-cents/request ($0.035/request)
Processing Time~90 seconds

Request Body

model
string
required
Model slug. Use minimax-plus/hailuo-2.3-fast-pro/image-to-video for image-to-video generation.
input
object
required
Input parameters for image-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 request ($0.035/request)
Default cost: 35,000 micro-cents ($0.035) per request — flat pricing regardless of duration.

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-fast-pro/image-to-video",
    "input": {
      "image_url": "https://example.com/image.jpg",
      "prompt": "Cinematic camera push-in as the subject turns toward the light"
    }
  }'
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-fast-pro/image-to-video",
        "input": {
            "image_url": "https://example.com/image.jpg",
            "prompt": "Cinematic camera push-in as the subject turns toward the light"
        }
    }
)

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-fast-pro/image-to-video",
    input: {
      image_url: "https://example.com/image.jpg",
      prompt: "Cinematic camera push-in as the subject turns toward the light"
    }
  })
});

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