AI model deprecation tracker

Models don't live forever. Providers retire older snapshots on a schedule, and if you've pinned a version, your app starts returning errors the day it sunsets. Below are 34 deprecated or retired models across OpenAI, Anthropic, Google Gemini, and DeepSeek, with retirement dates and the recommended replacement for each.

Sourced from each provider's official deprecation pages · last verified 2026-06-07. Dates apply to first-party APIs; partner clouds (Bedrock, Vertex, Azure) set their own schedules. Confirm before relying on a date.

OpenAI 14 models

Model Status Deprecated Retires / shut down Replacement
gpt-5-chat-latest deprecated Jul 23, 2026 gpt-5.5
gpt-5.1-chat-latest deprecated Jul 23, 2026 gpt-5.5
o3-deep-research deprecated Jul 23, 2026 gpt-5.5-pro
gpt-5.2-chat-latest deprecated Aug 10, 2026 gpt-5.5
gpt-5.3-chat-latest deprecated Aug 10, 2026 gpt-5.5
gpt-3.5-turbo deprecated Oct 23, 2026 gpt-5.4-mini
gpt-4 / gpt-4-0613 deprecated Oct 23, 2026 gpt-5.5
gpt-4-turbo deprecated Oct 23, 2026 gpt-5.5
gpt-4o-2024-05-13 deprecated Oct 23, 2026 gpt-5.5
o1 / o1-2024-12-17 deprecated Oct 23, 2026 gpt-5.5
o1-pro deprecated Oct 23, 2026 gpt-5.5-pro
o3-mini deprecated Oct 23, 2026 gpt-5.5
o4-mini deprecated Oct 23, 2026 gpt-5.4-mini
chatgpt-4o-latest retired Feb 17, 2026 gpt-5.1-chat-latest

Anthropic 12 models

Model Status Deprecated Retires / shut down Replacement
claude-opus-4-20250514 deprecated Apr 14, 2026 Jun 15, 2026 claude-opus-4-8
claude-sonnet-4-20250514 deprecated Apr 14, 2026 Jun 15, 2026 claude-sonnet-4-6
claude-opus-4-1-20250805 deprecated Jun 5, 2026 Aug 5, 2026 claude-opus-4-8
claude-3-haiku-20240307 retired Feb 19, 2026 Apr 20, 2026 claude-haiku-4-5
claude-3-7-sonnet-20250219 retired Oct 28, 2025 Feb 19, 2026 claude-sonnet-4-6
claude-3-5-haiku-20241022 retired Dec 19, 2025 Feb 19, 2026 claude-haiku-4-5
claude-3-opus-20240229 retired Jun 30, 2025 Jan 5, 2026 claude-opus-4-8
claude-3-5-sonnet-20241022 retired Aug 13, 2025 Oct 28, 2025 claude-sonnet-4-6
claude-3-5-sonnet-20240620 retired Aug 13, 2025 Oct 28, 2025 claude-sonnet-4-6
claude-3-sonnet-20240229 retired Jan 21, 2025 Jul 21, 2025 claude-sonnet-4-6
claude-2.1 retired Jan 21, 2025 Jul 21, 2025 claude-opus-4-8
claude-2.0 retired Jan 21, 2025 Jul 21, 2025 claude-opus-4-8

Google 6 models

Model Status Deprecated Retires / shut down Replacement
gemini-2.0-flashShut down; no per-model date published retired gemini-2.5-flash
gemini-2.0-flash-liteShut down; no per-model date published retired gemini-2.5-flash-lite
gemini-3-pro-previewPreview shut down retired gemini-3.1-pro
gemini-3.1-flash-lite-previewPreview shut down retired gemini-3.1-flash-lite
gemini-1.5-proSuperseded; verify status in Google docs retired gemini-2.5-pro
gemini-1.5-flashSuperseded; verify status in Google docs retired gemini-2.5-flash

DeepSeek 2 models

Model Status Deprecated Retires / shut down Replacement
deepseek-chat (alias)Alias name being deprecated; points to V4 deprecated Jul 24, 2026 deepseek-v4-flash
deepseek-reasoner (alias)Alias name being deprecated; points to V4 deprecated Jul 24, 2026 deepseek-v4-pro

In-depth: migrating off a pinned model

OpenAI gpt-3.5-turbo-0301 Deprecation: Dates & Replacement

This snapshot is retired

gpt-3.5-turbo-0301 is a pinned snapshot that has been deprecated and shut down. Requests to it fail. Move pinned references to a current model — gpt-4o-mini is the recommended replacement: cheaper, larger context, and more capable.

If you hard-coded gpt-3.5-turbo-0301 (or another dated 0301/0613-style snapshot) years ago and never looked back, this is the page to act on. Dated snapshots exist so behavior stays frozen for reproducibility — but that freeze is also why they get retired on a schedule, and a retired snapshot returns an error rather than silently upgrading you to something newer.

The facts

