
What the Deprecations page says
The entry "2026-06-11: GPT-5 and o3 model deprecations" on OpenAI's Deprecations page says that on June 11, 2026, OpenAI notified developers using these snapshots of "their deprecation and removal from the API on December 11, 2026." The table has six rows, and each row names both the alias and the dated snapshot:
| Shutdown date | Model (alias | snapshot) | Recommended replacement |
|---|---|---|
| Dec 11, 2026 | gpt-5 | gpt-5-2025-08-07 | gpt-5.6-sol |
| Dec 11, 2026 | gpt-5-mini | gpt-5-mini-2025-08-07 | gpt-5.6-terra |
| Dec 11, 2026 | gpt-5-nano | gpt-5-nano-2025-08-07 | gpt-5.6-luna |
| Dec 11, 2026 | gpt-5-pro | gpt-5-pro-2025-10-06 | gpt-5.6-sol (reasoning.mode: pro) |
| Dec 11, 2026 | o3 | o3-2025-04-16 | gpt-5.6-sol |
| Dec 11, 2026 | o3-pro | o3-pro-2025-06-10 | gpt-5.6-sol (reasoning.mode: pro) |
Pinning a snapshot does not buy time: the dated IDs retire on the same day as the aliases. The same page defines a shutdown as the point where "the model or endpoint will no longer be accessible," and adds that in some cases developers may be able to provision dedicated capacity for continued access, through OpenAI's sales team.
Find every call to the six models
Start with the API itself. The Deprecations page points to the List models endpoint and its optional shutdown_date field, a YYYY-MM-DD string, or null when no shutdown has been announced. The Retrieve model endpoint returns the same field for one ID:
curl https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY" \
| jq -r '.data[] | select(.shutdown_date != null) | "\(.shutdown_date) \(.id)"'
curl https://api.openai.com/v1/models/o3-2025-04-16 \
-H "Authorization: Bearer $OPENAI_API_KEY"
That tells you which models have a date, not which ones your code calls. For that, search the code. A naive search for gpt-5 also hits gpt-5.6-sol, and one for o3 hits o3-mini. This pattern matches the six aliases and their dated snapshots and skips the lookalikes:
grep -rnP '(?<![\w.-])(gpt-5(-mini|-nano|-pro)?|o3(-pro)?)(-2025-\d\d-\d\d)?(?![\w.-])' .
We checked it against all twelve IDs and against gpt-5.6-sol, gpt-5.1, gpt-5-codex, gpt-5-chat-latest, o3-mini and o3-deep-research, which it correctly ignores. Those last four are not part of this entry: under past deprecations, the same page records that gpt-5-codex, gpt-5-chat-latest and o3-deep-research were shut down on July 23, 2026 and o3-mini on October 23, 2026. If a plain search finds one of them in your code, that call has already been pointing at a removed model.
Code is only one surface. OpenAI's GPT-5.6 Sol upgrade guide lists environment variables, config defaults, deployment settings, routers, fallbacks, allowlists, pricing metadata, model pickers and tests as places a model string hides. A fallback that only fires during an outage is the call you will not see in a week of logs. The page also says OpenAI emails customers who are actively using a deprecated model, so check who on your team received that notice.
Map each call by role, not by name
The table is a starting point. The upgrade guide's core rule is "Do not perform a blind model-string replacement": preserve each call's reasoning level, endpoint, tools and output contract first, and map mini-like work to Terra and nano-like work to Luna rather than sending everything to Sol. A request that only changes the model ID keeps the same shape:
// before
{ "model": "gpt-5-mini", "reasoning": { "effort": "low" }, "input": "Summarize this ticket." }
// after
{ "model": "gpt-5.6-terra", "reasoning": { "effort": "low" }, "input": "Summarize this ticket." }
For gpt-5-pro and o3-pro, pro becomes a mode. Using GPT-5.6 says to keep the GPT-5.6 model and set reasoning.mode to pro in the Responses API, without switching to a separate Pro model slug. The upgrade guide adds that pro uses Responses, not Chat Completions, and that supported pro efforts begin at medium:
{ "model": "gpt-5.6-sol", "reasoning": { "mode": "pro", "effort": "medium" }, "input": "Review this migration plan for data-loss risks." }
Four defaults that change under the new ID
Reasoning effort. If you omit it, GPT-5.6 defaults to medium. The upgrade guide calls an inherited medium where the old effective effort was none a main migration hazard, and says not to guess an unknown old value. The Using GPT-5 guide lists minimal, low, medium and high for GPT-5; GPT-5.6 lists none, low, medium, high, xhigh and max. A call that sends minimal needs a new value, and neither guide maps it for you, so compare none and low on your own tasks.
Chat Completions with function tools. For GPT-5.6 this combination works only with effective reasoning none. A gpt-5-mini tool flow on Chat Completions that moves to gpt-5.6-terra without "reasoning_effort": "none" inherits medium and lands in the combination the guide calls unsafe. Either set none explicitly or move the flow to Responses.
Persisted reasoning. The reasoning guide says GPT-5.6 models default reasoning.context to all_turns, while earlier models default to current_turn, and that persisted reasoning is reused only within one model family. Read reasoning.context on the response to confirm the effective mode.
Prompt caching. GPT-5.6 bills cache writes at 1.25× the uncached input rate, and the upgrade guide warns that a stable prefix followed by a changing suffix can lose cache hits. Track cached_tokens and cache_write_tokens before and after.
Run the comparison while the old model still answers
After December 11 the baseline is gone, so record it now. The upgrade guide's validation matrix compares the old model with old prompt and settings, the GPT-5.6 target with the same prompt and preserved effort, and the target one effort level lower. Measure task success, parser success, tool calls, latency and tokens per run. If your harness still lives in OpenAI Evals, read our Evals shutdown report first, because the test bench is retiring too. For the rollout itself, with canaries and a way back, follow the AI API contract change plan.
One thing the entry leaves out: unlike the GPT-4 series entry on the same page, it says nothing about fine-tuned versions of these models. The page's self-serve fine-tuning section does say that inference on fine-tuned models continues only until the base models are deprecated, without giving a date for this entry. If you run a fine-tune of one of the six, plan it into the same December 11 deadline and check what GET /v1/models returns for its ID. Our GPT-4o fine-tune shutdown report covers the entry where OpenAI states the rule directly.
FAQ
When do gpt-5 and o3 stop working in the OpenAI API?
OpenAI's Deprecations page lists December 11, 2026 as the shutdown date for gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, o3 and o3-pro, covering both the aliases and their dated snapshots. OpenAI notified affected developers on June 11, 2026.
What replaces gpt-5-pro and o3-pro?
The recommended replacement for both is gpt-5.6-sol with reasoning.mode set to pro. Pro is a reasoning mode in the Responses API, not a separate model slug, and OpenAI's migration guide says supported pro efforts begin at medium.
Is o3-mini part of the December 11 shutdown?
No. The Deprecations page lists o3-mini in a separate entry with an October 23, 2026 shutdown date, and gpt-5-codex and gpt-5-chat-latest with July 23, 2026.
How can you check a model's shutdown date from code?
Call GET /v1/models or the Retrieve model endpoint and read the optional shutdown_date field. It holds a YYYY-MM-DD date, or null when no shutdown date has been announced.