Video · Text to video · Image to video

PixVerse V6 Max API

PixVerse V6 Max: 1-15 s video from text or a first-frame image at 540p/720p/1080p (360p via provider_options), with optional multi-clip camera changes and styles. Audio (BGM, SFX, dialogue) is always generated and billed at fal's with-audio rate.

Price
From $0.081/s
Typical time
~2 min
Model id
pixverse_v6_max

PixVerse V6 Max 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": "pixverse_v6_max",
  "prompt": "Epic low-cut camera capture of a girl clad in ultraviolet threads, Peter Max art style depiction, luminous diamond skin glistening under a vast moon'\''s radiance, embodied in a superhuman flight among mystical ruins, symbolizing a deity'\''s ritual ascent, hyper-detailed",
  "duration": 5
}'

PixVerse V6 Max pricing

From $0.081/s. Prices are in US dollars and are the provider's own, with no markup. PixVerse V6 Max has 2 routes: "model": "pixverse_v6_max" picks one automatically, or pass a route key as "model" to pin it. For the exact price of a request, send the same body to POST https://api.varg.ai/v2/estimate.

  • fal from $0.081/s
    fal:pixverse/v6/max/text-to-video

    Text to video PixVerse V6 Max text-to-video: 1-15 s with audio always on, 360p-1080p, 8 aspect ratios, optional multi-clip camera changes.

    Resolution 360p
    $0.081/s
    Resolution 540p
    $0.099/s
    Resolution 720p
    $0.135/s
    Resolution 1080p
    $0.252/s
    Other
    $0.252/s
    Most one request can cost
    $3.78
    Typical time
    ~2 min
  • fal from $0.081/s
    fal:pixverse/v6/max/image-to-video

    Image to video PixVerse V6 Max image-to-video: animate a first-frame image into 1-15 s with audio always on, 360p-1080p, optional multi-clip camera changes.

    Resolution 360p
    $0.081/s
    Resolution 540p
    $0.099/s
    Resolution 720p
    $0.135/s
    Resolution 1080p
    $0.252/s
    Other
    $0.252/s
    Most one request can cost
    $3.78
    Typical time
    ~2 min

PixVerse V6 Max 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=pixverse_v6_max

PixVerse V6 Max request fields
FieldWhat it does
model string requiredpixverse_v6_max picks a route automatically. To pin one, pass a route key from Pricing above.
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, 4k. 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: integer 1-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

PixVerse V6 Max options for fal
FieldWhat it does
prompt string Text prompt for the video generation. Limited to 2048 UTF-8 encoded bytes. Because the limit counts bytes rather than characters, emoji and non-Latin or accented characters (which use multiple bytes each) can push a visually short prompt over the cap.
negative_prompt string Negative prompt to be used for the generation. Limited to 2048 UTF-8 encoded bytes. Because the limit counts bytes rather than characters, emoji and non-Latin or accented characters (which use multiple bytes each) can push a visually short prompt over the cap.
duration integer The duration of the generated video in seconds. v6 supports values from 1 to 15 seconds Allowed 1–15
resolution string Allowed 360p | 540p | 720p | 1080p
aspect_ratio string Allowed 16:9 | 4:3 | 1:1 | 3:4 | 9:16 | 2:3 | 3:2 | 21:9
enable_safety_checker boolean Authorized callers may set false to request relaxed screening.
generate_audio_switch string Fixed by the route; ignored here. To run a specific route, send its model key as the model (fal:pixverse/v6/max/text-to-video, fal:pixverse/v6/max/image-to-video).
generate_multi_clip_switch boolean Enable multi-clip generation with dynamic camera changes
image_url string (URL) URL of the image to use as the first frame

Call the PixVerse V6 Max 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": "pixverse_v6_max",
  "prompt": "Epic low-cut camera capture of a girl clad in ultraviolet threads, Peter Max art style depiction, luminous diamond skin glistening under a vast moon'\''s radiance, embodied in a superhuman flight among mystical ruins, symbolizing a deity'\''s ritual ascent, hyper-detailed",
  "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": "pixverse_v6_max",
    "prompt": "Epic low-cut camera capture of a girl clad in ultraviolet threads, Peter Max art style depiction, luminous diamond skin glistening under a vast moon's radiance, embodied in a superhuman flight among mystical ruins, symbolizing a deity's ritual ascent, hyper-detailed",
    "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": "pixverse_v6_max",
      "prompt": "Epic low-cut camera capture of a girl clad in ultraviolet threads, Peter Max art style depiction, luminous diamond skin glistening under a vast moon's radiance, embodied in a superhuman flight among mystical ruins, symbolizing a deity's ritual ascent, hyper-detailed",
      "duration": 5
    },
).json()  # {"id": "job_…", "status": "queued"}

2. Get the result

Poll the job until its status is completed, failed or cancelled; PixVerse V6 Max 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": "pixverse_v6_max",
  "prompt": "Epic low-cut camera capture of a girl clad in ultraviolet threads, Peter Max art style depiction, luminous diamond skin glistening under a vast moon's radiance, embodied in a superhuman flight among mystical ruins, symbolizing a deity's ritual ascent, hyper-detailed",
  "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 PixVerse V6 Max with call_tool. Sign in with varg, no API key to paste. How to connect it

call_tool
{
  "tool": "video",
  "input": {
    "model": "pixverse_v6_max",
    "prompt": "Epic low-cut camera capture of a girl clad in ultraviolet threads, Peter Max art style depiction, luminous diamond skin glistening under a vast moon's radiance, embodied in a superhuman flight among mystical ruins, symbolizing a deity's ritual ascent, hyper-detailed",
    "duration": 5
  },
  "wait": true
}

PixVerse V6 Max API: questions

How much does PixVerse V6 Max cost on varg?
PixVerse V6 Max costs from $0.081/s on varg, on its cheapest route. The total depends on the request. 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 PixVerse V6 Max 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": "pixverse_v6_max". 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 PixVerse V6 Max 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 PixVerse V6 Max with call_tool, passing tool "video" and "model": "pixverse_v6_max".
How long does a PixVerse V6 Max 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/pixverse_v6_max.md, and every model is listed in varg.ai/models/llms.txt.