# WAN 3.0 Video Generation

https://video-doc.1route.dev/en/docs



Help me integrate 1Route WAN3 video generation with my tool or project. I am a beginner.
Read https://video-doc.1route.dev/en/llms-full.txt first.
Ask only for missing details: my tool, whether it supports asynchronous video tasks, text/image/video input, and spending limit. A chat-only client may need an integration.
API base: https://video.1route.dev. Create a video-group API key at https://video.1route.dev/keys/; do not assume an image-service key works.
Load WAN3_API_KEY from a private local environment file or protected input. Never print it or put a shared key in a public frontend. Preserve existing configuration.
Verify GET /v1/models before choosing an available WAN3 model. For the first paid test propose 2 seconds at 480p and obtain confirmation of the price and content.
POST /v1/videos accepts JSON only; send seconds as a string. Use reference_images:[{url:"HTTPS_URL"}] for images, reference_videos:[{url:"HTTPS_URL",duration:5}] for video. Validate accessible URLs; do not upload private material to arbitrary hosts.
Output is 2–30 whole seconds. Video references: up to 5, 1–15 whole seconds each, total <=15; output + reference seconds <=30. Image models reject video references. Do not invent rounding for fractional reference durations.
Image price = per-second rate × output seconds; video price = rate × (output + unique reference video seconds). Use https://video.1route.dev/pricing/ and account/group pricing. Quote units accurately.
Submit once; immediately save the full returned id and X-Oneapi-Request-Id. Poll GET /v1/videos/{id} every 15 seconds. queued/in_progress continue waiting; progress alone is not completion.
Read completed.metadata.url and immediately save the file locally. The link lasts up to 5 minutes and the cached file lasts 10 minutes after becoming ready. Use the returned URL verbatim; do not forward the API key to arbitrary download hosts.
If creation times out or returns an ambiguous error, do not automatically POST again. Preserve the request information and inspect existing task/usage records. Retry transient GET errors with backoff. Resume an existing task after restarting the client; never regenerate just because polling stopped. No cancellation or idempotent creation is promised.
Provide a complete create/save-id/poll/download flow and beginner instructions. Do not execute a paid test before I confirm.

## Choose your starting point [#choose-your-starting-point]

| Your situation                      | Next step                                |
| ----------------------------------- | ---------------------------------------- |
| You want AI assistance              | [Connect with AI](/en/docs/ai/)          |
| You need step-by-step instructions  | [Your first video](/en/docs/quickstart/) |
| You have an application or workflow | [WAN3 API](/en/docs/api/)                |
| You already submitted a task        | [Tasks and downloads](/en/docs/tasks/)   |

Create a video-group key in the [video console](https://video.1route.dev/). Use an image model with a reference image, or a video model for text-only generation. Start with 480p and 2 seconds after checking the cost.

This is documentation, not an online generation canvas. An AI tool that can run code can help set up a client.

## Save your result [#save-your-result]

Persist the task ID, wait for completion, then immediately save the MP4. Cached videos last about **10 minutes** after becoming ready; individual signed URLs last up to **5 minutes**. Your client should download automatically.

For still-image generation, use the separate [image documentation](https://doc.1route.dev/en/docs/). Its endpoints and billing rules do not apply to video.
