---
title: "Wan 2.6 JSON Prompt — Long Video API for Newcomers"
description: "Beginner-friendly Wan 2.6 JSON prompt guide: every field explained, 3 copy-paste examples, and when to use it vs alternatives. 42 credits on AI Content Drop."
canonical: "https://aicontentdrop.com/blog/wan-2-6-json-prompt-guide"
source: "https://aicontentdrop.com/blog/wan-2-6-json-prompt-guide"
---
## What This Guide Does

This guide explains every field in a Wan 2.6 JSON prompt — the structured text request you send to Alibaba's Wan video model to turn a description into a long-form video clip. By the end you'll be able to send your first Wan 2.6 request and understand every field in the JSON, even if you have never touched an AI model API before.

We'll cover what Wan 2.6 actually is and what it's best at, then show you a complete request body you can copy and run today. From there we'll break down every field one by one — data type, required vs optional, allowed values, and a plain-English "good vs bad" example for each. We'll close with three ready-to-use prompt bodies, the `curl` and JavaScript snippets you need to actually submit a request, common error fixes, a decision table comparing Wan 2.6 to its closest alternatives, and a cost breakdown so you know exactly what to budget. No prior coding or AI experience required.

## What Is Wan 2.6?

Wan 2.6 is a text-to-video model developed by Alibaba. You give it a written description and it generates a fluid video clip — no images, no storyboard, just words in, video out. Alibaba's Wan family is purpose-built for **long-form outputs**: while many competitors top out at 5 seconds, Wan 2.6 supports clips up to 10 seconds, and the model's temporal consistency (meaning objects and lighting stay coherent across the full duration) is one of the strongest in its class. It is especially well suited to cinematic B-roll — slow-motion product reveals, outdoor lifestyle footage, and scenes with flowing movement like fabric, water, or smoke. The one thing Wan 2.6 does not do is generate audio; it outputs silent video. If you need native speech or ambient sound in a single pass, a model with built-in audio generation is a better fit. For a broader look at what's available, see our [best AI video generators for 2026](https://aicontentdrop.com/blog/best-ai-video-generators-2026) roundup.

Wan 2.6 is available via Alibaba's official DashScope API (international endpoint:`dashscope-intl.aliyuncs.com`). On AI Content Drop, each Wan 2.6 generation costs **42 credits** — billed only after your video generates successfully. That means a failed or cancelled generation does not charge you anything (post-deduct billing). Credits are charged once the platform confirms a video URL is ready. To put the 42-credit figure in context relative to other long-form models, check our [Wan 2.7 deep-dive review](https://aicontentdrop.com/blog/wan-2-7-review) where we compare output quality and cost across the Wan family.

## The Complete JSON Prompt

Below is a full Wan 2.6 API request body you can copy, paste, and send right now. This is**JSON** — JavaScript Object Notation, a plain-text format that APIs use to receive structured instructions. Each line is a key–value pair separated by a colon; together they tell Wan 2.6 exactly what video to create.

```
{
  "model": "wan2.6-14b-text2video-turbo",
  "input": {
    "prompt": "A sleek matte-black running shoe on a dark studio pedestal, rotating slowly clockwise, product-lighting rim highlight, ultra-clean background, cinematic shallow depth of field, 4K",
    "negative_prompt": "blurry, shaky, watermark, text overlay, distorted, overexposed",
    "size": "1280*720",
    "duration": 10
  },
  "parameters": {
    "seed": 42,
    "num_inference_steps": 50
  }
}
```

At a glance: `model` selects the Wan 2.6 checkpoint; `input.prompt` is your text description of the scene; `input.size` sets the output resolution; `input.duration` controls how many seconds of video to generate; and the `parameters` block fine-tunes reproducibility and quality. Each of these is explained in full below.

## Field-by-Field Breakdown

Let's go through every field. For each one you'll see its data type, whether it's required, what the default is when you leave it out, the allowed values or range, and a plain-English "good vs bad" example so you know exactly how each setting affects your output.

### model

**Type:** string (enum) | **Required:** yes

