# alibaba/wan-2.6/text-to-video > For ads, explainers, and social posts, Alibaba WAN 2.6 Text-to-Video is the ideal solution, transforming simple inputs into coherent, cinematic clips with stable motion and crisp detail. It offers strong instruction-following capabilities alongside the best performance and affordable pricing. ## Overview - **Endpoint**: `https://api.shortapi.ai/api/v1/job/create` - **Model ID**: `alibaba/wan-2.6/text-to-video` - **Category**: text-to-video - **Kind**: inference ## Pricing The rate is $0.085 per second for 720p and $0.128 per second for 1080p. For more details, please check our pricing page. ## API Information This model can be used via our HTTP API or more conveniently via our client libraries. See the input and output schema below, as well as the usage examples. ### Input Schema The API accepts the following input parameters: - **`prompt`** (`string`, _required_): Text prompt. Length must not exceed 1500 characters - Examples: "An action shot of a black lab swimming..." - **`negative_prompt`** (`string`, _optional_): Negative text prompt. Length no more than 500 characters - **`duration`** (`int`, _optional_): Video Length, unit: s (seconds) - Default: `5` - Options: "5", "10" - **`aspect_ratio`** (`string`, _optional_): The aspect ratio of the generated video frame (width:height) - Default: `16:9` - Options: "16:9", "1:1", "9:16", "4:3", "3:4" - **`resolution`** (`string`, _optional_): Output video resolution - Default: `1080p` - Options: "720p", "1080p" - **`audio_url`** (`string`, _optional_): URL of the audio to use as the background music. - **`shot_type`** (`string`, _optional_): The type of camera shot used in the video, i.e., whether the video consists of a single continuous shot or multiple cuts. Effective condition: only takes effect when 'prompt_extend': true. Parameter priority: shot_type > prompt - Options: "single", "multi" - **`prompt_extend`** (`bool`, _optional_): Ntelligent Prompt Rewriting - Default: `false` - Options: "true", "false" ### Output Schema The API returns a JSON response with a `job_id` for tracking the request status. **Create Job Response:** ```json { "code": 0, "data": { "amount": "0.02", "job_id": "" } } ``` **Query Job Result (when status is 2, meaning succeeded):** ```json { "code": 0, "data": { "status": 2, "result": { "videos": [{ "url": "https://..." }] } } } ``` ## Use Example To use this model, make an HTTP POST request to the API endpoint, then poll for results using the returned `job_id`. ### Bash (cURL) ```bash # Step 1: Create a job response=$(curl --request POST \ --url https://api.shortapi.ai/api/v1/job/create \ --header "Authorization: Bearer $SHORTAPI_KEY" \ --header "Content-Type: application/json" \ --data '{ "model": "alibaba/wan-2.6/text-to-video", "args": { "prompt": "A lone traveler walks through a vast field of golden grass at dawn. Soft wind ripples the landscape as mist drifts low to the ground. The camera slowly tracks forward, shallow depth of field, gentle handheld motion. Sunlight breaks through clouds with subtle lens flares. The traveler pauses, closes their eyes, and smiles calmly. Ultra-realistic lighting, natural physics, smooth motion, emotional and peaceful tone, cinematic color grading, 24fps, high detail, filmic atmosphere.position, award-winning cinematography" }, "callback_url": "CALLBACK_URL" }') JOB_ID=$(echo "$response" | grep -o '"job_id": *"[^"]*"' | sed 's/"job_id": *//; s/"//g') # Step 2: Poll for results curl --request GET \ --url "https://api.shortapi.ai/api/v1/job/query?id=$JOB_ID" \ --header "Authorization: Bearer $SHORTAPI_KEY" ``` ### JavaScript (Fetch API) ```javascript // Step 1: Create a job const response = await fetch(`https://api.shortapi.ai/api/v1/job/create`, { method: "POST", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}`, "Content-Type": "application/json" }, body: JSON.stringify({ "model": "alibaba/wan-2.6/text-to-video", "args": { "prompt": "A lone traveler walks through a vast field of golden grass at dawn. Soft wind ripples the landscape as mist drifts low to the ground. The camera slowly tracks forward, shallow depth of field, gentle handheld motion. Sunlight breaks through clouds with subtle lens flares. The traveler pauses, closes their eyes, and smiles calmly. Ultra-realistic lighting, natural physics, smooth motion, emotional and peaceful tone, cinematic color grading, 24fps, high detail, filmic atmosphere.position, award-winning cinematography" }, "callback_url": "CALLBACK_URL" }) }); const data = await response.json(); const JOB_ID = data.job_id; // Step 2: Poll for results const result = await fetch(`https://api.shortapi.ai/api/v1/job/query?id=${JOB_ID}`, { method: "GET", headers: { "Authorization": `Bearer ${SHORTAPI_KEY}` } }); const resultData = await result.json(); console.log(resultData); ``` ### Python (Requests) ```python import requests # Step 1: Create a job url = "https://api.shortapi.ai/api/v1/job/create" payload = { "model": "alibaba/wan-2.6/text-to-video", "args": { "prompt": "A lone traveler walks through a vast field of golden grass at dawn. Soft wind ripples the landscape as mist drifts low to the ground. The camera slowly tracks forward, shallow depth of field, gentle handheld motion. Sunlight breaks through clouds with subtle lens flares. The traveler pauses, closes their eyes, and smiles calmly. Ultra-realistic lighting, natural physics, smooth motion, emotional and peaceful tone, cinematic color grading, 24fps, high detail, filmic atmosphere.position, award-winning cinematography" }, "callback_url": "CALLBACK_URL" } headers = { "Authorization": f"Bearer {SHORTAPI_KEY}", "Content-Type": "application/json" } response = requests.post(url, headers=headers, json=payload) data = response.json() JOB_ID = data.get("job_id") # Step 2: Poll for results result_url = f"https://api.shortapi.ai/api/v1/job/query?id={JOB_ID}" result = requests.get(result_url, headers={"Authorization": f"Bearer {SHORTAPI_KEY}"}) print(result.json()) ```