From c77ac8622b95525602d874c2cea31e6bd8e343e2 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Tue, 8 Sep 2026 18:47:23 +0300 Subject: [PATCH] =?UTF-8?q?fix(hubris):=20price=20the=20models=20=E2=80=94?= =?UTF-8?q?=20unpriced=20entries=20defeat=20spend=20limits?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The review is right and my earlier reasoning was wrong. I left cost fields off because Hubris bills in rubles at a rate that moves, so any USD figure would drift. What I failed to weigh is what zero costs actually do in this codebase: usage on these models records as no spend, so an authenticated user can call billable models without touching spend-based limits. A stale price is a much smaller problem than a limit that does not apply. The drift argument was weak anyway. Every entry in this file is a snapshot that ages between updates; Hubris is not special in that respect. The numbers are derived, not invented: they are the ruble prices this gateway publishes on its own open catalogue (GET https://api.hubris.pw/v1/models, no key required), converted at the Bank of Russia reference rate of 86.473 RUB/USD for 2026-09-09. Anyone can recompute them from those two public sources, and points at the catalogue page. Verified: both files parse, all 14 Hubris entries carry input and output costs, no other entry touched. --- ...odel_prices_and_context_window_backup.json | 28 +++++++++++++++++++ model_prices_and_context_window.json | 28 +++++++++++++++++++ 2 files changed, 56 insertions(+) diff --git a/litellm/model_prices_and_context_window_backup.json b/litellm/model_prices_and_context_window_backup.json index 9124b795fd0..301ad75c698 100644 --- a/litellm/model_prices_and_context_window_backup.json +++ b/litellm/model_prices_and_context_window_backup.json @@ -59145,6 +59145,8 @@ "supports_vision": true }, "hubris/anthropic/claude-haiku-4.5": { + "input_cost_per_token": 1.46138e-06, + "output_cost_per_token": 7.30644e-06, "litellm_provider": "hubris", "max_input_tokens": 200000, "max_output_tokens": 64000, @@ -59164,6 +59166,8 @@ "supports_vision": true }, "hubris/anthropic/claude-opus-5": { + "input_cost_per_token": 7.30644e-06, + "output_cost_per_token": 3.6532e-05, "litellm_provider": "hubris", "max_input_tokens": 1000000, "max_output_tokens": 128000, @@ -59190,6 +59194,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/anthropic/claude-sonnet-5": { + "input_cost_per_token": 2.92265e-06, + "output_cost_per_token": 1.46128e-05, "litellm_provider": "hubris", "max_input_tokens": 1000000, "max_output_tokens": 128000, @@ -59215,6 +59221,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/deepseek/deepseek-v4-flash": { + "input_cost_per_token": 1.2952e-07, + "output_cost_per_token": 2.5904e-07, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 384000, @@ -59233,6 +59241,8 @@ "supports_vision": false }, "hubris/deepseek/deepseek-v4-pro": { + "input_cost_per_token": 1.39593e-06, + "output_cost_per_token": 2.79185e-06, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 384000, @@ -59251,6 +59261,8 @@ "supports_vision": false }, "hubris/google/gemini-3.7-flash": { + "input_cost_per_token": 1.09607e-06, + "output_cost_per_token": 5.47986e-06, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 65536, @@ -59275,6 +59287,8 @@ "supports_web_search": true }, "hubris/google/gemini-3.8-flash": { + "input_cost_per_token": 1.09607e-06, + "output_cost_per_token": 5.47986e-06, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 65536, @@ -59299,6 +59313,8 @@ "supports_web_search": true }, "hubris/minimax/minimax-m3": { + "input_cost_per_token": 4.38403e-07, + "output_cost_per_token": 1.75361e-06, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 512000, @@ -59312,6 +59328,8 @@ "supports_vision": true }, "hubris/moonshotai/kimi-k3": { + "input_cost_per_token": 4.38391e-06, + "output_cost_per_token": 2.19192e-05, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 943718, @@ -59326,6 +59344,8 @@ "supports_vision": true }, "hubris/openai/gpt-5.4-mini": { + "input_cost_per_token": 1.09607e-06, + "output_cost_per_token": 6.57581e-06, "litellm_provider": "hubris", "max_input_tokens": 400000, "max_output_tokens": 128000, @@ -59348,6 +59368,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/openai/gpt-5.6-luna": { + "input_cost_per_token": 2.92346e-07, + "output_cost_per_token": 1.75361e-06, "litellm_provider": "hubris", "max_input_tokens": 1050000, "max_output_tokens": 128000, @@ -59371,6 +59393,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/openai/gpt-6-astra": { + "input_cost_per_token": 1.46128e-05, + "output_cost_per_token": 7.30638e-05, "litellm_provider": "hubris", "max_input_tokens": 1050000, "max_output_tokens": 128000, @@ -59396,6 +59420,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/x-ai/grok-4.6": { + "input_cost_per_token": 2.92265e-06, + "output_cost_per_token": 8.76771e-06, "litellm_provider": "hubris", "max_input_tokens": 500000, "max_output_tokens": 450000, @@ -59409,6 +59435,8 @@ "supports_vision": true }, "hubris/z-ai/glm-5.3": { + "input_cost_per_token": 2.04584e-06, + "output_cost_per_token": 6.42964e-06, "litellm_provider": "hubris", "max_input_tokens": 1310720, "max_output_tokens": 943718, diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index 9124b795fd0..301ad75c698 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -59145,6 +59145,8 @@ "supports_vision": true }, "hubris/anthropic/claude-haiku-4.5": { + "input_cost_per_token": 1.46138e-06, + "output_cost_per_token": 7.30644e-06, "litellm_provider": "hubris", "max_input_tokens": 200000, "max_output_tokens": 64000, @@ -59164,6 +59166,8 @@ "supports_vision": true }, "hubris/anthropic/claude-opus-5": { + "input_cost_per_token": 7.30644e-06, + "output_cost_per_token": 3.6532e-05, "litellm_provider": "hubris", "max_input_tokens": 1000000, "max_output_tokens": 128000, @@ -59190,6 +59194,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/anthropic/claude-sonnet-5": { + "input_cost_per_token": 2.92265e-06, + "output_cost_per_token": 1.46128e-05, "litellm_provider": "hubris", "max_input_tokens": 1000000, "max_output_tokens": 128000, @@ -59215,6 +59221,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/deepseek/deepseek-v4-flash": { + "input_cost_per_token": 1.2952e-07, + "output_cost_per_token": 2.5904e-07, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 384000, @@ -59233,6 +59241,8 @@ "supports_vision": false }, "hubris/deepseek/deepseek-v4-pro": { + "input_cost_per_token": 1.39593e-06, + "output_cost_per_token": 2.79185e-06, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 384000, @@ -59251,6 +59261,8 @@ "supports_vision": false }, "hubris/google/gemini-3.7-flash": { + "input_cost_per_token": 1.09607e-06, + "output_cost_per_token": 5.47986e-06, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 65536, @@ -59275,6 +59287,8 @@ "supports_web_search": true }, "hubris/google/gemini-3.8-flash": { + "input_cost_per_token": 1.09607e-06, + "output_cost_per_token": 5.47986e-06, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 65536, @@ -59299,6 +59313,8 @@ "supports_web_search": true }, "hubris/minimax/minimax-m3": { + "input_cost_per_token": 4.38403e-07, + "output_cost_per_token": 1.75361e-06, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 512000, @@ -59312,6 +59328,8 @@ "supports_vision": true }, "hubris/moonshotai/kimi-k3": { + "input_cost_per_token": 4.38391e-06, + "output_cost_per_token": 2.19192e-05, "litellm_provider": "hubris", "max_input_tokens": 1048576, "max_output_tokens": 943718, @@ -59326,6 +59344,8 @@ "supports_vision": true }, "hubris/openai/gpt-5.4-mini": { + "input_cost_per_token": 1.09607e-06, + "output_cost_per_token": 6.57581e-06, "litellm_provider": "hubris", "max_input_tokens": 400000, "max_output_tokens": 128000, @@ -59348,6 +59368,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/openai/gpt-5.6-luna": { + "input_cost_per_token": 2.92346e-07, + "output_cost_per_token": 1.75361e-06, "litellm_provider": "hubris", "max_input_tokens": 1050000, "max_output_tokens": 128000, @@ -59371,6 +59393,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/openai/gpt-6-astra": { + "input_cost_per_token": 1.46128e-05, + "output_cost_per_token": 7.30638e-05, "litellm_provider": "hubris", "max_input_tokens": 1050000, "max_output_tokens": 128000, @@ -59396,6 +59420,8 @@ "supports_xhigh_reasoning_effort": true }, "hubris/x-ai/grok-4.6": { + "input_cost_per_token": 2.92265e-06, + "output_cost_per_token": 8.76771e-06, "litellm_provider": "hubris", "max_input_tokens": 500000, "max_output_tokens": 450000, @@ -59409,6 +59435,8 @@ "supports_vision": true }, "hubris/z-ai/glm-5.3": { + "input_cost_per_token": 2.04584e-06, + "output_cost_per_token": 6.42964e-06, "litellm_provider": "hubris", "max_input_tokens": 1310720, "max_output_tokens": 943718,