Tells the DashScope API which model checkpoint to run. For Wan 2.6 use `"wan2.6-14b-text2video-turbo"`. The `14b` suffix refers to the 14-billion-parameter variant, which is the standard-quality tier. Pinning an explicit model string means a future API update won't silently redirect your requests to a different checkpoint.

**Good:** `"wan2.6-14b-text2video-turbo"` — explicit, reproducible.
**Bad:** `"wan"` — too vague; the API will reject it or resolve to an unexpected version.

### input.prompt

**Type:** string | **Required:** yes |  **Max length:** ~2,000 characters (confirm in the latest Wan 2.6 docs)

This is the main description of the scene you want to generate. Think of it as a detailed instruction to a cinematographer: describe the subject, action, camera angle, lighting, and visual style in a single paragraph. Wan 2.6 responds well to cinematic language. More detail generally produces better temporal consistency (objects staying coherent over the full duration), but avoid stacking five different actions — the model handles a single clear movement per clip better than a sequence.

**Good:** `"A glass perfume bottle on a marble surface, slow 360-degree rotation, warm rim lighting from the right, soft bokeh background"`
**Bad:** `"perfume bottle and then it flies and then explodes and then we see the logo"` — multiple disconnected events in one clip produce incoherent motion.

### input.negative_prompt

**Type:** string | **Required:** no |  **Default:** empty string

A **negative prompt** lists things you do *not* want in the output. The model tries to steer away from anything you describe here. Common values to always include: `"blurry, shaky, watermark, text overlay, distorted"`. For product shots you might also add `"overexposed, lens flare"`. Leave it empty and you may get watermarks or compression artefacts on lower-quality prompts.

**Good:** `"blurry, shaky, watermark, text overlay, low-resolution, distorted"`
**Bad:** `"bad video"` — too vague to steer the model away from any specific artefact.

### input.size

**Type:** string (enum) | **Required:** no | **Default:** `"1280*720"`

Sets the output resolution. Note that Alibaba's DashScope API uses an asterisk (`*`) as the separator, not an "x" — so it is `"1280*720"`, not`"1280x720"`. Getting this wrong is a very common beginner mistake that returns a 400 error. See the allowed values reference table below for the full list of supported sizes and aspect ratios.

**Good:** `"1280*720"` — correct separator, valid resolution.
**Bad:** `"1280x720"` — the lowercase "x" separator will cause a validation error.

### input.duration

**Type:** number (integer) | **Required:** no | **Default:** 5 |  **Allowed range:** 1–10 (seconds)

Controls how many seconds of video to generate. **Duration** is the length of the finished clip. Wan 2.6's headline feature is its 10-second maximum — most competing models at this price tier cap at 5 seconds. Longer clips cost more compute time; expect roughly double the generation latency at 10 seconds versus 5 seconds.

**Good:** `10` — maximum duration, great for long B-roll or product reveals.
**Bad:** `15` — exceeds the model's maximum; the API will return a validation error.

### parameters.seed

**Type:** number (integer) | **Required:** no | **Default:** random

A **seed** is a number that initializes the random noise the model starts from. If you use the same seed with the same prompt and settings, you get a very similar output every time. Set a specific seed (e.g. `42`) when you find a result you like and want to reproduce it or run slight variations. Omit the seed (or set it to `-1`) when you want a fresh, unpredictable generation each time.

**Good:** `42` — fixed seed for a production asset you need to iterate on reliably.
**Bad:** using a fixed seed on every single test run — you'll keep getting the same result even when you change your prompt, which makes it hard to explore the model's range.

### parameters.num_inference_steps

**Type:** number (integer) | **Required:** no | **Default:** 50 |  **Allowed range:** 1–100

Controls how many diffusion steps the model runs during generation. Higher values produce more refined, detailed video at the cost of longer generation time. The default of 50 is a good balance for most use cases. Go above 70 only when you need maximum fidelity on a hero asset. Going below 20 speeds things up but often produces blurry or flat results.

**Good:** `50` — balanced quality and speed for ad previews.
**Bad:** `10` — very fast but the output will look under-baked, especially in complex scenes.

## Allowed Values Reference Table

