> ## Documentation Index
> Fetch the complete documentation index at: https://docs.goenhance.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Qwen-Image 3.0 Pro

> Qwen-Image 3.0 Pro text-to-image and image editing in a single endpoint. Pass `image_list` to edit reference images (1-3), or omit it for pure text-to-image. Always returns a single image.

**Pricing** — output tier plus a surcharge per reference image:

| What | Tokens | USD |
|---|---|---|
| Output, 1K | 2.43 | $0.049 |
| Output, 2K | 4.85 | $0.097 |
| Each reference image | 0.19 | $0.0039 |

Example: 2K with 3 reference images = 4.85 + 3 x 0.19 = 5.42 tokens.

`image_size` decides the price tier. Two cases are billed differently from what you send: `ratio: auto` is always billed at the 2K rate (the model picks the resolution, so it cannot be known up front), and `1:8` / `8:1` are always billed at the 1K rate (they cannot be produced above that tier).

For a cheaper flat rate use `/api/v1/qwen-image-3`, where both tiers cost 1.75 tokens.

Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use `custom_callback_url`) to get the generated image.



## OpenAPI

````yaml POST /api/v1/qwen-image-3-pro
openapi: 3.1.0
info:
  title: GoEnhance API
  description: ''
  version: 1.0.0
servers:
  - url: https://api.goenhance.ai
security:
  - bearerAuth: []
tags:
  - name: Basic
  - name: Video2Video
paths:
  /api/v1/qwen-image-3-pro:
    post:
      tags:
        - ImageAPI
      summary: Qwen-Image 3.0 Pro
      description: >-
        Qwen-Image 3.0 Pro text-to-image and image editing in a single endpoint.
        Pass `image_list` to edit reference images (1-3), or omit it for pure
        text-to-image. Always returns a single image.


        **Pricing** — output tier plus a surcharge per reference image:


        | What | Tokens | USD |

        |---|---|---|

        | Output, 1K | 2.43 | $0.049 |

        | Output, 2K | 4.85 | $0.097 |

        | Each reference image | 0.19 | $0.0039 |


        Example: 2K with 3 reference images = 4.85 + 3 x 0.19 = 5.42 tokens.


        `image_size` decides the price tier. Two cases are billed differently
        from what you send: `ratio: auto` is always billed at the 2K rate (the
        model picks the resolution, so it cannot be known up front), and `1:8` /
        `8:1` are always billed at the 1K rate (they cannot be produced above
        that tier).


        For a cheaper flat rate use `/api/v1/qwen-image-3`, where both tiers
        cost 1.75 tokens.


        Returns an `img_uuid`; poll GET /api/v1/jobs/detail (or use
        `custom_callback_url`) to get the generated image.
      parameters:
        - name: Authorization
          in: header
          description: ''
          required: false
          example: '{{Authorization}}'
          schema:
            type: string
      requestBody:
        content:
          application/json:
            schema:
              type: object
              properties:
                prompt:
                  type: string
                  minLength: 1
                  maxLength: 2000
                  description: Text prompt describing the image.
                ratio:
                  type: string
                  enum:
                    - auto
                    - '1:1'
                    - '16:9'
                    - '9:16'
                    - '4:3'
                    - '3:4'
                    - '2:3'
                    - '3:2'
                    - '1:2'
                    - '2:1'
                    - '1:4'
                    - '4:1'
                    - '1:8'
                    - '8:1'
                  description: >-
                    Aspect ratio. Defaults to auto, which lets the model pick
                    the resolution from the prompt. Note: 1:8 and 8:1 are only
                    produced at the 1K tier.
                  default: auto
                image_size:
                  type: string
                  enum:
                    - 1K
                    - 2K
                  default: 2K
                  description: >-
                    Output resolution tier, together with ratio it decides the
                    exact pixel size. See the pricing note above — it also
                    decides what you pay.
                image_list:
                  type: array
                  items:
                    type: object
                    properties:
                      url:
                        type: string
                        format: uri
                    required:
                      - url
                  description: >-
                    Optional reference images for image editing, [{"url":
                    "https://..."}]. Up to 3 images, each under 10MB. The array
                    order is the order the prompt refers to them in. Each one
                    adds 0.19 tokens.
                  minItems: 1
                  maxItems: 3
                negative_prompt:
                  type: string
                  maxLength: 2000
                  description: Optional. Describes what should not appear in the image.
                seed:
                  type: integer
                  minimum: 0
                  maximum: 2147483647
                  description: Optional. Fixing the seed makes results more reproducible.
                prompt_extend_mode:
                  type: string
                  enum:
                    - direct
                    - agent
                  default: direct
                  description: >-
                    Prompt rewriting mode. `agent` rewrites more thoroughly but
                    is text-to-image only — sending it together with image_list
                    is rejected.
                custom_callback_url:
                  type: string
                  format: uri
                  description: >-
                    Optional. A publicly accessible HTTPS URL. When the task
                    status changes (processing / success / failed), GoEnhance
                    sends a POST request to this URL. The request body is
                    identical to the response of GET /api/v1/jobs/detail. If
                    your server does not respond with HTTP 200, the notification
                    is retried up to 3 times, with a 3-second timeout per
                    attempt.
                  example: https://your-server.com/goenhance/callback
              required:
                - prompt
            example:
              prompt: >-
                Replace her outfit with a tailored charcoal blazer, keep the
                face unchanged
              ratio: '3:4'
              image_size: 2K
              image_list:
                - url: https://example.com/portrait.png
      responses:
        '200':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                  data:
                    type: object
                    properties:
                      img_uuid:
                        type: string
                    required:
                      - img_uuid
                required:
                  - code
                  - msg
                  - data
              examples:
                '1':
                  summary: Success
                  value:
                    code: 0
                    msg: Success
                    data:
                      img_uuid: c12b656c-747a-44fd-9c80-add79b0c52d5
                '2':
                  summary: Insufficient tokens
                  value:
                    code: 100
                    msg: tokens is not enough
          headers: {}
        '401':
          description: ''
          content:
            application/json:
              schema:
                type: object
                properties:
                  code:
                    type: integer
                  msg:
                    type: string
                required:
                  - code
                  - msg
          headers: {}
      deprecated: false
      security: []
components: {}

````