Video · Image to video

MiniMax H3 Max Camera Controls API

MiniMax H3 Max Camera Controls. Move the camera around a single image with keyframed azimuth, elevation and distance while the scene stays put. Up to 15 s, 480p-1080p.

Price
From $0.05 per run from $0.05/s
Typical time
~30 s
Model id
minimax_h3_max_camera_controls

MiniMax H3 Max Camera Controls runs on one varg API key and one credit balance, the same as every other model here. You pay the provider's price, with no markup.

POST /v2/tools/video/call
curl -X POST https://api.varg.ai/v2/tools/video/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "minimax_h3_max_camera_controls",
  "prompt": "Orbit precisely around the subject while preserving its identity and the scene.",
  "files": [
    {
      "url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg"
    }
  ],
  "duration": 5
}'

MiniMax H3 Max Camera Controls pricing

From $0.05 per run. Prices are in US dollars and are the provider's own, with no markup. For the exact price of a request, send the same body to POST https://api.varg.ai/v2/estimate.

  • fal from $0.05/s
    fal:minimax/h3-max/camera-controls

    Image to video H3 Max Camera Controls (formerly Multi Angle) — moves the camera through a single image along camera_trajectory keyframes (azimuth, elevation, distance over normalized time); the scene stays frozen unless the prompt says otherwise. 480P-1080P, 0.92-15 s.

    Resolution 480P
    $0.05/s
    Resolution 768P
    $0.08/s
    Resolution 1080P
    $0.16/s
    Other
    $0.16/s
    Minimum charge
    $0.05
    Most one request can cost
    $2.40
    Typical time
    ~30 s

MiniMax H3 Max Camera Controls inputs

The JSON body of the request. Media inputs are URLs: upload a local file with POST /v2/files and pass the URL it returns. Full JSON Schema, no key needed: api.varg.ai/v2/tools/video?model=minimax_h3_max_camera_controls

MiniMax H3 Max Camera Controls request fields
FieldWhat it does
model string requiredminimax_h3_max_camera_controls picks a route automatically.
prompt string —
files array of { url } —
aspect_ratio string Allowed e.g. 16:9 | 9:16 | 1:1 | 4:3 | 3:4 | 21:9 | auto
resolution string Quality tier. Supported by this model: 480p, 720p, 1080p. Unsupported tiers fall back to the nearest available. Allowed 480p | 720p | 1080p | 4k
audio boolean Native audio track request. Not supported by this model — ignored if sent.
duration integer Length in seconds. Supported by this model's routes: fal: number 0.92-15. A non-numeric value such as "auto" is routed to a route whose schema accepts it; when none does, the request is rejected. Allowed 1–15

Provider options

Optional, under provider_options.<provider>. Only the options of the provider that runs the job apply; pin a route to choose it.

provider_options.fal

MiniMax H3 Max Camera Controls options for fal
FieldWhat it does
prompt string Text prompt for video generation. When omitted or blank, defaults to preserving the frozen reference scene while only the camera moves.
seed integer Allowed -9007199254740991–9007199254740991
duration number Video length in seconds. The output can run up to about 0.7 s longer than requested. Allowed 0.92–15
image_url string (URL) URL of the image to use as the first frame.
sync_mode boolean Return the generated video as base64 instead of a CDN URL.
resolution string Allowed 480P | 768P | 1080P
enable_safety_checker boolean If set to true, the safety checker will be enabled.
prompt_expansion_mode string How much effort to spend rewriting the prompt before generation. 'disabled' skips prompt expansion. 'balanced' returns in about a second. 'quality' spends up to ~30s on a richer prompt.

Call the MiniMax H3 Max Camera Controls API

POST https://api.varg.ai/v2/tools/video/call with Authorization: Bearer $VARG_API_KEY. It answers 202 with a job right away.

1. Send the request

cURL
curl -X POST https://api.varg.ai/v2/tools/video/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "minimax_h3_max_camera_controls",
  "prompt": "Orbit precisely around the subject while preserving its identity and the scene.",
  "files": [
    {
      "url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg"
    }
  ],
  "duration": 5
}'
JavaScript
JavaScript
const headers = {
  Authorization: `Bearer ${process.env.VARG_API_KEY}`,
  'Content-Type': 'application/json',
}