Bookmark this table. It covers every enum value and numeric range Wan 2.6 accepts. If a value you try isn't in this table, the API will return a 400 validation error.

| Field | Allowed Values | Notes |
| --- | --- | --- |
| model | `wan2.6-14b-text2video-turbo` | Current Wan 2.6 checkpoint identifier |
| input.size | `1280*720` (16:9)
`720*1280` (9:16 vertical)
`960*960` (1:1)
`1088*832` (4:3)
`832*1088` (3:4) | Asterisk separator required. Confirm full list in latest DashScope docs. |
| input.duration | 1 – 10 (integer seconds) | Default 5. 10s is the maximum — unique to Wan 2.6 among models at this tier. |
| parameters.seed | Any positive integer, or `-1` for random | Omit for random seed on each run |
| parameters.num_inference_steps | 1 – 100 (integer) | Default 50. Higher = better quality, slower generation. |
| input.prompt | Any string up to ~2,000 characters | Longer is generally better for temporal consistency |
| input.negative_prompt | Any string. Optional. | Default is empty. Recommended: include common artefact terms. |

## 3 Working Copy-Paste Examples

Below are three complete, ready-to-run JSON request bodies for three different use cases. Each one is valid JSON you can drop into a `curl` command or fetch call immediately.

### Example 1 — E-Commerce Product Shot

A rotating sneaker on a clean studio pedestal. This setup works for any physical product — swap the subject description and keep the lighting and camera language unchanged. The 1:1 aspect ratio is ideal for Instagram feed placements. Expect the model to generate a smooth, continuous rotation with consistent lighting across all 8 seconds.

```
{
  "model": "wan2.6-14b-text2video-turbo",
  "input": {
    "prompt": "A premium matte-black running shoe on a minimalist white pedestal, rotating slowly clockwise 360 degrees, soft directional studio lighting with a subtle rim highlight on the left edge, ultra-clean white background, cinematic shallow depth of field, photorealistic 4K",
    "negative_prompt": "blurry, shaky, watermark, text overlay, overexposed, lens flare, low quality",
    "size": "960*960",
    "duration": 8
  },
  "parameters": {
    "seed": 1024,
    "num_inference_steps": 50
  }
}
```

The fixed seed (`1024`) means you can iterate on the prompt wording and consistently compare outputs without random variation. The 1:1 size targets Instagram square-feed placements. Eight seconds is enough for a full, unhurried rotation that feels premium rather than rushed.

### Example 2 — Portrait / Character (Founder-to-Camera)

A confident person speaking directly to camera — a common format for founder testimonials, UGC ads, and service-business promos. Use 9:16 vertical for TikTok and Reels. The slow dolly-in camera move creates the illusion of a professional shoot even on a tight budget. Note: Wan 2.6 does not generate speech or lip-sync — this is a silent clip. Pair with a voice-over in post.

```
{
  "model": "wan2.6-14b-text2video-turbo",
  "input": {
    "prompt": "A confident woman in her early 30s wearing a tailored cobalt blazer, standing in a modern co-working space with warm soft-box lighting, looking directly into the camera with a calm smile, slow subtle dolly-in from medium shot to medium close-up, shallow depth of field, cinematic color grading",
    "negative_prompt": "blurry, shaky, multiple people, cluttered background, watermark, text overlay, distorted face",
    "size": "720*1280",
    "duration": 7
  },
  "parameters": {
    "seed": 2048,
    "num_inference_steps": 60
  }
}
```

Bumping `num_inference_steps` to 60 is worth the extra generation time for human-face content — you want maximum fidelity on the subject. Seven seconds gives enough runway for the dolly move to feel natural without overstaying its welcome.

### Example 3 — Cinematic Scene (Moody Street Shot)

An atmospheric B-roll clip for lifestyle brands, agency reels, or travel content. Wan 2.6 excels at flowing environmental motion — rain, steam, crowd movement — and this prompt leverages all of that. The 16:9 format suits YouTube pre-rolls and landscape social placements. Ten seconds extracts maximum value from the 42-credit cost.

