Wan 3.0 icon
Coming soon Video by Alibaba

Wan 3.0 API

Wan 3.0 is the next generation of Alibaba Tongyi Lab's video model, built around one idea: a complete, narrated short film out of a single generation. Early-access testing shows single-pass clips up to 30 seconds with audio generated alongside the picture, mixed image, video, and audio references, and character consistency that holds for the whole take. It is coming soon to Apiframe — same endpoint, same API key, same async jobs and webhooks as Wan 2.7, available the day it launches.

Integrate Wan 3.0 with a single API call — one key, one unified endpoint, and shared billing across every model on Apiframe.

model: "wan-3.0"
Coming soon

What's special about Wan 3.0

Single-pass clips up to 30 seconds

The headline change over Wan 2.7 is length: 2 to 30 seconds generated in one pass instead of a 15-second ceiling. Because the whole clip shares one continuous context, a beginning, middle, and end can land in a single generation rather than being stitched from shorter takes that drift at every splice.

Intelligent duration

Leave the duration unset and the model decides how long the shot should be from the prompt itself. In early testing, "a paper boat washing down a gutter" came back as a 20-second clip with no length specified — useful when you're describing intent rather than storyboarding frame counts.

Audio generated with the picture

Dialogue, sound effects, room tone, and music are produced during generation rather than dubbed on afterward, so they arrive synchronized in the output file. In early demos a 30-second kitchen scene carried four lines of dialogue matched to lip movement, and a rain scene aligned thunder and downpour to the visuals.

Mixed image, video, and audio references

A single request is expected to take roughly 10 reference images, 5 video clips, and 5 audio clips together — a large jump from Wan 2.7's five references. Pull a character's look from one input, an environment from another, a voice from a third, and describe in text how they should combine.

Consistency that holds for the whole take

Across 30 seconds, clothing, faces, and spatial relationships stayed stable in early demos, with no visible identity drift. That is the difference between footage you can cut into a narrative and clips where a character quietly changes face halfway through — which matters for serialized content, ads, and short drama.

Adaptive aspect ratio and frame control

Ask for a vertical social ad or a square product loop and the model picks the frame shape itself, or set an aspect ratio explicitly. First-and-last-frame control carries over from Wan 2.7: supply the start and end stills and the motion between them is generated for you.

Made with Wan 3.0

A few outputs generated through the Wan 3.0 API on Apiframe.

Sample coming soon

Drone shot flying over a tropical coastline at sunrise, smooth cinematic motion

Sample coming soon

A vintage car driving through a rainy neon city at night, reflections on the asphalt

Sample coming soon

Time-lapse of clouds rolling over a mountain range in warm golden light

Overview

Endpoint
POST /v2/videos/generate
Model ID
wan-3.0
Params key
wan30Params
Modality
Video
Provider
Alibaba
Avg. completion
~240s

Capabilities

Aspect ratios16:9, 9:16, 1:1, 4:3, 3:4
Resolutions720p, 1080p
Durations5s, 10s, 15s, 20s, 25s, 30s
Image inputSupported
AudioSupported
Avg. time~240s

Quick start

Send a single POST /v2/videos/generate request with your API key to generate with Wan 3.0. The call returns a jobId you can poll or receive via webhook.

curl -X POST https://api.apiframe.ai/v2/videos/generate \
  -H "X-API-Key: afk_your_api_key_here" \
  -H "Content-Type: application/json" \
  -d '{
        "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
        "model": "wan-3.0",
        "wan30Params": {
            "image": "https://example.com/input.jpg",
            "resolution": "720p",
            "first_clip": "https://example.com/input.jpg",
            "last_frame": "https://example.com/input.jpg"
        }
    }'
import requests

response = requests.post(
    "https://api.apiframe.ai/v2/videos/generate",
    headers={
        "X-API-Key": "afk_your_api_key_here",
        "Content-Type": "application/json",
    },
    json={
        "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
        "model": "wan-3.0",
        "wan30Params": {
            "image": "https://example.com/input.jpg",
            "resolution": "720p",
            "first_clip": "https://example.com/input.jpg",
            "last_frame": "https://example.com/input.jpg"
        }
    },
)
print(response.json())  # { "jobId": "...", "status": "QUEUED" }
const response = await fetch("https://api.apiframe.ai/v2/videos/generate", {
  method: "POST",
  headers: {
    "X-API-Key": "afk_your_api_key_here",
    "Content-Type": "application/json",
  },
  body: JSON.stringify({
    "prompt": "a cinematic sunrise over a futuristic cityscape, smooth camera push-in",
    "model": "wan-3.0",
    "wan30Params": {
      "image": "https://example.com/input.jpg",
      "resolution": "720p",
      "first_clip": "https://example.com/input.jpg",
      "last_frame": "https://example.com/input.jpg"
    }
  }),
});
const { jobId } = await response.json();
console.log(jobId);

