SEEAPISEEAPI
Developer CenterDocs
Get API Key
  • Getting Started
  • Authentication
  • List Model Prices
  • Create a Generation
  • Get Task Details
Image Models
Alibaba
Black Forest Labs
ByteDance
Google
Grok
OpenAI
SeeAPI
Video Models
Alibaba
ByteDance
Google
Grok
Kling
Lightricks
MiniMax
PixVerse
Runway
SeeAPI
Text Models
www.seeapi.com

One AI API for every leading model. Create images, videos, music, and multimodal AI assets online, or build with one unified API.

Support
  • Pricing
  • [email protected]
Legal
  • Privacy Policy
  • Refund Policy
  • Terms & Conditions

Copyright 2026 © SeeAPI. All rights reserved.

GROWCRAFT PTE. LTD.

·5 RAFFLES PLACE, #06-00, RAFFLES PLACE MRT STATION, SINGAPORE 048618

alibaba/stable

Qwen Image 2.1 · Image to Image

Edit an image or combine ordered reference images with Qwen Image 2.1. Use an optional mask for local edits, then retrieve the output when the asynchronous generation completes.

Developer API pricing

Provider: SeeAPI

USD estimate: $0.0037 / credit · Estimated equivalent, not an additional charge.

1K: 5 credits/gen (≈ $0.019/gen)

2K: 10 credits/gen (≈ $0.037/gen)

Query Task Status

After submitting a task, use the unified query endpoint to check progress and retrieve results:

Get Task DetailsLearn how to query task status and retrieve generation results

Save the generation ID from the submission response. Query task status until completion and read the output image from the successful task result. The initial response is not the finished image.

Related Resources

Market Overview

Explore all available models

Credits & Billing

View credit balance, plans, and billing activity

Usage

Review API usage and credit consumption

Callbacks

Manage the secret used to verify generation webhook signatures. Callback URLs are supplied when you create each generation.

Webhook flow

Callback URL per generation.

Webhook signing key

Request

POST/v1/generations
AuthorizationSend your API key in the Authorization header using the Bearer scheme.Authorization: Bearer ****************

Header Params

stringrequired

A new, stable key for each generation request. Reuse it only when retrying the same request body.

max length: 255
Example:
order-20260818-001

Body Params

application/json
stringrequired

The model ID shown in the selected model's API documentation.

Allowed:qwen-image-2-1
Default:
qwen-image-2-1
Example:
qwen-image-2-1
stringrequired

Image to Image. Use the Endpoint ID shown in this model's API documentation.

Allowed:image-to-image
Default:
image-to-image
Example:
image-to-image
stringoptional

Optional public Provider ID. Omit it to use the Endpoint default Provider (seeapi).

Allowed:seeapi
Default:
seeapi
Example:
seeapi
objectrequired

Place the editing instructions and reference image URLs inside this object.

Provider parameters

SeeAPIseeapiDefault Provider
stringrequired

Describe what should change and what should remain. For multiple references, refer to the first image, second image and so on, matching the order of input_images.

min length: 1max length: 5000
Example:
Change the ceramic mug to deep blue in the white area of the mask. Preserve the handle, lighting and everything outside the edited region.
array <uri>required

An ordered array of publicly reachable image URLs. Supply 1–10 JPEG, PNG or WebP images, up to 30 MB and 25 megapixels each. Use at most four references when fidelity is the priority.

  • Provide 1–10 reference images
min items: 1max items: 10
Example:
["https://client.example.com/mug.png"]
stringoptional

Optional publicly reachable HTTP(S) URL of a mask for local editing. White areas are edited and black areas are preserved. Supply exactly one input image and use an opaque background.

  • Use a mask with the same aspect ratio as the reference image; a different size is scaled.
  • Mask editing ignores aspect_ratio and enhance_prompt.
Example:
https://client.example.com/mug-mask.png
stringoptional

Choose the output proportions, or use auto. In mask mode, the output follows the reference image aspect ratio and this parameter is ignored.

  • When mask_url is provided, this setting is ignored and the output follows the reference image's aspect ratio.
Allowed:auto1:14:33:43:22:316:99:1621:99:21
Default:
auto
stringoptional

Choose the output resolution tier. This setting affects the credits required for the generation.

  • Resolution must be 1K or 2K
Allowed:1K2K
Default:
1K
stringoptional

Choose an opaque or transparent background. Transparent output requires PNG or WebP and cannot be combined with a mask.

  • A mask cannot be combined with a transparent background
Allowed:opaquetransparent
Default:
opaque
stringoptional

Choose the output file format. JPEG is only available with an opaque background.

  • Transparent backgrounds require PNG or WebP
Allowed:pngwebpjpeg
Default:
png
booleanoptional

Enable automatic prompt rewriting for general editing. This setting is ignored when mask_url is supplied.

Default:
true
numberoptional

Optional integer seed. Omit it for a random seed; comparisons should use the same model version and generation settings.

booleanoptional

Enable the optional content safety check. API requests default to false.

Default:
false
string <uri>optional

An absolute HTTPS URL that receives the terminal generation Webhook.

