Three Providers, Same 72 Hours

Claude Mythos Preview retires today, five OpenAI GPT-5 model families in two days, and DeepSeek's deepseek-chat and deepseek-reasoner the day after. Three companies, zero coordination, one 72-hour window, and it's the fourth time in 2026 alone that Anthropic has retired a model name. Every hardcoded model string pointed at any of them is now a countdown timer. Here's exactly what's retiring, why the pace isn't slowing down, and the one architectural fix that turns the next deprecation into a config change instead of a fire drill.

Published 2026-07-21 by Dor Amir on the Nadir blog.

Filed under Pricing & Models.

Three companies, one 72-hour window

Today, July 21, 2026, Anthropic retires claude-mythos-preview. Source: Anthropic, "Model deprecations". Anyone still calling that name is migrated to claude-mythos-5 if their code was already updated to expect it; if not, the request fails.

In two days, July 23, 2026, OpenAI retires five model families at once: gpt-5-chat-latest, gpt-5-codex, gpt-5.1-chat-latest, the gpt-5.1-codex variants, and the o3-deep-research family, plus two lingering 2025 previews, computer-use-preview-2025-03-11 and gpt-4o-mini-search-preview-2025-03-11. Source: OpenAI, "Deprecations". Traffic on those names shifts to gpt-5.5 or gpt-5.4-mini.

The day after that, July 24, 2026, DeepSeek retires deepseek-chat and deepseek-reasoner, the two names that have anchored a large share of the "cheap frontier alternative" traffic on this blog since DeepSeek V4 shipped in May. Source: DeepSeek API, Change Log. Since April 24, both names have quietly resolved to DeepSeek-V4-Flash behind the scenes, deepseek-chat in non-thinking mode, deepseek-reasoner in thinking mode, a three-month grace window most teams never noticed because nothing broke. On the 24th, that alias disappears. Only deepseek-v4-flash and deepseek-v4-pro answer after that.

None of these three companies coordinated with each other. There's no shared industry calendar, no joint migration window. It's just what the current pace of model releases looks like when it happens to land on the same three days.

This isn't a one-off. It's the fourth time this year for Anthropic alone

The 72 hours starting today: every Claude, GPT, and DeepSeek model-name retirement, June through October 2026, with three landing in the same week
The 72 hours starting today: every Claude, GPT, and DeepSeek model-name retirement, June through October 2026, with three landing in the same week

Pull Anthropic's own deprecation dates together and the pattern is hard to miss. Claude 3.7 Sonnet and Claude 3.5 Haiku both retired February 19, 2026. Claude 3 Haiku retired April 20. Claude Sonnet 4 and Claude Opus 4 retired June 15. Claude Mythos Preview retires today. Claude Opus 4.1 is already deprecated and retires August 5. Source: Anthropic, "Model deprecations". That's six model names off the API on four separate dates, from one vendor, in seven months.

Layer OpenAI and DeepSeek's dates on top and the next four months alone carry eight scheduled retirements across three vendors: this week's three, then Claude Opus 4.1 on August 5, the Assistants API removed entirely on August 26, the Sora 2 video model retiring September 24, and a second GPT-5 snapshot wave on October 23. Source: OpenAI, "Deprecations".

Anthropic's own policy commits to "at least 60 days' notice before model retirement for publicly released models." Source: Anthropic, "Model deprecations". That sounds like real slack until you count how often the notice period itself starts: four times in 2026 so far, for Anthropic alone. A 60-day window isn't much room when a new one opens roughly every seven weeks.

What's actually retiring this week

