Skip to content

fix(models): registry audit 2026-09-01: openai realtime and long-context tiers, mistral aliases, voyage, xai, fireworks, together, scaleway, azure ai, govcloud, azure gov, cloudflare whisper, deprecation dates - #39170

Merged
mateo-berri merged 8 commits into
litellm_internal_stagingfrom
litellm_registry_audit_2026_09_01
Sep 2, 2026

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

TLDR

Problem this solves:

  • OpenAI realtime entries carry old limits and $16 output price
  • Mistral magistral-*-latest and mistral-medium price retired models
  • Voyage rerank-3, xAI grok-build-latest, Fireworks GLM 5.3 Flash, Inkling missing
  • GPT-5.4 / 5.5 / 5.6 lack flex and priority rates above 272k
  • Together Qwen3.8 overpriced 25%, Scaleway GLM 5.2 and DeepSeek 0731 missing
  • Azure AI DeepSeek and Kimi lack cache pricing and retirement dates
  • GovCloud Bedrock, Bedrock Mantle, Azure Government lack current models, and the us-gov. Claude geo profiles bill at the commercial rate
  • Cloudflare Whisper transcription models missing
  • Six open registry PRs overlap with no single place to land

How it solves it:

User Flow

Before: a team routing Together Qwen3.8, GPT-5.6 Luna priority long prompts, Cloudflare Whisper or GovCloud Bedrock through the proxy gets wrong or zero spend, and nothing tells them Kimi K2.7 Code retires in a month

  1. The proxy admin adds together_ai/Qwen/Qwen3.8-2.4T-A95B, openai/gpt-5.6-luna, azure_ai/kimi-k2.7-code, azure_ai/MAI-Image-2.5, bedrock/us-gov-west-1/meta.llama3-8b-instruct-v1:0, bedrock/us-gov.anthropic.claude-sonnet-5, azure/us-gov/gpt-5.1 and cloudflare/@cf/openai/whisper to model_list and starts the proxy
  2. A developer sends GET http://localhost:4000/model/deprecations?warn_within_days=60 and the imminent list is empty
  3. They send GET http://localhost:4000/model/info and see qwen3.8 at $2.50 / $6.25 per 1M, kimi-k2.7-code, azure-gov-gpt-5.1 and cf-whisper at $0, gov-llama3-8b output at $2.65 per 1M, gov-claude-sonnet-5-geo at the commercial $2.00 / $10.00, gpt-5.6-luna with no priority rate above 272k
  4. They send POST http://localhost:4000/v1/chat/completions with "model": "qwen3.8" and get 200 with x-litellm-response-cost: 0.000245
  5. They send a ~290k token prompt with "service_tier": "priority" to POST http://localhost:4000/v1/chat/completions, POST http://localhost:4000/v1/responses and POST http://localhost:4000/v1/messages for gpt-5.6-luna; each returns 200 with x-litellm-response-cost around 0.01174, the standard priority rate, half what OpenAI bills above 272k

After: the same calls return the provider's real prices, and the retirement dates show up

  1. The proxy admin uses the same model_list and starts the proxy
  2. GET http://localhost:4000/model/deprecations?warn_within_days=60 returns imminent: [mai-image-2.5 2026-10-01, kimi-k2.7-code 2026-10-03]
  3. GET http://localhost:4000/model/info shows qwen3.8 at $2.00 / $6.00 per 1M, kimi-k2.7-code at $0.95 / $4.00, azure-gov-gpt-5.1 at $1.71875 / $13.75, cf-whisper at 7.5e-06 per second, gov-llama3-8b output at $0.60 per 1M, gov-claude-sonnet-5-geo at $2.40 / $12.00, gpt-5.6-luna with priority rates above 272k
  4. POST http://localhost:4000/v1/chat/completions with "model": "qwen3.8" returns 200 with x-litellm-response-cost: 0.000212
  5. The same ~290k priority prompt on all three endpoints returns 200 with x-litellm-response-cost around 0.02345, the priority long-context rate

Changes by provider

Every number was read from the provider's raw HTML, JSON pricing feed or model API, not from a summarizer

OpenAI

