Video · Video to video

MiniMax H3 Max 3D to Video API

MiniMax H3 Max 3D to Video. Turn a Blender render or 3D previs (up to 15 s) into photoreal video with the same layout, camera and timing; reference images set the look. 480p-1080p.

Price
From $0.90 per run from $0.18/s
Typical time
~2 min
Model id
minimax_h3_max_3d_to_video

MiniMax H3 Max 3D to Video 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_3d_to_video",
  "prompt": "The moving block represents a running person.",
  "files": [
    {
      "url": "https://example.com/blender-previs.mp4"
    }
  ]
}'

MiniMax H3 Max 3D to Video pricing

From $0.90 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.18/s
    fal:minimax/h3-max/3d-to-video

    Video to video H3 Max 3D to Video — turns a Blender render / 3D previs (up to 15 s, 32 shots) into photoreal video, keeping layout, camera and timing; optional reference images set the look. 480P-1080P; output length = source length.

    Resolution 480P
    $0.18/s
    Resolution 768P
    $0.21/s
    Resolution 1080P
    $0.29/s
    Other
    $0.29/s
    Minimum charge
    $0.90
    Most one request can cost
    $4.35
    Typical time
    ~2 min

MiniMax H3 Max 3D to Video 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_3d_to_video

MiniMax H3 Max 3D to Video request fields
FieldWhat it does
model string requiredminimax_h3_max_3d_to_video 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. Not mapped by this model — ignored if sent. Allowed 1–120

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 3D to Video options for fal
FieldWhat it does
prompt string —
reference_image_urls array of URL strings —
video_url string (URL) Blender video, up to 15 seconds and 32 shots, at a public HTTPS URL.
resolution string Allowed 480P | 768P | 1080P
max_generated_reference_images integer Maximum NEW images to generate when no reference images are supplied. Ignored when reference images are supplied. Uses fewer when enough views are covered. Uncovered shots stay in the video. Allowed 1–8

Call the MiniMax H3 Max 3D to Video 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_3d_to_video",
  "prompt": "The moving block represents a running person.",
  "files": [
    {
      "url": "https://example.com/blender-previs.mp4"
    }
  ]
}'
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_3d_to_video",
    "prompt": "The moving block represents a running person.",
    "files": [
      {
        "url": "https://example.com/blender-previs.mp4"
      }
    ]
  }),
})
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_3d_to_video",
      "prompt": "The moving block represents a running person.",
      "files": [
        {
          "url": "https://example.com/blender-previs.mp4"
        }
      ]
    },
).json()  # {"id": "job_…", "status": "queued"}

2. Get the result

Poll the job until its status is completed, failed or cancelled; MiniMax H3 Max 3D to Video typically takes about 2 min. 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_3d_to_video",
  "prompt": "The moving block represents a running person.",
  "files": [
    {
      "url": "https://example.com/blender-previs.mp4"
    }
  ],
  "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 3D to Video 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_3d_to_video",
    "prompt": "The moving block represents a running person.",
    "files": [
      {
        "url": "https://example.com/blender-previs.mp4"
      }
    ]
  },
  "wait": true
}

MiniMax H3 Max 3D to Video API: questions

How much does MiniMax H3 Max 3D to Video cost on varg?
MiniMax H3 Max 3D to Video costs from $0.90 per run on varg (from $0.18/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 3D to Video 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_3d_to_video". 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 3D to Video 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 3D to Video with call_tool, passing tool "video" and "model": "minimax_h3_max_3d_to_video".
How long does a MiniMax H3 Max 3D to Video request take?
Typically about 2 min 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_3d_to_video.md, and every model is listed in varg.ai/models/llms.txt.