OpenAI's latest flagship image model
It powers ChatGPT Images 2.0 and replaces both DALL-E 3 and the interim GPT Image 1.5, available in ChatGPT and via the API as gpt-image-2.
Generate and edit images with OpenAI's GPT Image 2 through one unified API. A single REST endpoint, async jobs, and webhooks, with no separate OpenAI account to wire up.
Integrate GPT Image 2 with a single API call — one key, one unified endpoint, and shared billing across every model on Apiframe.
model: "gpt-image-2"
It powers ChatGPT Images 2.0 and replaces both DALL-E 3 and the interim GPT Image 1.5, available in ChatGPT and via the API as gpt-image-2.
It is the first OpenAI image model with a "thinking" mode, so before generating it can plan the layout, search the web for references, and self-check its output.
It can produce a coherent set of images in a single shot, keeping characters and objects consistent across all of them, which suits storyboards and brand campaigns.
It handles dense and multilingual text cleanly across multiple scripts, making it dependable for posters, packaging, menus, and UI labels.
OpenAI describes it as a step change in following detailed prompts and in placing and relating objects accurately within a scene.
It supports up to 2K resolution via the API with a range of aspect ratios, plus multi-turn editing that preserves identity and context across changes.
A few outputs generated through the GPT Image 2 API on Apiframe.
A four-panel comic strip with readable dialogue about a cat who refuses to get off a keyboard.
A bilingual event poster with the headline in English and Japanese, clean layout, date and venue.
A character sheet of the same mascot in eight poses, waving, running, sitting, jumping and more, consistent design.
An infographic explaining the water cycle with labeled stages and small caption text.
A landing page mockup for a fitness app with a hero header, three feature cards, and a sign-up button.
Edit this portrait to add a winter coat and scarf, keeping the face and background unchanged.
Send a single POST /v2/images/generate request with your API key to
generate with GPT Image 2. The call returns a jobId you can poll or
receive via webhook.
curl -X POST https://api.apiframe.ai/v2/images/generate \
-H "X-API-Key: afk_your_api_key_here" \
-H "Content-Type: application/json" \
-d '{
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "gpt-image-2",
"gptImage2Params": {
"input_images": "https://example.com/input.jpg",
"quality": "auto",
"background": "auto",
"number_of_images": 1
}
}'import requests
response = requests.post(
"https://api.apiframe.ai/v2/images/generate",
headers={
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
json={
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "gpt-image-2",
"gptImage2Params": {
"input_images": "https://example.com/input.jpg",
"quality": "auto",
"background": "auto",
"number_of_images": 1
}
},
)
print(response.json()) # { "jobId": "...", "status": "QUEUED" }const response = await fetch("https://api.apiframe.ai/v2/images/generate", {
method: "POST",
headers: {
"X-API-Key": "afk_your_api_key_here",
"Content-Type": "application/json",
},
body: JSON.stringify({
"prompt": "a sleek silver sports car on a coastal highway at sunset, hyper-realistic",
"model": "gpt-image-2",
"gptImage2Params": {
"input_images": "https://example.com/input.jpg",
"quality": "auto",
"background": "auto",
"number_of_images": 1
}
}),
});
const { jobId } = await response.json();
console.log(jobId);Generation is asynchronous. A successful submission returns 202 Accepted with a jobId. Poll GET /v2/jobs/{id} (or supply a webhook_url) until the status is COMPLETED; the result field then holds the output URL(s).
{
"jobId": "b2c3d4e5-f6a7-8901-bcde-f23456789012",
"status": "QUEUED"
}curl https://api.apiframe.ai/v2/jobs/JOB_ID \
-H "X-API-Key: afk_your_api_key_here"import requests, time
while True:
job = requests.get(
"https://api.apiframe.ai/v2/jobs/JOB_ID",
headers={"X-API-Key": "afk_your_api_key_here"},
).json()
if job["status"] in ("COMPLETED", "FAILED"):
break
time.sleep(2)
print(job["result"])let job;
do {
await new Promise((r) => setTimeout(r, 2000));
job = await fetch("https://api.apiframe.ai/v2/jobs/JOB_ID", {
headers: { "X-API-Key": "afk_your_api_key_here" },
}).then((r) => r.json());
} while (job.status !== "COMPLETED" && job.status !== "FAILED");
console.log(job.result);Request parameters accepted by the GPT Image 2 endpoint. Model-specific options are nested under the params object shown below.
| Parameter | Type | Required | Default | Allowed / range | Description |
|---|---|---|---|---|---|
| prompt | string | required | — | — | Text description of what to generate. |
| model | string | required | "gpt-image-2" | "gpt-image-2" | The model identifier for this endpoint. |
| gptImage2Params.input_images | string (URL) | optional | — | — | Reference image (URL) |
| gptImage2Params.quality | string | optional | "auto" | "auto", "low", "medium", "high" | Quality |
| gptImage2Params.background | string | optional | "auto" | "auto", "opaque" | Background |
| gptImage2Params.number_of_images | number | optional | 1 | min 1, max 10, step 1 | Number of images |
| gptImage2Params.output_format | string | optional | "webp" | "webp", "png", "jpeg" | Output format |
| gptImage2Params.moderation | string | optional | "auto" | "auto", "low" | How strictly to filter content. Use "low" for less restrictive moderation. |
Common questions about the GPT Image 2 API.
OpenAI's newest image generation and editing model, released in April 2026 as the engine behind ChatGPT Images 2.0, replacing DALL-E 3 and GPT Image 1.5.
A reasoning step where the model plans the layout, can search the web for references, and reviews its own output before finishing, and it enables generating up to eight images from one prompt.
It is the newer model, adding built-in reasoning, stronger multilingual text, consistent multi-image sets, and higher overall quality.
Yes. Multilingual text rendering across several scripts is one of its standout strengths.
Standard mode is available to ChatGPT users at no extra cost, while the thinking features are reserved for paid tiers, and API access is paid on a token basis.
Through Apiframe, as well as ChatGPT and the OpenAI API.
Still have questions?
Get your API key and integrate GPT Image 2 in minutes — Pay-as-you-go.
Questions? Join our Discord or contact sales.