# Wan 3.0 (`wan_3`)

> Alibaba Wan 3.0. Top-ranked text-to-video — up to 30s at 1080p with native audio, first/last-frame animation, and references (≤10 images, ≤5 videos, ≤5 audio). 480p/720p/1080p, 2-30s.

- Capability: Video (tool `video`) — Text to video, Image to video, Video to video
- Price: from $0.10 per run (1 credit = $0.01). Exact price for a request: POST https://api.varg.ai/v2/estimate
- Typical time: ~3 min
- JSON Schema: https://api.varg.ai/v2/tools/video?model=wan_3 (public, no key)
- Try it: https://varg.ai/dashboard/tools/playground?model=wan_3

## Call it

REST: `POST https://api.varg.ai/v2/tools/video/call` with `Authorization: Bearer $VARG_API_KEY` (create a key at https://varg.ai/dashboard/api).
It answers `202` with a job right away. Poll `GET /v2/jobs/{id}` until `status` is `completed`, then read `output.outputs[0].url` — or pass `options.webhook_url` and get the finished job POSTed to you.

```bash
curl -X POST https://api.varg.ai/v2/tools/video/call \
  -H "Authorization: Bearer $VARG_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
  "model": "wan_3",
  "prompt": "A red paper lantern drifts up through a rainy night market in Hong Kong, neon signs reflecting in wet streets, steam rising from food stalls. The camera follows the lantern as it rises above the crowd and reveals the glowing city skyline. Sounds of rain, sizzling woks and distant chatter.",
  "aspect_ratio": "16:9",
  "resolution": "720p",
  "audio": true,
  "duration": 5
}'
```

MCP: the varg server `https://mcp.varg.ai/mcp` (OAuth sign-in, no key) runs it with `call_tool`:

```json
{
  "tool": "video",
  "input": {
    "model": "wan_3",
    "prompt": "A red paper lantern drifts up through a rainy night market in Hong Kong, neon signs reflecting in wet streets, steam rising from food stalls. The camera follows the lantern as it rises above the crowd and reveals the glowing city skyline. Sounds of rain, sizzling woks and distant chatter.",
    "aspect_ratio": "16:9",
    "resolution": "720p",
    "audio": true,
    "duration": 5
  },
  "wait": true
}
```

## Inputs

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `model` | string | yes | — | `wan_3` or a route key below | Which model runs the job. |
| `prompt` | string | no | — | — | — |
| `files` | array of { url } | no | — | — | — |
| `aspect_ratio` | string | no | — | e.g. 16:9 \| 9:16 \| 1:1 \| 4:3 \| 3:4 \| 21:9 \| auto | — |
| `resolution` | string | no | — | 480p \| 720p \| 1080p \| 4k | Quality tier. Supported by this model: 480p, 720p, 1080p. Unsupported tiers fall back to the nearest available. |
| `audio` | boolean | no | — | — | Native audio track request. Not supported by this model — ignored if sent. |
| `duration` | integer | no | — | 1–120 | Length in seconds. Supported by this model's routes: fal: integer 2-30. A non-numeric value such as "auto" is routed to a route whose schema accepts it; when none does, the request is rejected. |

Media inputs are URLs. Upload a local file first with `POST /v2/files` and pass the returned URL.

## Provider options

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

### provider_options.fal

| field | type | required | default | allowed | description |
|---|---|---|---|---|---|
| `reference_audio_urls` | array of URL strings | no | — | — | — |
| `reference_image_urls` | array of URL strings | no | — | — | — |
| `reference_video_urls` | array of URL strings | no | — | — | — |
| `audio` | boolean | no | — | — | Include generated audio. |
| `resolution` | string | no | — | 480p \| 720p \| 1080p | — |
| `aspect_ratio` | string | no | — | adaptive \| 16:9 \| 4:3 \| 1:1 \| 3:4 \| 9:16 | — |
| `enable_thinking` | boolean | no | — | — | Enable enhanced reasoning before generation. |
| `enable_safety_checker` | boolean | no | — | — | Enable content moderation for input and output. Disabling it requires account authorization; unauthorized requests are always checked. |
| `enable_prompt_expansion` | boolean | no | — | — | Enable intelligent prompt rewriting. Disabling it can save roughly 20-60 seconds of latency but is likely to degrade generation quality. |
| `start_image_url` | string (URL) | no | — | — | First frame of the generated video. |

## Routes

`"model": "wan_3"` picks a route automatically (priority order, then the inputs you send). To pin one, pass its key as `model`.

| model key | provider | modality | price from | typical time |
|---|---|---|---|---|
| `fal:alibaba/wan-3.0/text-to-video` | fal | text-to-video | $0.10 | ~3 min |
| `fal:alibaba/wan-3.0/image-to-video` | fal | image-to-video | $0.10 | ~3 min |
| `fal:alibaba/wan-3.0/reference-to-video` | fal | image-to-video, video-to-video | $0.10 | ~3 min |
| `fal:alibaba/wan-3.0-prime/text-to-video` | fal | text-to-video | $0.14 | ~3 min |
| `fal:alibaba/wan-3.0-prime/image-to-video` | fal | image-to-video | $0.14 | ~3 min |
| `fal:alibaba/wan-3.0-prime/reference-to-video` | fal | image-to-video, video-to-video | $0.14 | ~3 min |

---

Catalog version 2026-11-11T12:59:09.901887+00:00. All models: https://varg.ai/models/llms.txt
