On Wednesday 14 October OpenAI told developers that GPT-4o, GPT-4o mini, GPT-4.1 and GPT-4.1 mini leave the API on 14 January 2027, 92 days later. The same deprecations page promises generally available models "at least 6 months" of notice, and the entry gives no reason for the shorter window. Two weeks earlier, GPT-5.1 and GPT-5.3-Codex got six.
The recommended replacement for all four is gpt-6-luna, at $0.10 per million input tokens and $0.50 per million output, against $2.50 and $10 for GPT-4o. It is a reasoning model that defaults to medium effort. I swapped the model ID into a GPT-4o-style Chat Completions call on Friday: temperature: 0.2 returned a 400, one function tool returned a 400, and max_tokens returned a 400.
Fine-tuned versions of the four shut down the same day, OpenAI stops accepting new fine-tuning jobs on 6 January, and Luna cannot be fine-tuned. Predicted Outputs, which only ever worked on these model families, is left with no model. On Azure the same snapshots run until 14 April 2027.
What the notice says
The entry on OpenAI's deprecations page is dated 2026-10-14 and reads: "On October 14, 2026, we notified developers using certain GPT-4 series models of their deprecation and removal from the API on January 14, 2027." The table under it lists five snapshots: gpt-4o-2024-08-06 and gpt-4o-2024-11-20, gpt-4o-mini-2024-07-18, gpt-4.1-2025-04-14 and gpt-4.1-mini-2025-04-14. The recommended replacement in every row is gpt-6-luna. One sentence follows the table: "Fine-tuned versions of these models follow the same shutdown schedule as their underlying base models."
The table names snapshots, not aliases, but the aliases resolve to them. The gpt-4o model page lists 2024-08-06 as its default snapshot, and gpt-4o-mini and gpt-4.1 each have exactly one snapshot, the one in the table. The original gpt-4o-2024-05-13 and gpt-4.1-nano are missing from this notice because they were already in an April one. They shut down next Friday, 23 October, with gpt-5.6-sol and gpt-5.6-luna as their named substitutes. Six months on, the substitute for the rest of the family is a generation newer.
GPT-4o launched on 13 May 2024. GPT-4.1 launched on 14 April 2025 as an API-only family that never appeared in ChatGPT, so it gets 21 months. When OpenAI retired GPT-4o and GPT-4.1 from ChatGPT on 13 February this year, the announcement said "In the API, there are no changes at this time" and put daily GPT-4o use in ChatGPT at 0.1% of users. That post reached 300 points on Hacker News. The API retirement reached four.
Half the notice
Further down the same page, under "Model deprecation notice periods", OpenAI sets out its minimums. "Unless safety or compliance concerns require a faster timeline, we provide the following minimum notice periods before model retirement: Generally available models: At least 6 months. Specialized variants of generally available models: At least 3 months." The examples of specialized variants are chat snapshots like gpt-5.1-chat-latest, Codex variants like gpt-5.3-codex, and deep research variants. The safety clause ends with "we will provide as much notice as reasonably possible."
GPT-4o and GPT-4.1 are generally available models, not variants of anything, and the notice runs 92 days. The entry does not say which category applies and does not invoke the safety clause. The entry two weeks earlier does the opposite. On 1 October, gpt-5.1, gpt-5.3-codex and gpt-5.4-nano were scheduled for 1 April 2027 "with six months' notice", and that list includes a Codex variant that was only owed three. The New Stack put the gap in its headline on Thursday and found no reason on OpenAI's side. Neither did I.
If three months is too short, the page points at one door: "In some cases, developers may be able to provision dedicated capacity for continued access after a model's shutdown date", through sales. Microsoft is the other door. Foundry's retirement schedule, dated 21 September, has the same five snapshots retiring on 14 April 2027, and fine-tuned deployments of them running until 1 October 2027 for GPT-4o and 14 October 2027 for GPT-4.1.
The replacement reasons by default
Luna is the small model in the GPT-6 line, the one OpenAI put under the Decisions API earlier this month. Its page calls it "our most efficient model for focused, high-volume tasks": $0.10 per million input tokens, $0.01 cached, $0.50 output, a 1,050,000-token window, 128,000 max output tokens and a May 2026 knowledge cutoff. Against GPT-4o at $2.50 and $10 and GPT-4.1 at $2 and $8, that is a cut of 20x or more on input. Against GPT-4o mini at $0.15 and $0.60 it is a third off input and a sixth off output. Two lines of fine print: prompts over 272K input tokens are billed at 2x input and 1.5x output "for the full request", which GPT-4.1's flat 1M window never charged, and the fine-tuning endpoint is listed as not supported.
The help-centre article OpenAI prepared for the migration says where it expects people to land: "Start with reasoning effort set to none. Most GPT-4.x use cases are expected to migrate with this setting." That is the sentence to read before anything else, because Luna's default is medium, and the GPT-6 migration guide lists what medium takes with it. "GPT-6 Sol and GPT-6 Luna support function calling in Chat Completions only with reasoning_effort: 'none'." And: "When reasoning effort is not none, remove temperature, top_p, and top_logprobs. For Chat Completions, also remove logprobs."
What a swapped model ID does
I took a GPT-4o mini-shaped Chat Completions request, a one-word sentiment classification of a 43-token prompt, changed the model to gpt-6-luna and sent it on Friday. With temperature: 0.2 it returned a 400: "'temperature' does not support 0.2 with this model. Only the default (1) value is supported." With one function tool and nothing else it returned a 400: "Function tools with reasoning_effort are not supported for gpt-6-luna in /v1/chat/completions. To use function tools, use /v1/responses or set reasoning_effort to 'none'." With max_tokens: 50, which is what GPT-4o code sets, it returned a 400: "Use 'max_completion_tokens' instead." Set reasoning_effort to none and the same request with temperature, a tool and logprobs went through.
The effort list is also not quite what the model page says. The page lists none, low, medium, high, xhigh and max. On Chat Completions, max returned a 400 with "Supported values are: 'none', 'low', 'medium', 'high', and 'xhigh'", and minimal, the GPT-5 value, is gone on both endpoints. On Responses, max was accepted and spent 13 reasoning tokens on the word "negative".
The default spends too. GPT-4o mini answered with 1 completion token. Luna at medium answered with 15 to 18, of which 5 to 8 were reasoning, and at none with 4. At list prices that is $7.20 per million of these calls on GPT-4o mini, $11.80 to $13.30 on Luna at its default, and $6.30 on Luna at none. The cheaper model is dearer per call until you set the one parameter the help article tells you to set. That is the shortest prompt there is. On anything input-heavy Luna wins at any effort, and GPT-4.1 on the same call is $96 per million.
The parts with no replacement
The fine-tuning line in the notice lands on a platform that is already closing. The pricing page says "OpenAI is winding down the fine-tuning platform", and the deprecations page has the schedule: organizations that had never fine-tuned were cut off on 7 May, organizations with no fine-tuned inference in the past 60 days on 2 July, and on 6 January 2027 "Active existing customers will no longer be able to create new fine-tuning jobs". Inference on a fine-tuned model lasts until its base model is deprecated, eight days after that for GPT-4o and GPT-4.1. The models you can still train today are GPT-4.1, 4.1 mini, 4.1 nano, GPT-4o for vision and o4-mini, and every one of them has a shutdown date before 15 January. No GPT-6 model can be fine-tuned. A fine-tuned GPT-4o mini classifier has one migration path, and it is a prompt.
Predicted Outputs is the quieter casualty. Its guide says the feature is "only supported with the GPT-4o, GPT-4o-mini, GPT-4.1, GPT-4.1-mini, and GPT-4.1-nano series of models." Nano goes on 23 October and the rest on 14 January, and Luna's page does not list it.
For the CI side, the deprecations page says the List models endpoint now returns a shutdown_date per model as a YYYY-MM-DD string, or null, so a build can fail the day a date appears. My key could not read it. It returned a 403 and "Missing scopes: api.model.read", so give the check a key that has that scope.
What to do
Grep for gpt-4o and gpt-4.1 in code, config, environment variables, feature flags and database rows, and count the aliases as hits. Set reasoning_effort to none explicitly, replace max_tokens with max_completion_tokens, and keep temperature, logprobs and Chat Completions tool calls only under none; anything that needs reasoning and tools moves to Responses. If you have a fine-tuned model, run your eval set on Luna before 6 January, because that is the last day you can train an alternative on anything, and plan for the fine-tuned model to answer nothing after the 14th. If you are on Foundry, you have until 14 April, and your fine-tuned deployments until October. And read the notice-period section of the deprecations page once, so the next three-month notice on a six-month model is no surprise.