LLM model deprecation schedule 2026: OpenAI, Anthropic, Google
The 2026-2027 LLM deprecation schedule: every OpenAI, Anthropic and Google shutdown date, the replacements, notice periods and how to migrate.
As of November 6, 2026, the next major LLM model shutdowns are gemini-3.6-flash on Vertex AI and
every o-series model on Azure OpenAI on November 19; Anthropic's claude-sonnet-4-5-20250929 and
OpenAI's hosted Evals platform on November 30; OpenAI's gpt-5, gpt-5-mini, gpt-5-nano,
gpt-5-pro, o3 and o3-pro on December 11; and OpenAI's gpt-4o, gpt-4o-mini, gpt-4.1 and
gpt-4.1-mini snapshots on January 14, 2027. In between, on December 1, the Gemini API starts
answering gemini-2.5-pro requests with gemini-3.8-flash and gemini-2.5-flash requests with
gemini-3.5-flash-lite.
Three things about the schedule matter more than any single date:
- +The same model retires on different dates on different platforms.
o3shuts down on OpenAI's API on December 11 but on Azure OpenAI on November 19. Claude Sonnet 4.5 retires on Anthropic's API on November 30 but runs on AWS Bedrock until April 8, 2027. - +Notice periods differ. OpenAI promises at least six months for generally available models, Anthropic at least 60 days, Vertex AI at least 45 days for its short-lived Gemini models, and the Gemini API's dates are only the earliest a model might go.
- +Not every deprecation fails. Some providers move your requests to a different model instead of rejecting them. The code keeps working, on a model nobody tested.
The rest of this post is the full calendar, what already retired this year, each provider's policy, and how to migrate before a date arrives. Every date comes from the provider's own page, read on November 6, 2026: OpenAI ↗, Anthropic ↗, the Gemini API ↗, Vertex AI ↗, Azure OpenAI ↗ and AWS Bedrock ↗. Providers revise these pages often, so check the page before you act on a row.
LLM model shutdowns from November 2026 to May 2027
| Date | Provider and surface | What shuts down | Listed replacement |
|---|---|---|---|
| November 13, 2026 | AWS Bedrock | Claude 3 Haiku, Claude 3 Sonnet, Claude 3.5 Sonnet and Claude 3.7 Sonnet in the regions AWS lists for this date. Claude 3 Haiku and Claude 3 Sonnet in ca-central-1 follow on November 27 | None listed by AWS |
| November 15, 2026 | Azure OpenAI | codex-mini | None listed |
| November 17, 2026 | Gemini API | Live and TTS previews: gemini-3.1-flash-live-preview, gemini-2.5-flash-native-audio-preview-12-2025, gemini-3.1-flash-tts-preview, gemini-2.5-flash-preview-tts, gemini-2.5-pro-preview-tts | gemini-3.8-live; gemini-3.8-flash-tts or gemini-3.8-flash-lite-tts |
| November 19, 2026 | Vertex AI | gemini-3.6-flash | gemini-3.8-flash |
| November 19, 2026 | Azure OpenAI | o1, o1-pro, o3, o3-pro, o3-mini, o4-mini, o3-deep-research | gpt-5.6-sol, or gpt-5.6-terra for o3-mini and o4-mini |
| November 30, 2026 | Anthropic API and Google Cloud | claude-sonnet-4-5-20250929 | claude-sonnet-5-5 (Anthropic's listing; Google names none) |
| November 30, 2026 | OpenAI | The Evals platform (dashboard and API), Agent Builder, and the v1/prompts API | Promptfoo for evals, the Agents SDK, prompts kept in your own code |
| December 1, 2026 | Gemini API | gemini-2.5-pro and gemini-2.5-flash stop answering as themselves: requests route to the replacement, billed at its rates | gemini-3.8-flash for Pro, gemini-3.5-flash-lite for Flash |
| December 1, 2026 | OpenAI | gpt-image-1-mini, gpt-image-1.5, chatgpt-image-latest | gpt-image-2.6-sunburst or gpt-image-2.6-flare |
| December 3, 2026 | Gemini API | gemini-omni-1.1-flash, routed to its successor | gemini-omni-1.2-flash |
| December 11, 2026 | OpenAI | gpt-5, gpt-5-mini, gpt-5-nano, gpt-5-pro, o3, o3-pro | gpt-5.6-sol (reasoning.mode: pro for the pro models), gpt-5.6-terra for mini, gpt-5.6-luna for nano |
| December 13, 2026 | Vertex AI | gemini-live-2.5-flash-native-audio | gemini-3.8-live |
| December 15, 2026 | Azure OpenAI | whisper, tts, tts-hd. gpt-image-1.5 follows on December 16 | None listed |
| January 6, 2027 | OpenAI | tts-1, tts-1-hd, gpt-4o-mini-tts. Existing customers can also no longer start self-serve fine-tuning jobs | gpt-realtime-2.1-mini |
| January 8, 2027 | AWS Bedrock | Claude Opus 4.1 | None listed by AWS |
| January 14, 2027 | OpenAI | gpt-4o-2024-08-06, gpt-4o-2024-11-20, gpt-4o-mini-2024-07-18, gpt-4.1-2025-04-14, gpt-4.1-mini-2025-04-14 | gpt-6-luna |
| January 14, 2027 | Azure OpenAI | gpt-4o version 2024-05-13 | gpt-5.1 |
| January 20, 2027 | OpenAI | gpt-realtime, gpt-audio, gpt-realtime-mini, gpt-audio-mini, the gpt-4o audio and realtime families, and gpt-4o-mini-transcribe-2025-03-20 | gpt-realtime-2.1, gpt-realtime-2.1-mini, gpt-audio-1.5; gpt-4o-mini-transcribe-2025-12-15 |
| January 28, 2027 | Vertex AI | gemini-3.7-flash | gemini-3.8-flash |
| February 1, 2027 | OpenAI | gpt-5.5-cyber-preview | The most capable cyber model available to you |
| February 9, 2027 | Azure OpenAI | gpt-5 and gpt-5-nano | None listed |
| February 26, 2027 | OpenAI | whisper-1, gpt-4o-transcribe, gpt-4o-mini-transcribe, gpt-4o-transcribe-diarize, and the /v1/audio/translations endpoint | gpt-transcribe or gpt-live-transcribe; v1/realtime/translations |
| March 15, 2027 | Gemini API and Vertex AI | gemini-2.5-flash-image | gemini-3.1-flash-lite-image |
| April 1, 2027 | OpenAI | gpt-5.1, gpt-5.3-codex, gpt-5.4-nano | gpt-6-sol, or gpt-6-luna for nano |
| April 1, 2027 | Vertex AI | text-embedding-004, text-embedding-005, text-multilingual-embedding-002, multimodalembedding@001 | None listed |
| April 7, 2027 | Azure OpenAI | gpt-5-pro | None listed |
| April 8, 2027 | AWS Bedrock | Claude Sonnet 4.5 | None listed by AWS |
| April 14, 2027 | Azure OpenAI | gpt-4o versions 2024-08-06 and 2024-11-20, gpt-4o-mini, gpt-4.1, gpt-4.1-mini, gpt-4.1-nano | gpt-5.1 for gpt-4o; none listed for the rest |
| May 7, 2027 | Gemini API | gemini-3.1-flash-lite (the earliest possible date) | gemini-3.5-flash-lite |
The OpenAI, Anthropic and Google rows are complete for this window. The Azure rows cover the chat and reasoning models; Azure's schedule lists more preview, audio, image and Codex dates. It was last updated on September 23, 2026, before OpenAI's October announcements, so expect its rows to move. "Not sooner than" dates are left out on purpose. Anthropic and Google list one for models that are still active, but it is a floor, not a schedule, and the Anthropic section explains why one that has already passed means nothing yet.
LLM models already retired in 2026
| Date | Provider | Retired |
|---|---|---|
| January 5 | Anthropic | Claude Opus 3 (claude-3-opus-20240229) |
| January 14 | Gemini API | text-embedding-004 |
| February 17 | OpenAI | chatgpt-4o-latest |
| February 19 | Anthropic | Claude Sonnet 3.7, Claude Haiku 3.5 |
| March 9 | Gemini API | gemini-3-pro-preview, which now points to gemini-3.1-pro-preview |
| March 26 | OpenAI | gpt-4-0314, gpt-4-0125-preview and the gpt-4-turbo-preview alias |
| April 20 | Anthropic | Claude Haiku 3 |
| May 7 | OpenAI | The gpt-4o realtime and audio previews |
| May 12 | OpenAI | DALL·E 2 and DALL·E 3, and the Realtime API beta |
| June 1 | Gemini API and Vertex AI | gemini-2.0-flash, gemini-2.0-flash-lite |
| June 15 | Anthropic | Claude Sonnet 4, Claude Opus 4 |
| June 30 | Vertex AI | Imagen 3 and Imagen 4, Veo 2 and Veo 3.0 |
| July 23 | OpenAI | computer-use-preview, the search previews, gpt-5-chat-latest, gpt-5-codex through gpt-5.2-codex, o3-deep-research, o4-mini-deep-research |
| August 5 | Anthropic | Claude Opus 4.1 |
| August 26 | OpenAI | The Assistants API |
| September 24 | OpenAI | The Videos API and Sora 2 |
| September 28 | OpenAI | gpt-3.5-turbo-instruct, babbage-002, davinci-002 |
| October 14 | AWS Bedrock | Claude Sonnet 4 |
| October 20 | Vertex AI | gemini-2.5-pro, gemini-2.5-flash, gemini-2.5-flash-lite (Google's listed retirement date) |
| October 23 | OpenAI | gpt-3.5-turbo, gpt-4, gpt-4-turbo, gpt-4o-2024-05-13, gpt-4.1-nano, o1, o1-pro, o3-mini, o4-mini, gpt-image-1 |
The October 23 batch is the one most likely to be hiding in old code: it took the original gpt-4,
gpt-3.5-turbo, o1 and o4-mini off OpenAI's API, while Azure keeps the o-series until
November 19.
OpenAI model deprecations: the policy
OpenAI's deprecations page ↗ defines three terms. A model is deprecated from the day the shutdown is announced, and every deprecated model has a shutdown date. At shutdown the model is no longer accessible. A legacy model gets no more updates and will be deprecated later.
The notice OpenAI commits to depends on the kind of model:
- +Generally available models: at least six months.
- +Specialized variants such as
-chat-latest, Codex and deep-research models: at least three months. - +Models with "preview" in the name: much shorter notice, such as two weeks. OpenAI advises against building business-critical features on them.
Both minimums apply unless safety or compliance concerns force a faster timeline. Customers who
are actively using a model get an email, and OpenAI says some can buy dedicated capacity to keep a
model past its shutdown date by talking to sales. OpenAI doesn't document the error a shut-down
model returns. Developers have
reported ↗
a 404 with the code model_not_found, which looks the same as a typo in the model name.
Three details catch teams out:
- +Fine-tuned models die with their base. A fine-tune follows its base model's shutdown date,
so a fine-tune of
gpt-4o-2024-08-06stops on January 14, 2027. From January 6, 2027 existing customers can no longer start new self-serve fine-tuning jobs, so you can't rebuild it on a newer base the way you trained it. - +Aliases point at snapshots.
gpt-4oandgpt-4.1resolve to dated snapshots, and OpenAI's changelog shows aliases being repointed to newer snapshots. The January 14 notice names only the snapshots and doesn't say what the bare aliases do afterwards. Plan as if they stop working too. - +Your eval tooling may be on the list. OpenAI's hosted Evals went read-only on October 31 and shuts down on November 30, 2026. If your migration tests live there, move them before you need them. The LLM evaluation tools comparison covers the alternatives.
The API also tells you directly. GET /v1/models returns a shutdown_date for each model, or
null if none is announced. A short CI check can fail the build on both a coming date and a pinned
ID the list doesn't return at all, which covers a model that is already gone as well as a typo:
import sys
from datetime import date, timedelta
from openai import OpenAI
PINNED = {"gpt-4o-2024-08-06", "gpt-5-mini"} # every model ID your code calls
horizon = (date.today() + timedelta(days=90)).isoformat()
models = {m.id: getattr(m, "shutdown_date", None) for m in OpenAI().models.list()}
problems = [f"{m}: not available" for m in PINNED if m not in models]
problems += [f"{m}: shuts down {models[m]}" for m in PINNED if models.get(m) and models[m] <= horizon]
print("\n".join(problems) or "no pinned model shuts down in the next 90 days")
sys.exit(1 if problems else 0)Azure OpenAI retires the same models on different dates
Azure OpenAI, now documented under Microsoft Foundry, sets its own retirement schedule ↗. For the same model it can be earlier or later than OpenAI's:
| Model | OpenAI API | Azure OpenAI |
|---|---|---|
o3, o3-pro | December 11, 2026 | November 19, 2026 |
o1, o3-mini, o4-mini | Shut down October 23, 2026 | November 19, 2026 |
gpt-4o 2024-05-13 | Shut down October 23, 2026 | January 14, 2027 |
gpt-4o 2024-08-06 and 2024-11-20, gpt-4o-mini, gpt-4.1, gpt-4.1-mini | January 14, 2027 | April 14, 2027 |
gpt-5, gpt-5-nano | December 11, 2026 | February 9, 2027 |
gpt-5-mini | December 11, 2026 | July 13, 2027 |
whisper-1 (Azure: whisper) | February 26, 2027 | December 15, 2026 |
The policy ↗
is also its own. A generally available model gets an 18-month lifecycle: it is deprecated at 12
months, when new customers can no longer deploy it, and retired at 18 months. Subscription owners
get at least 60 days' notice for GA models and 30 days for previews, and retirement dates can't be
extended. After retirement, every request returns 410 Gone.
What happens on the day depends on the deployment type. Standard, Global Standard and Data Zone
Standard deployments are upgraded automatically at retirement. For gpt-4o 2024-05-13, Global
Standard and Data Zone Standard deployments move to gpt-5.1; its Regional Standard deployments
already retired on March 31, 2026. The exception is a deployment set to NoAutoUpgrade, which
simply stops working.
Provisioned deployments are never upgraded automatically: they fail on the date unless you migrate
them first.
One trap if you check this from code: the Models API names states differently from the docs. The
API's Deprecating is what the docs call Deprecated, and the API's Deprecated is what the docs
call Retired.
Claude model deprecations
Anthropic retired seven Claude models from its API in 2026, listed in the table above. The next one
is claude-sonnet-4-5-20250929: deprecated on September 30, 2026, it retires on November 30, 2026,
and Anthropic's listed replacement is claude-sonnet-5-5. The only other deprecated model is
claude-mythos-preview, deprecated on June 9, 2026, with its retirement date still to be
announced.
Anthropic's deprecations page ↗ also gives every active model a "not sooner than" date:
| Model ID | Retires not sooner than |
|---|---|
claude-haiku-4-5-20251001 | October 15, 2026 (passed; still active) |
claude-opus-4-5-20251101 | November 24, 2026 |
claude-opus-4-6 | February 5, 2027 |
claude-sonnet-4-6 | February 17, 2027 |
claude-opus-4-7 | April 16, 2027 |
claude-opus-4-8 | May 28, 2027 |
claude-fable-5, claude-mythos-5 | June 9, 2027 |
claude-sonnet-5 | June 30, 2027 |
claude-opus-5 | July 24, 2027 |
claude-fable-5-1, claude-mythos-5-1 | September 1, 2027 |
claude-opus-5-5 | September 22, 2027 |
claude-sonnet-5-5 | September 28, 2027 |
claude-haiku-5-5 | October 7, 2027 |
Read these as floors. Anthropic gives at least 60 days' notice before retiring a publicly released
model, by email to customers with active deployments and on the deprecations page. Haiku 4.5's floor
passed in October with no notice, so it keeps running. claude-opus-4-5-20251101 has no notice
either, so it can't retire on November 24. A model with no deprecation notice as of November 6
can't retire before early January 2027.
Anthropic's lifecycle has four states. Active models are fully supported. Legacy models get no more updates and may be deprecated. Deprecated models still work but have a replacement and a retirement date. Retired models no longer serve requests. How model IDs behave changed with the 4.6 generation:
- +From Claude 4.6 on, the dateless ID is the model.
claude-sonnet-4-6is a fixed snapshot, Anthropic doesn't change the weights behind an ID, and an update ships under a new ID. - +Before 4.6, short names such as
claude-sonnet-4-5are aliases that point to the latest dated snapshot. Pin the dated ID if you want the guarantee.
The request changes too. In API version 2026-10-21 Anthropic removed temperature, top_p and
top_k, which now return a 400 error. On earlier API versions, Claude 4.7 and later models return
the same error when these are set to a non-default value. So moving a call from Sonnet 4.5 to
Sonnet 5.5 that sets temperature=0 fails on the first request, before any behavior is compared.
Retired doesn't mean deleted. In November 2025 Anthropic committed ↗ to keeping the weights of every publicly released model for at least the lifetime of the company, and Claude Opus 3 is still available to paid claude.ai subscribers and, on request, through the API. Anthropic says it isn't committing to do the same for every model. For a production system that is a footnote: the date on the deprecations page is the one that breaks your calls.
Claude on AWS Bedrock and Google Cloud
Anthropic's dates apply to Anthropic-operated platforms: the Claude API, Claude Platform on AWS, Microsoft Foundry and the Anthropic-managed offering on Google Cloud. AWS Bedrock and Google's own Claude offering on Vertex set their own dates:
| Model | Claude API | AWS Bedrock | Google Cloud (Google-managed) |
|---|---|---|---|
| Claude Sonnet 4.5 | November 30, 2026 | April 8, 2027 | November 30, 2026 |
| Claude Opus 4.1 | Retired August 5, 2026 | January 8, 2027 | Not listed |
| Claude Sonnet 4 | Retired June 15, 2026 | Retired October 14, 2026 | Not listed |
| Claude 3.7 Sonnet | Retired February 19, 2026 | November 13, 2026, in two regions | Retired May 11, 2026 |
| Claude 3 Haiku | Retired April 20, 2026 | September 10, 2026 in most regions; November 13 or 27 in the rest | Retired August 23, 2026 |
| Claude Haiku 4.5 | Not sooner than October 15, 2026 | Not sooner than October 16, 2026 | Not sooner than December 7, 2026 |
On Bedrock ↗, AWS notifies you when a model enters the Legacy state, and its policy says a model stays in Legacy for at least six months before its end of life (for some models launched since September 7, 2026, the Legacy period is 45 days). The dates don't always follow it: the Claude 3 models that went Legacy in a few regions on October 10 to 15, 2026 reach end of life there on November 13 or 27, 31 to 43 days later. Legacy is also stricter than it sounds:
- +New customers can't use a Legacy model.
- +Existing customers can lose access after 15 days without using it.
- +No new Provisioned Throughput or fine-tuning jobs can be created on it.
- +After three months in Legacy, a model can enter public extended access, where the provider sets a higher price.
The inactivity rule matters for evaluations. An eval suite that runs the old model once a quarter
can find its baseline gone before the end-of-life date. After end of life, requests fail with
ResourceNotFoundException unless you have a private arrangement with the model provider. Lifecycle
state is per region, so check the modelLifecycle field in every region you deploy to:
aws bedrock get-foundation-model --region us-east-1 \ --model-identifier anthropic.claude-sonnet-4-5-20250929-v1:0 \ --query 'modelDetails.modelLifecycle'
Gemini model deprecations
Google runs two surfaces with two schedules. The
Gemini API ↗, the one you reach with an AI Studio
key, lists the earliest date a model might be shut down and promises to communicate the exact date
in advance. Preview models get at least two weeks' notice. Vertex AI ↗,
now documented as Gemini Enterprise Agent Platform, keeps its standard models available for at
least 12 months after release. Shorter-lived models like gemini-3.6-flash get a fixed date at
least 45 days out, and Vertex dates are never moved earlier.
The dates that matter most right now:
- +November 19, 2026:
gemini-3.6-flashretires on Vertex. Its replacement isgemini-3.8-flash, which is listed until at least September 2, 2027. - +December 1, 2026: on the Gemini API, requests to
gemini-2.5-proroute togemini-3.8-flashand requests togemini-2.5-flashroute togemini-3.5-flash-lite, billed at the new model's rates. Google deprecated both on November 2 and already limits them to projects that used them before.gemini-2.5-flash-liteis not deprecated on the Gemini API. - +January 28, 2027:
gemini-3.7-flashretires on Vertex. On the Gemini API it already routes togemini-3.8-flash.
The Gemini API marks the state in the response: since January 2026, a modelStatus field can carry
a modelStage (LEGACY means existing customers only, RETIRED means the model can't be used)
and a retirementTime. The full Gemini migration, including the request changes for Gemini 3.8
Flash and the per-surface table, is in the
Gemini model deprecation checklist.
How the deprecation policies compare
| Surface | Minimum notice | On the date | Can the model change under a fixed ID? | Check from code |
|---|---|---|---|---|
| OpenAI API | 6 months for GA, 3 for specialized variants, shorter for previews (such as 2 weeks) | Requests fail | Aliases such as gpt-4o point to a dated snapshot and get repointed | shutdown_date in GET /v1/models |
| Azure OpenAI | 60 days for GA, 30 for previews | 410 Gone, or an automatic upgrade on Standard deployments | Yes, by auto-upgrade | Models API lifecycleStatus |
| Anthropic API | 60 days | Requests fail | Only pre-4.6 aliases; from 4.6 each ID is a fixed snapshot | Deprecations page; Console usage export by model |
| AWS Bedrock | 6 months in Legacy by policy (45 days for some newer models) | ResourceNotFoundException | No | modelLifecycle per region |
| Gemini API | Dates are the earliest possible; 2 weeks for previews and -latest swaps | Shut down, or routed to a successor | Yes: rerouted IDs and -latest aliases | modelStatus in the response |
| Vertex AI | 12 months from release for standard models; 45 days for short-lived ones | Requests fail | Not documented | Model versions page |
Promised notice vs the notice providers gave in 2026
The policies are minimums, and some 2026 notices came in under them. Counting from the announcement date on each provider's deprecations page to the shutdown date:
| Provider | Models | Announced | Shutdown | Days of notice | Stated minimum |
|---|---|---|---|---|---|
| OpenAI | o1, o4-mini, gpt-4, gpt-3.5-turbo and the rest of the October batch | April 22, 2026 | October 23, 2026 | 184 | 6 months |
| OpenAI | gpt-5, gpt-5-mini, gpt-5-nano, o3, and the pro models | June 11, 2026 | December 11, 2026 | 183 | 6 months |
| OpenAI | gpt-realtime, gpt-audio and the gpt-4o audio families | July 20, 2026 | January 20, 2027 | 184 | 6 months |
| OpenAI | whisper-1 and the transcribe models | August 26, 2026 | February 26, 2027 | 184 | 6 months |
| OpenAI | gpt-5.1, gpt-5.4-nano, gpt-5.3-codex | October 1, 2026 | April 1, 2027 | 182 | 6 months (3 for Codex) |
| OpenAI | tts-1, tts-1-hd, gpt-4o-mini-tts | October 1, 2026 | January 6, 2027 | 97 | 6 months |
| OpenAI | gpt-4o, gpt-4o-mini, gpt-4.1, gpt-4.1-mini | October 14, 2026 | January 14, 2027 | 92 | 6 months |
| OpenAI | gpt-audio-mini-2025-10-06, gpt-realtime-mini-2025-10-06 | April 22, 2026 | July 23, 2026 | 92 | 6 months |
| OpenAI | gpt-5.4-cyber | September 11, 2026 | October 1, 2026 | 20 | Not stated for cyber models |
| Anthropic | Claude Haiku 3 | February 19, 2026 | April 20, 2026 | 60 | 60 days |
| Anthropic | Claude Sonnet 4, Claude Opus 4 | April 14, 2026 | June 15, 2026 | 62 | 60 days |
| Anthropic | Claude Opus 4.1 | June 5, 2026 | August 5, 2026 | 61 | 60 days |
| Anthropic | Claude Sonnet 4.5 | September 30, 2026 | November 30, 2026 | 61 | 60 days |
| AWS Bedrock | Claude 3 Haiku, 3 Sonnet, 3.5 Sonnet, 3.7 Sonnet in a few regions | October 10 to 15, 2026 (entered Legacy) | November 13 or 27, 2026 | 31 to 43 | 6 months in Legacy |
| Gemini API | gemini-2.5-pro, gemini-2.5-flash (rerouted, not shut down) | November 2, 2026 | December 1, 2026 | 29 | Dates are the earliest possible |
A few patterns stand out. OpenAI kept to six months for most of its large 2026 shutdowns, but
GPT-4o, GPT-4.1, the TTS models and two audio snapshots got about three, and the specialized
gpt-5.4-cyber got 20 days. Its deprecations page gives no reason, and its policy allows faster
timelines for safety or compliance concerns. Every retirement Anthropic announced in 2026 got 60 to
62 days, almost exactly its minimum. Its retirements announced in 2025 had more: Claude Opus 3 got
189 days and Claude Sonnet 3.7 got 114. On the Gemini API, access to the 2.5 models was already
limited to existing users from September 18, so the 29 days were not the only warning.
The planning rule that follows: a policy minimum is not your runway. Notices in 2026 ran from 20 days to six months, so have the migration test ready before the email arrives, not after it.
The deprecations that don't fail
A shutdown is loud: requests fail and someone gets paged. Three mechanisms change the model without a single failed request:
- +Rerouting. The Gemini API answers deprecated IDs with a successor. In 2026 that covered
gemini-3.5-flashandgemini-3.7-flash, and from December 1 it coversgemini-2.5-proandgemini-2.5-flash. That last move swaps a Pro model for a Flash model under a pinned ID, with new pricing and a model that ignorestemperature. - +Auto-upgrade. Azure OpenAI's Standard deployments move to the replacement at retirement unless you opted out.
- +Aliases.
-latestnames on the Gemini API are hot-swapped with every release after two weeks' email notice. OpenAI's bare model names move to newer snapshots. Pre-4.6 Claude short names follow the newest dated snapshot.
All three are migrations you shipped without a test run or a diff. You can at least see them, because responses report which model answered. Log it next to every call and alert when it changes per route:
print(openai_response.model) # OpenAI: the dated snapshot, e.g. gpt-4o-2024-08-06 print(gemini_response.model_version) # Gemini: the model that actually served the request
App removals are not API retirements
A model leaving a chat app tells you nothing about its API date. On October 29, 2026 Anthropic removed Claude Haiku 4.5 from the claude.ai model selector on the Free, Pro and Max plans, while the Claude API, Claude Code and the Team and Enterprise plans kept offering it. Its API status is still Active. Treat a model leaving ChatGPT the same way: for the API, the provider's deprecations page is the only schedule that counts.
How to prepare for the next model deprecation
- +
Inventory every model ID and where it runs. Include the eval harness, where judge and embedding models are easy to forget, and fine-tunes, which retire with their base model. Start with a grep and read every hit:
bashgrep -rhoE "\b(gpt-[a-z0-9][a-z0-9.-]*|chatgpt-[a-z0-9.-]+|o[134](-[a-z0-9-]+)?|claude-[a-z0-9.-]+|gemini-[a-z0-9.-]+|text-embedding-[a-z0-9-]+|tts-1(-hd)?|whisper-1|codex-mini[a-z-]*)\b" \ --exclude-dir={node_modules,.git,.venv,dist} . | sort | uniq -c | sort -rn - +
Look up each date on that surface's page. A model reached through Azure, Bedrock or Vertex follows that platform's date, not the model maker's. Where the API exposes a field, check it from CI instead of by hand.
- +
Pick a pinned replacement with a long runway. Check the replacement's own row before you commit. Moving a
gpt-4oroute togpt-5today means migrating again on December 11. OpenAI listsgpt-6-lunaforgpt-4o, and Anthropic'sclaude-sonnet-5-5can't retire before September 28, 2027. - +
Update the request, not just the model string. Sampling parameters are where most of the breakage is this year. Claude 4.7 and later reject a non-default
temperature, Gemini 3.8 Flash ignores it, and OpenAI's pro replacements takereasoning.mode: pro. A new embedding model usually means re-embedding your index, because vectors from different models aren't comparable. Google's move fromgemini-embedding-2-previewtogemini-embedding-2is an exception: the same embedding space, no re-index. - +
Record a baseline while the old model still answers, then diff. Replay real production inputs on the old and new model and compare tool calls, arguments, structured fields and refusals per route, not one average. The method, with the six regressions it caught on a real upgrade, is in How to catch LLM regressions before a model upgrade ships.
- +
Cut over per route with a rollback path. Keep the old model as the fallback while it still answers, then put the replacement's own retirement date on the calendar with a reminder 60 days ahead.
Step 5 has a deadline the others don't. Once a model is shut down or rerouted, you can't record
what it did anymore. If gemini-2.5-flash, claude-sonnet-4-5-20250929 or gpt-5 is in
production, the time to capture its behavior is before December 1, November 30 and December 11.
Doing this with EvalShift
Disclosure: I'm the founder of EvalShift, and step 5 is the part it automates. The capture SDK
wraps the OpenAI, Anthropic and google-genai clients and records real runs, including tool calls,
and compare replays them against the replacement:
from openai import OpenAI from evalshift import capture from evalshift.adapters.openai import wrap_openai client = wrap_openai(OpenAI()) # wrap_anthropic and wrap_genai work the same way @capture.agent(suite="support", redact=True, tools=[]) # no-op unless EVALSHIFT_CAPTURE=1 def handle_ticket(message): ...
pip install evalshift EVALSHIFT_CAPTURE=1 python my_agent.py # record production-shaped runs evalshift capture sync # recorded runs -> golden suite evalshift compare --suite-name support --to gpt-6-luna
Both arms are live calls, so run it while the old model still answers. The verdict comes from a
migration_policy written before the run, and the report shows the per-example diff. Docs:
/docs/sdk-adapters, /docs/migration-policy,
/docs/verdicts.
FAQ
When is GPT-4o being deprecated? On OpenAI's API, the gpt-4o-2024-08-06 and
gpt-4o-2024-11-20 snapshots and gpt-4o-mini-2024-07-18 shut down on January 14, 2027, with
gpt-6-luna as the listed replacement. The older gpt-4o-2024-05-13 already shut down on
October 23, 2026. On Azure OpenAI, gpt-4o 2024-05-13 retires on January 14, 2027 and the newer
versions on April 14, 2027.
What happens when an OpenAI model is deprecated? Deprecation is the announcement: the model
keeps working until its shutdown date, and customers using it get an email. After the shutdown date
requests to it fail, and developers have reported a 404 model_not_found error. Fine-tuned models
shut down with their base model.
What is the difference between a deprecated and a retired model? A deprecated model still works, but it has an announced end date and usually a recommended replacement. A retired model no longer serves requests. OpenAI calls the end state "shut down", Anthropic and Vertex AI call it "retired", and AWS Bedrock calls it "end of life". Watch the word "legacy": at OpenAI and Anthropic it means a model gets no more updates, while on Bedrock it means an end-of-life date is already set.
How much notice does OpenAI give before shutting down a model? At least six months for
generally available models, at least three months for specialized variants such as chat, Codex and
deep-research models, and much shorter notice, such as two weeks, for models with "preview" in the
name. Safety or compliance issues can shorten all of these. In 2026 most large shutdowns got about
six months, but GPT-4o, GPT-4.1 and the TTS models got about three, and gpt-5.4-cyber got 20
days.
What happens to fine-tuned models when the base model is deprecated? On OpenAI a fine-tuned
model shuts down on its base model's date, so a fine-tune of gpt-4o-2024-08-06 stops on January
14, 2027. From January 6, 2027 existing customers can no longer start new self-serve fine-tuning
jobs, so it can't be retrained on a newer base the same way. On AWS Bedrock, a model in the Legacy
state accepts no new fine-tuning jobs.
Can I keep using a model after its shutdown date? Usually not. OpenAI says some customers can buy dedicated capacity for continued access through its sales team. On AWS Bedrock, access after end of life needs a private arrangement with the model provider. Anthropic kept Claude Opus 3 available on request after its retirement, but says it isn't committing to do that for every model.
Which Claude models are being deprecated? claude-sonnet-4-5-20250929 is deprecated and
retires from the Claude API on November 30, 2026, replaced by claude-sonnet-5-5.
claude-mythos-preview is also deprecated, with its retirement date still to be announced. In 2026
Anthropic already retired Claude Opus 3, Sonnet 3.7, Haiku 3.5, Haiku 3, Sonnet 4, Opus 4 and Opus
4.1. Every other model only has a "not sooner than" date, the earliest it could retire.
How much notice does Anthropic give before retiring a Claude model? At least 60 days for publicly released models, by email to customers with active deployments and on the model deprecations page. A "not sooner than" date that passes without a notice, as Claude Haiku 4.5's did in October 2026, doesn't retire anything.
Is Gemini 2.5 being deprecated? On Vertex AI, Google lists October 20, 2026 as the retirement
date for gemini-2.5-pro, gemini-2.5-flash and gemini-2.5-flash-lite. On the Gemini API,
2.5 Pro and 2.5 Flash were deprecated on November 2, 2026, and from December 1, 2026 their requests
route to gemini-3.8-flash and gemini-3.5-flash-lite. gemini-2.5-flash-lite is not deprecated
on the Gemini API.
Do Azure OpenAI and AWS Bedrock use the same retirement dates as OpenAI and Anthropic? No. Each
platform sets its own dates, and only that platform's date applies to calls made through it. o3
retires on Azure on November 19, 2026 but on OpenAI's API on December 11. Claude Sonnet 4.5 runs on
Bedrock until April 8, 2027, months after its November 30 retirement on the Claude API.
How can I check whether a model I use is deprecated? OpenAI returns a shutdown_date for each
model in GET /v1/models. Gemini API responses can carry a modelStatus with the model's stage
and retirement time. Azure's Models API exposes lifecycleStatus, and Bedrock's
GetFoundationModel returns modelLifecycle per region. For Anthropic and Vertex AI, check the
deprecations page.
Keep reading
- +Gemini model deprecation: dates, replacements and a migration checklist — the Gemini API and Vertex dates in full, and the request changes for Gemini 3.8 Flash.
- +How to catch LLM regressions before a model upgrade ships — step 5 in full, with code and the six failures it caught.
- +How to test an LLM model migration before you ship it — freezing a golden suite and running both models paired.
- +What actually breaks when you switch LLMs — why the worst regressions from a model swap read as correct.
