Skip to main content
Skip to main content

GPT Image 2

GPT-image-2 is OpenAI's image generation and editing model, released April 2026. It is OpenAI's first image model with "thinking" capability, the #1 model on the LMArena text-to-image leaderboard at launch, and the model that turned magazine-quality layout into a prompt.

  • 99.9% SLA
  • Official Discounts
  • Pay-as-you-go
  • Fast & Low Latency
Brand:OpenAIInput token: $5.00/MImage input token: $8.00/MImage output token: $30.00/M

API DOCS / SIMPLIFIED

Integrate this model with one task-based API flow

GPT-image-2 is OpenAI's image generation and editing model, released April 2026. It is OpenAI's first image model with "thinking" capability, the #1 model on the LMArena text-to-image leaderboard at launch, and the model that turned magazine-quality layout into a prompt. The examples below are rendered from GPT Image 2, the current gateway base URL, and the selected public model contract.

Input mode
X-API-Key on every request
POST /api/v1/openapi/task
GET /api/v1/openapi/task/status/{task_id}
Async task workflow

Single code window

Switch language once. Each example already includes both the task creation request and the task status polling request.

Unified Example
API_KEY="<API_KEY>"
BASE_URL="https://api.musespark.ai"
REQUEST_BODY='{
  "model_id": "gpt-image-2",
  "parameters": {
    "prompt": "A cinematic portrait with soft lighting",
    "resolution": "1k",
    "aspect_ratio": "4:3",
    "batch_size": 1,
    "quality": "medium",
    "background": "auto"
  }
}'

CREATE_RESPONSE=$(curl --request POST "$BASE_URL/api/v1/openapi/task" \
  --header "X-API-Key: $API_KEY" \
  --header "Content-Type: application/json" \
  --data-raw "$REQUEST_BODY")

TASK_ID="<TASK_ID_FROM_CREATE_RESPONSE>"

curl "$BASE_URL/api/v1/openapi/task/status/$TASK_ID" \
  --header "X-API-Key: $API_KEY"

Request and response JSON become the documentation

Keep the payload and task status envelope as the primary contract. Field descriptions, optionality, and enum hints now live inline as JSON comments.

Request Body

Caller payload

This is the request envelope accepted by the public gateway for the selected model contract.

Field comments and caller parameters come directly from the current item's model schema.
{
"model_id": "gpt-image-2",// target model
"parameters": {
"prompt": "A cinematic portrait with soft lighting",// required · min 1 · min length 1
"resolution": "1k",// enum: 1k | 2k | 4k
"aspect_ratio": "4:3",// choose one of the listed aspect ratios or auto. The selected resolution determines the output pixel size · enum: auto | 1:1 | 3:2 | 2:3 | 4:3 | 3:4 | 5:4 | 4:5 | 16:9 | 9:16 | 2:1 | 1:2 | 3:1 | 1:3 | 21:9 | 9:21
"batch_size": 1,// standard quantity control field. The allowed range for this item is 1-15 · min 1 · max 15
"quality": "medium",// choose output quality. Medium is selected by default. Actual text and image Tokens determine the final charge; Auto has no fixed estimate · enum: Auto | Low | Medium | High
"background": "auto"// choose an automatic, opaque, or transparent background · enum: auto | opaque | transparent
}
}
Response Body

Gateway response

This is the task status response you will query with task_id until the task reaches a terminal state.

Poll every 2-5 seconds and stop once status becomes completed, failed, cancelled.
{
"code": 200,// 200 on success
"msg": "success",
"data": {
"task_id": "task_01HQX8N2QJ0YQ8Q0T7G6N4V6K2",// use for status polling
"status": "completed",// enum: queued | running | completed | failed | cancelled
"progress": 100,// 0-100 if available
"completed_at": 1760000000,// unix timestamp
"expires_at": 1760001800,// unix timestamp
"result": {
"output_urls": [// generated files
"https://cdn.example.com/output.png"
]
}
}
}