Wan 3.0
Wan 3.0 — Alibaba's next-generation video model. Coming soon to reAPI. This page is a preview seeded from the current Wan generation; final parameters and pricing land at launch.
Coming soon. The Wan 3.0 API is not available yet. Wan 3.0 opened public beta on Alibaba's own surfaces on August 6, 2026, and the vendor API is announced to open fully soon. The endpoint, parameters, and pricing below are a preview seeded from the current Wan generation and may change when the model ships. Watch the model page for launch.
Alibaba's next-generation video model, coming to reAPI. Wan 3.0 is announced to generate up to 30 seconds of video in a single pass from text, images, audio, video — and, new to the family, documents (doc, xls, ppt, pdf, md). Reference generation extends to fine-grained control over characters, props, voices, spatial relations, and style, and editing reaches visuals, plot, and dialogue. See pricing on the model page.
Status
Wan 3.0 is coming soon. This documentation is a preview so you can plan an integration ahead of launch. When the model ships:
- The
modelid, full parameter set, constraints, and per-second rates are finalized here. - The playground on the model page becomes live.
- This banner is removed.
The shape below mirrors the current Wan generation (wan2.7-video), adjusted
to the announced Wan 3.0 facts (30-second single-pass maximum, three
resolution tiers). Treat every field as provisional until launch.
Quick example (preview)
curl https://reapi.ai/api/v1/videos/generations \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "wan3.0",
"prompt": "A lighthouse keeper climbing a spiral staircase at dawn",
"resolution": "1080P",
"duration": 10
}'import requests
resp = requests.post(
"https://reapi.ai/api/v1/videos/generations",
headers={
"Authorization": "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
json={
"model": "wan3.0",
"prompt": "A lighthouse keeper climbing a spiral staircase at dawn",
"resolution": "1080P",
"duration": 10,
},
timeout=30,
)
print(resp.json())const r = await fetch("https://reapi.ai/api/v1/videos/generations", {
method: "POST",
headers: {
Authorization: "Bearer YOUR_API_KEY",
"Content-Type": "application/json",
},
body: JSON.stringify({
model: "wan3.0",
prompt: "A lighthouse keeper climbing a spiral staircase at dawn",
resolution: "1080P",
duration: 10,
}),
});
console.log(await r.json());package main
import (
"bytes"
"encoding/json"
"fmt"
"io"
"net/http"
)
func main() {
body, _ := json.Marshal(map[string]any{
"model": "wan3.0",
"prompt": "A lighthouse keeper climbing a spiral staircase at dawn",
"resolution": "1080P",
"duration": 10,
})
req, _ := http.NewRequest("POST",
"https://reapi.ai/api/v1/videos/generations", bytes.NewReader(body))
req.Header.Set("Authorization", "Bearer YOUR_API_KEY")
req.Header.Set("Content-Type", "application/json")
resp, _ := http.DefaultClient.Do(req)
defer resp.Body.Close()
out, _ := io.ReadAll(resp.Body)
fmt.Println(string(out))
}These calls will return 404 model not found until Wan 3.0 launches.
Authentication
Every call needs a Bearer token. Generate keys at reapi.ai/settings/apikeys.
Authorization: Bearer YOUR_API_KEYEndpoint
POST /api/v1/videos/generations
GET /api/v1/tasks/{id}Submission is async. The POST returns immediately with a task_id; the task
endpoint returns the same envelope until completion. Polling does not consume
credits.
Modes (preview)
Like the current Wan generation, mode is expected to be implicit — which media fields you set decides how the request routes:
| Mode | Trigger |
|---|---|
| Text-to-video | prompt alone |
| Image-to-video | image_urls / image_with_roles / video_urls (+ optional audio_url) |
| Reference-to-video | reference_image_urls / reference_video_urls / reference_voice_urls |
| Video editing | video_url — announced to reach visuals, plot, and dialogue |
Document input (doc, xls, ppt, pdf, md — single file ≤ 100 MB, ≤ 50 pages) is announced for Wan 3.0 but has no published API shape yet, so it has no field in this preview. It is added here the moment the vendor documents it.
Request body (preview)
Seeded from the current Wan generation, adjusted to announced Wan 3.0 facts. Every field is provisional until launch.
| Field | Type | Default | Notes |
|---|---|---|---|
model | string | — | wan3.0 (provisional id, confirmed at launch). Required. |
prompt | string | — | Scene, motion, camera, story beats. Required for text- and reference-to-video. |
negative_prompt | string | — | What to avoid. |
image_urls | string[] | — | Images to animate — one still, or two for first + last frame. Public HTTP(S) URLs. |
image_with_roles | object[] | — | Explicit first_frame / last_frame roles. |
video_urls | string[] | — | A source clip to continue from (max 1). |
audio_url | string | — | Driving audio for an animated image. |
reference_image_urls | string[] | — | Subjects to keep consistent (max 5). |
reference_video_urls | string[] | — | Reference performances (max 5). |
reference_voice_urls | string[] | — | Per-subject voices (max 5). |
video_url | string | — | Editing source clip. |
audio_setting | string | — | auto / origin — soundtrack handling when editing. |
size | string | 16:9 | 16:9 / 9:16 / 1:1 / 4:3 / 3:4. |
resolution | string | 1080P | 480P / 720P / 1080P — the three announced tiers. |
duration | integer | 5 | Output seconds, 2–30. Wan 3.0 is announced to render up to 30 seconds in one pass. |
prompt_extend | boolean | true | Let the model expand short prompts. |
watermark | boolean | false | Watermark the output. |
seed | integer | — | Reproducibility hint, ≥ 0. |
No data: URIs. reAPI rejects base64 inputs platform-wide — every URL
field must be a public HTTP(S) URL. Upload to your own object storage (S3, R2,
OSS, …) and pass the URL.
Response envelope
Submit and poll share the same shape — only status and output fill in over
time.
{
"id": "task_018f5a3a1b6e7d9f8c2b4d6e8f0a2c4e",
"model": "wan3.0",
"status": "completed",
"created_at": 1735000000,
"output": {
"video_urls": ["https://cdn.reapi.ai/media/tasks/.../0.mp4"]
},
"error": null
}Poll GET /api/v1/tasks/{id} (see the Tasks reference)
until status === "completed". output.video_urls holds the generated MP4
URL.
Pricing
Wan 3.0 is expected to bill per second of output, scaled by resolution — the same dimensions as the current Wan generation, with a third (480P) tier:
credits = ceil(per_second_usd × duration × 1000)where 1 credit = $0.001. Final per-second rates are published on the
model page at launch — that table is
dynamic and always reflects the current rate. Failed jobs are refunded
automatically.