OpenAI removes GPT-4o and GPT-4.1 from the API on 14 January 2027: moving to GPT-6 Luna
OpenAI will shut down five GPT-4o and GPT-4.1 snapshots, and their fine-tunes, on 14 Jan 2027. What changes when you move to gpt-6-luna.
OpenAI has put a date on the end of GPT-4o and GPT-4.1 in its API. On 14 October 2026 it notified developers that five snapshots will be removed from the API on 14 January 2027, and it names one replacement for all of them: gpt-6-luna. That gives teams exactly three months, and the holiday season sits in the middle of it.
If you still have a support bot, a classifier or an extraction job pinned to one of these models, this is the migration to schedule now. Below: what is going away, what Luna changes in your code, and the one case where there is no direct replacement at all.
What is being removed
The deprecations page lists these snapshots, all with the same shutdown date and the same recommended replacement:
| Snapshot being removed | Shutdown | Recommended replacement |
|---|---|---|
gpt-4o-2024-08-06, gpt-4o-2024-11-20 |
14 Jan 2027 | gpt-6-luna |
gpt-4o-mini-2024-07-18 |
14 Jan 2027 | gpt-6-luna |
gpt-4.1-2025-04-14 |
14 Jan 2027 | gpt-6-luna |
gpt-4.1-mini-2025-04-14 |
14 Jan 2027 | gpt-6-luna |
Two details matter. First, OpenAI says fine-tuned versions of these models follow the same shutdown schedule as their base models. Second, the notice lists dated snapshots. If your code calls a bare alias such as gpt-4o, check which snapshot it resolves to in your usage logs rather than assuming you are unaffected. gpt-4.1-nano is not in this notice.
This is separate from ChatGPT. GPT-4o and GPT-4.1 already left ChatGPT earlier this year; at the time OpenAI’s help centre said those retirements did not affect the API and that API users would get advance notice. This is that notice.
It also isn’t the only open deadline. The same page lists gpt-5.1, gpt-5.3-codex and gpt-5.4-nano shutting down on 1 April 2027, and the tts-1 and tts-1-hd text-to-speech models on 6 January 2027. If you are touching model IDs anyway, do them in one pass.
What GPT-6 Luna is
OpenAI’s model page for gpt-6-luna describes it as its most efficient model for focused, high-volume tasks. The specs that matter for a migration:
| GPT-6 Luna | |
|---|---|
| Context window | 1,050,000 tokens |
| Max output | 128,000 tokens |
| Knowledge cutoff | 18 May 2026 |
| Input / output | Text and image in, text out |
| Price per 1M tokens (standard) | $0.10 input, $0.01 cached input, $0.50 output |
| Batch and Flex | 50% of standard |
| Prompts over 272K input tokens | 2x input, 1.5x output for the whole request |
| Regional processing | 10% premium where available |
Prices are from the model page and the API pricing page. OpenAI’s GPT-6 building guide positions Luna for repeated tasks with a clear goal, such as extracting invoice fields, classifying requests or writing structured summaries. That is roughly the workload many teams put on GPT-4o mini and GPT-4.1 mini.
To size the bill, take a job that sends 1 million requests a month with about 2,000 input tokens and 300 output tokens each. At Luna’s standard rates that is 2 billion input tokens ($200) plus 300 million output tokens ($150), so about $350 a month before caching, or about $175 through Batch. Compare that with your current invoice line, not with list prices you remember: your discounts, cache hit rate and regional processing all change the answer.
The code changes that bite
Luna is a reasoning model, and that is the biggest behavioural change for anyone coming from GPT-4o or GPT-4.1. According to the model page, it supports reasoning effort levels none, low, medium, high, xhigh and max, and the default is medium.
That default has three consequences you should plan for:
- Sampling parameters. OpenAI’s Using GPT-6 guide says that when reasoning effort is not
none, you must removetemperature,top_pandtop_logprobs, and on Chat Completions alsologprobs. Old code that setstemperature: 0for repeatable classification will need eitherreasoning_effort: "none"or a cleanup. - Tools on Chat Completions. The same guide says GPT-6 Sol and Luna support function calling on Chat Completions only with
reasoning_effort: "none"; for reasoning with tools, it says to use the Responses API. If your agent runs on Chat Completions with tools, either set effort tononeor plan a move to Responses. - Latency and cost. A model that thinks before answering takes longer and produces more tokens than one that doesn’t. For a like-for-like swap of a GPT-4o-mini classifier, start with
none, measure accuracy on your own test set, and raise effort only where it pays for itself.
Prompt caching also changed shape. The guide says that when moving from GPT-5.5 or earlier, you should replace prompt_cache_retention with prompt_cache_options.ttl. Keep your system prompt and tool definitions stable and at the front of the request so cache hits stay high; at $0.01 per million cached input tokens, that is where most of the savings are.
The good news: Luna is listed on Chat Completions, Responses, Batch and Assistants, and supports structured outputs and streaming. Most migrations are a model ID change plus the parameter cleanup above.
The hard case: fine-tuned models
This is the part to escalate. Fine-tuned GPT-4o and GPT-4.1 models stop working on 14 January along with their base models. Luna’s model page lists fine-tuning as not supported. And OpenAI’s supervised fine-tuning guide says the company is winding down its fine-tuning platform, which is no longer open to new users; it lists only the three GPT-4.1 snapshots as supported for supervised fine-tuning.
So there is no “retrain on the new base” path. If a fine-tune carries real business logic (a house tone, a domain-specific label set, a strict output format), the realistic options are:
- Move the knowledge into the prompt. With a 1M-token window and cheap cached input, a long, stable system prompt with many worked examples is often enough to match a small fine-tune on classification or formatting tasks. Use your fine-tune’s training set as the example pool.
- Use structured outputs to enforce the format the fine-tune used to learn.
- Look at other providers’ tuning options if the fine-tune is truly irreplaceable, but treat that as a bigger project than three months usually allows.
Whichever you pick, build the evaluation set first. Your fine-tune’s held-out data is the best test you have.
A three-month plan
- This week: search your codebase and logs for every model ID in the table, including fine-tune IDs (they start with
ft:). Note which use tools,temperatureorlogprobs. - By mid-November: run each workload on
gpt-6-lunawithreasoning_effort: "none"against a fixed test set. Record accuracy, latency and cost per successful task, which is the metric OpenAI’s own building guide recommends. - By mid-December: ship, with the old model as a fallback behind a flag. Don’t plan the cut-over for the last week of December, when many teams in India and elsewhere are short-staffed.
- 14 January 2027: remove the fallback before OpenAI removes it for you.
The model swap itself is small. The risk is a fine-tune nobody remembers owning, or a temperature: 0 call that starts failing on the day after the deadline. Find those now.
References
- Deprecations — OpenAI, accessed 2026-10-15
- GPT-6 Luna model page — OpenAI, accessed 2026-10-15
- API pricing — OpenAI, accessed 2026-10-15
- Using GPT-6 — OpenAI, accessed 2026-10-15
- Supervised fine-tuning — OpenAI, accessed 2026-10-15
- A practical guide to building with GPT-6 — OpenAI, accessed 2026-10-15
- Retiring GPT-4o and other ChatGPT models — OpenAI Help Center, accessed 2026-10-15
This week in AI, every Sunday
One email with the releases that mattered and what they mean in practice. No spam.