# Wan2.7 Image API

> Wan2.7 Image — fast, high-fidelity AI image generation & editing.

- **Provider**: Wan
- **Model id**: `wan-2-7-image`
- **Modality**: image
- **Price**: 2.78 credits /image

## Overview

Wan2.7 Image is called in two steps: create a generation task, then poll the task until the result is ready.

## Authentication

All requests require a Bearer Token in the request header:

```
Authorization: Bearer YOUR_API_KEY
```

## Create Task

`POST https://you.bot/api/v1/generate`

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| modelId | string | Yes | Model id: `wan-2-7-image` |
| input | object | Yes | Input parameters object (see below) |
| callbackUrl | string | No | https URL we POST the finished task to. Signed with `X-Webhook-Signature` once you create a webhook signing key in Dashboard → Settings |

### input object parameters

| Parameter | Type | Required | Description |
|-----------|------|----------|-------------|
| prompt | string | Yes | Text prompts for image generation. Supports both Chinese and English, with a minimum of 1 characters and a maximum of 5,000 characters. Max 5000 characters. (example: Create a scroll-stopping 3:4 vertical fashion advertising image for a fictional 2026 youth-culture campaign. MAIN CONCEPT: “LIQUID FUTURE” A striking Gen Z… — full value in the request example) |
| input_urls | string[] | No | Upload an image file to use as input for the API (image URL) |
| bbox_list | string | No | Draw edit regions on each image. Coordinates are saved as [x1, y1, x2, y2] using the original image pixel coordinates. Each image supports up to 2 boxes. |
| enable_sequential | boolean | No | Enable Gallery Mode (true/false) (default: false) |
| color_palette | object[] | No | Optional custom theme, 3-10 colours (8 recommended). Ratios must sum to 100.00%. Only available with Sequential Mode off. (array of { hex, ratio }) |
| n | number | Conditional | when `enable_sequential` is `false`: When the group image mode is turned off, n represents the number of generated images (1-4); when it is turned on, n represents the maximum number of images (1-12), and the actual value is determined by the model. (range 1-4) · when `enable_sequential` is `true`: When the group image mode is turned off, n represents the number of generated images (1-4); when it is turned on, n represents the maximum number of images (1-12), and the actual value is determined by the model. (range 1-12) |
| resolution | string | No | Resolution of the generated image. Higher resolutions take longer to generate. (options: 1K \| 2K) (default: 2K) |
| thinking_mode | boolean | No | Enhances reasoning for higher-quality outputs. Only available when Gallery Mode is off and no images are uploaded. May increase generation time. (true/false) (default: true) |
| aspect_ratio | string | No | Aspect ratio of the generated image (options: 1:1 \| 3:4 \| 4:3 \| 1:8 \| 8:1 \| 9:16 \| 16:9 \| 21:9) (default: 1:1) |
| watermark | boolean | No | Whether to add a watermark identifier (true/false) (default: false) |
| seed | number | No | Using the same seeds and the same prompts for the same version of the model can keep the generated content relatively stable. (default: 0) |
| nsfw_checker | boolean | No | A configurable parameter. Defaults to true in the Playground. (true/false) (default: true) |

### Request example

