Read from the providers' own deprecation pages on 8 November 2026. Dates change, so check the pages before you act on this.
| Date | Model ID | What the provider page says |
|---|---|---|
| 30 Nov 2026 | claude-sonnet-4-5-20250929 | Anthropic: replacement claude-sonnet-5-5. "Requests to models past the retirement date will fail." |
| 1 Dec 2026 | gemini-2.5-flash | Google: calls route automatically to gemini-3.5-flash-lite, billed at that model's rates |
| 1 Dec 2026 | gemini-2.5-pro | Google: calls route automatically to gemini-3.8-flash, billed at that model's rates |
| 11 Dec 2026 | gpt-5, o3 | OpenAI: replacement gpt-5.6-sol |
| 11 Dec 2026 | gpt-5-mini / gpt-5-nano | OpenAI: replacements gpt-5.6-terra / gpt-5.6-luna |
Sources: Anthropic, Google, OpenAI.
The detail that is easy to miss
Anthropic says calls to a retired model fail. Google's 1 December change is different: the old model name keeps answering, but Google routes the request to another model and bills it at that model's rates. Google also tells you to read the breaking API changes in the new model's migration guide before 1 December. Nothing errors, so nothing alerts you. If you rely on gemini-2.5-pro for quality, the call is answered by a Flash model after that date. Google also says its shutdown dates in the table are the earliest possible dates, and that gemini-2.5-flash-lite is not deprecated.
Find the IDs in your code
Plain grep -w is not enough. It matches gemini-2.5-flash-lite (not deprecated), gpt-5.6-sol (the replacement) and o3-mini. This pattern skips them; I tested it on a sample file with those lines (GNU grep, LC_ALL=C.UTF-8):
LC_ALL=C.UTF-8 grep -rnP '(?<![\w.-])(claude-sonnet-4-5-20250929|gemini-2\.5-flash|gemini-2\.5-pro|gpt-5|gpt-5-mini|gpt-5-nano|o3)(?![\w.-])' --exclude-dir=node_modules --exclude-dir=.git . Check config files, Docker and CI settings, .env.example, eval suites and prompt tests too, not only code. It will not find IDs built at run time.
OpenAI also says you can call GET /v1/models and read each model's optional shutdown_date field.
Before the date
- Run the grep on every repo and config folder.
- Re-run your structured-output and tool-call tests on the replacement. The replacement is a different model, so its output can differ.
- Compare cost per request on the replacement. Google bills the rerouted calls at the new model's rates.
- Pin the replacement ID yourself rather than waiting for a reroute.
Disclosure
I sell a paid offline Python scanner that does the matching, prints file:line, the shutdown date and the named replacement, and includes these dates and a migration checklist: LLM Model Retirement Scanner on Gumroad, $19. You do not need it; the three pages and the grep above are free. I am not affiliated with OpenAI, Anthropic or Google.
![Memory and Knowledge Systems — Ch.08: Experiments and Benchmarks [KR]](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Foqufqueojncuhxk5p9ww.png)
![Meta Learning and Few Shot Adaptation — Ch.01: Learning to Learn [KR]](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2F4kowd0l7axlmeg8ofakf.png)
![Meta Learning and Few Shot Adaptation — Ch.02: MAML and Optimization Based Meta Learning [KR]](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fi8snoe7gyt31ex7pvhpp.png)
![Meta Learning and Few Shot Adaptation — Ch.03: Metric Based Few Shot Learning [KR]](https://media2.dev.to/dynamic/image/width=800%2Cheight=%2Cfit=scale-down%2Cgravity=auto%2Cformat=auto/https%3A%2F%2Fdev-to-uploads.s3.us-east-2.amazonaws.com%2Fuploads%2Farticles%2Fbmxigikl0zmtua3kwiu8.png)