Skip to content

fix(model-prices): correct Bedrock Titan and Nova 2 Lite prices, add Nova Premier, clear rescinded Together dates - #45793

Merged
kerrylu-berri merged 1 commit into
mainfrom
litellm_registry_audit_2026_10_10
Oct 10, 2026
Merged

kerrylu-berri merged 1 commit into
mainfrom
litellm_registry_audit_2026_10_10

Conversation

@devin-ai-integration

Copy link
Copy Markdown
Contributor

TLDR

Problem this solves:

  • Bedrock Titan Text and regional Nova 2 Lite rows bill at stale prices
  • amazon.nova-premier-v1:0 is missing, so its cost lookups fail
  • Two Together models carry a retirement date that was rescinded

How it solves it:

  • Corrects 6 Bedrock rows to the AWS Price List values
  • Adds amazon.nova-premier-v1:0 from the AWS Price List and Nova user guide
  • Drops deprecation_date from the two Together models that returned to the catalog

User Flow

Before: a team calling Bedrock Titan Text Express sees spend about 6.5x higher than AWS bills

  1. They send POST https://litellm-domain/v1/chat/completions with "model": "bedrock/amazon.titan-text-express-v1"
  2. https://litellm-domain/ui/?page=logs shows $1.30 per 1M input tokens and $1.70 per 1M output tokens
  3. A request to bedrock/amazon.nova-premier-v1:0 is logged with no cost because the model is unmapped

After: the same requests are logged at AWS list price

  1. They send the same POST with "model": "bedrock/amazon.titan-text-express-v1"
  2. The logs page shows $0.20 per 1M input tokens and $0.60 per 1M output tokens
  3. The bedrock/amazon.nova-premier-v1:0 request is logged at $2.50 input and $12.50 output per 1M tokens

Sources and per-value evidence

Every Bedrock number comes from the AWS Price List bulk offer files for AmazonBedrock, which are the official machine-readable source behind https://aws.amazon.com/bedrock/pricing/ (raw files at https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/<region>/index.json, on-demand rows, per 1K tokens)

Key Field Old New Price List usage type
amazon.titan-text-express-v1 input / output 1.3e-06 / 1.7e-06 2e-07 / 6e-07 USE1-TitanTextG1-Express-input-tokens 0.0002, -output-tokens 0.0006
amazon.titan-text-lite-v1 input / output 3e-07 / 4e-07 1.5e-07 / 2e-07 USE1-TitanTextG1-Lite-input-tokens 0.00015, -output-tokens 0.0002
eu.amazon.nova-2-lite-v1:0 input / output / cache read 3.3e-07 / 2.75e-06 / 8.25e-08 4.29e-07 / 3.597e-06 / 1.0725e-07 EUC1-Nova2.0Lite-input-tokens 0.000429, -output-tokens 0.003597, -cache-read-input-token-count 0.00010725
apac.amazon.nova-2-lite-v1:0 input / output / cache read 3.3e-07 / 2.75e-06 / 8.25e-08 3.96e-07 / 3.311e-06 / 9.9e-08 APN1-Nova2.0Lite-input-tokens 0.000396, -output-tokens 0.003311, -cache-read-input-token-count 0.000099
bedrock/us-gov-west-1/amazon.titan-embed-text-v2:0 input 2e-07 1.1e-07 UGW1-TitanEmbeddingV2-Text-input-tokens 0.00011
bedrock/us-gov-west-1/amazon.titan-text-express-v1 input / output 1.3e-06 / 1.7e-06 8e-07 / 1.6e-06 UGW1-TitanTextG1-Express-input-tokens 0.0008, -output-tokens 0.0016

The eu.* row uses Frankfurt prices, matching how the existing eu.amazon.nova-pro-v1:0, eu.amazon.nova-lite-v1:0 and eu.amazon.nova-micro-v1:0 rows are priced. For apac.*, Tokyo is the only APAC region whose Price List carries Nova 2 Lite on-demand rows

New amazon.nova-premier-v1:0 uses USE1-NovaPremier-input-tokens 0.0025, -output-tokens 0.0125 and -cache-read-input-token-count 0.000625. The 1M context window, 10K max output and text, image and video input come from the model table at https://docs.aws.amazon.com/nova/latest/userguide/what-is-nova.html. Capability flags match the existing amazon-nova/nova-premier-v1 row and the sibling amazon.nova-pro-v1:0 row

Together: https://docs.together.ai/docs/deprecations lists meta-llama/Llama-3.3-70B-Instruct-Turbo and deepseek-ai/DeepSeek-V4-Flash-0731 with the 2026-10-22 removal rescinded and both models back in the catalog, so their deprecation_date is removed

Absorbed from other open PRs

