Image modelsAdvanced usersUpdated
POST/v1/images/generations

API console

POST/v1/images/generations
View keys

Requests use the API key you enter and follow standard API billing.

GPT Image 2

Request ID gpt-image-2

Protocols

Authentication

Requests require an API key from API key management. For JSON requests, set Content-Type: application/json.

  • Authorization: Bearer YOUR_API_KEY

Request parameters

POST /v1/images/generations

FieldTypeRequiredDescription
modelstringRequiredUse this model ID gpt-image-2.
promptstringRequiredDescribe the image to generate.
sizestringOptionalUse pixel dimensions such as 1536x1024. The request also accepts auto and aspect strings such as 16:9. Handling of aspect strings can vary by endpoint. Default 1024x1024.
image_sizestringOptionalOutput resolution tier. Accepted values 1K, 2K, 4K. When omitted, the value is derived from size. Default 1K.
qualitystringOptionalGeneration quality setting. Accepted values auto, low, medium, high.
nintegerOptionalNumber of images per request. Use 1 for a single result. Default 1.
image_urlsstring[]OptionalReference images as a JSON array. Each item is a public HTTPS image URL or a Base64 image data URL. Also accepts image_input. Maximum reference images 4.
?asyncstringOptionalURL query parameter. Set 1, true, or yes to receive 202 and a task_id. Omit it to wait for the result.

POST /v1/images/edits

FieldTypeRequiredDescription
modelstringRequiredUse this model ID gpt-image-2.
promptstringRequiredDescribe the changes to make to the reference image.
sizestringOptionalUse pixel dimensions such as 1536x1024. The request also accepts auto and aspect strings such as 16:9. Handling of aspect strings can vary by endpoint. Default 1024x1024.
image_sizestringOptionalOutput resolution tier. Accepted values 1K, 2K, 4K. When omitted, the value is derived from size. For edits, set this in the JSON request body. Default 1K.
qualitystringOptionalGeneration quality setting. Accepted values auto, low, medium, high.
nintegerOptionalNumber of images per request. Use 1 for a single result. Default 1.
image_urlsstring[]ConditionalReference images as a JSON array. Each item is a public HTTPS image URL or a Base64 image data URL. Also accepts image_input. Maximum reference images 4. Provide at least one reference when sending JSON edits.
image[]file[]ConditionalWith multipart/form-data edits, upload at least one image and repeat the field for more. A single file can also use image. Maximum reference images 4.
?asyncstringOptionalURL query parameter. Set 1, true, or yes to receive 202 and a task_id. Omit it to wait for the result.

Request examples

Set your API key in the local ICODEEASY_API_KEY environment variable and choose an endpoint that accepts direct HTTP calls. For endpoints that require a specific client, follow that client’s setup guide.

Replace example media URLs and asset IDs with your own valid assets.

Images Generations

bash
curl -sS 'https://api.icodeeasy.cc/v1/images/generations' \
  -H "Authorization: Bearer $ICODEEASY_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2",
  "prompt": "A watercolor illustration of a paper lantern by a lake.",
  "size": "1536x1024",
  "image_size": "1K"
}'

Images Edits

bash
curl -sS 'https://api.icodeeasy.cc/v1/images/edits' \
  -H "Authorization: Bearer $ICODEEASY_API_KEY" \
  -H 'Content-Type: application/json' \
  --data '{
  "model": "gpt-image-2",
  "prompt": "Change the background to a pale blue wall. Preserve the subject.",
  "image_urls": [
    "https://example.com/reference.png"
  ],
  "size": "1536x1024",
  "image_size": "1K"
}'

Images Edits · Upload and edit an image

bash
curl -sS 'https://api.icodeeasy.cc/v1/images/edits' \
  -H "Authorization: Bearer $ICODEEASY_API_KEY" \
  -F 'model=gpt-image-2' \
  -F 'prompt=Change the background to a pale blue wall. Preserve the subject.' \
  -F 'size=1536x1024' \
  -F 'image[]=@/path/to/photo.png'

Check image task

bash
curl -sS 'https://api.icodeeasy.cc/v1/images/tasks/YOUR_TASK_ID' \
  -H "Authorization: Bearer $ICODEEASY_API_KEY"

Responses and tasks

HTTP 200 · Synchronous success

With ?sync=1, read the generated image URLs from data[].url. created is a Unix timestamp in seconds, and id is the task ID.

json
{
  "id": "d142c93a-de26-40c9-be62-0de840d10960",
  "created": 1781599773,
  "data": [
    {
      "url": "https://example.com/generated-image.png"
    }
  ]
}

HTTP 202 · Asynchronous submission

json
{
  "task_id": "d142c93a-de26-40c9-be62-0de840d10960",
  "status": "pending"
}

With ?async=1, use the same API key to poll GET /v1/images/tasks/{task_id}. status is pending, completed, or failed. On completion, read the image URL from result_url.

HTTP 200 · Completed task lookup

json
{
  "task_id": "d142c93a-de26-40c9-be62-0de840d10960",
  "status": "completed",
  "model": "gpt-image-2",
  "result_url": "https://example.com/generated-image.png"
}

Common errors

When the lookup returns failed, read error. If error_detail is present, check retryable before submitting again.

Response examples and errors

Full integration guide · See the full API guide for request fields, task states, and response formats.

Capabilities and limits

  • text_to_image · Supported
  • image_to_image · Supported
  • image_editing · Supported
  • reference_images · Conditional — Requires valid reference images in a supported request format
  • Limits Reference images: up to 4 · Resolutions: 1k, 2k, 4k

Model Capability Catalog · View pricing