```json
{
  "modelId": "wan-2-7-image",
  "input": {
    "prompt": "Create a scroll-stopping 3:4 vertical fashion advertising image for a fictional 2026 youth-culture campaign.\n\nMAIN CONCEPT:\n“LIQUID FUTURE”\n\nA striking Gen Z fashion model fills most of the frame, photographed in an extreme high-fashion editorial style.\n\nThe model has realistic natural skin, subtle pores, slightly wet hair and a calm but intimidating expression, looking directly into the camera.\n\nShe wears a sculptural liquid-chrome fashion piece wrapping organically around the shoulders and upper body, combining polished mirror metal with transparent jelly-like material.\n\nBehind her, a gigantic translucent electric-lime gel form bends through the scene like a frozen liquid wave.\n\nSeveral chrome droplets float extremely close to the lens, creating dramatic depth and distorted reflections.\n\nThe image should immediately feel expensive, strange and unforgettable.\n\nCOMPOSITION:\nVery strong central hero image.\nClose-up fashion portrait.\nFace large enough to remain powerful as a small thumbnail.\nSlight ultra-wide lens distortion around the outer edges.\nForeground chrome object partially enters the frame.\nLarge clean negative space in the upper-left area for typography.\nControlled asymmetry.\nNo clutter.\n\nTYPOGRAPHY:\nRender only these exact words:\n\n“LIQUID\nFUTURE”\n\nLarge condensed black editorial typography in the upper-left corner.\n\nSmall text underneath:\n“2026 / MATERIAL STUDY”\n\nKeep all text perfectly spelled, sharp and clearly readable.\n\nCOLOR SYSTEM:\nelectric acid lime\nmirror chrome silver\ndeep black\nclean white\nnatural skin tones\n\nAvoid rainbow colors.\n\nLIGHTING:\nhard direct fashion flash combined with a large soft key light,\nbright specular highlights on chrome,\nrealistic translucent gel refraction,\nsharp catchlights in the eyes,\ndeep but clean shadows,\nsubtle analog film grain.\n\nMATERIAL QUALITY:\nextremely realistic polished chrome,\ntransparent soft gel,\nwet glass,\nsubtle skin moisture,\nhigh-end textile details,\nphysically believable reflections and refractions.\n\nART DIRECTION:\n2026 experimental fashion campaign,\nluxury advertising meets underground Gen Z culture,\nbold but minimal,\nsurreal without becoming fantasy,\nphysical and tactile rather than generic digital CGI,\nstrange enough to stop scrolling but sophisticated enough for a global fashion campaign.\n\nThe final image must work instantly as a thumbnail.\nThe face and liquid-chrome material are the main visual hook.\nTypography is secondary.\nOne unforgettable visual idea, not many competing ideas.\n\nPremium commercial photography.\nAward-level fashion art direction.\nPhotorealistic.\nExtremely polished.\nHigh visual tension.\n\nDo not add logos.\nDo not add extra text.\nDo not add random letters.\nNo cyberpunk city.\nNo generic neon background.\nNo excessive objects.\nNo cartoon look.\nNo distorted hands.\nNo plastic skin.\nNo cheap AI aesthetic.",
    "input_urls": [
      "https://you.bot/examples/grok-imagine-text-to-image.jpg"
    ],
    "bbox_list": "example",
    "enable_sequential": false,
    "color_palette": [
      {
        "hex": "example",
        "ratio": "example"
      },
      {
        "hex": "example",
        "ratio": "example"
      },
      {
        "hex": "example",
        "ratio": "example"
      }
    ],
    "n": 4,
    "resolution": "2K",
    "thinking_mode": true,
    "aspect_ratio": "1:1",
    "watermark": false,
    "seed": 0,
    "nsfw_checker": true
  }
}
```

### Response example

```json
{
  "taskId": "281e5b0…f39b9",
  "creditsCharged": 2.78
}
```

## Query Task

`GET https://you.bot/api/v1/task/{taskId}?model=wan-2-7-image`

When `state` is `success`, the output is in `resultUrls`: `{ "state": "success", "resultUrls": [ ... ] }`. (Text models return inline in the create response.)

## Error Codes

| Code | Description |
|------|-------------|
| 200 | Request successful |
| 400 | Invalid request parameters |
| 401 | Authentication failed — check API Key |
| 402 | Insufficient account balance |
| 403 | IP not allowed for this key, or the key is restricted to other models |
| 404 | Task not found, or it has expired |
| 409 | Duplicate request — an identical submit arrived moments ago. Nothing was charged; retry is safe |
| 413 | Payload too large — see the character and file-size limits for this model |
| 429 | Rate limit exceeded — retry after the Retry-After header |
| 500 | Internal server error |
| 504 | Upstream timed out — nothing was delivered; retry is safe |