Sources: https://developers.openai.com/api/docs/pricing, https://developers.openai.com/api/docs/guides/fast-mode, https://developers.openai.com/api/docs/guides/flex-processing, model pages for gpt-realtime-2, gpt-realtime-2.1-mini and gpt-realtime-mini

 "gpt-realtime-2": {
+  "cache_read_input_audio_token_cost": 4e-07,
-  "max_input_tokens": 32000,      "max_output_tokens": 4096,  "max_tokens": 4096,
+  "max_input_tokens": 128000,     "max_output_tokens": 32000, "max_tokens": 32000,
-  "output_cost_per_token": 1.6e-05,
+  "output_cost_per_token": 2.4e-05,
 "gpt-realtime-2.1-mini": {
-  "max_output_tokens": 4096,  "max_tokens": 4096,
+  "max_output_tokens": 32000, "max_tokens": 32000,
 "gpt-realtime-mini": {
-  "max_input_tokens": 128000,
+  "max_input_tokens": 32000,

Long-context service tiers (absorbed from #39245). The pricing page lists a separate row for prompts above 272k tokens on each tier. Priority rates above 272k are added for gpt-5.6, gpt-5.6-sol, gpt-5.6-terra, gpt-5.6-luna; flex rates above 272k for gpt-5.5, gpt-5.5-2026-04-23, gpt-5.4, gpt-5.4-2026-03-05, gpt-5.4-pro, gpt-5.4-pro-2026-03-05

 "gpt-5.6": {
+  "input_cost_per_token_above_272k_tokens_priority": 1.6e-05,
+  "cache_read_input_token_cost_above_272k_tokens_priority": 1.6e-06,
+  "cache_creation_input_token_cost_above_272k_tokens_priority": 2e-05,
+  "output_cost_per_token_above_272k_tokens_priority": 6e-05,
 "gpt-5.6-luna": {
+  "input_cost_per_token_above_272k_tokens_priority": 8e-07,
+  "cache_read_input_token_cost_above_272k_tokens_priority": 8e-08,
+  "cache_creation_input_token_cost_above_272k_tokens_priority": 1e-06,
+  "output_cost_per_token_above_272k_tokens_priority": 3.6e-06,
 "gpt-5.4": {
+  "input_cost_per_token_above_272k_tokens_flex": 2.5e-06,
+  "cache_read_input_token_cost_above_272k_tokens_flex": 2.5e-07,
+  "output_cost_per_token_above_272k_tokens_flex": 1.125e-05,

Tests: tests/test_litellm/test_openai_service_tier_long_context_pricing.py (new, from #39245) pins the tier fields, the flex and priority ratios, root and backup parity, and the cost at ~300k prompt tokens. test_llm_cost_calc_utils.py gets the updated cost-field count (27) and the fast-tier rates that now exist

Mistral

Sources: GET https://api.mistral.ai/v1/models, https://docs.mistral.ai/models/model-cards/mistral-medium-3-5-26-04, https://docs.mistral.ai/models/model-cards/mistral-small-4-0-26-03

Mistral's model API lists magistral-medium-latest and mistral-medium as aliases of mistral-medium-latest (Medium 3.5), and magistral-small-latest as an alias of mistral-small-2603 (Small 4). Magistral 1.2 retired on 2026-07-31. The three alias entries are now copies of the entries they resolve to

 "mistral/magistral-medium-latest": {
-  "input_cost_per_token": 2e-06,  "output_cost_per_token": 5e-06,  "max_input_tokens": 40000,
+  "input_cost_per_token": 1.5e-06, "output_cost_per_token": 7.5e-06, "max_input_tokens": 262144, "cache_read_input_token_cost": 1.5e-07, "supports_vision": true,
 "mistral/mistral-medium": {
-  "input_cost_per_token": 2.7e-06, "output_cost_per_token": 8.1e-06, "max_input_tokens": 32000, "max_output_tokens": 8191,
+  "input_cost_per_token": 1.5e-06, "output_cost_per_token": 7.5e-06, "max_input_tokens": 262144, "max_output_tokens": 262144, "supports_function_calling": true, "supports_reasoning": true, "supports_vision": true,
 "mistral/magistral-small-latest": {
-  "input_cost_per_token": 5e-07,  "output_cost_per_token": 1.5e-06, "max_input_tokens": 40000,
+  "input_cost_per_token": 1.5e-07, "output_cost_per_token": 6e-07,  "max_input_tokens": 262144, "cache_read_input_token_cost": 1.5e-08, "supports_vision": true,

Voyage, xAI, Fireworks

Sources: https://docs.voyageai.com/docs/pricing and https://docs.voyageai.com/docs/reranker (rerank-3 $0.05, rerank-3-lite $0.02 per 1M, 32k context); GET https://api.x.ai/v1/language-models (grok-build-latest aliases grok-4.5) with prices at https://docs.x.ai/developers/models; https://docs.fireworks.ai/serverless/pricing (GLM 5.3 Flash $0.15 / $0.03 cached / $0.50, Inkling $1.00 / $0.17 cached / $4.05 per 1M)

New entries voyage/rerank-3, voyage/rerank-3-lite, xai/grok-build-latest (copy of xai/grok-4.5), fireworks_ai/accounts/fireworks/models/glm-5p3-flash, fireworks_ai/accounts/fireworks/models/inkling

Together (absorbed from #39278)

Source: https://docs.together.ai/docs/serverless-models, Qwen3.8 2.4T-A95B row reads $2.00 input, $6.00 output, $0.25 cached input per 1M

 "together_ai/Qwen/Qwen3.8-2.4T-A95B": {
-  "input_cost_per_token": 2.5e-06, "output_cost_per_token": 6.25e-06, "cache_read_input_token_cost": 5e-07,
+  "input_cost_per_token": 2e-06,   "output_cost_per_token": 6e-06,    "cache_read_input_token_cost": 2.5e-07,

Scaleway (absorbed from #38502)

Sources: https://www.scaleway.com/en/pricing/model-as-a-service/ (raw price table) and https://www.scaleway.com/en/docs/generative-apis/reference-content/supported-models/ (context, capabilities)

New scaleway/glm-5.2 ($1.80 / $5.50 per 1M) and scaleway/deepseek-v4-flash-0731 ($0.40 / $0.80, $0.08 cached input per 1M). The source PR only edited the root file; the backup copy is updated here too

Azure AI Foundry (absorbed from #38976)

Sources: https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/deepseek/ and https://azure.microsoft.com/en-us/pricing/details/ai-foundry-models/kimi/ (the embedded pricing JSON, read row by row), https://ai.azure.com/catalog/models/Kimi-K2.7-Code, https://learn.microsoft.com/en-us/azure/foundry/openai/concepts/model-retirement-schedule

 "azure_ai/deepseek-v4-pro":   { + "cache_read_input_token_cost": 1.45e-07, + "supports_prompt_caching": true }
 "azure_ai/deepseek-v4-flash": { + "cache_read_input_token_cost": 2.8e-08,  + "supports_prompt_caching": true }
 "azure_ai/deepseek-v4-flash-0731": {
-  "input_cost_per_token": 1.9e-07, "output_cost_per_token": 5.1e-07,  "cache_read_input_token_cost": 2.8e-08,
+  "input_cost_per_token": 4.4e-07, "output_cost_per_token": 1.32e-06, "cache_read_input_token_cost": 1.4e-08,
 "azure_ai/kimi-k2.5": { + "cache_read_input_token_cost": 1e-07,   + "supports_prompt_caching": true, source -> kimi pricing page }
 "azure_ai/kimi-k2.6": { + "cache_read_input_token_cost": 1.6e-07, + "supports_prompt_caching": true, source -> kimi pricing page }
+"azure_ai/kimi-k2.7-code": { "input_cost_per_token": 9.5e-07, "output_cost_per_token": 4e-06, "cache_read_input_token_cost": 1.9e-07, "deprecation_date": "2026-10-03", ... }
 "azure_ai/MAI-Image-2.5":       { + "deprecation_date": "2026-10-01" }
 "azure_ai/MAI-Image-2.5-Flash": { + "deprecation_date": "2026-10-01" }

The DeepSeek pricing JSON has distinct 0731 rows, which is where the corrected deepseek-v4-flash-0731 prices come from. The source PR added a second key azure_ai/DeepSeek-V4-Flash-0731; the lowercase key already exists on the base branch, so the existing key is corrected instead of adding a duplicate. The three retirement dates are the rows in the raw retirement schedule table (Kimi K2.7 Code 2026-10-03, MAI Image 2.5 and 2.5 Flash 2026-10-01)

AWS GovCloud Bedrock and Bedrock Mantle (absorbed from #38789)

Sources: https://aws.amazon.com/bedrock/pricing/ (GovCloud tab, Claude rows), the AWS price list offer files for us-gov-west-1 and us-gov-east-1 (usage types prefixed UGW1- / UGE1-, converted from per-1K and per-1M units), https://docs.aws.amazon.com/bedrock/latest/userguide/models-region-compatibility.html, and the Claude Sonnet 5 and Opus 4.8 model cards (https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-5.html, https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-4-8.html)

New bedrock/us-gov-{west,east}-1/ entries for anthropic.claude-sonnet-5 ($2.40 / $12.00, cache write $3.00 5m and $4.80 1h, cache read $0.24 per 1M), anthropic.claude-opus-4-8 ($6.00 / $30.00, $7.50 / $12.00 cache write, $0.60 cache read), nvidia.nemotron-nano-3-30b, nvidia.nemotron-nano-12b-v2, nvidia.nemotron-super-3-120b, openai.gpt-oss-20b-1:0, openai.gpt-oss-120b-1:0. All 14 keys are appended to whitelisted_bedrock_models.txt

 "bedrock/us-gov-west-1/meta.llama3-8b-instruct-v1:0": {
-  "output_cost_per_token": 2.65e-06,
+  "output_cost_per_token": 6e-07,

New us-gov.anthropic.claude-sonnet-5 and us-gov.anthropic.claude-opus-4-8 (bedrock_converse) at the same GovCloud rates. The model cards' "Availability using the bedrock-runtime endpoint" table lists us-gov-west-1 and us-gov-east-1 as Geo yes and In-Region no for both models, so the us-gov. geo profile is the id GovCloud callers actually send, and the pricing page's GovCloud "Geo and In-region Cross-region Inference" table prices it the same as in-region. On the base branch those ids fall through to the commercial global entry and bill $2.00 / $10.00 (Sonnet 5) and $5.00 / $25.00 (Opus 4.8), 20% under the GovCloud rate

New bedrock_mantle/us-gov-west-1/ entries for openai.gpt-5.6-terra, openai.gpt-5.6-luna (standard plus _above_272k_tokens tiers), openai.gpt-5.4, xai.grok-4.3, and bedrock_mantle/us-gov-east-1/openai.gpt-5.4. Every value is the matching offer-file SKU

Tests: tests/test_litellm/test_bedrock_usgov_pricing.py gains the pinned-value tests from #38789, cut down to the entries that are in this PR, including negative checks that the dropped east keys stay absent, plus a us-gov. key template so the geo profile entries are pinned the same way

Azure Government (absorbed from #38789)

Source: Azure Retail Prices API, serviceName eq 'Foundry Models', regions usgovvirginia / usgovarizona, cross-checked with https://learn.microsoft.com/en-us/azure/azure-government/documentation-government-cognitiveservices

New azure/us-gov/gpt-5.1 ($1.71875 / $13.75, $0.171875 cached per 1M), azure/us-gov/o3-mini ($1.513 / $6.05, $0.757 cached per 1M), azure/us-gov/text-embedding-3-large ($0.163 per 1K), azure/us-gov/text-embedding-3-small ($0.025 per 1K)

Cloudflare Workers AI (absorbed from #38384)

Sources: https://developers.cloudflare.com/workers-ai/models/whisper/ ($0.00045 per audio minute) and https://developers.cloudflare.com/workers-ai/models/whisper-large-v3-turbo/ ($0.00051 per audio minute), consistent with the neuron rates on https://developers.cloudflare.com/workers-ai/platform/pricing/

New cloudflare/@cf/openai/whisper (input_cost_per_second 7.5e-06) and cloudflare/@cf/openai/whisper-large-v3-turbo (8.5e-06), mode audio_transcription. Tests: two whisper cases added to tests/test_litellm/test_cloudflare_workers_ai_model_metadata.py

Dropped as unverifiable

Source PRs

Superseded and closed with a pointer here: #39245 (OpenAI tiers and tests, fully absorbed), #39278 (Together Qwen3.8, fully absorbed), #38502 (Scaleway, fully absorbed), #38789 (GovCloud, the us-gov. Claude geo profiles and Azure Government, verifiable subset absorbed), #38384 (Cloudflare Whisper, two priced models absorbed)

Already closed before this update: #38976 (Azure AI Foundry draft, its values are absorbed here with the source-only edits dropped), #39148 (Claude Fable 5.1, merged, a transformation PR), #39079 (together sync 2026-09-01, on the base branch through #38990)

Left alone: #39242 (Morph) changes litellm/llms/morph/chat/transformation.py, so it is a behavior PR; #38516 (Volcengine) has no verifiable USD source

Checked and deliberately not changed

  • OpenAI gpt-5.6* and Azure copies keep max_input_tokens: 922000. The model pages say 1,050,000 but commit 6bb677d set the 922k cap on purpose, so this needs a human call
  • Mistral codestral-2508 / codestral-latest: model API says 256000 context, model card says 128k. Two official sources disagree, so the value stays
  • xAI: ~10 beta / experimental grok-4.20 aliases not added; max_output_tokens: 500000 on grok-4.5 / 4.6 is not documented by xAI and is left as is
  • Fireworks qwen3p8-2p4t-a95b and deepseek-v4-flash-vision-exp: no price row on the pricing page
  • Cohere Command A Plus / Reasoning / Vision / Translate, Embed 4, Rerank 4, Parse 5: cohere.com/pricing publishes no per-token price for these SKUs
  • Groq enterprise rows are "Contact Sales"; priced rows already match
  • OpenRouter differs from its own /api/v1/models on ~15 entries but is an aggregator, not the provider
  • Anthropic, Gemini, DeepSeek, Perplexity Agent API, Together serverless list, Groq priced rows, xAI prices and tier thresholds all matched, nothing to change

Relevant issues

Supports #26900 (deprecation metadata for /model/deprecations)

Linear ticket

Pre-Submission checklist

  • I have added meaningful tests
  • The handful of test files covering my change pass locally, e.g. uv run pytest tests/test_litellm/<your_test_file>.py -v. Leave the suites (make test-unit-*, make test-unit) to CI: it finishes in ~15 minutes where a laptop takes an hour or more
  • My PR passes all required CI/CD checks (e.g., lint, schema.d.ts sync check, etc.). Every required check passes; only osv-scan (not required) flags pypdf 6.15.0 and tornado 6.5.7 in uv.lock; that file is byte-identical to the base branch and the base fails the same scan
  • My PR's scope is as isolated as possible; it only solves 1 specific problem
  • I have received a Greptile Confidence Score of at least 4/5 before requesting a maintainer review (Greptile reviews automatically once the PR is opened; only comment @greptileai to re-request a review after pushing changes)

Delays in PR merge?

If you're seeing a delay in your PR being merged, ping the LiteLLM Team on Slack (#pr-review).

Screenshots / Proof of Fix

Shared setup: two worktrees, merge base 2ce4e3f on port 23401 and tip 7a35c34 on port 52852, one proxy each with --num_workers 2, PYTHONPATH pointed at its worktree (the boot log prints which litellm/__init__.py loaded), LITELLM_LOCAL_MODEL_COST_MAP=True so each serves its own checkout's registry, and its own Postgres database (lit6696_before / lit6696_after, schema pushed with prisma db push) so the spend rows can be read back. Real calls to Together, xAI, Mistral, Fireworks and OpenAI. The ~290k token prompt (292,870 tokens by tiktoken o200k) is a 1.6 MB text file with "Reply with the single word pong" appended, stored in chat_big.json, responses_big.json and messages_big.json with "service_tier": "priority". The /v1/messages body uses max_tokens: 64 because at 16 the whole budget goes to reasoning and the response carries zero usage on both sides (pre-existing, see the risk section)

model_list:
  - model_name: qwen3.8
    litellm_params: { model: together_ai/Qwen/Qwen3.8-2.4T-A95B, api_key: os.environ/TOGETHER_API_KEY }
  - model_name: gpt-5.6-luna
    litellm_params: { model: openai/gpt-5.6-luna, api_key: os.environ/OPENAI_API_KEY }
  - model_name: gpt-5.4
    litellm_params: { model: openai/gpt-5.4, api_key: os.environ/OPENAI_API_KEY }
  - model_name: grok-build
    litellm_params: { model: xai/grok-build-latest, api_key: os.environ/XAI_API_KEY }
  - model_name: mistral-medium
    litellm_params: { model: mistral/mistral-medium, api_key: os.environ/MISTRAL_API_KEY }
  - model_name: glm-5.3-flash
    litellm_params: { model: fireworks_ai/accounts/fireworks/models/glm-5p3-flash, api_key: os.environ/FIREWORKS_AI_API_KEY }
  - model_name: glm-5.2
    litellm_params: { model: scaleway/glm-5.2, api_key: dummy }
  - model_name: deepseek-v4-flash-0731
    litellm_params: { model: scaleway/deepseek-v4-flash-0731, api_key: dummy }
  - model_name: kimi-k2.7-code
    litellm_params: { model: azure_ai/kimi-k2.7-code, api_key: dummy }
  - model_name: kimi-k2.6
    litellm_params: { model: azure_ai/kimi-k2.6, api_key: dummy }
  - model_name: mai-image-2.5
    litellm_params: { model: azure_ai/MAI-Image-2.5, api_key: dummy }
  - model_name: azure-deepseek-v4-flash-0731
    litellm_params: { model: azure_ai/deepseek-v4-flash-0731, api_key: dummy }
  - model_name: gov-claude-sonnet-5
    litellm_params: { model: bedrock/us-gov-west-1/anthropic.claude-sonnet-5, aws_region_name: us-gov-west-1 }
  - model_name: gov-llama3-8b
    litellm_params: { model: bedrock/us-gov-west-1/meta.llama3-8b-instruct-v1:0, aws_region_name: us-gov-west-1 }
  - model_name: gov-mantle-gpt-5.4
    litellm_params: { model: bedrock_mantle/us-gov-west-1/openai.gpt-5.4, aws_region_name: us-gov-west-1 }
  - model_name: azure-gov-gpt-5.1
    litellm_params: { model: azure/us-gov/gpt-5.1, api_key: dummy }
  - model_name: cf-whisper
    litellm_params: { model: cloudflare/@cf/openai/whisper, api_key: dummy, account_id: dummy }
  - model_name: cf-whisper-large-v3-turbo
    litellm_params: { model: cloudflare/@cf/openai/whisper-large-v3-turbo, api_key: dummy, account_id: dummy }
  - model_name: gov-claude-sonnet-5-geo
    litellm_params:
      model: bedrock/us-gov.anthropic.claude-sonnet-5
      aws_region_name: us-gov-west-1
  - model_name: gov-claude-opus-4-8-geo
    litellm_params:
      model: bedrock/us-gov.anthropic.claude-opus-4-8
      aws_region_name: us-gov-west-1
general_settings:
  master_key: sk-1234
PYTHONPATH=<worktree> LITELLM_LOCAL_MODEL_COST_MAP=True DATABASE_URL=<postgres url> python litellm/proxy/proxy_cli.py --config config.yaml --port <port> --num_workers 2
H="Authorization: Bearer sk-1234"
curl -s "http://localhost:<port>/model/deprecations?warn_within_days=60" -H "$H"
curl -s http://localhost:<port>/model/info -H "$H"
for m in qwen3.8 grok-build mistral-medium glm-5.3-flash; do
  curl -s -i http://localhost:<port>/v1/chat/completions -H "$H" -H "Content-Type: application/json" \
    -d "{\"model\":\"$m\",\"max_tokens\":16,\"messages\":[{\"role\":\"user\",\"content\":\"Reply with the single word pong\"}]}" | grep -E "^HTTP|^x-litellm-response-cost"
done
curl -s -i http://localhost:<port>/v1/chat/completions -H "$H" -H "Content-Type: application/json" --data-binary @chat_big.json | grep -E "^HTTP|^x-litellm-response-cost"
curl -s -i http://localhost:<port>/v1/responses -H "$H" -H "Content-Type: application/json" --data-binary @responses_big.json | grep -E "^HTTP|^x-litellm-response-cost"
curl -s -i http://localhost:<port>/v1/messages -H "$H" -H "Content-Type: application/json" --data-binary @messages_big.json | grep -E "^HTTP|^x-litellm-response-cost"
psql "$DATABASE_URL" -c 'select "startTime"::time(0), model, call_type, spend, prompt_tokens, completion_tokens from "LiteLLM_SpendLogs" order by "startTime"'

Before (2ce4e3f)

GET /model/deprecations

  1. Ran the deprecations curl against port 23401
  2. Got
deprecated []
imminent []
upcoming [('azure-deepseek-v4-flash-0731', '2026-12-03'), ('kimi-k2.6', '2027-04-16')]

GET /model/info

  1. Ran the /model/info curl against port 23401, printing the cost fields
  2. Got
azure-deepseek-v4-flash-0731 {'input_cost_per_token': 1.9e-07, 'output_cost_per_token': 5.1e-07, 'cache_read_input_token_cost': 2.8e-08, 'supports_prompt_caching': True}
azure-gov-gpt-5.1 {'input_cost_per_token': 0, 'output_cost_per_token': 0}
cf-whisper {'input_cost_per_token': 0, 'output_cost_per_token': 0}
cf-whisper-large-v3-turbo {'input_cost_per_token': 0, 'output_cost_per_token': 0}
deepseek-v4-flash-0731 {'input_cost_per_token': 0, 'output_cost_per_token': 0}
glm-5.2 {'input_cost_per_token': 0, 'output_cost_per_token': 0}
glm-5.3-flash {'input_cost_per_token': 0, 'output_cost_per_token': 0}
gov-claude-opus-4-8-geo {'input_cost_per_token': 5e-06, 'output_cost_per_token': 2.5e-05, 'cache_read_input_token_cost': 5e-07, 'supports_prompt_caching': True}
gov-claude-sonnet-5 {'input_cost_per_token': 2e-06, 'output_cost_per_token': 1e-05, 'cache_read_input_token_cost': 2e-07, 'supports_prompt_caching': True}
gov-claude-sonnet-5-geo {'input_cost_per_token': 2e-06, 'output_cost_per_token': 1e-05, 'cache_read_input_token_cost': 2e-07, 'supports_prompt_caching': True}
gov-llama3-8b {'input_cost_per_token': 3e-07, 'output_cost_per_token': 2.65e-06}
gov-mantle-gpt-5.4 {'input_cost_per_token': 0, 'output_cost_per_token': 0}
gpt-5.4 {'input_cost_per_token': 2.5e-06, 'output_cost_per_token': 1.5e-05, 'cache_read_input_token_cost': 2.5e-07, 'supports_prompt_caching': True}
gpt-5.6-luna {'input_cost_per_token': 2e-07, 'output_cost_per_token': 1.2e-06, 'cache_read_input_token_cost': 2e-08, 'supports_prompt_caching': True, 'input_cost_per_token_above_272k_tokens_flex': 2e-07}
grok-build {'input_cost_per_token': 0, 'output_cost_per_token': 0}
kimi-k2.6 {'input_cost_per_token': 9.5e-07, 'output_cost_per_token': 4e-06}
kimi-k2.7-code {'input_cost_per_token': 0, 'output_cost_per_token': 0}
mai-image-2.5 {'input_cost_per_token': 5e-06, 'output_cost_per_token': 0}
mistral-medium {'input_cost_per_token': 2.7e-06, 'output_cost_per_token': 8.1e-06}
qwen3.8 {'input_cost_per_token': 2.5e-06, 'output_cost_per_token': 6.25e-06, 'cache_read_input_token_cost': 5e-07, 'supports_prompt_caching': True}

POST /v1/chat/completions qwen3.8

  1. Ran the qwen3.8 chat curl against port 23401
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.000245
x-litellm-response-cost-input: 0.000145
x-litellm-response-cost-output: 0.0001
usage: {'completion_tokens': 16, 'prompt_tokens': 58, 'total_tokens': 74}

POST /v1/chat/completions grok-build

  1. Ran the grok-build chat curl against port 23401
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.00048719999999999997
x-litellm-response-cost-input: 0.000234
x-litellm-response-cost-output: 0.000138
x-litellm-response-cost-cache-read: 0.0001152
usage: {'completion_tokens': 23, 'prompt_tokens': 501, 'total_tokens': 524, 'num_sources_used': 0, 'cost_in_usd_ticks': 4872000} | service_tier: default

POST /v1/chat/completions mistral-medium

  1. Ran the mistral-medium chat curl against port 23401
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 8.37e-05
x-litellm-response-cost-input: 5.94e-05
x-litellm-response-cost-output: 2.43e-05
usage: {'completion_tokens': 3, 'prompt_tokens': 22, 'total_tokens': 25, 'service_tier': 'standard'}

POST /v1/chat/completions glm-5.3-flash

  1. Ran the glm-5.3-flash chat curl against port 23401
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost-input: 0.0
x-litellm-response-cost-output: 0.0
usage: {'completion_tokens': 16, 'prompt_tokens': 18, 'total_tokens': 34}

POST /v1/chat/completions gpt-5.6-luna priority ~290k

  1. Ran the chat completions curl with chat_big.json against port 23401
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.01174492
x-litellm-response-cost-input: 1.1999999999998123e-06
x-litellm-response-cost-output: 2.88e-05
x-litellm-response-cost-cache-read: 0.01171492
usage: {'completion_tokens': 16, 'prompt_tokens': 292876, 'total_tokens': 292892} | service_tier: priority

POST /v1/responses gpt-5.6-luna priority ~290k

  1. Ran the responses curl with responses_big.json against port 23401
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.01174492
x-litellm-response-cost-input: 1.1999999999998123e-06
x-litellm-response-cost-output: 2.8800000000000002e-05
x-litellm-response-cost-cache-read: 0.01171492
usage: {'input_tokens': 292876, 'output_tokens': 16, 'total_tokens': 292892} | service_tier: priority

POST /v1/messages gpt-5.6-luna priority ~290k

  1. Ran the messages curl with messages_big.json against port 23401
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.01174852
x-litellm-response-cost-input: 1.1999999999998123e-06
x-litellm-response-cost-output: 3.24e-05
x-litellm-response-cost-cache-read: 0.01171492
usage: {'input_tokens': 3, 'output_tokens': 18, 'cache_read_input_tokens': 292873}

LiteLLM_SpendLogs

  1. Ran the psql query against the port 23401 proxy's database
  2. Got
 startTime |                        model                         |     call_type      |   spend    | prompt_tokens | completion_tokens 
-----------+------------------------------------------------------+--------------------+------------+---------------+-------------------
 17:24:10  | together_ai/Qwen/Qwen3.8-2.4T-A95B                   | acompletion        |   0.000245 |            58 |                16
 17:24:11  | xai/grok-build-latest                                | acompletion        |  0.0004872 |           501 |                23
 17:24:12  | mistral/mistral-medium                               | acompletion        |   8.37e-05 |            22 |                 3
 17:24:13  | fireworks_ai/accounts/fireworks/models/glm-5p3-flash | acompletion        |          0 |            18 |                16
 17:24:20  | openai/gpt-5.6-luna                                  | acompletion        | 0.01174492 |        292876 |                16
 17:24:22  | openai/gpt-5.6-luna                                  | aresponses         | 0.01174492 |        292876 |                16
 17:26:25  | openai/gpt-5.6-luna                                  | anthropic_messages | 0.01174852 |        292876 |                18
(7 rows)

After (7a35c34)

GET /model/deprecations

  1. Ran the deprecations curl against port 52852
  2. Got
deprecated []
imminent [('mai-image-2.5', '2026-10-01'), ('kimi-k2.7-code', '2026-10-03')]
upcoming [('azure-deepseek-v4-flash-0731', '2026-12-03'), ('kimi-k2.6', '2027-04-16')]

GET /model/info

  1. Ran the /model/info curl against port 52852, printing the cost fields
  2. Got
azure-deepseek-v4-flash-0731 {'input_cost_per_token': 4.4e-07, 'output_cost_per_token': 1.32e-06, 'cache_read_input_token_cost': 1.4e-08, 'supports_prompt_caching': True}
azure-gov-gpt-5.1 {'input_cost_per_token': 1.71875e-06, 'output_cost_per_token': 1.375e-05, 'cache_read_input_token_cost': 1.71875e-07, 'supports_prompt_caching': True}
cf-whisper {'input_cost_per_token': 0, 'output_cost_per_token': 0, 'input_cost_per_second': 7.5e-06, 'output_cost_per_second': 0.0}
cf-whisper-large-v3-turbo {'input_cost_per_token': 0, 'output_cost_per_token': 0, 'input_cost_per_second': 8.5e-06, 'output_cost_per_second': 0.0}
deepseek-v4-flash-0731 {'input_cost_per_token': 4e-07, 'output_cost_per_token': 8e-07, 'cache_read_input_token_cost': 8e-08, 'supports_prompt_caching': True}
glm-5.2 {'input_cost_per_token': 1.8e-06, 'output_cost_per_token': 5.5e-06}
glm-5.3-flash {'input_cost_per_token': 1.5e-07, 'output_cost_per_token': 5e-07, 'cache_read_input_token_cost': 3e-08}
gov-claude-opus-4-8-geo {'input_cost_per_token': 6e-06, 'output_cost_per_token': 3e-05, 'cache_read_input_token_cost': 6e-07, 'supports_prompt_caching': True}
gov-claude-sonnet-5 {'input_cost_per_token': 2.4e-06, 'output_cost_per_token': 1.2e-05, 'cache_read_input_token_cost': 2.4e-07, 'supports_prompt_caching': True}
gov-claude-sonnet-5-geo {'input_cost_per_token': 2.4e-06, 'output_cost_per_token': 1.2e-05, 'cache_read_input_token_cost': 2.4e-07, 'supports_prompt_caching': True}
gov-llama3-8b {'input_cost_per_token': 3e-07, 'output_cost_per_token': 6e-07}
gov-mantle-gpt-5.4 {'input_cost_per_token': 3.3e-06, 'output_cost_per_token': 1.98e-05, 'cache_read_input_token_cost': 3.3e-07, 'supports_prompt_caching': True}
gpt-5.4 {'input_cost_per_token': 2.5e-06, 'output_cost_per_token': 1.5e-05, 'cache_read_input_token_cost': 2.5e-07, 'supports_prompt_caching': True, 'input_cost_per_token_above_272k_tokens_flex': 2.5e-06}
gpt-5.6-luna {'input_cost_per_token': 2e-07, 'output_cost_per_token': 1.2e-06, 'cache_read_input_token_cost': 2e-08, 'supports_prompt_caching': True, 'input_cost_per_token_above_272k_tokens_flex': 2e-07, 'input_cost_per_token_above_272k_tokens_priority': 8e-07, 'output_cost_per_token_above_272k_tokens_priority': 3.6e-06}
grok-build {'input_cost_per_token': 2e-06, 'output_cost_per_token': 6e-06, 'cache_read_input_token_cost': 3e-07, 'supports_prompt_caching': True, 'input_cost_per_token_above_200k_tokens': 4e-06, 'output_cost_per_token_above_200k_tokens': 1.2e-05}
kimi-k2.6 {'input_cost_per_token': 9.5e-07, 'output_cost_per_token': 4e-06, 'cache_read_input_token_cost': 1.6e-07, 'supports_prompt_caching': True}
kimi-k2.7-code {'input_cost_per_token': 9.5e-07, 'output_cost_per_token': 4e-06, 'cache_read_input_token_cost': 1.9e-07, 'supports_prompt_caching': True}
mai-image-2.5 {'input_cost_per_token': 5e-06, 'output_cost_per_token': 0}
mistral-medium {'input_cost_per_token': 1.5e-06, 'output_cost_per_token': 7.5e-06, 'cache_read_input_token_cost': 1.5e-07}
qwen3.8 {'input_cost_per_token': 2e-06, 'output_cost_per_token': 6e-06, 'cache_read_input_token_cost': 2.5e-07, 'supports_prompt_caching': True}

POST /v1/chat/completions qwen3.8

  1. Ran the qwen3.8 chat curl against port 52852
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.000212
x-litellm-response-cost-input: 0.000116
x-litellm-response-cost-output: 9.6e-05
usage: {'completion_tokens': 16, 'prompt_tokens': 58, 'total_tokens': 74}

POST /v1/chat/completions grok-build

  1. Ran the grok-build chat curl against port 52852
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.0005352
x-litellm-response-cost-input: 0.000234
x-litellm-response-cost-output: 0.000186
x-litellm-response-cost-cache-read: 0.0001152
usage: {'completion_tokens': 31, 'prompt_tokens': 501, 'total_tokens': 532, 'num_sources_used': 0, 'cost_in_usd_ticks': 5352000} | service_tier: default

POST /v1/chat/completions mistral-medium

  1. Ran the mistral-medium chat curl against port 52852
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 5.550000000000001e-05
x-litellm-response-cost-input: 3.3e-05
x-litellm-response-cost-output: 2.25e-05
usage: {'completion_tokens': 3, 'prompt_tokens': 22, 'total_tokens': 25, 'service_tier': 'standard'}

POST /v1/chat/completions glm-5.3-flash

  1. Ran the glm-5.3-flash chat curl against port 52852
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 1.07e-05
x-litellm-response-cost-input: 2.7e-06
x-litellm-response-cost-output: 8e-06
usage: {'completion_tokens': 16, 'prompt_tokens': 18, 'total_tokens': 34}

POST /v1/chat/completions gpt-5.6-luna priority ~290k

  1. Ran the chat completions curl with chat_big.json against port 52852
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.02344664
x-litellm-response-cost-input: 2.3999999999996247e-06
x-litellm-response-cost-output: 1.44e-05
x-litellm-response-cost-cache-read: 0.02342984
usage: {'completion_tokens': 4, 'prompt_tokens': 292876, 'total_tokens': 292880} | service_tier: priority

POST /v1/responses gpt-5.6-luna priority ~290k

  1. Ran the responses curl with responses_big.json against port 52852
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.02348984
x-litellm-response-cost-input: 2.3999999999996247e-06
x-litellm-response-cost-output: 5.7600000000000004e-05
x-litellm-response-cost-cache-read: 0.02342984
usage: {'input_tokens': 292876, 'output_tokens': 16, 'total_tokens': 292892} | service_tier: priority

POST /v1/messages gpt-5.6-luna priority ~290k

  1. Ran the messages curl with messages_big.json against port 52852
  2. Got
HTTP/1.1 200 OK
x-litellm-response-cost: 0.02348984
x-litellm-response-cost-input: 2.3999999999996247e-06
x-litellm-response-cost-output: 5.76e-05
x-litellm-response-cost-cache-read: 0.02342984
usage: {'input_tokens': 3, 'output_tokens': 16, 'cache_read_input_tokens': 292873}

LiteLLM_SpendLogs

  1. Ran the psql query against the port 52852 proxy's database
  2. Got
 startTime |                        model                         |     call_type      |         spend         | prompt_tokens | completion_tokens 
-----------+------------------------------------------------------+--------------------+-----------------------+---------------+-------------------
 18:00:33  | together_ai/Qwen/Qwen3.8-2.4T-A95B                   | acompletion        |              0.000212 |            58 |                16
 18:00:34  | xai/grok-build-latest                                | acompletion        |             0.0005352 |           501 |                31
 18:00:35  | mistral/mistral-medium                               | acompletion        | 5.550000000000001e-05 |            22 |                 3
 18:00:36  | fireworks_ai/accounts/fireworks/models/glm-5p3-flash | acompletion        |              1.07e-05 |            18 |                16
 18:00:37  | openai/gpt-5.6-luna                                  | acompletion        |            0.02344664 |        292876 |                 4
 18:00:40  | openai/gpt-5.6-luna                                  | aresponses         |            0.02348984 |        292876 |                16
 18:00:44  | openai/gpt-5.6-luna                                  | anthropic_messages |            0.02348984 |        292876 |                16
(7 rows)

Local checks at 7a35c34: python3 ci_cd/check_files_match.py passes, uv run --no-sync python ci_cd/generate_model_prices_schema.py produces no schema diff, LITELLM_LOCAL_MODEL_COST_MAP=True uv run --no-sync pytest tests/test_litellm/test_bedrock_usgov_pricing.py tests/test_litellm/test_cloudflare_workers_ai_model_metadata.py tests/test_litellm/test_openai_service_tier_long_context_pricing.py tests/test_litellm/test_model_prices_schema.py tests/test_litellm/litellm_core_utils/llm_cost_calc/test_llm_cost_calc_utils.py (323 passed), tests/local_testing/test_get_model_info.py -k bedrock_converse (the whitelist gate, 2 passed), make check PASS

Live PR risk (7a35c34 vs merge base 2ce4e3f)

Breaking behavior: none. Every touched key is either new or gets re-priced tokens, cache fields, tier fields or a deprecation_date; no key, mode, litellm_provider or supported_endpoints value is removed or renamed

Backward compatibility: the same model_list boots on base and tip against the same Postgres schema, all live calls return 200 on both sides, only the reported cost, the spend rows and the deprecations buckets change

Regression risk: cost figures move for Together Qwen3.8 (down 20% input, 0.000245 to 0.000212 on the same call), Azure AI deepseek-v4-flash-0731 (up 2.3x, corrected to the 0731 row), mistral/mistral-medium (8.37e-05 to 5.55e-05) and the magistral aliases, gpt-realtime-2 output, GPT-5.4 / 5.5 / 5.6 flex or priority prompts above 272k tokens (2x on that slice: the ~290k priority prompt goes from 0.01174 to 0.02345), xAI grok-build-latest (the generic xai fallback billed 0.0004872 on the base call and its own row bills 0.0005352 on the tip call; each equals xAI's own cost_in_usd_ticks in that response, 4872000 ($0.0004872) and 5352000 ($0.0005352), the two calls differing only in how many prompt tokens hit xAI's cache) and Fireworks GLM 5.3 Flash (was $0, now 1.07e-05). GovCloud Llama 3 8B output drops from $2.65 to $0.60 per 1M, and the us-gov. Claude geo profiles rise 20% from the commercial rate they fell through to

Dependency graph: the two JSON files feed /model/info, /model/deprecations, the cost headers and LiteLLM_SpendLogs rows on /v1/chat/completions, /v1/responses and /v1/messages, the audio transcription cost path (input_cost_per_second), and the router's context-window checks. Tested above on both sides: /model/info, /model/deprecations, four small chats (Together, xAI, Mistral, Fireworks), all three text endpoints at ~290k priority tokens, and the spend rows read back from Postgres. Covered by tests: schema, GovCloud regional and geo profile values, Azure Government pinned values, Cloudflare Whisper per-second values, OpenAI tier ratios and cost at 300k, the Bedrock whitelist gate, cost-calc field count

Unverified surfaces: no live call was made to Scaleway, Azure AI Foundry, GovCloud Bedrock, Azure Government or Cloudflare (no credentials in this rig), so those entries are proven through /model/info and the pinned tests, not through a billed request. Two pre-existing /v1/messages behaviors on OpenAI models are identical on base and tip and untouched here: the usage block reports input_tokens: 3 plus cache_read_input_tokens while the cost header bills the whole prompt, and with max_tokens: 16 on this prompt every output token is reasoning, the response carries zero usage, and the cost header and spend row are 0

Type

🐛 Bug Fix

Caveats (if any)

Medium

  • Azure AI deepseek-v4-flash-0731 more than doubles ($0.19 / $0.51 to $0.44 / $1.32 per 1M); anyone budgeting on the old copy-paste values sees a jump
  • mistral/mistral-medium moves from Medium 1.0 pricing ($2.70 / $8.10) to Medium 3.5 ($1.50 / $7.50)
  • gpt-realtime-2 text output cost rises 50% ($16 to $24 per 1M)
  • GPT-5.4 / 5.5 / 5.6 flex and priority prompts above 272k tokens now bill the higher long-context rate
  • GovCloud us-gov. Claude Sonnet 5 and Opus 4.8 calls report 20% more spend than before, because the base branch billed them at the commercial rate

Low

  • azure/us-gov/* entries carry no deprecation_date; add one when Azure publishes a Government retirement schedule
  • Fireworks glm-5p3-flash and inkling have no max_output_tokens; Fireworks does not publish one
  • /v1/messages on OpenAI models returns zero usage and zero cost when the whole max_tokens budget goes to reasoning; pre-existing on the base branch, not a registry problem
  • osv-scan fails on pypdf and tornado pins in uv.lock, identical to the base branch

Final Attestation

  • The tests check the right things, including the edge cases, and regressions in the respective real-world customer use-cases are not possible after this PR
  • 7a35c34 passes /live-pr-risk

Link to Devin session: https://app.devin.ai/sessions/8b29e469c48246ab9a0f00fc49eba159
Open in Devin Desktop: https://app.devin.ai/desktop/session/8b29e469c48246ab9a0f00fc49eba159?variant=devin
Requested by: @mateo-berri


Note

Medium Risk
Changes reported spend and budgets for several high-traffic models (Together Qwen, Azure DeepSeek 0731, Mistral aliases, GPT long-context tiers, realtime output); no runtime routing logic changes, but incorrect figures would have been user-visible billing bugs.

Overview
Updates model_prices_and_context_window.json and its backup so proxy spend, /model/info, and /model/deprecations match current provider pricing.

OpenAI: Adds flex long-context (above 272k) rates for GPT-5.4/5.5 families and priority long-context rates for GPT-5.6 variants; refreshes realtime token limits, text output pricing, and audio cache read on gpt-realtime-2.

Mistral: Re-points magistral-*-latest and mistral/mistral-medium aliases to Medium 3.5 / Small 4 pricing, context windows, cache read, and vision flags.

New / corrected entries: Voyage rerank-3 models, xAI grok-build-latest, Fireworks GLM 5.3 Flash and Inkling, Scaleway GLM 5.2 and DeepSeek 0731, Azure AI Kimi K2.7 Code plus prompt-cache fields and MAI Image retirement dates; GovCloud Bedrock, Bedrock Mantle, and Azure Government model rows; Cloudflare Whisper transcription per-second costs. Fixes Together Qwen3.8 rates, Azure AI deepseek-v4-flash-0731 pricing, and Gov Llama3-8B output on Bedrock.

Tests & allowlist: New/expanded pinned pricing tests (OpenAI tiers, GovCloud, Cloudflare Whisper); cost-calc expectations for GPT-5.6 priority long context; 14 Gov Bedrock keys added to whitelisted_bedrock_models.txt.

Reviewed by Cursor Bugbot for commit da23e02. Bugbot is set up for automated code reviews on this repo. Configure here.

…liases, voyage, xai, fireworks

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

Copy link
Copy Markdown
Contributor Author

🤖 Devin AI Engineer

I'll be helping with this pull request! Here's what you should know:

✅ I will automatically:

  • Address comments on this PR. Add '(aside)' to your comment to have me ignore it.
  • Look at CI failures and help fix them

Note: I can only respond to comments from users who have write access to this repository.

⚙️ Control Options:

  • Disable automatic comment, CI, and merge conflict monitoring

@CLAassistant

CLAassistant commented Sep 1, 2026

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 all sign our Contributor License Agreement before we can accept your contribution.
1 out of 2 committers have signed the CLA.

✅ mateo-berri
❌ devin-ai-integration[bot]
You have signed the CLA already but the status is still pending? Let us recheck it.

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

PR #39170 (BerriAI/litellm, author devin-ai-integration[bot]) has labels run-ci only — no enterprise label. Out of scope; no labels, Linear, or risk changes made.

@greptile-apps

greptile-apps Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Greptile Summary

Updates the model registry and its packaged backup with current provider pricing, context limits, capabilities, aliases, and deprecation dates.

  • Adds long-context flex and priority rates for OpenAI models and refreshes realtime metadata.
  • Adds or corrects models across Mistral, Voyage, xAI, Fireworks, Together, Scaleway, Azure AI, Bedrock GovCloud, Azure Government, and Cloudflare.
  • Extends local pricing tests and the Bedrock allowlist for the new registry entries.

Confidence Score: 5/5

The PR appears safe to merge.

No blocking failure remains.

Important Files Changed

Filename Overview
model_prices_and_context_window.json Updates the canonical model registry with provider pricing, capabilities, limits, aliases, and retirement metadata; no eligible follow-up issue was identified.
litellm/model_prices_and_context_window_backup.json Mirrors the canonical registry updates in the packaged runtime fallback.
tests/test_litellm/test_openai_service_tier_long_context_pricing.py Adds local coverage for OpenAI flex and priority pricing above the 272k-token threshold.
tests/test_litellm/test_bedrock_usgov_pricing.py Pins GovCloud regional and geo-inference-profile pricing and provider mappings.
tests/test_litellm/test_cloudflare_workers_ai_model_metadata.py Adds metadata and per-second pricing coverage for Cloudflare Whisper models.
tests/test_litellm/litellm_core_utils/llm_cost_calc/test_llm_cost_calc_utils.py Updates cost-field and service-tier expectations to cover the expanded registry schema.
whitelisted_bedrock_models.txt Adds the new regional GovCloud Bedrock identifiers required by model discovery.

Reviews (4): Last reviewed commit: "fix(models): add the us-gov. geo inferen..." | Re-trigger Greptile

@codspeed-hq

codspeed-hq Bot commented Sep 1, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 31 untouched benchmarks


Comparing litellm_registry_audit_2026_09_01 (7a35c34) with litellm_internal_staging (2ffe6a1)

Open in CodSpeed

@codecov

codecov Bot commented Sep 1, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

@greptileai

mateo-berri and others added 4 commits September 2, 2026 13:03
…zure gov, openai tiered long-context, scaleway, together qwen3.8, azure ai cache and kimi k2.7 code, azure mai deprecations

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…s pending a Government schedule source

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

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

Copy link
Copy Markdown
Contributor Author

@greptileai

@devin-ai-integration devin-ai-integration Bot changed the title fix(models): registry audit 2026-09-01: openai realtime limits, mistral alias drift, voyage rerank-3, xai grok-build-latest, fireworks glm-5p3-flash and inkling fix(models): registry audit 2026-09-01: openai realtime and long-context tiers, mistral aliases, voyage, xai, fireworks, together, scaleway, azure ai, govcloud, azure gov, cloudflare whisper, deprecation dates Sep 2, 2026
@mateo-berri

Copy link
Copy Markdown
Contributor

bugbot run

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit da23e02. Configure here.

@dlamoris

dlamoris commented Sep 2, 2026

Copy link
Copy Markdown

HI, coming from one of the closed prs #38789 - devin flagged the us-gov govcloud inference profiles as unverifiable, but this is because amazon's docs are inconsistent and out of date (or maybe intentional, who knows) (i do have access to govlcoud, would be happy to open a separate pr)

One way to check is if the region availability for bedrock-runtime has GEO listed for us-gov-west-1 and us-gov-east-1, then there's an inference profile (with us-gov. prefix instead of us. )
ex. us-gov.anthropic.claude-sonnet-5 https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-sonnet-5.html#model-card-anthropic-claude-sonnet-5-regional-availability

And sometimes they just list it under its own section on the model card
ex. https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-openai-gpt-oss-120b.html#model-card-openai-gpt-oss-120b-regional-availability

Geo CRIS inference details
US GovCloud CRIS
US GovCloud CRIS Inference ID: us-gov.openai.gpt-oss-120b-1:0

@mateo-berri

Copy link
Copy Markdown
Contributor

@greptileai

@mateo-berri

Copy link
Copy Markdown
Contributor

bugbot run

@cursor cursor Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

✅ Bugbot reviewed your changes and found no new issues!

Comment @cursor review or bugbot run to trigger another review on this PR

Reviewed by Cursor Bugbot for commit 7a35c34. Configure here.

@dlamoris

dlamoris commented Sep 2, 2026

Copy link
Copy Markdown

if you can get us-gov.anthropic.claude-opus-5 in here too..it's not listed, but it does exist!
https://docs.aws.amazon.com/bedrock/latest/userguide/model-card-anthropic-claude-opus-5.html

@devin-ai-integration

Copy link
Copy Markdown
Contributor Author

Thanks, the raw model card tables confirm Geo support in both GovCloud regions. Both us-gov. keys landed in 7a35c34 and the description now reflects that

@mateo-berri mateo-berri left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@mateo-berri
mateo-berri merged commit 4049a07 into litellm_internal_staging Sep 2, 2026
80 of 81 checks passed
@mateo-berri
mateo-berri deleted the litellm_registry_audit_2026_09_01 branch September 2, 2026 18:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants