How to know when an AI model you use is retiring
Updated November 4, 2026
On this page
Where each provider publishes retirement dates
Start with the official page for each place you call a model. Each one works a little differently.
| Where you call the model | Where the dates are | How you're told |
|---|---|---|
| OpenAI API | Deprecations page, and shutdown_date on List models | Email to customers actively using the model |
| Claude API | Model deprecations page | Email to customers with active deployments |
| Gemini API | Deprecations page | Advance notice, and announcements in the release notes |
| Google Cloud | Model versions and lifecycle | A date in that page's table |
| Microsoft Foundry (Azure) | Retirement schedule, and the Models API | Email to subscription owners, and Service Health |
| Amazon Bedrock | Model lifecycle, and modelLifecycle in the API | A notice when a model moves to Legacy |
Google Cloud's Agent Platform is what Google calls the evolution of Vertex AI (Google Cloud blog), so that's where Vertex model dates now live.
How much notice you get
- OpenAI: at least 6 months for generally available models, at least 3 months for specialized variants, and as little as 2 weeks for preview models (OpenAI).
- Claude API: at least 60 days before retirement for publicly released models (Claude deprecations page).
- Gemini API: the listed dates are the earliest a model might retire, and Google says it gives advance notice of the exact date (Google).
- Google Cloud: dates can be extended but never moved earlier, and models in its shorter availability group get a fixed date at least 45 days out (Google Cloud).
- Microsoft Foundry: at least 60 days for generally available models and 30 days for preview models, by email to subscription owners with active deployments and as Service Health advisories (Microsoft).
- Amazon Bedrock: models launched before September 7, 2026 stay in Legacy for at least 6 months before end of life (AWS). For later models the model card shows a Legacy period of 6 months or 45 days (AWS).
Emails go to whoever owns the account or subscription, so make sure that's a shared inbox someone reads. We found no RSS feed on any of these pages. Azure comes closest: a Service Health alert rule can send an email, a text message or a webhook (Microsoft).
Why the platform you call changes the date
The same model can retire on different days depending on who serves it. Amazon Bedrock says its lifecycle dates may differ from the model provider's, and only Bedrock's dates apply on Bedrock (AWS). The Claude deprecations page says the same of Bedrock and of Google-managed Claude on Google Cloud (Claude).
| Model ID | Platform | Retirement date |
|---|---|---|
claude-sonnet-4-5-20250929 | Claude API | Nov 30, 2026 |
anthropic.claude-sonnet-4-5-20250929-v1:0 | Amazon Bedrock | Apr 8, 2027 |
gpt-4o-2024-08-06 | OpenAI API | Jan 14, 2027 |
gpt-4o version 2024-08-06 | Microsoft Foundry | Apr 14, 2027 |
gemini-2.5-pro | Google Cloud | Oct 20, 2026 |
gemini-2.5-pro | Gemini API | Dec 1, 2026, then routed to gemini-3.8-flash |
- Regions can differ too. On Bedrock,
anthropic.claude-3-haiku-20240307-v1:0reaches end of life on November 13, 2026 in some Regions and November 27, 2026 inca-central-1(AWS). - Azure may upgrade you. At retirement, Global Standard and Data Zone Standard deployments of
gpt-4o2024-05-13 move togpt-5.1automatically, and Provisioned deployments don't (Microsoft). A deployment set toNoAutoUpgradestops working at retirement (Microsoft). - A retired model behaves differently per platform. Requests to a retired Claude model fail (Claude), Azure returns
410 Gone(Microsoft), Bedrock requests fail after end of life (AWS), and the Gemini API routes some retired models to a newer one (Google).
So one date for a model is often the wrong date for your code. Plan against the date for the platform your code calls, and on Bedrock, the Region too.
Check the dates with a script
Three platforms put lifecycle dates in an API, so a scheduled CI job can read them. OpenAI's List models returns an optional shutdown_date for each model (OpenAI):
curl -s https://api.openai.com/v1/models \
-H "Authorization: Bearer $OPENAI_API_KEY" \
| jq '.data[] | select(.shutdown_date)
| {id, shutdown_date}'Bedrock's ListFoundationModels returns modelLifecycle, with a status of ACTIVE or LEGACY and an end of life time (AWS). Run it in each Region you call:
aws bedrock list-foundation-models \
| jq '.modelSummaries[]
| select(.modelLifecycle.status == "LEGACY")
| {modelId, eol: .modelLifecycle.endOfLifeTime}'Azure's Models API lists lifecycleStatus and deprecation.inference for every model in a region. Watch the naming: in the API, Deprecating means what the docs call deprecated, and Deprecated means retired (Microsoft).
The Claude and Gemini deprecation pages don't point to a field like these, so for those you read the page. And a script only gives you dates. It doesn't know which of your files call the model.
Our calendar API returns the dates for every provider and platform we track, free and without a key (API docs):
curl -s https://api.since.dev/v1/calendar \
-G -d kind=model -d within=90dFind every model ID in your code
One case-insensitive pattern catches most model IDs: OpenAI names such as gpt- and o3-, claude-, gemini-, and Bedrock IDs that start with anthropic., with or without a prefix such as us.. Add the other makers you call on Bedrock.
git grep -n -i -E \
'(gpt-|o[134]-|claude-|gemini-|anthropic\.)'Expect some noise, since o1- can turn up in unrelated names. Then look for IDs read from config, by the key that holds them:
git grep -n -i -E \
"model(_?id|_?name)?[\"']?[[:space:]]*[:=]"Then check the places a repository search misses:
git grepreads tracked files only. Check.envfiles, CI secrets and your host's environment settings by hand.- On Azure, your code sends a deployment name, which can be anything. The openai-python example passes
model="deployment-name"(openai-python), so check each deployment's model and version in Foundry. - Infrastructure code, such as Terraform stacks, and IAM policies that scope Bedrock access to a model ARN.
- Eval sets, test fixtures, recorded responses and notebooks that pin a model.
- Calls from code you don't own. The Claude Console's Usage page exports a CSV of usage by API key and model (Claude deprecations page).
Your options, compared
| Option | What you get | What it leaves to you |
|---|---|---|
| Provider deprecation pages | The official date and replacement | Checking each page, for each platform you use |
| Provider emails | A notice once you use the model | Making sure the owner's inbox is read |
| Azure, Bedrock and Google Cloud schedules | The date that applies on that platform | One more page per platform, and per Region on Bedrock |
| RSS | Updates pushed to you | We found none on these pages |
| A script | Dates from the OpenAI, Bedrock and Azure APIs | Claude and Gemini dates, and where your code calls the model |
| Since.dev calendar and API | Dates per platform for every provider we track, with iCal and RSS feeds, free | The file and line, which takes a scan |
Where Since.dev fits
Since.dev tracks every model's retirement on each platform that serves it, from the publishers' own pages: the Claude API, OpenAI, the Gemini API, Google Cloud, Microsoft Foundry, Amazon Bedrock and Mistral. It matches each date to the platform your code calls. The retirement calendar lists the dates for free, and https://api.since.dev/v1/calendar serves them as JSON with no key, with .ics and .rss feeds.
- Scan any public GitHub repository, no sign-in needed. For a repository you scan or connect, it finds the exact files and lines that name a retiring model, with the days left and the replacement.
- A coding agent can ask through the MCP server: call
check_codewith a model ID, orwhats_changedfor what changed. - On Free you get those impacts only. On Team and up, we open a fix pull request that swaps the model, built and checked before it opens (plans).
Fix pull requests open ready for review, your CI runs, and people decide whether to merge. Nothing merges or deploys.
Questions
How much notice do providers give before retiring a model?
It depends on the platform. OpenAI gives at least 6 months for generally available models, the Claude API at least 60 days for publicly released ones, and Azure at least 60 days for generally available models and 30 for preview. On Bedrock, models launched before September 7, 2026 stay in Legacy for at least 6 months. Each figure is from that platform's own page, linked above.
What happens if my code calls a retired model?
On the Claude API and Amazon Bedrock, the request fails. On Azure, inference returns 410 Gone, unless a Standard deployment was upgraded to the replacement. The Gemini API routes some models to a newer one at retirement, such as gemini-2.5-pro from December 1, 2026, so your requests keep working on a different model.
Is there an RSS feed for model retirements?
We found none on the OpenAI, Claude, Gemini API, Google Cloud, Microsoft Foundry or Amazon Bedrock pages. Our calendar has one, free and without a key, at https://api.since.dev/v1/calendar.rss, and an iCal feed beside it.
Do Azure, Bedrock and Google Cloud follow the provider's dates?
Not necessarily, since each sets its own. gpt-4o version 2024-08-06 leaves OpenAI's API on January 14, 2027 and runs on Azure until April 14, 2027. claude-sonnet-4-5-20250929 retires on the Claude API on November 30, 2026 and runs on Bedrock until April 8, 2027.
Do Dependabot and other dependency updaters warn about model retirements?
No. They update package versions, and a model ID is a string in your code. Our Dependabot alternative guide covers what they do and don't catch.
Related guides
Migration guides
- Claude Sonnet 4.5 retires on November 30, 2026: how to move off itclaude-sonnet-4-5-20250929 stops working on the Claude API on November 30, 2026. The date on each platform, how to find every use, and what to test.
Comparisons
- Dependabot alternative for breaking changesDependabot keeps versions current for free. It won't say which lines an update breaks, or when a model, API or runtime you use retires. What to add.
- Renovate alternative for breaking changesA Renovate alternative for what version updates miss: the lines a new version breaks, and AI model, API and runtime retirements. When to use both.

Put your code on continuous maintenance.
Scan a public repository now, or give your agent one line.
See how out of date your code is.
Tell your agent what changed since it was trained.
claude mcp add --transport http since https://api.since.dev/mcpCodex, Cursor and any MCP client use https://api.since.dev/mcp.