From #45679 this takes the Titan Text Express and Lite prices, the EU and APAC Nova 2 Lite prices, the two GovCloud Titan rows and the Nova Premier entry, with Nova Premier also gaining its Price List cache read rate. It drops the Frankfurt and Tokyo anthropic.claude-instant-v1 prices because those regions have no Claude Instant rows in the Price List, and it drops amazon.nova-sonic-v1:0 because https://docs.aws.amazon.com/bedrock/latest/userguide/model-lifecycle-legacy.html shows it reached end of life on September 14, 2026. The test edit in that PR is not needed since the Claude Instant rows it moved off stay unchanged

From #45754 this takes the two Together deprecation_date removals. It drops the removal of cache_read_input_token_cost on together_ai/together/Tev1-4B-experimental because no official page shows that rate was withdrawn

Checked and left unchanged

OpenAI, Anthropic, Gemini, Vertex, Azure, Groq and Bedrock deprecation pages were compared against the map. Anthropic and Bedrock "not sooner than" dates are tentative, so they are not recorded, matching the previous audit. The Together openai/gpt-oss-20b and google/gemma-4-31B-it date stays at 2026-09-15 as set in #43509. #45502 (temporary sale prices), #43879 (bare kimi-k2.5 duplicating moonshot/kimi-k2.5) and #43753 (bare deepseek-v3 duplicating deepseek/deepseek-v3) were not absorbed. PRs that change code and only incidentally touch the JSON were left alone

Pre-Submission checklist

  • I have added meaningful tests
  • The handful of test files covering my change pass locally, e.g. uv run pytest tests/unit/<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.)
  • 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

Probe that loads each revision's cost map and prices 1M input plus 1M output tokens with litellm.cost_per_token

Before (origin/main)

  1. LITELLM_LOCAL_MODEL_COST_MAP=True uv run --no-sync python cost_probe.py origin/main
  2. Output
amazon.titan-text-express-v1 (1.3, 1.7)
eu.amazon.nova-2-lite-v1:0 (0.33, 2.75)
amazon.nova-premier-v1:0 ModelNotMappedError
together_ai/meta-llama/Llama-3.3-70B-Instruct-Turbo deprecation_date 2026-10-22

After (f40b9e4)

  1. LITELLM_LOCAL_MODEL_COST_MAP=True uv run --no-sync python cost_probe.py HEAD
  2. Output
amazon.titan-text-express-v1 (0.19999999999999998, 0.6)
eu.amazon.nova-2-lite-v1:0 (0.429, 3.597)
amazon.nova-premier-v1:0 (2.5, 12.5)
together_ai/meta-llama/Llama-3.3-70B-Instruct-Turbo deprecation_date None

Local checks also passed: python3 ci_cd/check_files_match.py, schema regeneration with no diff, and LITELLM_LOCAL_MODEL_COST_MAP=True uv run --no-sync pytest -q tests/unit/test_model_prices_schema.py tests/unit/test_model_cost_aliases.py (92 passed)

Type

🐛 Bug Fix

Caveats (if any)

Low

  • apac.* Nova 2 Lite uses Tokyo, the only APAC Price List region listing it
  • Bedrock pricing HTML is script-rendered, so the Price List files were used instead

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

…ces, add Nova Premier, clear Together returned-model dates

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

Co-authored-by: Jason Cumberland <jason@revenium.io>
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.

@greptile-apps

greptile-apps Bot commented Oct 10, 2026 •

Copy link
Copy Markdown
Contributor

RetriggerConfidence Score: 5/5

[Critical impact] The PR appears safe to merge; no actionable issues were found.

Summary

Updates both copies of the model cost map.

  • Titan model lookups use updated AWS prices.
  • Regional Nova 2 Lite lookups use updated AWS prices.
  • Nova Premier requests can use a defined Bedrock price entry.
  • Together model entries no longer show the rescinded retirement date.

No actionable issues were found. Review checks were based on the diff and existing code; no runtime tests were run.

Reviews (1) · Last reviewed commit: "fix(model-prices): correct Bedrock Titan..." · Reviewed by Greptile

@codspeed

codspeed Bot commented Oct 10, 2026

Copy link
Copy Markdown
Contributor

Merging this PR will not alter performance

✅ 31 untouched benchmarks


Comparing litellm_registry_audit_2026_10_10 (f40b9e4) with main (7ff5010)

Open in CodSpeed

@codecov

codecov Bot commented Oct 10, 2026

Copy link
Copy Markdown

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

@kerrylu-berri
kerrylu-berri merged commit c327163 into main Oct 10, 2026
79 checks passed
@kerrylu-berri
kerrylu-berri deleted the litellm_registry_audit_2026_10_10 branch October 10, 2026 17:09
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.

2 participants