max length: 2048
Example:
https://client.example.com/webhooks/seeapi

Responses

202Generation accepted for asynchronous processing. Save generation.id to query progress and retrieve the finished image.
Bodyapplication/json
objectrequired
stringrequired

Unique generation identifier. Use it to query task status and match completion events.

Example:
task_xxx
stringrequired
Example:
qwen-image-2-1
stringrequired
Example:
image-to-image
stringrequired
Allowed:seeapi
  • seeapi: SeeAPI
Example:
seeapi
stringrequired

Current task status. The submission response reports processing; query the task for its final result.

Allowed:processing
Example:
processing
numberrequired

Estimated public credits. Values can include up to three decimal places.

Example:
5
numberrequired

Consumed public credits, with up to three decimal places.

Example:
0
numberrequired

Refunded public credits, with up to three decimal places.

Example:
0
string <date-time>required

Time the generation was created.

Example:
2026-08-18T10:00:00Z
string <date-time>required

Time the generation record was last updated.

Example:
2026-08-18T10:00:00Z
booleanrequired

Whether this response is an idempotent replay of an earlier request.

Example:
false
200Idempotent replay of an existing generation request
Bodyapplication/json
objectrequired
stringrequired

Unique generation identifier. Use it to query task status and match completion events.

Example:
task_xxx
stringrequired
Example:
qwen-image-2-1
stringrequired
Example:
image-to-image
stringrequired
Allowed:seeapi
  • seeapi: SeeAPI
Example:
seeapi
stringrequired

Current task status. The submission response reports processing; query the task for its final result.

Allowed:processing
Example:
processing
numberrequired

Estimated public credits. Values can include up to three decimal places.

Example:
5
numberrequired

Consumed public credits, with up to three decimal places.

Example:
0
numberrequired

Refunded public credits, with up to three decimal places.

Example:
0
string <date-time>required

Time the generation was created.

Example:
2026-08-18T10:00:00Z
string <date-time>required

Time the generation record was last updated.

Example:
2026-08-18T10:00:00Z
booleanrequired

Whether this response is an idempotent replay of an earlier request.

Example:
false
400

Invalid JSON or input parameters. Check the parameter values and cross-field requirements before retrying.

401

Invalid API Key or authentication failed

402

Insufficient credits

403

The current request is not allowed

404

Model, Endpoint, or task not found

409

Idempotency conflict or the same request is still being created

413

Request body is too large

429

Too many requests

503

Service temporarily unavailable

Code Examples
Request
const response = await fetch("https://api.seeapi.com/v1/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Idempotency-Key": "order-20260818-001",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "model": "qwen-image-2-1",
  "endpoint": "image-to-image",
  "provider": "seeapi",
  "input": {
    "prompt": "Change the ceramic mug to deep blue in the white area of the mask. Preserve the handle, lighting and everything outside the edited region.",
    "input_images": [
      "https://client.example.com/mug.png"
    ],
    "mask_url": "https://client.example.com/mug-mask.png",
    "aspect_ratio": "auto",
    "resolution": "1K",
    "background": "opaque",
    "output_format": "png",
    "enhance_prompt": true,
    "nsfw_checker": false
  },
  "callback_url": "https://client.example.com/webhooks/seeapi"
})
});

const result = await response.json();
ResponseHTTP 202
{
  "generation": {
    "id": "task_xxx",
    "model": "qwen-image-2-1",
    "endpoint": "image-to-image",
    "provider": "seeapi",
    "status": "processing",
    "estimated_credits": 5,
    "consumed_credits": 0,
    "refunded_credits": 0,
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T10:00:00Z"
  },
  "idempotent": false
}
PreviousQwen Image 2.1 · Text to ImageNextWan 2.7 Image · Text to Image
Request
const response = await fetch("https://api.seeapi.com/v1/generations", {
  method: "POST",
  headers: {
    "Authorization": "Bearer YOUR_API_KEY",
    "Idempotency-Key": "order-20260818-001",
    "Content-Type": "application/json"
  },
  body: JSON.stringify({
  "model": "qwen-image-2-1",
  "endpoint": "image-to-image",
  "provider": "seeapi",
  "input": {
    "prompt": "Change the ceramic mug to deep blue in the white area of the mask. Preserve the handle, lighting and everything outside the edited region.",
    "input_images": [
      "https://client.example.com/mug.png"
    ],
    "mask_url": "https://client.example.com/mug-mask.png",
    "aspect_ratio": "auto",
    "resolution": "1K",
    "background": "opaque",
    "output_format": "png",
    "enhance_prompt": true,
    "nsfw_checker": false
  },
  "callback_url": "https://client.example.com/webhooks/seeapi"
})
});

const result = await response.json();
ResponseHTTP 202
{
  "generation": {
    "id": "task_xxx",
    "model": "qwen-image-2-1",
    "endpoint": "image-to-image",
    "provider": "seeapi",
    "status": "processing",
    "estimated_credits": 5,
    "consumed_credits": 0,
    "refunded_credits": 0,
    "created_at": "2026-08-18T10:00:00Z",
    "updated_at": "2026-08-18T10:00:00Z"
  },
  "idempotent": false
}