Wan 3.0 Prime Pro
Wan 3.0 Prime Pro API reference: 1080p, 2K and 4K video generation, parameters, request examples, task polling, downloads and pricing.
Wan 3.0 Prime Pro has its own model ID and rates, with 1080p, 2K and 4K output. It accepts text, images and reference media. It is a separate endpoint from Prime; requesting 4K on the Prime endpoint does not select Prime Pro. Model details and Playground.
Connect to Funny AI
Use https://api.wanapi.app as the API base URL. Create a key in API key settings and send it as Authorization: Bearer YOUR_API_KEY. Keep keys on your server. Playground uses your website session and charges the same account balance; it does not require pasting a key into the browser.
Access requires an enabled account with sufficient balance. See pricing for current rates. Each model has its own endpoint and model page.
GET /v1/models lists the models available to your key. Choosing a higher resolution does not automatically change your model.
| Setting | Wan 3.0 Prime Pro |
|---|---|
| Model ID | w3.0-video-prime-pro |
resolution | 1080p, 2k, 4k; default: 1080p. |
duration | 2–30 output seconds, or -1 for automatic duration; default: 5. |
ratio | adaptive, 16:9, 4:3, 1:1, 3:4, 9:16; default: adaptive. |
audio | true by default. false does not reduce the rate. |
The shared request fields describe all 14 native fields, media limits and input combinations. This model uses w3.0-video-prime-pro in the URL for native requests and as the model value in Responses requests.
Submit a Wan 3.0 Prime Pro task
This is a two-second text-to-video request at this model's lowest resolution. Set WAN_API_KEY to your key on the server. The model is selected by the URL; do not add a model field to this native JSON body.
curl https://api.wanapi.app/wan/v1/w3.0-video-prime-pro/generation \
-H "Authorization: Bearer $WAN_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"prompt": "A camera glides past sunlit coastal cliffs above a calm sea.",
"duration": 2,
"resolution": "1080p",
"ratio": "16:9",
"audio": false,
"prompt_extend": false
}'Query a Wan 3.0 Prime Pro task
Save the returned task_info.id as TASK_ID, then query the same model endpoint. The submit response is a task receipt, not a completed video. Begin polling every five seconds; see task statuses and downloads.
curl "https://api.wanapi.app/wan/v1/w3.0-video-prime-pro/generation/$TASK_ID" \
-H "Authorization: Bearer $WAN_API_KEY"Wan 3.0 Prime Pro pricing
The table shows current USD rates per billable second. Reference video input seconds and generated output seconds both count. The five-second example assumes no reference video. See billing and failure handling for reservations and settlement.
| Resolution | Official list price | Funny AI | 5-second output |
|---|---|---|---|
| 1080p | $0.260 | Pricing unavailable | — |
| 2K | $0.280 | Pricing unavailable | — |
| 4K | $0.310 | Pricing unavailable | — |
Current rates are in USD. Official list prices are shown for comparison.
Billable seconds = reference video input seconds + generated output seconds. Text and image inputs add no video seconds. Disabling generated audio does not lower the per-second rate.
The 5-second example uses no reference video. A 5-second video reference plus a 5-second output is billed as 10 seconds.
Prices updated 2026-10-13
View Wan 3.0 Prime Pro pricing.
Request fields
All four models share these 14 native fields. Provide a prompt or at least one media input. Frames cannot be combined with reference inputs, file or link; file and link are mutually exclusive.
| Field | Type | Contract |
|---|---|---|
prompt | string | Up to 20,000 characters. |
first_frame | string | Image HTTP(S) URL, image data URI or Base64. |
last_frame | string | Image HTTP(S) URL, image data URI or Base64. |
reference_images | string[] | Up to 10 images, using the same forms as a frame. |
reference_videos | string[] | Up to 5 public MP4/MOV URLs; 1–15 seconds per clip and at most 15 reference seconds in total. |
reference_audios | string[] | Up to 5 audio HTTP(S) URLs. |
file | string | Public document URL. |
link | string | Public web page URL. |
resolution | string | See the model table. Default: 1080p. |
ratio | string | adaptive, 16:9, 4:3, 1:1, 3:4, 9:16. Default: adaptive. |
duration | integer | 2–30 output seconds, or -1 for automatic duration. Default: 5. |
audio | boolean | Generate audio. Default: true. Disabling it does not reduce the rate. |
seed | integer | 0–2147483647. Omit for random generation. |
prompt_extend | boolean | Expand the prompt. Default: true. |
Use stable, directly accessible media URLs that stay available until the task finishes. Video duration checks use bounded HTTP range reads; video servers must support those reads and expose readable MP4/MOV duration metadata. Redirects are not followed by duration checks. Private network URLs are not supported. The combined reference and output duration must not exceed 30 seconds. Playground accepts a JSON request body up to 32 MiB; use URLs for larger inputs.
Poll and download the video
Every model's submit endpoint returns a public task ID. Save it before doing anything else.
{
"task_info": {
"id": "task_EXAMPLE",
"status": "pending"
}
}Use the query example in the matching model chapter. Start with a five-second interval and increase the delay after temporary errors. Keep each task's model ID together with its task ID; do not query it through a different model endpoint.
The native statuses are pending, processing, completed and failed. A completed response includes videos, an array containing a complete signed Bunny CDN URL.
{
"task_info": { "id": "task_EXAMPLE", "status": "completed" },
"videos": ["https://reapiflexible.b-cdn.net/flexible/v1/expires/2026-11/20261113T06/wanapi-task_EXAMPLE/video.mp4?token=HS256_SIGNATURE&expires=1794550071"]
}Use the returned URL directly for playback or download; no API key or Authorization header is required for that URL. Files follow the existing storage retention policy. Querying a task does not generate another video, charge again or extend file availability. Save files you want to keep to your own storage. Task queries require your API key and only return tasks owned by your account.
Synchronous and background Responses
For clients using the Responses API, POST /v1/responses accepts a model ID, a string input and the same native generation fields. Use input instead of prompt. Native media fields such as reference_images remain top-level fields.
{
"model": "w3.0-video-prime-pro",
"input": "A blue ball rolls across a white table.",
"resolution": "1080p",
"duration": 2,
"background": true
}With background: true, save the response ID and poll GET /v1/responses/{response_id}. Without background, the HTTP request waits for completion. stream: true uses server-sent events while waiting. The final assistant output contains a signed video URL; treat it as a private capability link and do not publish it accidentally. Native task submission and background Responses are recommended for long generations and restrictive proxy timeouts.
A disconnected or timed-out synchronous request does not cancel generation. The task remains on the server. Do not automatically submit the same generation again.
Billing and failure handling
The price is the model's resolution rate multiplied by billable seconds. Reference video seconds and output seconds both count; text, images and audio inputs do not add video seconds. Fixed-duration requests without reference video reserve the requested output duration. Automatic duration and reference-video requests reserve up to 30 billable seconds, then settle to measured usage and return the unused reservation. Generation failures release the reservation. Polling does not create another generation or charge again.
- Invalid parameters: correct the request before resubmitting. Unknown native fields are rejected.
- Insufficient balance: add funds before a new paid request. A key's limit does not grant account credit.
- Rate limits or temporary polling failures: retry only the query, with backoff and a maximum waiting period.
- Submission timeout, network interruption or missing task ID: the outcome may be unknown. Do not automatically repeat the POST; it could create a second paid task.
- Task failure: show the failed state separately from an unavailable status query.
- Download failure: retry downloading the existing completed task before starting another generation.
Generation submissions are not automatically retried or switched to another model. There is no advertised cancellation, webhook or idempotency-key contract. Keep the task ID and contact support when an uncertain submission needs investigation.