```
{
  "model": "wan2.6-14b-text2video-turbo",
  "input": {
    "prompt": "A rain-slicked Tokyo street at night, neon reflections shimmering on wet asphalt, people with umbrellas walking in slow motion past glowing storefronts, a single figure in a dark trench coat pauses and looks up at the rain, moody cinematic color grade with deep teal and amber tones, slow tracking shot at street level",
    "negative_prompt": "blurry, shaky, watermark, text on screen, daylight, overexposed, multiple faces in focus",
    "size": "1280*720",
    "duration": 10
  },
  "parameters": {
    "seed": -1,
    "num_inference_steps": 70
  }
}
```

Setting `seed` to `-1` generates a fresh random result each time — useful here because atmospheric scenes benefit from natural variation. Stepping up to 70 inference steps is justified for a cinematic hero clip where you only need one great take. This is exactly the kind of long-form B-roll that Wan 2.6 outperforms shorter-cap models on.

## How to Send the Request

An **API endpoint** is a web address your code sends data to — think of it like a specific door on a building that accepts deliveries of a particular type. For Wan 2.6, the official door is Alibaba's DashScope API at `https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis`. You send your JSON request body to that address with your API key in the header, and the service responds with a task ID you can poll for the result. Here's how.

### curl (command line)

`curl` is a command-line tool that lets you send HTTP requests directly from your terminal. Copy this snippet, replace `YOUR_DASHSCOPE_API_KEY` with your actual key, and run it:

```
curl -X POST \
  https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis \
  -H "Authorization: Bearer YOUR_DASHSCOPE_API_KEY" \
  -H "Content-Type: application/json" \
  -H "X-DashScope-Async: enable" \
  -d '{
    "model": "wan2.6-14b-text2video-turbo",
    "input": {
      "prompt": "A sleek matte-black running shoe on a dark studio pedestal, rotating slowly clockwise, product-lighting rim highlight, ultra-clean background, cinematic shallow depth of field, 4K",
      "negative_prompt": "blurry, shaky, watermark, text overlay, distorted, overexposed",
      "size": "1280*720",
      "duration": 10
    },
    "parameters": {
      "seed": 42,
      "num_inference_steps": 50
    }
  }'
```

The `X-DashScope-Async: enable` header tells the API to process your request in the background and immediately return a task ID. You then poll a separate status endpoint with that task ID until the video is ready — explained in the next section. Consult the latest DashScope documentation for any updates to the endpoint path or headers.

### JavaScript fetch

If you're building a web app or Node.js script, the `fetch` API sends the same request without needing a terminal. Replace `YOUR_DASHSCOPE_API_KEY` with your actual key:

```
const response = await fetch(
  'https://dashscope-intl.aliyuncs.com/api/v1/services/aigc/video-generation/video-synthesis',
  {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_DASHSCOPE_API_KEY',
      'Content-Type': 'application/json',
      'X-DashScope-Async': 'enable',
    },
    body: JSON.stringify({
      model: 'wan2.6-14b-text2video-turbo',
      input: {
        prompt: 'A sleek matte-black running shoe on a dark studio pedestal, rotating slowly clockwise, product-lighting rim highlight, ultra-clean background, cinematic shallow depth of field, 4K',
        negative_prompt: 'blurry, shaky, watermark, text overlay, distorted, overexposed',
        size: '1280*720',
        duration: 10,
      },
      parameters: {
        seed: 42,
        num_inference_steps: 50,
      },
    }),
  }
);

const data = await response.json();
console.log(data.output.task_id); // Use this to poll for your result
```

Or skip the API key entirely — paste your prompt into [/chat](https://aicontentdrop.com/) or [/generate/video](https://aicontentdrop.com/best-ai-video-generator) on AI Content Drop and we'll handle the request for you. No API key, no polling code, no infrastructure to manage.

## What the Response Looks Like

Wan 2.6 generation is **asynchronous** — meaning the API does not wait for the video to finish before responding. Instead, it immediately returns a **task ID**. A task ID is a unique reference number (like a package tracking code) that you use to check whether your video is ready. Here is what the initial response looks like:

```
{
  "request_id": "req_abc123def456",
  "output": {
    "task_id": "7a9d2b1c-4e3f-4a5b-8c6d-1234567890ab",
    "task_status": "PENDING"
  },
  "usage": {}
}
```

Once you have the `task_id`, you poll the task status endpoint every few seconds until `task_status` changes from `"PENDING"` or `"RUNNING"` to `"SUCCEEDED"`. A completed response looks like this:

```
{
  "request_id": "req_abc123def456",
  "output": {
    "task_id": "7a9d2b1c-4e3f-4a5b-8c6d-1234567890ab",
    "task_status": "SUCCEEDED",
    "video_url": "https://dashscope-result.oss-cn-beijing.aliyuncs.com/your-video.mp4",
    "submit_time": "2026-05-07T10:00:00Z",
    "scheduled_time": "2026-05-07T10:00:01Z",
    "end_time": "2026-05-07T10:02:45Z"
  },
  "usage": {
    "video_duration": 10,
    "video_ratio": "1280*720"
  }
}
```

`video_url` is the download link for your finished video. It is a temporary signed URL — download the file promptly because it will expire. The `task_status` field cycles through `PENDING → RUNNING → SUCCEEDED` (or `FAILED` if something went wrong). Poll every 5–10 seconds; most 10-second Wan 2.6 generations complete in 90–180 seconds depending on server load. Consult the latest DashScope docs for the exact polling endpoint path and any changes to the response schema.

## Common Errors and Fixes

- Error: "InvalidParameter: size must use * as separator"
  
  — You wrote
  
  "1280x720"
  
  instead of
  
  "1280*720"
  
  . Replace the lowercase "x" with an asterisk. This is the single most common beginner mistake with DashScope video APIs.
- Error: 401 Unauthorized
  
  — Your API key is missing, expired, or pasted incorrectly. Check that the
  
  Authorization
  
  header reads
  
  Bearer YOUR_DASHSCOPE_API_KEY
  
  with no extra spaces. Regenerate the key in your DashScope console if you're unsure.
- Error: "InvalidModel: model not found"
  
  — The
  
  model
  
  string is misspelled or refers to a version that isn't yet live on your account tier. Double-check the exact string
  
  wan2.6-14b-text2video-turbo
  
  against the latest DashScope model catalog.
- Error: "Content policy violation"
  
  — Your prompt triggered a content-safety filter. Remove any references to violence, explicit content, or real people by name. Rephrase in neutral, descriptive language (e.g., "a figure in a dark coat" rather than a named individual).
- Error: "Quota exceeded"
  
  — You've hit your DashScope account's daily or monthly API quota. Wait for the quota to reset or top up your DashScope balance. On AI Content Drop, this is handled automatically — the platform manages quota distribution across requests.
- Error: "InvalidParameter: duration out of range"
  
  — You set
  
  duration
  
  to a value outside 1–10. The maximum is 10 seconds. Set it to 10 and re-submit.
- task_status stuck on PENDING for >5 minutes
  
  — DashScope video generation queues occasionally back up during peak hours. Wait another few minutes before concluding something went wrong. If the status stays PENDING beyond 10 minutes, submit a new request — the original task may have timed out on the server side without updating its status.

## Wan 2.6 vs Alternatives — When to Use This

Every model has a sweet spot. Here's a practical decision table so you pick the right tool for each job. You can browse all available models on the [AI Content Drop marketplace](https://aicontentdrop.com/marketplace).

| Use Wan 2.6 if… | Use Kling 3.0 if… | Use Seedance 2.0 if… |
| --- | --- | --- |
| You need clips up to 10 seconds (long-form B-roll, cinematic reveal) | You need precise motion control or image-to-video with a reference photo | You need native audio, speech, or lip-sync generated in the same call |
| Your scene involves flowing natural elements — water, smoke, fabric, crowds | You're building product ads where a specific camera trajectory matters | You want a talking-head UGC-style clip with lip-synced voiceover in one pass |
| You want 42 credits per generation and strong temporal coherence over a long clip | Budget is a priority (Kling 3.0 at 22 credits is half the cost of Wan 2.6) | You're willing to spend 56 credits for a fully self-contained video with sound |

For a head-to-head quality comparison across the full Wan family, check the [Wan 2.7 deep-dive review](https://aicontentdrop.com/blog/wan-2-7-review) — it benchmarks Wan 2.5, 2.6, and 2.7 on the same set of prompts. And for a wider look at all models, the [best AI video generators 2026 roundup](https://aicontentdrop.com/blog/best-ai-video-generators-2026) covers the full competitive landscape.

## Cost Math for Newcomers

Let's make the numbers concrete. Wan 2.6 costs **42 credits per generation** on AI Content Drop (post-deduct — you're only charged on success). Say you want to produce 10 ad variants of the same product shot to A/B test different camera angles and durations:

**10 ad variants × 42 credits = 420 credits**

The Starter plan gives you 150 credits per month for $19. The Professional plan gives you 450 credits per month for $49. That means 10 Wan 2.6 generations comfortably fits inside one Professional month (420 credits out of 450). Or you can spread across three Starter months. If you're planning a batch of 30+ videos, the Ultra plan (1,000 credits for $99/month) is the most cost-efficient bracket — 30 generations use 1,260 credits, which fits in the Ultra plan's 2,000-credit slot with room to spare for other model work.

To compare credit costs across the rest of the video model catalog, the [script-to-video guide](https://aicontentdrop.com/blog/script-to-video-guide) walks through a full production workflow with per-step credit breakdowns.

## Glossary

**Prompt**

The text description you write to tell the model what to generate. Think of it as a detailed instruction note to a director.

**JSON (JavaScript Object Notation)**

A plain-text format used to send structured data to APIs. It looks like key–value pairs wrapped in curly braces: `{"key": "value"}`.

**API request**

A message your app or script sends to a web service, asking it to do something — in this case, generate a video. The API processes the request and sends a response back.

**Endpoint**

A specific URL that an API listens to for incoming requests. Different endpoints perform different actions (e.g., submit a job vs check its status).

**Task ID**

A unique identifier returned immediately when you submit a video generation job. You use it to track your job's progress and retrieve the finished video URL.

**Polling**

Periodically checking the task status endpoint (e.g., every 5 seconds) to find out if your asynchronous job has finished. You stop polling when the status is `SUCCEEDED` or `FAILED`.

**Aspect ratio**

The width-to-height relationship of the video frame. 16:9 is landscape (widescreen), 9:16 is vertical (phone-friendly), 1:1 is square. Wan 2.6 encodes this as a pixel size string like `1280*720`.

**Seed**

A number that initializes the model's random starting point. The same seed + same prompt produces a very similar output each time — useful for reproducible iteration.

**Negative prompt**

A list of things you do *not* want in the output. The model actively steers away from anything mentioned here.

## FAQ

### Can I just use the chat instead of writing JSON?

Yes. Head to [/chat](https://aicontentdrop.com/) on AI Content Drop, describe what you want in plain English, and the platform routes your request to Wan 2.6 (or whichever model best fits your brief) without you needing to write a single line of JSON. The JSON guide here is useful if you want fine-grained control or are building your own integration.

### What if I get a 401 error?

A 401 means the API rejected your credentials. The most likely causes are: the API key is missing from the `Authorization` header, the key was copied with extra whitespace, or the key has expired. Regenerate the key in your DashScope console and re-paste it carefully. On AI Content Drop you never touch API keys — authentication is handled for you.

### How do I get an aspect ratio that isn't in the list?

You can't request a custom pixel dimension — you must pick from the supported `size` values listed in the reference table. If your target placement needs a ratio not on the list (e.g., 4:5 for some Meta feeds), generate the closest available size and crop in your video editor afterward. Cropping a 16:9 output to 4:5 only removes a small strip from the sides and rarely affects the main subject.

### Does Wan 2.6 support audio generation?

No. Wan 2.6 is a silent text-to-video model — it generates video only. If you need native speech, ambient sound, or lip-synced audio included in the same generation call, look at Seedance 2.0 (56 credits, full multimodal audio) or pair a Wan 2.6 clip with a separate voice-over track in post-production using the UGC Factory on AI Content Drop.