Response & job lifecycle

Generation is asynchronous. A successful submission returns 202 Accepted with a jobId. Poll GET /v2/jobs/{id} (or supply a webhook_url) until the status is COMPLETED; the result field then holds the output URL(s).

1. Submission response (202)

{
  "jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
  "status": "QUEUED"
}

2. Poll for the result

curl https://api.apiframe.ai/v2/jobs/JOB_ID \
  -H "X-API-Key: afk_your_api_key_here"
import requests, time

while True:
    job = requests.get(
        "https://api.apiframe.ai/v2/jobs/JOB_ID",
        headers={"X-API-Key": "afk_your_api_key_here"},
    ).json()
    if job["status"] in ("COMPLETED", "FAILED"):
        break
    time.sleep(2)
print(job["result"])
let job;
do {
  await new Promise((r) => setTimeout(r, 2000));
  job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
    headers: { "X-API-Key": "afk_your_api_key_here" },
  }).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);

Input schema

Request parameters accepted by the Wan 3.0 endpoint. Model-specific options are nested under the params object shown below.

Parameter Type Required Default Allowed / range Description
prompt string required Text description of what to generate.
model string required "wan-3.0" "wan-3.0" The model identifier for this endpoint.
wan30Params.image string (URL) optional Use a still as the first frame.
wan30Params.first_clip string (URL) optional Optional 2–10s video to continue from. Mutually exclusive with first frame image.
wan30Params.last_frame string (URL) optional Optional final frame for first-and-last-frame generation. Requires an anchor (image or video).
wan30Params.resolution string optional "720p" "720p", "1080p" Resolution
wan30Params.negative_prompt string optional Negative prompt
wan30Params.audio string (URL) optional Optional audio track to drive the clip.
wan30Params.enable_prompt_expansion boolean optional false Let Wan rewrite your prompt for richer detail.
wan30Params.seed number optional step 1 Reuse a number to reproduce the same result.

Frequently Asked Questions

Common questions about the Wan 3.0 API.

What is Wan 3.0?

Wan 3.0 is the next generation of Alibaba Tongyi Lab's Wan video model family, the successor to Wan 2.7. Its focus is complete short-form narrative in a single generation: clips up to 30 seconds, audio generated with the picture, mixed multimodal references, and character consistency across the full take.

Is Wan 3.0 available yet?

Not yet. Alibaba has not made an official announcement, and Wan 2.7 remains the latest generally available Wan model. Wan 3.0 will be available on Apiframe as soon as it launches, behind the same endpoint and API key as every other model in the catalog.

How reliable are the specifications listed here?

They come from early-access testing by third-party platforms in late July 2026, not from Alibaba documentation, so treat them as strong indications rather than final numbers. Some marketing sites claim native 4K, 60 fps, and 60-second clips; nothing in the demos or official documentation supports that, so we have left those claims out.

How much will the Wan 3.0 API cost?

Alibaba has not published pricing. On Apiframe it will use the same pay-as-you-go credits as the rest of the catalog, billed per second of output like Wan 2.7, and you will only pay for successful generations. The rate will be confirmed on the pricing page at launch.

Will Wan 3.0 be open source?

Unconfirmed. Wan 2.1 and 2.2 shipped open weights under Apache 2.0, while some later versions stayed API-only, so the series has gone both ways. Either way, using it through Apiframe means one hosted endpoint now and the option to self-host later if weights are released.

How do I get access on day one?

Get an Apiframe API key and build against any current video model, such as Wan 2.7 or Kling 3.0. When Wan 3.0 goes live you switch one string in the model field of your request — no new account, no new SDK, and no separate Alibaba billing relationship.

Still have questions?

Start building with the Wan 3.0 API

Get your API key and integrate Wan 3.0 in minutes — Pay-as-you-go.

Free credits to start
One API for every model
Webhooks, SDKs & idempotency
No provider account required

Questions? Join our Discord or contact sales.