Skip to main content

Overview

Wan 3.0 Video generates videos from prompts, first-frame or first-and-last-frame images, and multimodal reference inputs such as images, videos, audio files, files, and web links. Use this page when you are ready to call the API after trying the model in the APIXO playground.

Choose the Wan 3.0 endpoint

All three endpoints support text-to-video, first-frame or first-and-last-frame image-to-video, and reference-to-video. Choose the endpoint before copying its parameters or price: For workflow selection, see the Wan 3.0 Video, LoRA, and Pro LoRA comparison. Use the selected endpoint’s rate from API Pricing, even when two endpoints offer the same resolution.

Endpoint and authentication

Base URL:
All requests require your APIXO API key:
Submit requests also require:

Copy-paste async quickstart

This minimal request submits a text-to-video task and returns a taskId.
Successful response:
Save the taskId; you need it to poll for the final result.

Poll for result

Processing response:
Success response:
Failed response:
Parse resultJson after state becomes success:

Request body

Text-to-video

Image-to-video

Reference-to-video

Parameters

string
default:"async"
Result delivery mode. Omit this field or use async for polling with statusTask, or use callback for webhook delivery.
string
Required when request_type is callback. Must be a public HTTPS URL that can receive the final task payload. See Webhooks.
object
required
Wan 3.0 Video input parameters.
Use public, directly accessible URLs for all media inputs. Video and audio durations are checked before the task is submitted.
When duration is positive and video_urls are provided, total reference video seconds plus duration cannot exceed 30 seconds. When duration is -1, the request uses smart duration and is pre-charged as input video seconds plus 30 output seconds.
For guidance on choosing and combining references, see the Wan 3.0 reference workflow.

Response format

Submit task response

POST /generateTask/wan-3-0-video returns a task ID when the task is accepted:
integer
API status code. 200 means the task was accepted.
string
Human-readable status message.
string
Unique task identifier used with the status endpoint.

Status response fields

string
Unique task identifier.
string
Current task state: processing, success, or failed.
string
JSON string containing generated video URLs in resultUrls. Present when state is success.
string
Machine-readable failure code. Present when state is failed.
string
Human-readable failure message. Present when state is failed.
integer
Task creation timestamp in Unix milliseconds.
integer
Task completion timestamp in Unix milliseconds. Present after completion.
integer
Processing duration in milliseconds. Present after completion when timing data is available.
object
Final billing snapshot. Present only on successful terminal responses for wan-3-0-video tasks submitted with duration=-1.
string
Settlement status. For this final snapshot the value is always final.
number
Total duration of all input videos, in seconds, rounded half up to 3 decimal places.
number
Actual generated output video duration, in seconds, rounded half up to 3 decimal places.
number
Final billable duration in seconds. This is always inputVideoSeconds + outputVideoSeconds.
string
Duration unit. The value is second.
string
Rounding rule used for duration fields. The value is round half up to 3 decimal places.
integer
Number of input videos included in inputVideoSeconds.
integer
Number of output videos included in outputVideoSeconds.

Webhook callback mode

Use callback mode when your backend should receive the final result automatically instead of polling.
The callback payload uses the same top-level shape as status polling with code, message, and data. Successful callbacks include the final state and resultJson. For duration=-1 tasks, successful terminal callbacks include the same data.billing object returned by status polling. See Webhooks for delivery requirements and retry behavior.

Billing

Market display references equal the standard APIXO price multiplied by 1.30, rounded half up to three decimal places. They are comparison values, not live third-party quotes or the charged amount. New non-LLM requests use 1 credit = $0.001. Calculate the full amount, including billable quantity and add-ons, apply the applicable account discount, then round the request total upward to the next whole credit. Agreed fixed unit prices retain their precision and replace the standard price and discount; final rounding still applies. See credit conversion and rounding. Wan 3.0 Video is billed per second. All three generation modes share the same unit price for a given resolution. Reference-to-video bills output seconds plus the actual input reference video seconds at that same unit price. Billing formulas: Input images, audio files, files, and links do not add separate billable seconds. Successful terminal duration=-1 responses return the final settled seconds under data.billing. The following illustrative snapshot uses one 5.371-second reference video and one 10.042-second output; it is not a measured task result:
All duration fields in billing use seconds and are rounded half up to 3 decimal places. inputVideoSeconds is the sum of all input video durations, and inputVideoCount is the number of input videos included in that sum. outputVideoSeconds is the actual generated output duration. totalBillableSeconds is always inputVideoSeconds + outputVideoSeconds. Without input videos, inputVideoSeconds is 0.000 and inputVideoCount is 0. This billing object appears only after successful final settlement, is also included in successful callback payloads, and remains stable on repeated polling. Without reference video, input video seconds are zero. Reference-to-video still requires at least one supported reference input. For duration=-1, the 30 output seconds are a pre-charge basis, not a promised output length. The final charge is (input video seconds + actual output seconds) * unitPrice; use the successful response with data.billing.settlementState=final for settled seconds. For example, using the documented 1080p base rate of $0.20/second, a 5-second reference video and a fixed 10-second output cost $3.00. With duration=-1, the same input is initially charged (5 + 30) * $0.20 = $7.00. If the successful output is 10 seconds, the final charge is $3.00 and the difference refunded is $4.00. These are arithmetic examples, not measured generation results. For a budgeting walkthrough, see the Wan 3.0 duration and cost guide. Its dollar examples use standard Wan 3.0 Video rates; check API Pricing for your selected endpoint’s current rate. API usage is billed in USD separately from Studio monthly credits. For current API rates in USD, see API pricing.

Latency and polling

Wan 3.0 Video tasks are asynchronous. Actual latency may vary by prompt complexity, duration, reference media accessibility, resolution, route queue load, and generation time.
For production workloads, use callback mode to avoid frequent polling while video tasks run.
Result URLs are temporary. Download and store important outputs promptly after task completion. Rate limits and concurrency can vary by account, API key, and route. If you receive 429, slow down requests and retry with backoff. For account-level details, see System APIs.

Errors and troubleshooting

HTTP errors

Validation notes

Task failure codes

failCode identifies the task failure. Common values include: See Error Codes for the full error reference.

MCP integration

The complete model schema declares result decoding in mcp.result and supported file bindings in mcp.attachments. These are client integration metadata, not generation input parameters. Attachment paths: image_urls, video_urls, audio_urls, file_urls. Preserve the user’s file order. Model parameter validation remains on the API.