Three ways a model leaves. One is announced and you can plan for it. One is not, and you find out when something breaks. And one is announced by the vendor while the catalogue keeps listing it, which reads like neither.
The vendor published a shutdown date. If your product calls one of these, that date is your migration deadline.
| Left | Model | Vendor | Shuts down | Date from |
|---|---|---|---|---|
| D-2 | anthropic/claude-opus-4.1 | Anthropic | 2026-08-05 | the vendor |
| D-7 | openai/gpt-5.2-chat | OpenAI | 2026-08-10 | the catalogue |
| D-7 | openai/gpt-5.3-chat | OpenAI | 2026-08-10 | the catalogue |
| D-56 | openai/gpt-3.5-turbo-instruct | OpenAI | 2026-09-28 | the vendor |
| D-60 | google/gemini-2.5-flash-image | 2026-10-02 | the vendor | |
| D-81 | openai/gpt-4o-2024-05-13 | OpenAI | 2026-10-23 | the vendor |
| D-150 | z-ai/glm-4.5 | Z.ai | 2026-12-31 | the catalogue |
| D-170 | openai/gpt-audio | OpenAI | 2027-01-20 | the vendor |
| D-170 | openai/gpt-audio-mini | OpenAI | 2027-01-20 | the vendor |
| D-277 | google/gemini-3.1-flash-lite | 2027-05-07 | the vendor |
These were in the OpenRouter catalogue we check daily, and then they were not. The catalogue carried no shutdown date for them. This is the list that does not exist anywhere else, because it only exists if someone was watching on the day it happened. A model can leave an aggregator without its vendor retiring it, so confirm with your provider before you migrate.
| Vanished | Model | Vendor | Last known name |
|---|---|---|---|
| 2026-08-01 | openai/gpt-5.1-chat | OpenAI | OpenAI: GPT-5.1 Chat |
| 2026-07-30 | openai/o3-deep-research | OpenAI | OpenAI: o3 Deep Research |
| 2026-07-30 | openai/o4-mini-deep-research | OpenAI | OpenAI: o4 Mini Deep Research |
The vendor published a retirement date and the model has since left the catalogue. These are not silent removals and are kept out of that list, which would otherwise say something untrue about the vendor that did announce them.
| Vanished | Model | Vendor | Vendor's date |
|---|---|---|---|
| 2026-08-01 | mistralai/devstral-2512 | Mistral | 2026-07-31 |
| 2026-07-30 | openai/gpt-5-codex | OpenAI | 2026-07-23 |
The vendor published a retirement date for these and its page no longer carries one. The model is still listed and still callable; what changed is what the vendor says about it. A calendar cannot show you this, because a calendar renders the page as it reads today and today is when it stopped saying so.
| Noticed | Model | Vendor | Date it used to carry |
|---|---|---|---|
| 2026-08-03 | google/gemini-2.5-pro | 2026-10-16 | |
| 2026-08-03 | google/gemini-2.5-flash-lite | 2026-10-16 | |
| 2026-08-03 | google/gemini-2.5-flash | 2026-10-16 |
The vendor's own deprecation page says these are gone. The catalogue still lists them, so you can pin one today and be surprised later. Neither source shows this on its own - it is only visible when both are read.
| Retired | Model | Vendor | Vendor's date |
|---|---|---|---|
| 689 days ago | openai/gpt-3.5-turbo-0613 | OpenAI | 2024-09-13 |
| 491 days ago | mistralai/mistral-large-2407 | Mistral | 2025-03-30 |
| 244 days ago | google/gemini-2.5-pro-preview-05-06 | 2025-12-02 | |
| 105 days ago | anthropic/claude-3-haiku | Anthropic | 2026-04-20 |
| 70 days ago | google/gemini-3.1-flash-lite-preview | 2026-05-25 | |
| 49 days ago | anthropic/claude-sonnet-4 | Anthropic | 2026-06-15 |
| 49 days ago | anthropic/claude-opus-4 | Anthropic | 2026-06-15 |
| 39 days ago | google/gemini-3.1-flash-image-preview | 2026-06-25 | |
| 39 days ago | google/gemini-3-pro-image-preview | 2026-06-25 | |
| 11 days ago | openai/gpt-5.2-codex | OpenAI | 2026-07-23 |
| 11 days ago | openai/gpt-5.1-codex-mini | OpenAI | 2026-07-23 |
| 11 days ago | openai/gpt-5.1-codex-max | OpenAI | 2026-07-23 |
| 11 days ago | openai/gpt-5.1-codex | OpenAI | 2026-07-23 |
2 of these are still served on a platform whose own end-of-life is later, so the catalogue may be routing there rather than selling a dead model. The catalogue does not name the provider behind an entry, so that cannot be settled from it - they are counted above rather than quietly dropped.
Both lists come from the OpenRouter catalogue, checked once a day since 2026-07-29. A model absent for a single check and back the next is treated as an outage, not a retirement, and is not listed here. The full catalog is free JSON - no key, no signup.
Reading a list is work. This does it for you: point it at a repository and it reports which models you actually call are gone, which shut down soon, and where in your files they are used.
curl -sO https://neosignal-ai.vercel.app/check.py python check.py .
No key, no signup, no dependencies. It exits non-zero when something you call is gone or shuts down inside 30 days, so it fails a CI build before a model does - and it exits 2 rather than passing if it could not reach the data, because a check that did not run is not a clean bill.
It does not guess what a model id looks like. Both the prefixed and the bare spelling are matched, and a token is kept only if it is a real id - so a directory path or a variable name cannot be mistaken for a model.