Wan 3.0 Prime Text-to-Video


Wan 3.0 Prime Text-to-Video is Alibaba's high-speed AI text-to-video model under the Tongyi Wanxiang family. Combining the Prime architecture's rapid inference with the core Wan 3.0 multimodal foundation, it deeply parses complex text prompts to directly render up to 30-second 1080P HD videos with significantly reduced generation latency. Featuring native audio-visual synchronization (ambient audio, sound effects, and multilingual lip-sync), it delivers exceptional physical motion simulation, seamless temporal coherence, and precise camera control—providing rapid turnarounds and high-quality visual output for commercial advertising, short dramas, film VFX, and high-frequency social media content creation.

Wan 3.0 Prime Text-to-Video

Wan 3.0 Prime Text-to-Video is Alibaba's high-speed AI text-to-video model under the Tongyi Wanxiang family. Combining the Prime architecture's rapid inference with the core Wan 3.0 multimodal foundation, it deeply parses complex text prompts to directly render up to 30-second 1080P HD videos with significantly reduced generation latency. Featuring native audio-visual synchronization (ambient audio, sound effects, and multilingual lip-sync), it delivers exceptional physical motion simulation, seamless temporal coherence, and precise camera control—providing rapid turnarounds and high-quality visual output for commercial advertising, short dramas, film VFX, and high-frequency social media content creation.

Base URL

https://api.icreat.ai

Authentication

All API requests must be authenticated with an API Key. You can obtain an API Key from the console.

export ICREAT_API_KEY="your-api-key-here"

HTTP Request Headers

import os

API_KEY = os.environ.get("ICREAT_API_KEY")
headers = {
    "Content-Type": "application/json",
    "Authorization": "Bearer " + API_KEY,
}

Protect your API Key

Never expose your API Key in client-side code or public repositories. Use environment variables or a backend proxy.

Code Examples

Image and video generation uses a three-step async flow: submit to get task_id, poll status, then fetch results when status is SUCCEEDED.

1. Submit Task

Send a generation request to the submit endpoint.

POST/v1/task/submit/aliyun/wan3-0-prime/text-to-video

2. Poll Status

Poll with task_id. Response contains only status.

POST/v1/task/query-status

3. Get Result

Fetch output when the task succeeds.

POST/v1/task/get-result

Input Schema

Submit Task — Input

Total: 2 Required: 2 Optional: 0

inputobjectrequired

Generation input payload.

parametersobjectrequired

Generation parameters.

Poll Status — Input

Total: 1 Required: 1 Optional: 0

task_idstringrequired

Task ID from the submit endpoint.

Get Result — Input

Total: 1 Required: 1 Optional: 0

task_idstringrequired

Task ID from the submit endpoint.

Output Schema

Submit Task — Output

Total: 1

task_idstring

Async task identifier.

Poll Status — Output

Total: 1

statusstring

Current task status. Fetch results when SUCCEEDED.

Get Result — Output

Top-level array of resource objects.

Total: 3

typestring

Resource type; Video for this model.

urlstring

Preview/access URL.

download_urlstring

Download URL.

LLM Prompt

The Markdown below is an LLM-friendly prompt you can paste into AI assistants (e.g. Cursor, ChatGPT) to help them understand this model's API, call flow, and key parameters. Use Copy for AI or copy from the code block below.

# aliyun/wan3-0-prime/text-to-video

> Wan 3.0 Prime Text-to-Video is Alibaba's high-speed AI text-to-video model under the Tongyi Wanxiang family.

## Overview

Use the iCreat three-step async task API: submit a generation request, poll status, then fetch the video URL on success.

## API Info

- **Base URL**:`https://api.icreat.ai`
- **Submit endpoint (POST)**:`/v1/task/submit/aliyun/wan3-0-prime/text-to-video`
- **Poll endpoint (POST)**:`/v1/task/query-status`
- **Get result endpoint (POST)**:`/v1/task/get-result`
- **Model ID**:`aliyun/wan3-0-prime/text-to-video`
- **Auth**:`Authorization: Bearer ${ICREAT_API_KEY}`

## Call Flow

1. **Submit**: POST submit path with body per Input Notes; response `{ "task_id": "..." }`
2. **Poll**: POST `/v1/task/query-status` with `{ "task_id": "..." }`; response contains **only** `{ "status": "SUBMITTED|SUCCEEDED|FAILED" }`
3. **Get result**: when `status` is `SUCCEEDED`, POST `/v1/task/get-result`; top-level array; read `url` or `download_url` when `type` is `Video`

### Input Notes

- Top-level body: `input` (object) + `parameters` (object) as siblings
- `input.prompt` (required): Prompt describing the video to generate.
- `input.negative_prompt` (optional): Content that should not appear in the video.
- `input.media` (optional): Optional reference media list.
- `parameters.resolution` (required): Video resolution.
- `parameters.ratio` (required): Video aspect ratio.
- `parameters.duration` (required): Video duration in seconds.
- `parameters.watermark` (optional): Whether to add a watermark.

### Output Notes

- Poll: read `status` only
- Result: top-level `[{ "type": "Video", "url": "...", "download_url": "..." }]`

## Notes

- Use the same `task_id` across all three steps; do not skip polling
- `FAILED` is terminal — check request parameters or reference media
- `input` and `parameters` are sibling top-level fields; do not nest them