Skip to content

fix(cost-map): add OpenAI TTS and GPT-5.x deprecation dates - #44175

Merged
kerry-berri merged 2 commits into
mainfrom
litellm_model_registry_audit_1790946691
Oct 2, 2026
Merged

kerry-berri merged 2 commits into
mainfrom
litellm_model_registry_audit_1790946691

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

TLDR

Problem this solves:

How it solves it:

  • Adds deprecation_date 2027-01-06 to four OpenAI TTS models
  • Adds deprecation_date 2027-04-01 to gpt-5.1, gpt-5.3-codex, gpt-5.4-nano
  • Same field-level edit in both registry files, no other field touched

User Flow

Before: a proxy admin checking upcoming retirements sees nothing for models OpenAI is shutting down

  1. The admin has tts-1 and gpt-5.1 deployments on the proxy
  2. They call GET https://litellm-domain/model/info and read deprecation_date
  3. Both models come back with no deprecation_date, so no retirement warning is possible

After: the same models carry OpenAI's announced shutdown dates

  1. The admin has the same tts-1 and gpt-5.1 deployments
  2. They call the same GET https://litellm-domain/model/info
  3. tts-1 shows deprecation_date 2027-01-06 and gpt-5.1 shows 2027-04-01

Relevant issues

Supports #26900

Registry changes

Source for every value: the raw HTML of https://platform.openai.com/docs/deprecations, fetched 2026-10-02 and read row by row from the <table> cells, cross-checked against the r.jina.ai copy of the same page

Section "2026-10-01: GPT-5.3-Codex, GPT-5.1, GPT-5.4-Nano" says the models "will be removed from the API on April 1, 2027". Raw rows: Apr 1, 2027 | gpt-5.3-codex | gpt-6-sol, Apr 1, 2027 | gpt-5.4-nano | gpt-6-luna, Apr 1, 2027 | gpt-5.1 | gpt-6-sol

Key Before After
gpt-5.1 none 2027-04-01
gpt-5.3-codex none 2027-04-01
gpt-5.4-nano none 2027-04-01

The text-to-speech section says the models "will be removed from the API on January 6, 2027". Raw rows: Jan 6, 2027 | tts-1 | gpt-realtime-2.1-mini, Jan 6, 2027 | tts-1-hd | gpt-realtime-2.1-mini, Jan 6, 2027 | gpt-4o-mini-tts-2025-03-20 | gpt-realtime-2.1-mini, Jan 6, 2027 | gpt-4o-mini-tts-2025-12-15 | gpt-realtime-2.1-mini

Key Before After
tts-1 none 2027-01-06
tts-1-hd none 2027-01-06
gpt-4o-mini-tts-2025-03-20 none 2027-01-06
gpt-4o-mini-tts-2025-12-15 none 2027-01-06

Only the exact model names in the table were dated. The dated snapshots gpt-5.1-2025-11-13 and gpt-5.4-nano-2026-03-17, plus tts-1-1106, tts-1-hd-1106 and the gpt-4o-mini-tts alias, are not named on the page and stay undated. Azure rows follow the Azure retirement schedule, not this page, and were not changed

Absorbed from other open PRs

This is the rolling registry PR. No open Devin registry PR existed, so this run opened it. Open PRs touching the registry were diffed field by field against their own merge base and re-checked against current official sources

Absorbed: #44113 (four OpenAI TTS deprecation_date values). Every value matches the raw OpenAI deprecations table above, and it is the TTS half of this PR. Its author is credited with a Co-authored-by trailer

Dropped as unverifiable or already covered (data-only PRs): #43879 (moonshot/kimi-k2.5 already on main, 8192 output cap not in Moonshot docs), #43753 (https://api-docs.deepseek.com/quick_start/pricing has no deepseek-v3 row), #43859 (tinker is not a LiteLLM provider), #41775 (Together's deprecations page is a redirect table with no retirement dates), #41376 and #40368 (target rows are no longer on main)

Left alone because they add a provider or change code or CI behavior and only touch the JSON as part of that: #44167 (ScaleDown provider set in litellm/__init__.py), #40755 (pgsgrove provider set), #43457, #43390 and the remaining non data-only PRs

ci_cd/cost_map_pins.json is not edited and no pinned capability flag is touched

Checked and not changed

Anthropic: https://api.anthropic.com/v1/models context and output limits match every listed model. https://docs.anthropic.com/en/docs/about-claude/model-deprecations retired and deprecated rows already match (claude-sonnet-4-5-20250929 2026-11-30) or the keys were removed. Active models only carry "Not sooner than" tentative dates, which are not announced retirements, so they stay undated. Pricing rows on https://docs.anthropic.com/en/docs/about-claude/pricing match

Mistral: every row in the deprecated table on https://docs.mistral.ai/getting-started/models/models_overview that has a registry key already carries its retirement date (mistral/zai-glm-5-2 2026-10-31, mistral/labs-leanstral-1-5 and mistral/mistral-ocr-4-0 2026-09-30)

Azure: https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule differs only on rows where the later Azure Models API date was kept on purpose (#44072)

DeepSeek (https://api-docs.deepseek.com/quick_start/pricing) peak, off-peak, cache and vision values for deepseek-flash and deepseek-v4-pro match. Gemini (https://ai.google.dev/gemini-api/docs/deprecations) and Groq (https://console.groq.com/docs/deprecations) deprecation tables match. OpenAI pricing rows on https://developers.openai.com/api/docs/pricing all have registry keys. Cohere (https://docs.cohere.com/docs/models) limits match within the docs' rounding

Bedrock lifecycle, xAI models, Cohere pricing and Fireworks per-model pricing pages serve no static table rows in raw HTML, so nothing was changed from them

Pre-Submission checklist

  • The handful of test files covering my change pass locally
  • My PR's scope is as isolated as possible; it only solves 1 specific problem

Screenshots / Proof of Fix

Data-only change, so no live proxy call changes cost. Checks run at 83bb4c2

  1. sha256sum model_prices_and_context_window.json litellm/model_prices_and_context_window_backup.json shows both files at 6a6c5f26c342...
  2. python3 ci_cd/check_files_match.py passes
  3. Duplicate-key load with object_pairs_hook passes
  4. uv run --no-sync python ci_cd/generate_model_prices_schema.py --check reports the schema in sync and the registry valid
  5. LITELLM_LOCAL_MODEL_COST_MAP=True uv run --no-sync pytest tests/unit/test_model_prices_schema.py tests/unit/test_cost_map_guard.py tests/unit/test_utils.py::test_aaamodel_prices_and_context_window_json_is_valid gives 87 passed

Type

🐛 Bug Fix

Link to Devin session: https://app.devin.ai/sessions/548871a8e96447f5948657fe3e5ec0d3
Open in Devin Desktop: https://app.devin.ai/desktop/session/548871a8e96447f5948657fe3e5ec0d3?variant=devin

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

I'll fix CI failures and address comments from users with write access. I'll skip comments containing "(aside)".

  • Disable automatic comment, CI, and merge conflict monitoring

@CLAassistant

Copy link
Copy Markdown

CLA assistant check
Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.
You have signed the CLA already but the status is still pending? Let us recheck it.

Co-authored-by: Ben Langfeld <210221+benlangfeld@users.noreply.github.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@greptile-apps

greptile-apps Bot commented Oct 2, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[Medium risk] Updates model metadata for pricing and deprecation tracking.

The PR appears safe to merge; no actionable issue was identified in the changed registry entries.

Summary

Adds announced OpenAI retirement dates for four TTS models and three GPT-5.x models in both copies of the model registry.

  • The added values follow the existing date format and are placed on the intended model entries.
  • The two registry files receive matching changes.

Reviews (1) · Last reviewed commit: "fix(cost-map): add OpenAI TTS and GPT-5...."

@codecov

codecov Bot commented Oct 2, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@codspeed

codspeed Bot commented Oct 2, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 31 untouched benchmarks


Comparing litellm_model_registry_audit_1790946691 (9fd5996) with main (fe9b6fd)1

Open in CodSpeed

Footnotes

  1. No successful run was found on main (615ed79) during the generation of this report, so fe9b6fd was used instead as the comparison base. There might be some changes unrelated to this pull request in this report. ↩

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant