Skip to content

fix(model-prices): align Azure, Bedrock, Copilot, Gemini, Groq, OpenAI and OpenRouter entries with official docs - #43598

Merged
kerry-berri merged 6 commits into
mainfrom
litellm_model_prices_audit_1790623011
Sep 29, 2026
Merged

kerry-berri merged 6 commits into
mainfrom
litellm_model_prices_audit_1790623011

Conversation

@devin-ai-integration

@devin-ai-integration devin-ai-integration Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

TLDR

Problem this solves:

  • Several registry entries disagree with the provider's own docs or price API
  • Azure EU GPT-6 Astra is billed at global rates instead of Data Zone rates
  • Gemini image models say no thinking and claim caching the docs say is unsupported
  • Gemini Deep Research Pro is typed as an image model with a 64K window
  • gpt-4o-mini-tts-2025-03-20 has no entry, so its calls go unpriced
  • Vertex Gemini Live and Sonnet 4.5 lack image/video and batch cache-write rates
  • Gemini Robotics ER 2 thinking tokens bill at 2x the published rate
  • Azure AI DeepSeek V3.2 and Grok input windows disagree with Azure docs
  • Many OpenRouter prices and limits drifted from the OpenRouter models API
  • Four Copilot entries have no prices, so their calls cost $0
  • Bedrock in-Region moonshotai.kimi-k3 bills at the cheaper Global rate
  • openrouter/~x-ai/grok-latest drifted from the Grok 4.7 prices it redirects to

How it solves it:

User Flow

Before: a team on the EU Data Zone GPT-6 Astra deployment sees spend below what Azure bills

  1. The proxy admin adds azure/eu/gpt-6-astra to the model list
  2. A developer sends POST https://litellm-domain/v1/chat/completions with 200K input and 100K output tokens
  3. x-litellm-response-cost reads $7.70 while the Azure invoice shows $8.40

After: the same request is priced at the Data Zone rate

  1. The proxy admin adds the same deployment
  2. The developer sends the same request
  3. x-litellm-response-cost reads $8.40, matching Azure

Changes by provider

Azure

azure/eu/gpt-6-astra, absorbed from #43579 by @Rainmemery (credited as co-author)

Gemini

gemini/deep-research-pro-preview-12-2025

  • max_input_tokens 65536 to 1048576, max_output_tokens and max_tokens 32768 to 65536
  • mode image_generation to chat, matching the other gemini/deep-research-* entries
  • supported_output_modalities to ["text"], supported_modalities adds audio and video, supports_pdf_input true
  • removes output_cost_per_image and output_cost_per_image_token, since the model outputs text reports only
  • Source: https://ai.google.dev/gemini-api/docs/models/deep-research-pro-preview-12-2025 (Input Text, Image, PDF, Audio, Video; Output Text; 1,048,576 in; 65,536 out)

gemini/gemini-3-pro-image: supports_reasoning true, supports_prompt_caching false

gemini/gemini-3.1-flash-image: supports_reasoning true, supports_prompt_caching false, supports_pdf_input true

gemini/gemini-3.1-flash-lite-image: supports_reasoning true, supports_pdf_input true

Groq

groq/qwen/qwen3.8-27b: max_input_tokens 131042 to 131072

OpenAI

New gpt-4o-mini-tts-2025-03-20, identical to gpt-4o-mini-tts

Vertex AI (absorbed from #43671)

  • gemini-live-2.5-flash-native-audio: input_cost_per_video_token 3e-06
  • vertex_ai/gemini-2.5-flash-native-audio: input_cost_per_image_token and input_cost_per_video_token 3e-06
  • vertex_ai/claude-sonnet-4-5 and vertex_ai/claude-sonnet-4-5@20250929: cache_creation_input_token_cost_batches 1.88e-06
  • Source: https://cloud.google.com/gemini-enterprise-agent-platform/generative-ai/pricing (Gemini 2.5 Flash Live API row "Input (video, image) $3.00"; Sonnet 4.5 row "5m Batch Cache Write $1.88", per 1M, raw HTML)

Gemini Robotics ER 2 (absorbed from #43666 by @bunnysayzz, credited as co-author)

Azure AI (absorbed from #43609)

OpenRouter (verified part of #43644)

Every value below was re-read from the live GET https://openrouter.ai/api/v1/models response on 2026-09-29 (pricing.prompt, pricing.completion, pricing.input_cache_read, context_length, top_provider.max_completion_tokens). Source for all rows: https://openrouter.ai/api/v1/models

  • New openrouter/anthropic/claude-sonnet-5.5:batch: 1e-06 in, 5e-06 out, 1e-07 cache read, 1.25e-06 cache write, 2e-06 1h cache write, 1,000,000 in, 128,000 out
  • deepseek/deepseek-v3.2-exp: max_output_tokens and max_tokens 65536 to 147456
  • deepseek/deepseek-v4-flash-0731: input 2.1e-08 to 1.8e-08
  • deepseek/deepseek-v4-flash-vision-exp: input 2.156e-07, output 6.468e-07, cache read 6.86e-09, max output 262144
  • deepseek/deepseek-v4-pro-0813: output 3.5e-06 to 4.2e-06
  • deepseek/deepseek-v4.1-flash: input 3e-07, output 1.2e-06, cache read 6e-09, max output 943718
  • minimax/minimax-m2: input 3e-07, output 1.2e-06, max output 176947
  • moonshotai/kimi-k2.6: input 6.5e-07, output 3.41e-06, cache read 1.5e-07
  • nvidia/nemotron-3.5-lightning: input 6e-08, output 1.6e-07, cache read 3e-08, max output 32768
  • openai/gpt-5.6-sol-pro: input 4e-06, output 2e-05, cache read 4e-07, cache write 5e-06; above 272K 8e-06, 3e-05, 8e-07, 1e-05
  • openai/gpt-oss-20b: new cache read 9e-09
  • prism-ml/ternary-bonsai-2-27b: new cache read 3.75e-08
  • qwen/qwen3-14b: input 1.2e-07, output 2.4e-07
  • qwen/qwen3-30b-a3b: input 1.2e-07, output 5e-07, max output 16384
  • x-ai/grok-4.7: input 2e-06, output 6e-06, cache read 5e-07; above 200K 4e-06, 1.2e-05, 1e-06
  • z-ai/glm-5.3: input 1.4e-06, output 4.4e-06, cache read 2.6e-07, max output 943717

GitHub Copilot (pricing on existing entries absorbed from #43702 by @michalformanek, credited as co-author)

Source for every row: https://docs.github.com/en/copilot/reference/copilot-billing/models-and-pricing, read from its data file https://raw.githubusercontent.com/github/docs/main/data/tables/copilot/models-and-pricing.yml (prices per 1M tokens)

  • github_copilot/claude-haiku-4.5: input 1e-06, output 5e-06, cache read 1e-07, cache write 1.25e-06 ($1, $5, $0.10, $1.25)
  • github_copilot/claude-sonnet-4: input 3e-06, output 1.5e-05, cache read 3e-07, cache write 3.75e-06 ($3, $15, $0.30, $3.75)
  • github_copilot/gpt-5-mini: input 2.5e-07, output 2e-06, cache read 2.5e-08 ($0.25, $2, $0.025)
  • github_copilot/gpt-5.3-codex: input 1.75e-06, output 1.4e-05, cache read 1.75e-07 ($1.75, $14, $0.175)

Bedrock

moonshotai.kimi-k3 (the in-Region ID) now bills at the in-Region standard rate instead of the Global rate

Gemini Robotics ER 2 Streaming

gemini/gemini-robotics-er-2-streaming-preview: adds max_input_tokens 131072, max_output_tokens and max_tokens 65536, supports_reasoning true

OpenRouter (this run)

Source for all rows: https://openrouter.ai/api/v1/models, read 2026-09-29 (context_length and top_provider.context_length agree on each)

  • openrouter/inclusionai/ling-3.0-flash-vl: max_input_tokens 131072 to 262144
  • openrouter/thinkingmachines/inkling and inkling-small: max_input_tokens 1048576 to 524288
  • openrouter/~x-ai/grok-latest: input 1.6e-06 to 2e-06, output 4.8e-06 to 6e-06, cache read 4e-07 to 5e-07; above 200K 4e-06, 1.2e-05, 1e-06, now matching x-ai/grok-4.7 which the alias redirects to

Absorbed and superseded PRs

Checked and not changed

  • Deprecations (feat(proxy): proactive model deprecation alerts and /model/deprecations endpoint #26900 deprecation_date): no new dates added this run

  • OpenAI image models: https://developers.openai.com/api/docs/deprecations now lists gpt-image-1 shutdown 2026-10-23 and gpt-image-1.5, gpt-image-1-mini, chatgpt-image-latest 2026-12-01; the registry already carries these dates

  • Anthropic, xAI, DeepSeek: every model in the official model list API already has an entry

  • OpenAI: other list-API IDs without entries (gpt-audio-mini-2025-10-06, gpt-4o-search-preview-2025-03-11, gpt-4o-mini-search-preview-2025-03-11) are marked Deprecated on their model pages, so not added

  • Perplexity and Voyage: pricing pages match the registry for every model checked

  • Gemini: antigravity-preview-* is priced at "standard Gemini list rates" of whatever model runs, with no per-token price, so not added; aqa has no published price

  • Gemini: the vertex_ai/deep-research-pro-preview-12-2025 entry has the same shape as the Gemini one but was not checked against Vertex docs, so it is untouched

  • Fireworks: accounts/fireworks/models/qwen3p8-2p4t-a95b is on-demand only ("Serverless Not supported" at https://fireworks.ai/models/fireworks/qwen3p8-2p4t-a95b), and neither GET https://api.fireworks.ai/inference/v1/models nor GET https://api.fireworks.ai/v1/serverless/models carries a per-token price, so not added

  • Fireworks: the minimax-m3 supports_vision: true pins in ci_cd/cost_map_pins.json still disagree with the models API (supports_image_input: false); the pinned values are left as is

  • Cohere: 12 model IDs from GET https://api.cohere.com/v1/models have no entry (Command A Reasoning, Translate and Vision, Command R7B Arabic, Aya Vision 32B, Transcribe, North Mini Code, North Small Translate, Tiny Aya), but https://cohere.com/pricing publishes per-token prices only for legacy Command, Command R and Aya Expanse, checked as raw HTML, through r.jina.ai and in a browser, so they are not added

  • Mistral: API-only differences on codestral-2508 and labs-leanstral-1-5 do not match the official model pages' naming or values, so nothing changed

  • Together: priced models missing from the registry were found in the models API, but the pricing page could not be matched row by row, so not added this run

  • Nebius and Groq model APIs need keys not available to this run; Groq was checked through its docs pages

  • Bedrock: Gemma 4 and Grok 4.3 Mantle prices and windows match the Price List API and model cards; Grok 4.7 is bedrock-runtime only per its card, so no Mantle entry is missing

  • OpenRouter: xiaomi/mimo-v2.6-pro reports 1050000 at the top level and 1048576 for its top provider, so left alone; router IDs such as openrouter/auto-beta carry -1 or zero prices and are not added

  • Gemini: official pages give 1,048,576 in and 65,536 out for lyria-3-clip-preview and lyria-3-pro-preview, but these are music models and the registry's 131072/8192 may reflect the generation request limit, so left for a reviewer

  • Together: eight priced audio/TTS models from GET https://api.together.xyz/v1/models (Kokoro 82M, Orpheus 3B, Whisper Large v3, Cartesia Sonic 1/2/3, Nemotron 3 ASR, Rime Arcana v2) are not added, since the API gives no per-character or per-second unit the registry can store

  • GitHub Copilot: gpt-5.4-nano, claude-sonnet-4.6 and claude-fable-5* are in GitHub's release status data but not in its pricing table, so not added

Pre-Submission checklist

  • I have added meaningful tests: test_generic_cost_per_token_azure_eu_gpt_6_astra_tiers pins the Data Zone rates below and above 272K; the other edits are registry data covered by the schema and alias tests
  • The handful of test files covering my change pass locally: tests/unit/test_model_prices_schema.py, tests/unit/litellm_core_utils/llm_cost_calc/test_llm_cost_calc_utils.py, tests/unit/test_openai_service_tier_long_context_pricing.py, tests/unit/test_utils.py, tests/unit/llms/azure_ai, tests/unit/llms/deepseek and others (1250 passed), plus python3 ci_cd/check_files_match.py and generate_model_prices_schema.py --check
  • My PR passes all required CI/CD checks
  • 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

Type

Bug Fix

Caveats (if any)

Medium

  • Deep Research Pro keeps its /v1/chat/completions endpoint list and token prices from main
    • Google only offers it through the Interactions API, priced at underlying Gemini list rates
  • OpenRouter prices move often; the values here match the models API as of 2026-09-29
  • moonshotai.kimi-k3 in-Region spend rises 10% to match the AWS in-Region rate
  • supports_prompt_caching goes from true to false on two Gemini image models, so model info no longer advertises caching for them

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

devin-ai-integration Bot and others added 2 commits September 28, 2026 19:16
Co-authored-by: rain <1504569896@qq.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
…l docs

Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration
devin-ai-integration Bot requested a review from a team September 28, 2026 19:17
@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

@greptile-apps

greptile-apps Bot commented Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 4/5

[Medium risk] Updates model capability flags in pricing configuration.

The PR is not yet safe to merge because the newly advertised Deep Research Pro chat route uses the wrong Gemini API.

Findings

  1. P1 Deep Research uses wrong API ▶
  2. P2 Azure rates lack coverage ▶

Summary

This PR synchronizes the root and backup model registries, revises Azure EU pricing and Gemini model metadata, corrects a Groq limit, and adds an OpenAI speech snapshot. The Deep Research Pro chat classification needs routing support before it can work as advertised.

Reviews (1) · Last reviewed commit: "fix(model-prices): align groq, gemini an..."

"max_input_tokens": 1048576,
"max_output_tokens": 65536,
"max_tokens": 65536,
"mode": "chat",

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.

P1 Deep Research uses wrong API

When a caller selects Deep Research Pro through /v1/chat/completions, this chat entry sends the request to Gemini's generateContent endpoint. Deep Research Pro requires the separate Interactions API, so the caller cannot obtain a research report through the advertised chat route.

Comment on lines +70359 to +70364
"cache_creation_input_token_cost": 1.5e-05,
"cache_creation_input_token_cost_above_272k_tokens": 3e-05,
"cache_read_input_token_cost": 1.2e-06,
"cache_read_input_token_cost_above_272k_tokens": 2.4e-06,
"input_cost_per_token": 1.2e-05,
"input_cost_per_token_above_272k_tokens": 2.4e-05,

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.

P2 Azure rates lack coverage

The revised EU rates include separate cache prices and prices above 272K tokens, but no cost calculation test checks this Azure entry at either tier. A value or tier-selection regression could therefore silently bring back the invoice discrepancy this change is meant to fix. Please add a test covering ordinary and above-threshold usage, including cached tokens.

Note: If this suggestion doesn't match your team's coding style, reply to this and let me know. I'll remember it for next time!

@codecov

codecov Bot commented Sep 28, 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 Sep 28, 2026 •

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 31 untouched benchmarks


Comparing litellm_model_prices_audit_1790623011 (3058468) with main (f4a7c04)

Open in CodSpeed

devin-ai-integration Bot and others added 2 commits September 29, 2026 13:08
…ure AI registry fixes

Absorbs the fields from #43609, #43666, #43671 and #43644 that match the provider's own docs or price API today, and adds a cost test for the azure/eu/gpt-6-astra Data Zone tiers

Co-authored-by: bunnysayzz <stfuazzo@gmail.com>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@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.

1 similar comment
@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.

devin-ai-integration Bot and others added 2 commits September 29, 2026 19:13
…audit_1790623011

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

# Conflicts:
#	litellm/model_prices_and_context_window_backup.json
#	model_prices_and_context_window.json
…OpenRouter values from official sources

Co-authored-by: Michal Formanek <michal.formanek@generaliceska.cz>
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
@devin-ai-integration devin-ai-integration Bot changed the title fix(model-prices): align Azure, Gemini, Groq and OpenAI entries with official docs fix(model-prices): align Azure, Bedrock, Copilot, Gemini, Groq, OpenAI and OpenRouter entries with official docs Sep 29, 2026
@kerry-berri
kerry-berri merged commit 1bfa3d4 into main Sep 29, 2026
98 of 101 checks passed
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