const res = await fetch('https://api.varg.ai/v2/tools/video/call', {
  method: 'POST',
  headers,
  body: JSON.stringify({
    "model": "minimax_h3_max_camera_controls",
    "prompt": "Orbit precisely around the subject while preserving its identity and the scene.",
    "files": [
      {
        "url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg"
      }
    ],
    "duration": 5
  }),
})
const job = await res.json() // { id: "job_…", status: "queued" }
Python
Python
import os
import requests

headers = {"Authorization": f"Bearer {os.environ['VARG_API_KEY']}"}

job = requests.post(
    "https://api.varg.ai/v2/tools/video/call",
    headers=headers,
    json={
      "model": "minimax_h3_max_camera_controls",
      "prompt": "Orbit precisely around the subject while preserving its identity and the scene.",
      "files": [
        {
          "url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg"
        }
      ],
      "duration": 5
    },
).json()  # {"id": "job_…", "status": "queued"}

2. Get the result

Poll the job until its status is completed, failed or cancelled; MiniMax H3 Max Camera Controls typically takes about 30 s. The result is at output.outputs[0].url.

GET /v2/jobs/{id}
curl https://api.varg.ai/v2/jobs/$JOB_ID \
  -H "Authorization: Bearer $VARG_API_KEY"

# Poll until "status" is completed, failed or cancelled.
# The result is in output.outputs[0].url
JavaScript
JavaScript
let current = job
while (!['completed', 'failed', 'cancelled'].includes(current.status)) {
  await new Promise((resolve) => setTimeout(resolve, 3000))
  current = await (await fetch(`https://api.varg.ai/v2/jobs/${current.id}`, { headers })).json()
}
console.log(current.output?.outputs?.[0]?.url)
Python
Python
import time

while job["status"] not in ("completed", "failed", "cancelled"):
    time.sleep(3)
    job = requests.get(f"https://api.varg.ai/v2/jobs/{job['id']}", headers=headers).json()

print(job["output"]["outputs"][0]["url"])
Or take a webhook instead of polling

Add options.webhook_url and varg POSTs the finished job to it.

request body
{
  "model": "minimax_h3_max_camera_controls",
  "prompt": "Orbit precisely around the subject while preserving its identity and the scene.",
  "files": [
    {
      "url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg"
    }
  ],
  "duration": 5,
  "options": {
    "webhook_url": "https://your-app.com/varg-webhook"
  }
}

From Claude, ChatGPT or Cursor (MCP)

The varg MCP server, https://mcp.varg.ai/mcp, runs MiniMax H3 Max Camera Controls with call_tool. Sign in with varg, no API key to paste. How to connect it

call_tool
{
  "tool": "video",
  "input": {
    "model": "minimax_h3_max_camera_controls",
    "prompt": "Orbit precisely around the subject while preserving its identity and the scene.",
    "files": [
      {
        "url": "https://storage.googleapis.com/falserverless/example_inputs/hailuo23/pro_i2v_in.jpg"
      }
    ],
    "duration": 5
  },
  "wait": true
}

MiniMax H3 Max Camera Controls API: questions

How much does MiniMax H3 Max Camera Controls cost on varg?
MiniMax H3 Max Camera Controls costs from $0.05 per run on varg (from $0.05/s on the cheapest route). varg charges the provider's price with no markup, from one credit balance. For the exact price of a request before you run it, send the same body to POST https://api.varg.ai/v2/estimate.
How do I call the MiniMax H3 Max Camera Controls API?
Send POST https://api.varg.ai/v2/tools/video/call with the header "Authorization: Bearer $VARG_API_KEY" and a JSON body that includes "model": "minimax_h3_max_camera_controls". The call answers 202 with a job right away. Poll GET https://api.varg.ai/v2/jobs/{id} until "status" is "completed", then read output.outputs[0].url, or pass options.webhook_url to be called back.
Can I use MiniMax H3 Max Camera Controls from Claude, ChatGPT or Cursor?
Yes. Add the varg MCP server (https://mcp.varg.ai/mcp) to Claude, ChatGPT, Cursor or any other MCP client and sign in with varg, with no API key to paste. The agent runs MiniMax H3 Max Camera Controls with call_tool, passing tool "video" and "model": "minimax_h3_max_camera_controls".
How long does a MiniMax H3 Max Camera Controls request take?
Typically about 30 s on the fastest route, by the catalog's estimate. The API answers at once with a job id, so nothing waits on an open connection while it runs.

For AI agents: this page as Markdown is varg.ai/models/minimax_h3_max_camera_controls.md, and every model is listed in varg.ai/models/llms.txt.