The map of OpenAI's image-generation lineage — what GPT-4o image, GPT-Image-1, and GPT Image 2 actually are, which one to call today, and how to migrate old calls to the current model.

If you have searched for the "GPT-4o image generation API," the "gpt-image-1 API," the "GPT Image 1.5 API," or the "ChatGPT image generation API," you have been searching for the same product at four different moments in its life. OpenAI's image generation is not a menu of parallel models you choose between — it is one line that keeps replacing its own front model. This guide untangles the lineage, tells you which one to build against today, and shows how to migrate old calls to the current model.
Here is the honest timeline. Treat it as a single product evolving, not a catalog.
gpt-image-1. This is when "the GPT image API" became a real, callable thing with its own id — the model most "gpt-image-1 api documentation" searches are looking for.(Lineage and dates: Wikipedia "GPT Image", and OpenAI's own "ChatGPT Images 2.0" announcement, both as of June 2026.)
The pattern is the important part. Each model replaced the one before it as OpenAI's standard image model. So at any given time there is essentially one current id worth building against; the older ids are legacy generations kept for backward compatibility, not because they are better at anything.
Short answer: the current generation, GPT Image 2 (gpt-image-2/text-to-image).
There is no real scenario in mid-2026 where you would start a new integration on gpt-image-1 or gpt-image-1.5. They are earlier checkpoints of the same line — GPT Image 2 is better at the things you actually care about (following the prompt, putting correct text on the image, keeping a subject consistent across multiple outputs) and is the model that continues to get attention. New build, new code: go straight to gpt-image-2/text-to-image.
The only reason to care about the older names at all is migration — you have existing code that names gpt-image-1 or the old GPT-4o image path, and you need to move it forward.
One honesty note, because it changes the migration target: on HiAPI, the model available from this family is GPT Image 2 — the base model plus its Pro and image-to-image variants. HiAPI does not host gpt-image-1 or gpt-image-1.5 as callable models. That is not a limitation to work around; those are superseded generations, so the right move is to migrate to GPT Image 2, not to keep an old id alive. The one case this platform does not fit is if you specifically need previous-generation behavior — everywhere else, GPT Image 2 is the upgrade you wanted anyway.
On HiAPI, migrating an older GPT image integration means moving the request to the unified async task API and updating the model id. The current flow is to submit a task, poll or receive a callback, and then download the result.
Use the unified task API. HiAPI runs every image model through one async pattern: submit a job, poll until it is done, then download the result. Wherever your old code passed gpt-image-1 or invoked the GPT-4o image capability, submit a task with model gpt-image-2/text-to-image:
# 1) Submit a task — returns data.taskId
curl -s https://api.hiapi.ai/v1/tasks \
-H "Authorization: Bearer sk-<your key>" \
-H "Content-Type: application/json" \
-d '{"model":"gpt-image-2/text-to-image","input":{"prompt":"a storefront sign that reads OPEN LATE, warm neon, dusk"}}'
# 2) Poll the task — data.status goes queued -> handling -> archiving -> success
curl -s https://api.hiapi.ai/v1/tasks/<taskId> \
-H "Authorization: Bearer sk-<your key>"
# 3) On success, read data.output[0].url and download it now — the URL expires
One detail worth getting right: the model id for text-to-image requests is gpt-image-2/text-to-image. The same task request shape serves every model in the catalog, while the fields inside input vary by model.
Get an API key from the dashboard first (signup needs no card and currently includes $1 of free credit, around 50 images, to test real generations — see pricing). A 401 means the key is missing or invalid; a 403 means the key does not have permission. Full reference is in the docs. Your prompts can carry over to GPT Image 2, but the request must use the async task format shown above.
This page is the hub. Once you know you are building on GPT Image 2, jump to the deep-dive that matches your actual question — each one goes far deeper than this map.
Start anywhere; they all link back here.
Is "GPT-4o image generation" the same as the GPT Image API?
Effectively yes, at a point in time. GPT-4o image generation (March 2025) was OpenAI's first native image generator, living inside GPT-4o. It was exposed to developers as the gpt-image-1 API a month later, then evolved into GPT-Image-1.5 and now GPT Image 2. They are stages of one product, not separate APIs.
What is the difference between gpt-image-1, gpt-image-1.5, and gpt-image-2?
They are successive generations of the same line, each replacing the last as the default. gpt-image-1 (April 2025) was the first standalone API model; gpt-image-1.5 (December 2025) added faster, more precise edits; gpt-image-2 (April 2026) added native reasoning and markedly better instruction-following and on-image text. For new work, use gpt-image-2/text-to-image.
Can I still call gpt-image-1 or gpt-image-1.5? On HiAPI, no — the family available is GPT Image 2 (plus its Pro and image-to-image variants). Those earlier ids are superseded generations, and the intended path is to migrate to GPT Image 2 rather than keep a legacy id running.
Do I need to rewrite my prompts when migrating to GPT Image 2? No. Prompts from earlier GPT image models carry over and usually come out better, since GPT Image 2 follows instructions more closely. Your prompt can carry over, but the API call must use the unified async task format and the current model id.
What is the correct model id, and why am I getting a 400?
The text-to-image model id is gpt-image-2/text-to-image. If you hit a 400, check that the id is spelled exactly and that your prompt sits inside input.
gpt-image-2/text-to-image.gpt-image-1 or the old GPT-4o image path, the migration target is GPT Image 2 — and on HiAPI that is the only model from this family you can call, so migrating to it is the path, not a workaround.POST /v1/tasks, then poll GET /v1/tasks/:id or configure a callback. Your prompts can carry over, but the request shape must change.Key Takeaways