RetiringReplaces toEffectiveProvider
claude-mythos-previewclaude-mythos-5Jul 21, 2026Anthropic
gpt-5-chat-latest, gpt-5-codexgpt-5.5Jul 23, 2026OpenAI
gpt-5.1-chat-latest, gpt-5.1-codex*gpt-5.5Jul 23, 2026OpenAI
o3-deep-research familygpt-5.5-proJul 23, 2026OpenAI
computer-use-preview-2025-03-11gpt-5.4-miniJul 23, 2026OpenAI
gpt-4o-mini-search-preview-2025-03-11gpt-5.4-miniJul 23, 2026OpenAI
deepseek-chatdeepseek-v4-flash (or -pro)Jul 24, 2026DeepSeek
deepseek-reasonerdeepseek-v4-flash (or -pro)Jul 24, 2026DeepSeek

Source: Anthropic, "Model deprecations"; Source: OpenAI, "Deprecations"; Source: DeepSeek API, Change Log.

Worth flagging: none of these are downgrades. The replacement tier is cheaper than what it's replacing, not more expensive. deepseek-v4-flash runs $0.14 per million input tokens on a cache miss and $0.28 output, with cache hits down at $0.0028; deepseek-v4-pro runs $0.435 input / $0.87 output for the higher-capability tier, both on a 1M-token context window. Source: DeepSeek API, Pricing. The destination is fine. The problem is that the address changed and not every caller got the memo.

Why a literal model string is the actual bug

None of this is hard to fix once you know it's broken. The failure mode is that most teams don't know until it's broken, because a model-name string doesn't live in one place. It's in application code, obviously, but it's also in a CI pipeline's eval harness, a Terraform variable nobody has touched since the initial provisioning PR, a serverless function that hasn't been redeployed since March, a notebook a data scientist reruns quarterly, and a batch config that only runs on the first of the month.

The evidence this is a real, common failure isn't theoretical, it's the volume of independent migration guides that appeared in the run-up to this week: WaveSpeed, Enterprise DNA, and multiple community "what breaks and how to fix it" checklists for the DeepSeek migration alone, on top of DeepSeek's own change log. Source: DeepSeek V4 API Migration Guide, dev.to. That volume of independently-written guidance is what a deadline with real blast radius looks like.

A model string is not a fact about your product. It's an operational dependency with an expiration date that some other company controls and can move on 60 days' notice. Treating it like a constant is the bug.

The fix that doesn't care what date it is

The pattern this blog keeps returning to, routing by request instead of hardcoding a model per session or per call, has a side effect that's easy to undersell: a router that resolves model="auto", or a logical alias you define, against live provider state can absorb a deprecation the moment it's announced, in one place, instead of at every call site that still has the old string baked in.

import openai

client = openai.OpenAI(
    base_url="https://api.getnadir.com/v1",
    api_key="YOUR_NADIR_KEY",
)

response = client.chat.completions.create(
    model="auto",  # Nadir resolves this against what's live today;
                    # deepseek-chat retiring on the 24th is Nadir's
                    # routing config to update, not a 404 in your code
    messages=[{"role": "user", "content": task_prompt}],
)

The response metadata, model and nadir_metadata.cost.total_cost_usd, still report exactly which underlying model answered each call, so nothing about observability gets worse. You just stop being the one who has to notice a changelog entry and grep your own codebase for a string before it 404s in production.

What to actually do before Friday

  1. Grep now, don't wait for the error. Search application code, CI configs, and infrastructure-as-code for the literal strings above: deepseek-chat, deepseek-reasoner, gpt-5-chat-latest, gpt-5-codex, gpt-5.1-chat-latest, o3-deep-research, computer-use-preview-2025-03-11, claude-mythos-preview. Check baked container images too, a string in a six-month-old Docker layer is invisible to a source grep.
  2. Check eval harnesses and notebooks separately. They're the least-reviewed code in most repos and the most likely place a deprecated model string survives unnoticed for months after the "real" migration is done.
  3. Test the replacement before you flip it, not after. A model rename isn't always quality-neutral even when a vendor implies it is. The same qualification discipline that applies to a brand-new model swap applies here: replay real prompts, score blind against the old model's output, segment by difficulty before trusting one aggregate number.
  4. Put the next three dates on a calendar now. August 5 (Claude Opus 4.1), August 26 (OpenAI's Assistants API removed), September 24 (Sora 2 retires). None of them are surprises today. They will be again, in a few weeks, for whichever team didn't write them down.
  5. Stop treating the model name as a constant. Route through a logical alias once, and every future deprecation on this list becomes a line in a routing config instead of a grep-and-pray exercise across a codebase nobody fully remembers.

Three companies picked the same 72 hours to retire model names a good chunk of the industry hardcoded a year ago. The pace isn't slowing down, Meta, DeepSeek, and Anthropic have each shipped a new frontier-adjacent model in the last few months alone, and every one of them starts its own deprecation clock the day it ships. Start free and let the router absorb the next one, or read the complete guide to cutting LLM API costs for what else is on the table once the model string stops being your problem.

More on pricing & models

What Nadir is

Nadir is an LLM router. Nadir sends each prompt to the cheapest model that can handle it. A small decision model reads each prompt against your model menu and picks the lowest-cost model it expects to handle it. When the decision model is uncertain or unavailable, the request goes to the strongest model on the menu. The routing step makes no call to your model provider.

Nadir runs two ways. The decision API returns a model, reasoning-effort, cache, context, and policy recommendation without calling a model provider, beside the gateway you already run. That is how a shadow-mode evaluation works, and its projected savings stay advisory. The OpenAI compatible managed proxy executes the route, and migration is a two-line change: point the base URL at api.getnadir.com and set model to auto. On that path an optional verifier can score a complete non-streaming answer and escalate to a stronger model when it misses the configured bar. Streaming bypasses post-generation verification. BYOK is supported on every tier.

For coding agents, Nadir Auto is a terminal launcher for Claude Code or Codex that asks Nadir for the main-session model before each turn, with your configured model as the fallback and cost ceiling. Delegation integrations for Claude Code, Codex, or Cursor instead recommend a model tier for subagent work, and the agent decides; the Claude plugin can also move a main-thread turn to Haiku when Nadir's cache check prices it cheaper, unless its switch_main_model option is off. Either way inference runs on your own provider account, so Nadir holds no provider keys on that path.

What the numbers are, and what they are not

Nadir publishes each evaluation with its scope. On checkable code, run-check-escalate solved 392 of 395 common HumanEval and MBPP problems (99.2%), graded by running the canonical tests; that applies only to tasks with runnable deterministic tests. Nadir-Tumbler posts an arena_score of 72.3 on RouterArena's public scorer, 5th of 23 routers, which measures the routing decision on RouterArena's own model pool. A reference-assisted RouterBench evaluation over 11,420 held-out triples produced a 60% lower projected cost than always-Opus with about 98% retained quality and a 1.7% catastrophic-route rate. That experiment gave the verifier the expensive-model reference answer, which production does not have, so it is a research ceiling and not the deployed path.

None of these is a production guarantee, a universal savings rate, or a forecast for any particular workload. Customer savings are reported from measured execution against a declared baseline, and customer quality only from outcome-labelled traffic. Projected savings and realized savings are separate artifacts and are never blended.

Design-partner program

Three rungs, picked by risk appetite. Rung 0 Shadow runs advisory decision calls alongside live traffic and returns a projected receipt, with nothing in the request path changed. Rung 1 Hosted is the two-line swap on a production slice and returns a realized receipt. Rung 2 On-prem is a supervised six-week proof of concept inside the partner's VPC, where no prompt, response, or usage reaches Nadir. The commitments are the same at every rung. Apply for a rung directly: Rung 0 Shadow, Rung 1 Hosted, or Rung 2 On-prem. Not sure which fits? Start at getnadir.com/contact/?reason=design-partner.

Licensing

NadirClaw is the self-hosted core, source-available under the PolyForm Noncommercial License. Source-available is the correct label; NadirClaw is not open source. Nadir Route's hosted plan has no base fee and charges a variable fee only on measured savings from requests Nadir executed.

Pages on this site

Machine-readable summaries of this site: llms.txt and llms-full.txt.