Skip to content

Wan 3.0 API

Fast, affordable text-to-video.

Pricing
ResolutionText, images or video
480pText, images or video10 Credits/s ($0.05/s)
720pText, images or video19 Credits/s ($0.095/s)5% less than fal fal price $0.10 per second
1080pText, images or video38 Credits/s ($0.19/s)5% less than fal fal price $0.20 per second

With video input, both the input and output seconds are billed.

Full pricing ↓
Resolution
Between 2 and 30 seconds. With reference videos, input plus output is at most 30 seconds.
The model picks the length, up to 30 s. You pay for the length it makes.
Aspect ratio
Auto matches the shape of your input media.
Adds a soundtrack.
Advanced
The same seed and settings give a similar result. Leave it empty for a random seed.

Checking whether you’re signed in.

Sign in to generate. What you enter here, including chosen files, is kept for when you come back.

Your result appears here

Pricing

Prices as of 2026-11-09

TierPrice
480p
10 Credits/s ($0.05/s)Note 12–30 s
480p with video input
480p-video
10 Credits/s ($0.05/s)Notes 2, 32–30 s
720p
19 Credits/s ($0.095/s)Note 12–30 s
720p with video input
720p-video
19 Credits/s ($0.095/s)Notes 2, 32–30 s
1080p
38 Credits/s ($0.19/s)Note 12–30 s
1080p with video input
1080p-video
38 Credits/s ($0.19/s)Notes 2, 32–30 s
  1. Holds Credits for up to 30 seconds and charges the actual length.
  2. The rate applies to input and output seconds.
  3. Holds Credits for up to 30 seconds of output plus up to 15 seconds of input, and charges the actual length.

1 Credit ≈ $0.005. At the standard pack price. Larger packs include bonus Credits, so each Credit costs less.

For 720p, fal charges $0.10/s; VizoAPI charges $0.095/s, 5% less.

Delivery and billing

Output
Finished files are listed in the task result with an asset ID and type for each.
Download
Files are kept for 7 days and downloaded through short-lived signed links. You can delete them any time.
Billing
Credits are held when a task is accepted and charged on delivery. If generation fails, or nothing is delivered within 24 hours, the held Credits are released in full.
Notifications
Poll the task by ID, or use signed webhooks and deduplicate by event_id.
How is it billed?
By output second.

API reference

Create the task once, then poll it by its ID. Full script with upload and download · API reference

Request
API=https://api.vizoapi.com/v1
AUTH="Authorization: Bearer $VIZO_API_KEY"

# Create the task once and keep its ID.
ID=$(curl -fsS $API/generations -H "$AUTH" -H "Content-Type: application/json" \
  -d '{
  "model": "wan-3-0",
  "input": {
    "prompt": "A slow dolly shot through a rainy neon street",
    "parameters": {
      "ratio": "16:9",
      "duration": 5
    }
  },
  "metadata": {
    "client_reference": "my-unique-reference-1"
  }
}' | jq -r .id)

# Poll until the task closes, then read its status and result.
until curl -fsS $API/generations/$ID -H "$AUTH" | jq -e '.closed_at != null' > /dev/null; do sleep 5; done
curl -fsS $API/generations/$ID -H "$AUTH" | jq '{status, result}'
All fields

Send these fields in input. A field the table does not list is refused with HTTP 422 invalid_input.

  • Send a prompt, media or both.
  • first_frame and last_frame (at most one each) cannot be combined with reference items, file or link.
  • Reference videos total at most 15 seconds, reference audios at most 15 seconds, and reference video input plus output length at most 30 seconds.
Request parameters
FieldDescription
promptstring

Required: at least one of prompt or media

Up to 20000 characters. Cite media in order, for example image 1 or video 1. Send a prompt, media or both.

At most 20,000 characters

mediaarray of objects

Required: at least one of prompt or media

first_frame and last_frame (at most 1 each) cannot be combined with reference items, file or link. Up to 10 reference images, 5 reference videos (15 seconds in total) and 5 reference audios; at most one file or one link, not both.

At least 1 items · At most 22 items

media[].typestringRequired

Media kind.

Allowed valuesfirst_framelast_framereference_imagereference_videoreference_audiofilelink
media[].urlstringRequired

An https URL or an uploaded asset id (ast_...). file and link take a public https URL only.

At most 4000 characters · Pattern^(https://|ast_)

parametersobjectRequired
parameters.resolutionstringOptional

Output resolution. Defaults to 720P.

Allowed values480P720P1080P

Default 720P

parameters.ratiostringOptional

Output aspect ratio. Defaults to adaptive.

Allowed valuesadaptive16:94:31:13:49:16

Default adaptive

parameters.durationanyRequired

Output seconds, 2 to 30, or -1 for automatic length. Holds the maximum; known input reduces it to fit the 30-second total.

2 to 30, or -1

parameters.audiobooleanOptional

Adds a soundtrack. Defaults to true.

Default true

parameters.seedintegerOptional

Random seed.

Minimum 0 · Maximum 2,147,483,647

parameters.watermarkbooleanOptional

Add a visible watermark. Defaults to false; the tier price is unchanged.

Default false

Full example request and response

A complete create request, the 202 answer and the task once it has succeeded. This input selects the 480p tier at 10 Credits per second. For 5 seconds the API holds 50.000 Credits.

Request

{
  "model": "wan-3-0",
  "input": {
    "prompt": "A paper boat drifting on a pond at dawn, slow dolly in",
    "parameters": {
      "ratio": "16:9",
      "duration": 5
    }
  },
  "metadata": {
    "client_reference": "my-unique-reference-1"
  }
}

202 Accepted

{
  "id": "gen_01JD8Z5QW3XR",
  "model": "wan-3-0",
  "source": "api",
  "created_at": "2026-11-08T09:00:00Z",
  "customer_resolution_deadline": "2026-11-09T09:00:00Z",
  "late_result_available": false,
  "metadata": {
    "client_reference": "my-unique-reference-1"
  },
  "status": "processing",
  "execution_status": "processing",
  "delivery_status": "pending",
  "billing_status": "pending",
  "version": 1,
  "price": {
    "unit": "credit",
    "estimated": "50.000",
    "reserved": "0.000",
    "charged": "0.000",
    "refunded": "0.000"
  },
  "allowed_actions": [],
  "closed_at": null,
  "error": null,
  "result": null
}

200 Succeeded

{
  "id": "gen_01JD8Z5QW3XR",
  "model": "wan-3-0",
  "source": "api",
  "created_at": "2026-11-08T09:00:00Z",
  "customer_resolution_deadline": "2026-11-09T09:00:00Z",
  "late_result_available": false,
  "metadata": {
    "client_reference": "my-unique-reference-1"
  },
  "status": "succeeded",
  "execution_status": "succeeded",
  "delivery_status": "ready",
  "billing_status": "settled",
  "version": 4,
  "price": {
    "unit": "credit",
    "estimated": "50.000",
    "reserved": "0.000",
    "charged": "50.000",
    "refunded": "0.000"
  },
  "allowed_actions": [],
  "closed_at": "2026-11-08T09:01:31Z",
  "error": null,
  "result": {
    "asset_id": "ast_01JD8Z9M2C4V",
    "outputs": [
      {
        "index": 0,
        "asset_id": "ast_01JD8Z9M2C4V",
        "content_type": "video/mp4"
      }
    ]
  }
}

Full API reference for Wan 3.0