gpt-3.5-turbo-0301 deprecation summary (verify on OpenAI's deprecations page).
FieldValue
Model gpt-3.5-turbo-0301
Type Pinned dated snapshot
Status Deprecated / retired — requests fail
Recommended replacement gpt-4o-mini
Why move Lower cost, larger context, stronger quality

Why pinned snapshots are a liability

Pinning a dated snapshot is the right call when you need byte-stable behavior (regression testing, reproducible research, strict change control). But it transfers a maintenance obligation to you: every pinned snapshot has a sunset date, and when it arrives your app breaks unless you’ve migrated. Teams that get burned are the ones who pinned once, shipped, and never set a reminder.

The fix is process, not just a one-time swap: own every model string, and either track its deprecation date or use a rolling alias.

What changes when you move to gpt-4o-mini

  • Lower cost. gpt-4o-mini is priced well below the legacy 3.5 snapshots — see current rates in OpenAI vs Anthropic pricing.
  • Larger context window and stronger instruction-following; you may be able to simplify prompts written to work around 3.5’s limits.
  • Higher rate limits on the newer mini model — see the OpenAI rate limits reference.
  • Behavioral differences. Output style, formatting, and verbosity shift. Re-test prompts and any output parsers rather than assuming parity.

How to find every pinned reference

Before you change anything, find all the places the old string hides — config, env files, prompt templates, and tests:

Shell — grep the codebase for legacy snapshots
# Find the exact string and other risky dated snapshots in one pass.
grep -rIn -E "gpt-3\.5-turbo(-0301|-0613)?|text-davinci|gpt-4-0314|gpt-4-0613" \
--include="*.{py,js,ts,json,yaml,yml,env,toml}" .

How to migrate

Centralize the model name so the next deprecation is a one-line change, not a scavenger hunt:

Python — one source of truth for the model
# config.py — pin once, swap once.
CHAT_MODEL = "gpt-4o-mini"   # was: "gpt-3.5-turbo-0301"

# app.py
from openai import OpenAI
from config import CHAT_MODEL

client = OpenAI()
resp = client.chat.completions.create(
  model=CHAT_MODEL,
  messages=[{"role": "user", "content": "Hello"}],
)
print(resp.choices[0].message.content)
JS — same idea, centralized constant
// config.js
export const CHAT_MODEL = "gpt-4o-mini"; // was: "gpt-3.5-turbo-0301"

// app.js
import OpenAI from "openai";
import { CHAT_MODEL } from "./config.js";

const client = new OpenAI();
const resp = await client.chat.completions.create({
model: CHAT_MODEL,
messages: [{ role: "user", content: "Hello" }],
});
console.log(resp.choices[0].message.content);
Prefer aliases to dated snapshots

Unless you have a strict reproducibility reason to freeze behavior, point at the rolling alias (gpt-4o-mini) rather than a dated snapshot, so you don’t have to chase the next deprecation. If you do pin a snapshot, set a calendar reminder tied to its announced sunset date and keep it in your centralized config.

Build a deprecation habit

  • Grep on a schedule. Add the grep above to CI so a newly-pinned legacy model fails the build.
  • Centralize model strings. One constant per role (chat, embeddings, vision) makes migrations trivial.
  • Watch the source of truth. Subscribe to or periodically check the provider’s official deprecations page; dates can shift.
  • Re-run evals on swap. Treat a model change like any dependency upgrade — diff outputs on your eval set before shipping.

What to do next

  1. Grep your codebase for the old string and other risky snapshots (command above).
  2. Centralize the model name in one config constant.
  3. Swap to gpt-4o-mini and re-test prompts and parsers on your eval set.
  4. Evaluating alternatives at the same time? Compare with the OpenAI vs Anthropic pricing guide, and if you’re considering a provider change, see the OpenAI → Anthropic migration guide.

Frequently asked questions

What replaces gpt-3.5-turbo-0301?
OpenAI recommends moving to a current model; gpt-4o-mini is the practical replacement — cheaper, larger context, and stronger quality than the legacy 3.5 snapshot, with higher rate limits.
Will my requests to the old snapshot still work?
No. Once a snapshot is retired, requests to it fail. That's why pinned dated model strings need an owner and a migration plan before the sunset date rather than after an outage.
Should I pin a snapshot or use the rolling alias?
Use the rolling alias (e.g. gpt-4o-mini) unless you need frozen behavior for reproducibility or strict change control. If you must pin, track the announced deprecation date and keep the string in centralized config so migrating is a one-line change.
How do I find every place a deprecated model is used?
Grep the whole repo — including config, env files, prompt templates, and tests — for the exact string and other risky dated snapshots. Adding that grep to CI prevents new pinned references from sneaking back in.
Is gpt-4o-mini cheaper than gpt-3.5-turbo?
Yes — gpt-4o-mini is priced below the legacy 3.5 snapshots while offering more capability and a larger context window. Confirm current per-token rates on OpenAI's pricing page, since pricing changes over time.