Get API Key Get API
Docs

GPT-Image-2 Image Generation

- Asynchronous processing mode, returns task ID for subsequent queries

  • OpenAI Images compatible protocol, supports text-to-image / image-to-image
  • 15 image aspect ratios supported via the size field
  • Output pixel tier controlled via resolution (1k / 2k / 4k)

  • Up to 15 reference images, URL and base64 can be mixed

  • Billed by resolution tier (1K / 2K / 4K)
Info

Model name compatibility note: This endpoint also accepts the alias gpt-image-2-ext, which is equivalent to gpt-image-2. The two are interchangeable and produce identical results.

Request example

# model can be "gpt-image-2", or the compatible alias "gpt-image-2-ext"
curl --request POST \
  --url https://api.openveer.com/v1/images/generations \
  --header 'Authorization: Bearer <token>' \
  --header 'Content-Type: application/json' \
  --data '{
    "model": "gpt-image-2",
    "prompt": "A ginger cat sitting on a windowsill watching the sunset, watercolor style",
    "n": 1,
    "size": "16:9",
    "resolution": "2k"
  }'

Response example

{
  "code": 200,
  "data": [
    {
      "status": "submitted",
      "task_id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA"
    }
  ]
}

Authorizations

Authorization string

All endpoints require Bearer Token authentication

Get your API Key:

Visit the API Key management page to get your API Key

Include it in the request header:

Authorization: Bearer YOUR_API_KEY

Body

model string

Image generation model name

Fixed to gpt-image-2 (compatible alias gpt-image-2-ext)

Note



For backward compatibility, the alias gpt-image-2-ext (for gpt-image-2) remains usable.

nsfw_check boolean

Whether to run content moderation before submitting the image task.

  • true: use omni-moderation-latest to review prompts and input images
  • false or omitted: do not send a moderation request, adding no moderation cost or latency (default)
prompt string

Text description for image generation

  • Supports English and Chinese, detailed descriptions recommended
  • Pre-submission content moderation / safety review — violations are rejected immediately
n integer

Number of images to generate

Value: 1

Warning



Must be a pure number (e.g., 1), do not wrap in quotes

size string

Image aspect ratio

Supported ratios, plus auto to let the server pick a suitable ratio automatically:

size Type
auto Automatic
1:1 Square
3:2 Landscape
2:3 Portrait
4:3 Landscape
3:4 Portrait
5:4 Landscape
4:5 Portrait
16:9 Landscape
9:16 Portrait
2:1 Landscape
1:2 Portrait
3:1 Landscape
1:3 Portrait
21:9 Landscape
9:21 Portrait

Pixel dimensions can also be passed directly, such as 1881x836 / 887x1774.

Warning



When size is set to auto, the default ratio is 1:1.

resolution string

Output resolution tier

Options: 1k / 2k / 4k

size × resolution → actual pixel mapping:

size 1k 2k 4k
1:1 1024×1024 / 1254×1254 2048×2048 2880×2880
3:2 1536×1024 2048×1360 3520×2336
2:3 1024×1536 1360×2048 2336×3520
4:3 1024×768 2048×1536 3312×2480
3:4 768×1024 1536×2048 2480×3312
5:4 1280×1024 / 1448×1086 2560×2048 3216×2576
4:5 1024×1280 / 1122×1402 2048×2560 2576×3216
16:9 1536×864 / 1672×941 2048×1152 3840×2160
9:16 864×1536 / 941×1672 1152×2048 2160×3840
2:1 2048×1024 / 1774×887 2688×1344 3840×1920
1:2 1024×2048 / 887×1774 1344×2688 1920×3840
3:1 1881×836 / 1536×512 3072×1024 3840×1280
1:3 887×1774 / 512×1536 1024×3072 1280×3840
21:9 2016×864 / 1915×821 2688×1152 3840×1648
9:21 864×2016 / 821×1915 1152×2688 1648×3840

Warning



4K supports the 15 ratios listed above; you can also pass the pixel dimensions from the table directly via size.

image_urls array

Reference image array (OpenAI standard field). Switches to image-to-image mode when provided.

* Up to 15 reference images, exceeding returns `image_urls exceeds max 15`
* Max 20 MB per image, 256 MB in total
* Supports `image URL` (public stable link)
* Supports `base64 data URI` (e.g. `data:image/png;base64,...`)
* URL and base64 can be mixed in the same array, handled by the server
* Without `size`, output resolution = input image resolution; with `size`, output is forced to the specified ratio
Note

Other OpenAI standard fields (response_format, style) are not supported and will be ignored. Task results only return url — please download and convert to base64 yourself if needed.

official_fallback boolean

Whether to fall back to the official channel

  • false: Do not use (default)
  • true: Use the official channel

Usage Examples

Text-to-image (minimal request)

{
  "model": "gpt-image-2",
  "prompt": "A ginger cat sitting on a windowsill watching the sunset, watercolor style"
}

Text-to-image (with ratio + 2K)

{
  "model": "gpt-image-2",
  "prompt": "a corgi astronaut on the moon, cinematic, 8k",
  "size": "16:9",
  "resolution": "2k"
}

Text-to-image (4K output)

{
  "model": "gpt-image-2",
  "prompt": "An ancient castle under a starry sky",
  "size": "16:9",
  "resolution": "4k"
}

Text-to-image (multiple images)

{
  "model": "gpt-image-2",
  "prompt": "An ancient castle under a starry sky",
  "size": "16:9",
  "resolution": "4k",
  "n": 2
}

Image-to-image (reference = URL)

{
  "model": "gpt-image-2",
  "prompt": "Turn this photo into a watercolor painting",
  "image_urls": [
    "https://example.com/photo.jpg"
  ]
}

Image-to-image (reference = base64)

{
  "model": "gpt-image-2",
  "prompt": "Turn this photo into a watercolor painting",
  "image_urls": [
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  ]
}

Image-to-image (multi-reference fusion, URL + base64 mixed)

{
  "model": "gpt-image-2",
  "prompt": "Fuse these two photos into a single poster",
  "size": "4:3",
  "resolution": "2k",
  "image_urls": [
    "https://example.com/photo-a.jpg",
    "data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAA..."
  ]
}

Response

code integer

Response status code

data array
Response data array
status string

Task status

  * submitted - Submitted
task_id string

Unique task identifier, used for subsequent result queries

Querying Task Results

After successful submission, a task_id is returned. Poll the task status via GET /v1/tasks/{task_id}, see Task Query API for details.

Success Response Example

{
  "code": 200,
  "data": {
    "id": "task_01KPQ7J7DWB7QZ3WCEK3YVPBRA",
    "status": "completed",
    "progress": 100,
    "created": 1776748674,
    "completed": 1776748726,
    "actual_time": 52,
    "cost": 0.05279,
    "credits_cost": 0.5279,
    "estimated_time": 100,
    "result": {
      "images": [
        {
          "url": [
            "https://upload.openveer.com/f/image/xxxxxxxx-gpt_image_2_task_xxx_0.png"
          ],
          "expires_at": 1776835126
        }
      ]
    }
  }
}

Image access: data.result.images[0].url[0]

Task Status

Status Meaning
submitted Submitted
processing Being processed upstream
completed Success, result.images available
failed Failed, check error.message

This documentation is built and hosted on Mintlify, a developer documentation platform.