mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-09 22:31:41 +00:00
fix(model_prices): absorb Baseten GLM-5.3 and OpenRouter live prices, fix Bedrock Qwen3 Coder 480B input price and Gemini Live image price
Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com>
This commit is contained in:
parent
32a3a65312
commit
2c4eb693ed
5 changed files with 487 additions and 233 deletions
|
|
@ -22968,7 +22968,8 @@
|
|||
"search_context_size_medium": 0.035,
|
||||
"search_context_size_high": 0.035
|
||||
},
|
||||
"gemini_native_audio": true
|
||||
"gemini_native_audio": true,
|
||||
"input_cost_per_image_token": 3e-06
|
||||
},
|
||||
"gemini-live-2.5-flash-preview-native-audio-09-2025": {
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
|
|
@ -37637,7 +37638,7 @@
|
|||
"cache_creation_input_token_cost_above_200k_tokens": 7.5e-06,
|
||||
"cache_read_input_token_cost_above_200k_tokens": 6e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"max_tokens": 64000,
|
||||
"mode": "chat",
|
||||
|
|
@ -37733,24 +37734,24 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-chat": {
|
||||
"input_cost_per_token": 1.4e-07,
|
||||
"input_cost_per_token": 3.2e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 65536,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.8e-07,
|
||||
"output_cost_per_token": 8.9e-07,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-chat-v3-0324": {
|
||||
"input_cost_per_token": 1.4e-07,
|
||||
"input_cost_per_token": 2.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 65536,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.8e-07,
|
||||
"output_cost_per_token": 1e-06,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
|
|
@ -37770,7 +37771,7 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-v3.2": {
|
||||
"input_cost_per_token": 2.8e-07,
|
||||
"input_cost_per_token": 2.69e-07,
|
||||
"input_cost_per_token_cache_hit": 2.8e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 163840,
|
||||
|
|
@ -37785,14 +37786,14 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-v3.2-exp": {
|
||||
"input_cost_per_token": 2e-07,
|
||||
"input_cost_per_token": 2.7e-07,
|
||||
"input_cost_per_token_cache_hit": 2e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 163840,
|
||||
"max_output_tokens": 163840,
|
||||
"max_tokens": 163840,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 4e-07,
|
||||
"output_cost_per_token": 4.1e-07,
|
||||
"supports_assistant_prefill": true,
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
|
|
@ -37800,14 +37801,14 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-r1": {
|
||||
"input_cost_per_token": 5.5e-07,
|
||||
"input_cost_per_token": 7e-07,
|
||||
"input_cost_per_token_cache_hit": 1.4e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 65336,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.19e-06,
|
||||
"output_cost_per_token": 2.5e-06,
|
||||
"supports_assistant_prefill": true,
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
|
|
@ -37903,8 +37904,8 @@
|
|||
"input_cost_per_token": 1.25e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"max_output_tokens": 65535,
|
||||
"max_tokens": 65535,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1e-05,
|
||||
"supports_audio_output": true,
|
||||
|
|
@ -38119,19 +38120,19 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/gryphe/mythomax-l2-13b": {
|
||||
"input_cost_per_token": 1.875e-06,
|
||||
"input_cost_per_token": 6e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.875e-06,
|
||||
"output_cost_per_token": 6e-08,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/mancer/weaver": {
|
||||
"input_cost_per_token": 5.625e-06,
|
||||
"input_cost_per_token": 4e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 2000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 5.625e-06,
|
||||
"output_cost_per_token": 7.5e-07,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 8000,
|
||||
"max_output_tokens": 2000
|
||||
|
|
@ -38161,13 +38162,13 @@
|
|||
},
|
||||
"openrouter/mistralai/devstral-2512": {
|
||||
"input_cost_per_image": 0,
|
||||
"input_cost_per_token": 1.5e-07,
|
||||
"input_cost_per_token": 4e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 6e-07,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": false,
|
||||
"supports_tool_choice": true,
|
||||
|
|
@ -38240,54 +38241,54 @@
|
|||
"max_output_tokens": 8191
|
||||
},
|
||||
"openrouter/mistralai/mistral-large": {
|
||||
"input_cost_per_token": 8e-06,
|
||||
"input_cost_per_token": 2e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 8191,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.4e-05,
|
||||
"output_cost_per_token": 6e-06,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 8191
|
||||
},
|
||||
"openrouter/mistralai/mistral-small-3.1-24b-instruct": {
|
||||
"input_cost_per_token": 1e-07,
|
||||
"input_cost_per_token": 3.51e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 131072,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 5.55e-07,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 131072
|
||||
},
|
||||
"openrouter/mistralai/mistral-small-3.2-24b-instruct": {
|
||||
"input_cost_per_token": 1e-07,
|
||||
"input_cost_per_token": 7.5e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 2e-07,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000
|
||||
},
|
||||
"openrouter/mistralai/mixtral-8x22b-instruct": {
|
||||
"input_cost_per_token": 6.5e-07,
|
||||
"input_cost_per_token": 2e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 6.5e-07,
|
||||
"output_cost_per_token": 6e-06,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 65536,
|
||||
"max_output_tokens": 65536
|
||||
},
|
||||
"openrouter/moonshotai/kimi-k2.5": {
|
||||
"cache_read_input_token_cost": 1e-07,
|
||||
"input_cost_per_token": 6e-07,
|
||||
"cache_read_input_token_cost": 7e-08,
|
||||
"input_cost_per_token": 4.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"max_tokens": 262144,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 3e-06,
|
||||
"output_cost_per_token": 2.25e-06,
|
||||
"source": "https://openrouter.ai/moonshotai/kimi-k2.5",
|
||||
"supports_function_calling": true,
|
||||
"supports_tool_choice": true,
|
||||
|
|
@ -38295,7 +38296,7 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/nvidia/nemotron-3.5-lightning": {
|
||||
"input_cost_per_token": 5e-08,
|
||||
"input_cost_per_token": 8e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"mode": "chat",
|
||||
|
|
@ -38600,13 +38601,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/openai/gpt-oss-120b": {
|
||||
"input_cost_per_token": 1.8e-07,
|
||||
"input_cost_per_token": 3.7e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 32768,
|
||||
"max_tokens": 32768,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 8e-07,
|
||||
"output_cost_per_token": 1.7e-07,
|
||||
"source": "https://openrouter.ai/openai/gpt-oss-120b",
|
||||
"supports_function_calling": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
|
|
@ -38615,13 +38616,13 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/openai/gpt-oss-20b": {
|
||||
"input_cost_per_token": 2e-08,
|
||||
"input_cost_per_token": 3e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 32768,
|
||||
"max_tokens": 32768,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1e-07,
|
||||
"output_cost_per_token": 1.3e-07,
|
||||
"source": "https://openrouter.ai/openai/gpt-oss-20b",
|
||||
"supports_function_calling": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
|
|
@ -38681,13 +38682,13 @@
|
|||
"source": "https://openrouter.ai/openai/o3-mini-high"
|
||||
},
|
||||
"openrouter/qwen/qwen-2.5-coder-32b-instruct": {
|
||||
"input_cost_per_token": 1.8e-07,
|
||||
"input_cost_per_token": 6.6e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 33792,
|
||||
"max_output_tokens": 33792,
|
||||
"max_tokens": 33792,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.8e-07,
|
||||
"output_cost_per_token": 1e-06,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/qwen/qwen-vl-plus": {
|
||||
|
|
@ -38702,50 +38703,50 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3-coder": {
|
||||
"input_cost_per_token": 2.2e-07,
|
||||
"input_cost_per_token": 3e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262100,
|
||||
"max_output_tokens": 262100,
|
||||
"max_tokens": 262100,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 9.5e-07,
|
||||
"output_cost_per_token": 1e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3-coder",
|
||||
"supports_tool_choice": true,
|
||||
"supports_function_calling": true
|
||||
},
|
||||
"openrouter/qwen/qwen3-coder-plus": {
|
||||
"input_cost_per_token": 1e-06,
|
||||
"input_cost_per_token": 6.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 997952,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 5e-06,
|
||||
"output_cost_per_token": 3.25e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3-coder-plus",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/qwen/qwen3-235b-a22b-2507": {
|
||||
"input_cost_per_token": 7.1e-08,
|
||||
"input_cost_per_token": 8.75e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"max_tokens": 262144,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1e-07,
|
||||
"output_cost_per_token": 3.5e-07,
|
||||
"source": "https://openrouter.ai/qwen/qwen3-235b-a22b-2507",
|
||||
"supports_function_calling": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/qwen/qwen3-235b-a22b-thinking-2507": {
|
||||
"input_cost_per_token": 1.1e-07,
|
||||
"input_cost_per_token": 2.3e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"max_tokens": 262144,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 6e-07,
|
||||
"output_cost_per_token": 2.3e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3-235b-a22b-thinking-2507",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38772,7 +38773,7 @@
|
|||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2e-06,
|
||||
"output_cost_per_token": 1.25e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-35b-a3b",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38780,13 +38781,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-27b": {
|
||||
"input_cost_per_token": 3e-07,
|
||||
"input_cost_per_token": 1.95e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.4e-06,
|
||||
"output_cost_per_token": 1.56e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-27b",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38794,13 +38795,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-122b-a10b": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"input_cost_per_token": 2.9e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2e-06,
|
||||
"output_cost_per_token": 2.4e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-122b-a10b",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38808,13 +38809,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-flash-02-23": {
|
||||
"input_cost_per_token": 1e-07,
|
||||
"input_cost_per_token": 6.5e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 4e-07,
|
||||
"output_cost_per_token": 2.6e-07,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-flash-02-23",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38822,14 +38823,14 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-plus-02-15": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"input_cost_per_token": 2.6e-07,
|
||||
"input_cost_per_token_above_256k_tokens": 5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.4e-06,
|
||||
"output_cost_per_token": 1.56e-06,
|
||||
"output_cost_per_token_above_256k_tokens": 3e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-plus-02-15",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -38838,13 +38839,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-397b-a17b": {
|
||||
"input_cost_per_token": 6e-07,
|
||||
"input_cost_per_token": 5.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 3.6e-06,
|
||||
"output_cost_per_token": 3.5e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-397b-a17b",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38863,11 +38864,11 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/undi95/remm-slerp-l2-13b": {
|
||||
"input_cost_per_token": 1.875e-06,
|
||||
"input_cost_per_token": 4.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 4096,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.875e-06,
|
||||
"output_cost_per_token": 6.5e-07,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 6144,
|
||||
"max_output_tokens": 4096
|
||||
|
|
@ -38887,13 +38888,13 @@
|
|||
"supports_web_search": true
|
||||
},
|
||||
"openrouter/z-ai/glm-4.6": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"input_cost_per_token": 5.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 202800,
|
||||
"max_output_tokens": 131000,
|
||||
"max_tokens": 131000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.75e-06,
|
||||
"output_cost_per_token": 2.2e-06,
|
||||
"source": "https://openrouter.ai/z-ai/glm-4.6",
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
|
|
@ -38931,10 +38932,10 @@
|
|||
"supports_prompt_caching": true
|
||||
},
|
||||
"openrouter/xiaomi/mimo-v2.5-pro": {
|
||||
"input_cost_per_token": 1e-06,
|
||||
"output_cost_per_token": 3e-06,
|
||||
"input_cost_per_token": 4.35e-07,
|
||||
"output_cost_per_token": 8.7e-07,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 2e-07,
|
||||
"cache_read_input_token_cost": 3.6e-09,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 16384,
|
||||
|
|
@ -38948,10 +38949,10 @@
|
|||
"supports_prompt_caching": true
|
||||
},
|
||||
"openrouter/xiaomi/mimo-v2.5": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"input_cost_per_token": 1.4e-07,
|
||||
"output_cost_per_token": 2.8e-07,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 8e-08,
|
||||
"cache_read_input_token_cost": 2.8e-09,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 131072,
|
||||
|
|
@ -38968,9 +38969,9 @@
|
|||
},
|
||||
"openrouter/z-ai/glm-4.7": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"output_cost_per_token": 1.5e-06,
|
||||
"output_cost_per_token": 1.75e-06,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 8e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 202752,
|
||||
"max_output_tokens": 64000,
|
||||
|
|
@ -38984,10 +38985,10 @@
|
|||
"supports_assistant_prefill": true
|
||||
},
|
||||
"openrouter/z-ai/glm-4.7-flash": {
|
||||
"input_cost_per_token": 7e-08,
|
||||
"input_cost_per_token": 6e-08,
|
||||
"output_cost_per_token": 4e-07,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 1e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 32000,
|
||||
|
|
@ -39000,22 +39001,22 @@
|
|||
"supports_prompt_caching": false
|
||||
},
|
||||
"openrouter/z-ai/glm-5": {
|
||||
"input_cost_per_token": 8e-07,
|
||||
"input_cost_per_token": 6e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 202752,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.56e-06,
|
||||
"output_cost_per_token": 1.92e-06,
|
||||
"source": "https://openrouter.ai/z-ai/glm-5",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/z-ai/glm-5.1": {
|
||||
"input_cost_per_token": 1.05e-06,
|
||||
"output_cost_per_token": 3.5e-06,
|
||||
"cache_read_input_token_cost": 5.25e-07,
|
||||
"input_cost_per_token": 9.66e-07,
|
||||
"output_cost_per_token": 3.036e-06,
|
||||
"cache_read_input_token_cost": 1.794e-07,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 202752,
|
||||
|
|
@ -39029,10 +39030,10 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/minimax/minimax-m2.1": {
|
||||
"input_cost_per_token": 2.7e-07,
|
||||
"input_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 1.2e-06,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 3e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 204000,
|
||||
"max_output_tokens": 64000,
|
||||
|
|
@ -39046,9 +39047,9 @@
|
|||
"supports_computer_use": false
|
||||
},
|
||||
"openrouter/minimax/minimax-m2.5": {
|
||||
"input_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 1.1e-06,
|
||||
"cache_read_input_token_cost": 1.5e-07,
|
||||
"input_cost_per_token": 2.7e-07,
|
||||
"output_cost_per_token": 1.08e-06,
|
||||
"cache_read_input_token_cost": 2.7e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 196608,
|
||||
"max_output_tokens": 65536,
|
||||
|
|
@ -39947,7 +39948,7 @@
|
|||
"supports_reasoning": true
|
||||
},
|
||||
"qwen.qwen3-coder-480b-a35b-v1:0": {
|
||||
"input_cost_per_token": 2.2e-07,
|
||||
"input_cost_per_token": 4.5e-07,
|
||||
"litellm_provider": "bedrock_converse",
|
||||
"max_input_tokens": 262000,
|
||||
"max_output_tokens": 65536,
|
||||
|
|
@ -39957,7 +39958,8 @@
|
|||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_tool_choice": true,
|
||||
"supports_native_structured_output": true
|
||||
"supports_native_structured_output": true,
|
||||
"source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/us-east-1/index.json"
|
||||
},
|
||||
"qwen.qwen3-235b-a22b-2507-v1:0": {
|
||||
"input_cost_per_token": 2.2e-07,
|
||||
|
|
@ -52852,7 +52854,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52878,7 +52880,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52904,7 +52906,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52932,7 +52934,7 @@
|
|||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 4.5e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52963,7 +52965,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52991,7 +52993,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -53019,7 +53021,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -53049,7 +53051,7 @@
|
|||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 4.5e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -59463,7 +59465,8 @@
|
|||
"supports_audio_input": false,
|
||||
"cache_read_input_token_cost": 1e-06,
|
||||
"supports_prompt_caching": true,
|
||||
"cache_creation_input_token_cost": 1.25e-05
|
||||
"cache_creation_input_token_cost": 1.25e-05,
|
||||
"prompt_cache_min_tokens": 512
|
||||
},
|
||||
"openrouter/anthropic/claude-fable-5.1": {
|
||||
"input_cost_per_token": 1e-05,
|
||||
|
|
@ -59483,7 +59486,8 @@
|
|||
"supports_audio_input": false,
|
||||
"cache_read_input_token_cost": 2.5e-07,
|
||||
"supports_prompt_caching": true,
|
||||
"cache_creation_input_token_cost": 1.25e-05
|
||||
"cache_creation_input_token_cost": 1.25e-05,
|
||||
"prompt_cache_min_tokens": 512
|
||||
},
|
||||
"openrouter/anthropic/claude-opus-4.8": {
|
||||
"input_cost_per_token": 5e-06,
|
||||
|
|
@ -59549,8 +59553,8 @@
|
|||
"output_cost_per_token": 9e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"max_output_tokens": 65535,
|
||||
"max_tokens": 65535,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/google/gemini-3.5-flash",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59662,7 +59666,7 @@
|
|||
"input_cost_per_token": 1.25e-06,
|
||||
"output_cost_per_token": 1e-05,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 400000,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59681,7 +59685,7 @@
|
|||
"input_cost_per_token": 1.75e-06,
|
||||
"output_cost_per_token": 1.4e-05,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 400000,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59719,7 +59723,7 @@
|
|||
"input_cost_per_token": 7.5e-07,
|
||||
"output_cost_per_token": 4.5e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 400000,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59738,7 +59742,7 @@
|
|||
"input_cost_per_token": 2e-07,
|
||||
"output_cost_per_token": 1.25e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 400000,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59776,7 +59780,7 @@
|
|||
"input_cost_per_token": 2e-07,
|
||||
"output_cost_per_token": 1.2e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1050000,
|
||||
"max_input_tokens": 922000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59795,7 +59799,7 @@
|
|||
"input_cost_per_token": 2e-06,
|
||||
"output_cost_per_token": 1.2e-05,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1050000,
|
||||
"max_input_tokens": 922000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59852,9 +59856,9 @@
|
|||
"input_cost_per_token": 1.25e-06,
|
||||
"output_cost_per_token": 2.5e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 1800000,
|
||||
"max_tokens": 1800000,
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 1000000,
|
||||
"max_tokens": 1000000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.20",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59871,9 +59875,9 @@
|
|||
"input_cost_per_token": 1.25e-06,
|
||||
"output_cost_per_token": 2.5e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 1800000,
|
||||
"max_tokens": 1800000,
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 1000000,
|
||||
"max_tokens": 1000000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.20-multi-agent",
|
||||
"supports_function_calling": false,
|
||||
|
|
@ -59891,8 +59895,8 @@
|
|||
"output_cost_per_token": 2.5e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 900000,
|
||||
"max_tokens": 900000,
|
||||
"max_output_tokens": 1000000,
|
||||
"max_tokens": 1000000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.3",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59910,8 +59914,8 @@
|
|||
"output_cost_per_token": 6e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 500000,
|
||||
"max_output_tokens": 450000,
|
||||
"max_tokens": 450000,
|
||||
"max_output_tokens": 500000,
|
||||
"max_tokens": 500000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.5",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59929,8 +59933,8 @@
|
|||
"output_cost_per_token": 6e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 500000,
|
||||
"max_output_tokens": 450000,
|
||||
"max_tokens": 450000,
|
||||
"max_output_tokens": 500000,
|
||||
"max_tokens": 500000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.6",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59948,8 +59952,8 @@
|
|||
"output_cost_per_token": 2e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 256000,
|
||||
"max_output_tokens": 230400,
|
||||
"max_tokens": 230400,
|
||||
"max_output_tokens": 256000,
|
||||
"max_tokens": 256000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-build-0.1",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59961,5 +59965,26 @@
|
|||
"supports_audio_input": false,
|
||||
"cache_read_input_token_cost": 2e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"baseten/zai-org/GLM-5.3": {
|
||||
"cache_read_input_token_cost": 1.4e-07,
|
||||
"input_cost_per_token": 1.4e-06,
|
||||
"litellm_provider": "baseten",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 262144,
|
||||
"max_tokens": 262144,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 4.4e-06,
|
||||
"source": "https://www.baseten.co/pricing/",
|
||||
"supported_modalities": [
|
||||
"text"
|
||||
],
|
||||
"supported_output_modalities": [
|
||||
"text"
|
||||
],
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -22968,7 +22968,8 @@
|
|||
"search_context_size_medium": 0.035,
|
||||
"search_context_size_high": 0.035
|
||||
},
|
||||
"gemini_native_audio": true
|
||||
"gemini_native_audio": true,
|
||||
"input_cost_per_image_token": 3e-06
|
||||
},
|
||||
"gemini-live-2.5-flash-preview-native-audio-09-2025": {
|
||||
"cache_read_input_token_cost": 7.5e-08,
|
||||
|
|
@ -37637,7 +37638,7 @@
|
|||
"cache_creation_input_token_cost_above_200k_tokens": 7.5e-06,
|
||||
"cache_read_input_token_cost_above_200k_tokens": 6e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 64000,
|
||||
"max_tokens": 64000,
|
||||
"mode": "chat",
|
||||
|
|
@ -37733,24 +37734,24 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-chat": {
|
||||
"input_cost_per_token": 1.4e-07,
|
||||
"input_cost_per_token": 3.2e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 65536,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.8e-07,
|
||||
"output_cost_per_token": 8.9e-07,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-chat-v3-0324": {
|
||||
"input_cost_per_token": 1.4e-07,
|
||||
"input_cost_per_token": 2.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 65536,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.8e-07,
|
||||
"output_cost_per_token": 1e-06,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
|
|
@ -37770,7 +37771,7 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-v3.2": {
|
||||
"input_cost_per_token": 2.8e-07,
|
||||
"input_cost_per_token": 2.69e-07,
|
||||
"input_cost_per_token_cache_hit": 2.8e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 163840,
|
||||
|
|
@ -37785,14 +37786,14 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-v3.2-exp": {
|
||||
"input_cost_per_token": 2e-07,
|
||||
"input_cost_per_token": 2.7e-07,
|
||||
"input_cost_per_token_cache_hit": 2e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 163840,
|
||||
"max_output_tokens": 163840,
|
||||
"max_tokens": 163840,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 4e-07,
|
||||
"output_cost_per_token": 4.1e-07,
|
||||
"supports_assistant_prefill": true,
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
|
|
@ -37800,14 +37801,14 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/deepseek/deepseek-r1": {
|
||||
"input_cost_per_token": 5.5e-07,
|
||||
"input_cost_per_token": 7e-07,
|
||||
"input_cost_per_token_cache_hit": 1.4e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 65336,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.19e-06,
|
||||
"output_cost_per_token": 2.5e-06,
|
||||
"supports_assistant_prefill": true,
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
|
|
@ -37903,8 +37904,8 @@
|
|||
"input_cost_per_token": 1.25e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"max_output_tokens": 65535,
|
||||
"max_tokens": 65535,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1e-05,
|
||||
"supports_audio_output": true,
|
||||
|
|
@ -38119,19 +38120,19 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/gryphe/mythomax-l2-13b": {
|
||||
"input_cost_per_token": 1.875e-06,
|
||||
"input_cost_per_token": 6e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.875e-06,
|
||||
"output_cost_per_token": 6e-08,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/mancer/weaver": {
|
||||
"input_cost_per_token": 5.625e-06,
|
||||
"input_cost_per_token": 4e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 2000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 5.625e-06,
|
||||
"output_cost_per_token": 7.5e-07,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 8000,
|
||||
"max_output_tokens": 2000
|
||||
|
|
@ -38161,13 +38162,13 @@
|
|||
},
|
||||
"openrouter/mistralai/devstral-2512": {
|
||||
"input_cost_per_image": 0,
|
||||
"input_cost_per_token": 1.5e-07,
|
||||
"input_cost_per_token": 4e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 6e-07,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": false,
|
||||
"supports_tool_choice": true,
|
||||
|
|
@ -38240,54 +38241,54 @@
|
|||
"max_output_tokens": 8191
|
||||
},
|
||||
"openrouter/mistralai/mistral-large": {
|
||||
"input_cost_per_token": 8e-06,
|
||||
"input_cost_per_token": 2e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 8191,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.4e-05,
|
||||
"output_cost_per_token": 6e-06,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 8191
|
||||
},
|
||||
"openrouter/mistralai/mistral-small-3.1-24b-instruct": {
|
||||
"input_cost_per_token": 1e-07,
|
||||
"input_cost_per_token": 3.51e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 131072,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 5.55e-07,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 131072
|
||||
},
|
||||
"openrouter/mistralai/mistral-small-3.2-24b-instruct": {
|
||||
"input_cost_per_token": 1e-07,
|
||||
"input_cost_per_token": 7.5e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 2e-07,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 128000,
|
||||
"max_output_tokens": 128000
|
||||
},
|
||||
"openrouter/mistralai/mixtral-8x22b-instruct": {
|
||||
"input_cost_per_token": 6.5e-07,
|
||||
"input_cost_per_token": 2e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 6.5e-07,
|
||||
"output_cost_per_token": 6e-06,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 65536,
|
||||
"max_output_tokens": 65536
|
||||
},
|
||||
"openrouter/moonshotai/kimi-k2.5": {
|
||||
"cache_read_input_token_cost": 1e-07,
|
||||
"input_cost_per_token": 6e-07,
|
||||
"cache_read_input_token_cost": 7e-08,
|
||||
"input_cost_per_token": 4.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"max_tokens": 262144,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 3e-06,
|
||||
"output_cost_per_token": 2.25e-06,
|
||||
"source": "https://openrouter.ai/moonshotai/kimi-k2.5",
|
||||
"supports_function_calling": true,
|
||||
"supports_tool_choice": true,
|
||||
|
|
@ -38295,7 +38296,7 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/nvidia/nemotron-3.5-lightning": {
|
||||
"input_cost_per_token": 5e-08,
|
||||
"input_cost_per_token": 8e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"mode": "chat",
|
||||
|
|
@ -38600,13 +38601,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/openai/gpt-oss-120b": {
|
||||
"input_cost_per_token": 1.8e-07,
|
||||
"input_cost_per_token": 3.7e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 32768,
|
||||
"max_tokens": 32768,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 8e-07,
|
||||
"output_cost_per_token": 1.7e-07,
|
||||
"source": "https://openrouter.ai/openai/gpt-oss-120b",
|
||||
"supports_function_calling": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
|
|
@ -38615,13 +38616,13 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/openai/gpt-oss-20b": {
|
||||
"input_cost_per_token": 2e-08,
|
||||
"input_cost_per_token": 3e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 32768,
|
||||
"max_tokens": 32768,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1e-07,
|
||||
"output_cost_per_token": 1.3e-07,
|
||||
"source": "https://openrouter.ai/openai/gpt-oss-20b",
|
||||
"supports_function_calling": true,
|
||||
"supports_parallel_function_calling": true,
|
||||
|
|
@ -38681,13 +38682,13 @@
|
|||
"source": "https://openrouter.ai/openai/o3-mini-high"
|
||||
},
|
||||
"openrouter/qwen/qwen-2.5-coder-32b-instruct": {
|
||||
"input_cost_per_token": 1.8e-07,
|
||||
"input_cost_per_token": 6.6e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 33792,
|
||||
"max_output_tokens": 33792,
|
||||
"max_tokens": 33792,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.8e-07,
|
||||
"output_cost_per_token": 1e-06,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/qwen/qwen-vl-plus": {
|
||||
|
|
@ -38702,50 +38703,50 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3-coder": {
|
||||
"input_cost_per_token": 2.2e-07,
|
||||
"input_cost_per_token": 3e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262100,
|
||||
"max_output_tokens": 262100,
|
||||
"max_tokens": 262100,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 9.5e-07,
|
||||
"output_cost_per_token": 1e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3-coder",
|
||||
"supports_tool_choice": true,
|
||||
"supports_function_calling": true
|
||||
},
|
||||
"openrouter/qwen/qwen3-coder-plus": {
|
||||
"input_cost_per_token": 1e-06,
|
||||
"input_cost_per_token": 6.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 997952,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 5e-06,
|
||||
"output_cost_per_token": 3.25e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3-coder-plus",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/qwen/qwen3-235b-a22b-2507": {
|
||||
"input_cost_per_token": 7.1e-08,
|
||||
"input_cost_per_token": 8.75e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"max_tokens": 262144,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1e-07,
|
||||
"output_cost_per_token": 3.5e-07,
|
||||
"source": "https://openrouter.ai/qwen/qwen3-235b-a22b-2507",
|
||||
"supports_function_calling": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/qwen/qwen3-235b-a22b-thinking-2507": {
|
||||
"input_cost_per_token": 1.1e-07,
|
||||
"input_cost_per_token": 2.3e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 262144,
|
||||
"max_tokens": 262144,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 6e-07,
|
||||
"output_cost_per_token": 2.3e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3-235b-a22b-thinking-2507",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38772,7 +38773,7 @@
|
|||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2e-06,
|
||||
"output_cost_per_token": 1.25e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-35b-a3b",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38780,13 +38781,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-27b": {
|
||||
"input_cost_per_token": 3e-07,
|
||||
"input_cost_per_token": 1.95e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.4e-06,
|
||||
"output_cost_per_token": 1.56e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-27b",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38794,13 +38795,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-122b-a10b": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"input_cost_per_token": 2.9e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2e-06,
|
||||
"output_cost_per_token": 2.4e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-122b-a10b",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38808,13 +38809,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-flash-02-23": {
|
||||
"input_cost_per_token": 1e-07,
|
||||
"input_cost_per_token": 6.5e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 4e-07,
|
||||
"output_cost_per_token": 2.6e-07,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-flash-02-23",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38822,14 +38823,14 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-plus-02-15": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"input_cost_per_token": 2.6e-07,
|
||||
"input_cost_per_token_above_256k_tokens": 5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.4e-06,
|
||||
"output_cost_per_token": 1.56e-06,
|
||||
"output_cost_per_token_above_256k_tokens": 3e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-plus-02-15",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -38838,13 +38839,13 @@
|
|||
"supports_vision": true
|
||||
},
|
||||
"openrouter/qwen/qwen3.5-397b-a17b": {
|
||||
"input_cost_per_token": 6e-07,
|
||||
"input_cost_per_token": 5.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 262144,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 3.6e-06,
|
||||
"output_cost_per_token": 3.5e-06,
|
||||
"source": "https://openrouter.ai/qwen/qwen3.5-397b-a17b",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
|
|
@ -38863,11 +38864,11 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/undi95/remm-slerp-l2-13b": {
|
||||
"input_cost_per_token": 1.875e-06,
|
||||
"input_cost_per_token": 4.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_tokens": 4096,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.875e-06,
|
||||
"output_cost_per_token": 6.5e-07,
|
||||
"supports_tool_choice": true,
|
||||
"max_input_tokens": 6144,
|
||||
"max_output_tokens": 4096
|
||||
|
|
@ -38887,13 +38888,13 @@
|
|||
"supports_web_search": true
|
||||
},
|
||||
"openrouter/z-ai/glm-4.6": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"input_cost_per_token": 5.5e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 202800,
|
||||
"max_output_tokens": 131000,
|
||||
"max_tokens": 131000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 1.75e-06,
|
||||
"output_cost_per_token": 2.2e-06,
|
||||
"source": "https://openrouter.ai/z-ai/glm-4.6",
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
|
|
@ -38931,10 +38932,10 @@
|
|||
"supports_prompt_caching": true
|
||||
},
|
||||
"openrouter/xiaomi/mimo-v2.5-pro": {
|
||||
"input_cost_per_token": 1e-06,
|
||||
"output_cost_per_token": 3e-06,
|
||||
"input_cost_per_token": 4.35e-07,
|
||||
"output_cost_per_token": 8.7e-07,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 2e-07,
|
||||
"cache_read_input_token_cost": 3.6e-09,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 16384,
|
||||
|
|
@ -38948,10 +38949,10 @@
|
|||
"supports_prompt_caching": true
|
||||
},
|
||||
"openrouter/xiaomi/mimo-v2.5": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"input_cost_per_token": 1.4e-07,
|
||||
"output_cost_per_token": 2.8e-07,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 8e-08,
|
||||
"cache_read_input_token_cost": 2.8e-09,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 131072,
|
||||
|
|
@ -38968,9 +38969,9 @@
|
|||
},
|
||||
"openrouter/z-ai/glm-4.7": {
|
||||
"input_cost_per_token": 4e-07,
|
||||
"output_cost_per_token": 1.5e-06,
|
||||
"output_cost_per_token": 1.75e-06,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 8e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 202752,
|
||||
"max_output_tokens": 64000,
|
||||
|
|
@ -38984,10 +38985,10 @@
|
|||
"supports_assistant_prefill": true
|
||||
},
|
||||
"openrouter/z-ai/glm-4.7-flash": {
|
||||
"input_cost_per_token": 7e-08,
|
||||
"input_cost_per_token": 6e-08,
|
||||
"output_cost_per_token": 4e-07,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 1e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 200000,
|
||||
"max_output_tokens": 32000,
|
||||
|
|
@ -39000,22 +39001,22 @@
|
|||
"supports_prompt_caching": false
|
||||
},
|
||||
"openrouter/z-ai/glm-5": {
|
||||
"input_cost_per_token": 8e-07,
|
||||
"input_cost_per_token": 6e-07,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 202752,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 2.56e-06,
|
||||
"output_cost_per_token": 1.92e-06,
|
||||
"source": "https://openrouter.ai/z-ai/glm-5",
|
||||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/z-ai/glm-5.1": {
|
||||
"input_cost_per_token": 1.05e-06,
|
||||
"output_cost_per_token": 3.5e-06,
|
||||
"cache_read_input_token_cost": 5.25e-07,
|
||||
"input_cost_per_token": 9.66e-07,
|
||||
"output_cost_per_token": 3.036e-06,
|
||||
"cache_read_input_token_cost": 1.794e-07,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 202752,
|
||||
|
|
@ -39029,10 +39030,10 @@
|
|||
"supports_tool_choice": true
|
||||
},
|
||||
"openrouter/minimax/minimax-m2.1": {
|
||||
"input_cost_per_token": 2.7e-07,
|
||||
"input_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 1.2e-06,
|
||||
"cache_creation_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 0.0,
|
||||
"cache_read_input_token_cost": 3e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 204000,
|
||||
"max_output_tokens": 64000,
|
||||
|
|
@ -39046,9 +39047,9 @@
|
|||
"supports_computer_use": false
|
||||
},
|
||||
"openrouter/minimax/minimax-m2.5": {
|
||||
"input_cost_per_token": 3e-07,
|
||||
"output_cost_per_token": 1.1e-06,
|
||||
"cache_read_input_token_cost": 1.5e-07,
|
||||
"input_cost_per_token": 2.7e-07,
|
||||
"output_cost_per_token": 1.08e-06,
|
||||
"cache_read_input_token_cost": 2.7e-08,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 196608,
|
||||
"max_output_tokens": 65536,
|
||||
|
|
@ -39947,7 +39948,7 @@
|
|||
"supports_reasoning": true
|
||||
},
|
||||
"qwen.qwen3-coder-480b-a35b-v1:0": {
|
||||
"input_cost_per_token": 2.2e-07,
|
||||
"input_cost_per_token": 4.5e-07,
|
||||
"litellm_provider": "bedrock_converse",
|
||||
"max_input_tokens": 262000,
|
||||
"max_output_tokens": 65536,
|
||||
|
|
@ -39957,7 +39958,8 @@
|
|||
"supports_function_calling": true,
|
||||
"supports_reasoning": true,
|
||||
"supports_tool_choice": true,
|
||||
"supports_native_structured_output": true
|
||||
"supports_native_structured_output": true,
|
||||
"source": "https://pricing.us-east-1.amazonaws.com/offers/v1.0/aws/AmazonBedrock/current/us-east-1/index.json"
|
||||
},
|
||||
"qwen.qwen3-235b-a22b-2507-v1:0": {
|
||||
"input_cost_per_token": 2.2e-07,
|
||||
|
|
@ -52852,7 +52854,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52878,7 +52880,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52904,7 +52906,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52932,7 +52934,7 @@
|
|||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 4.5e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52963,7 +52965,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -52991,7 +52993,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -53019,7 +53021,7 @@
|
|||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 8192,
|
||||
"max_tokens": 8192,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 2e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -53049,7 +53051,7 @@
|
|||
"max_input_tokens": 131072,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"mode": "chat",
|
||||
"mode": "realtime",
|
||||
"output_cost_per_audio_token": 1.2e-05,
|
||||
"output_cost_per_token": 4.5e-06,
|
||||
"source": "https://ai.google.dev/gemini-api/docs/pricing",
|
||||
|
|
@ -59463,7 +59465,8 @@
|
|||
"supports_audio_input": false,
|
||||
"cache_read_input_token_cost": 1e-06,
|
||||
"supports_prompt_caching": true,
|
||||
"cache_creation_input_token_cost": 1.25e-05
|
||||
"cache_creation_input_token_cost": 1.25e-05,
|
||||
"prompt_cache_min_tokens": 512
|
||||
},
|
||||
"openrouter/anthropic/claude-fable-5.1": {
|
||||
"input_cost_per_token": 1e-05,
|
||||
|
|
@ -59483,7 +59486,8 @@
|
|||
"supports_audio_input": false,
|
||||
"cache_read_input_token_cost": 2.5e-07,
|
||||
"supports_prompt_caching": true,
|
||||
"cache_creation_input_token_cost": 1.25e-05
|
||||
"cache_creation_input_token_cost": 1.25e-05,
|
||||
"prompt_cache_min_tokens": 512
|
||||
},
|
||||
"openrouter/anthropic/claude-opus-4.8": {
|
||||
"input_cost_per_token": 5e-06,
|
||||
|
|
@ -59549,8 +59553,8 @@
|
|||
"output_cost_per_token": 9e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 65536,
|
||||
"max_tokens": 65536,
|
||||
"max_output_tokens": 65535,
|
||||
"max_tokens": 65535,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/google/gemini-3.5-flash",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59662,7 +59666,7 @@
|
|||
"input_cost_per_token": 1.25e-06,
|
||||
"output_cost_per_token": 1e-05,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 400000,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59681,7 +59685,7 @@
|
|||
"input_cost_per_token": 1.75e-06,
|
||||
"output_cost_per_token": 1.4e-05,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 400000,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59719,7 +59723,7 @@
|
|||
"input_cost_per_token": 7.5e-07,
|
||||
"output_cost_per_token": 4.5e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 400000,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59738,7 +59742,7 @@
|
|||
"input_cost_per_token": 2e-07,
|
||||
"output_cost_per_token": 1.25e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 400000,
|
||||
"max_input_tokens": 272000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59776,7 +59780,7 @@
|
|||
"input_cost_per_token": 2e-07,
|
||||
"output_cost_per_token": 1.2e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1050000,
|
||||
"max_input_tokens": 922000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59795,7 +59799,7 @@
|
|||
"input_cost_per_token": 2e-06,
|
||||
"output_cost_per_token": 1.2e-05,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1050000,
|
||||
"max_input_tokens": 922000,
|
||||
"max_output_tokens": 128000,
|
||||
"max_tokens": 128000,
|
||||
"mode": "chat",
|
||||
|
|
@ -59852,9 +59856,9 @@
|
|||
"input_cost_per_token": 1.25e-06,
|
||||
"output_cost_per_token": 2.5e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 1800000,
|
||||
"max_tokens": 1800000,
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 1000000,
|
||||
"max_tokens": 1000000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.20",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59871,9 +59875,9 @@
|
|||
"input_cost_per_token": 1.25e-06,
|
||||
"output_cost_per_token": 2.5e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 2000000,
|
||||
"max_output_tokens": 1800000,
|
||||
"max_tokens": 1800000,
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 1000000,
|
||||
"max_tokens": 1000000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.20-multi-agent",
|
||||
"supports_function_calling": false,
|
||||
|
|
@ -59891,8 +59895,8 @@
|
|||
"output_cost_per_token": 2.5e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 1000000,
|
||||
"max_output_tokens": 900000,
|
||||
"max_tokens": 900000,
|
||||
"max_output_tokens": 1000000,
|
||||
"max_tokens": 1000000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.3",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59910,8 +59914,8 @@
|
|||
"output_cost_per_token": 6e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 500000,
|
||||
"max_output_tokens": 450000,
|
||||
"max_tokens": 450000,
|
||||
"max_output_tokens": 500000,
|
||||
"max_tokens": 500000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.5",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59929,8 +59933,8 @@
|
|||
"output_cost_per_token": 6e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 500000,
|
||||
"max_output_tokens": 450000,
|
||||
"max_tokens": 450000,
|
||||
"max_output_tokens": 500000,
|
||||
"max_tokens": 500000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-4.6",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59948,8 +59952,8 @@
|
|||
"output_cost_per_token": 2e-06,
|
||||
"litellm_provider": "openrouter",
|
||||
"max_input_tokens": 256000,
|
||||
"max_output_tokens": 230400,
|
||||
"max_tokens": 230400,
|
||||
"max_output_tokens": 256000,
|
||||
"max_tokens": 256000,
|
||||
"mode": "chat",
|
||||
"source": "https://openrouter.ai/x-ai/grok-build-0.1",
|
||||
"supports_function_calling": true,
|
||||
|
|
@ -59961,5 +59965,26 @@
|
|||
"supports_audio_input": false,
|
||||
"cache_read_input_token_cost": 2e-07,
|
||||
"supports_prompt_caching": true
|
||||
},
|
||||
"baseten/zai-org/GLM-5.3": {
|
||||
"cache_read_input_token_cost": 1.4e-07,
|
||||
"input_cost_per_token": 1.4e-06,
|
||||
"litellm_provider": "baseten",
|
||||
"max_input_tokens": 1048576,
|
||||
"max_output_tokens": 262144,
|
||||
"max_tokens": 262144,
|
||||
"mode": "chat",
|
||||
"output_cost_per_token": 4.4e-06,
|
||||
"source": "https://www.baseten.co/pricing/",
|
||||
"supported_modalities": [
|
||||
"text"
|
||||
],
|
||||
"supported_output_modalities": [
|
||||
"text"
|
||||
],
|
||||
"supports_function_calling": true,
|
||||
"supports_prompt_caching": true,
|
||||
"supports_response_schema": true,
|
||||
"supports_tool_choice": true
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -9,7 +9,6 @@ import os
|
|||
|
||||
import pytest
|
||||
|
||||
|
||||
from litellm.litellm_core_utils.fallback_generalizations import (
|
||||
get_fallback_generalization_rules,
|
||||
match_capability_generalizations,
|
||||
|
|
@ -248,6 +247,57 @@ def test_azure_ai_claude_1m_context_entries(cost_map: dict):
|
|||
assert cost_map[model]["max_input_tokens"] == 200000, model
|
||||
|
||||
|
||||
# OpenRouter headline rates from GET https://openrouter.ai/api/v1/models.
|
||||
# These were the catalog values that disagreed with that API (and, for the
|
||||
# two spotlight models, the public model pages that their source fields cite).
|
||||
_OPENROUTER_LIVE_COSTS = {
|
||||
"openrouter/qwen/qwen3.5-plus-02-15": (2.6e-07, 1.56e-06, None),
|
||||
"openrouter/openai/gpt-oss-120b": (3.7e-08, 1.7e-07, None),
|
||||
"openrouter/qwen/qwen3-coder-plus": (6.5e-07, 3.25e-06, None),
|
||||
"openrouter/qwen/qwen3.5-flash-02-23": (6.5e-08, 2.6e-07, None),
|
||||
"openrouter/qwen/qwen3.5-27b": (1.95e-07, 1.56e-06, None),
|
||||
"openrouter/gryphe/mythomax-l2-13b": (6e-08, 6e-08, None),
|
||||
"openrouter/mancer/weaver": (4e-07, 7.5e-07, None),
|
||||
"openrouter/xiaomi/mimo-v2.5-pro": (4.35e-07, 8.7e-07, 3.6e-09),
|
||||
"openrouter/moonshotai/kimi-k2.5": (4.5e-07, 2.25e-06, 7e-08),
|
||||
"openrouter/z-ai/glm-5": (6e-07, 1.92e-06, None),
|
||||
}
|
||||
|
||||
_OPENROUTER_STALE_COSTS = {
|
||||
"openrouter/qwen/qwen3.5-plus-02-15": (4e-07, 2.4e-06),
|
||||
"openrouter/openai/gpt-oss-120b": (1.8e-07, 8e-07),
|
||||
"openrouter/gryphe/mythomax-l2-13b": (1.875e-06, 1.875e-06),
|
||||
}
|
||||
|
||||
|
||||
@pytest.mark.parametrize(
|
||||
"cost_map",
|
||||
[_load_root_cost_map(), GetModelCostMap.load_local_model_cost_map()],
|
||||
ids=["root", "bundled_backup"],
|
||||
)
|
||||
def test_openrouter_catalog_costs_match_live_headline_rates(cost_map: dict):
|
||||
"""openrouter/* spend tracking reads these catalog fields. The values must
|
||||
stay aligned with OpenRouter's published headline rate, not the stale
|
||||
figures that over/under-counted by up to 30x. Both maps are checked so
|
||||
the root file and bundled backup cannot drift apart."""
|
||||
control = cost_map["openrouter/anthropic/claude-opus-5"]
|
||||
assert control["input_cost_per_token"] == 5e-06
|
||||
assert control["output_cost_per_token"] == 2.5e-05
|
||||
assert control["cache_read_input_token_cost"] == 5e-07
|
||||
|
||||
for model, (inp, out, cache) in _OPENROUTER_LIVE_COSTS.items():
|
||||
entry = cost_map[model]
|
||||
assert entry["input_cost_per_token"] == inp, model
|
||||
assert entry["output_cost_per_token"] == out, model
|
||||
if cache is not None:
|
||||
assert entry["cache_read_input_token_cost"] == cache, model
|
||||
|
||||
for model, (stale_in, stale_out) in _OPENROUTER_STALE_COSTS.items():
|
||||
entry = cost_map[model]
|
||||
assert entry["input_cost_per_token"] != stale_in, model
|
||||
assert entry["output_cost_per_token"] != stale_out, model
|
||||
|
||||
|
||||
def test_get_model_cost_map_stamps_loaded_at(monkeypatch):
|
||||
"""The load time feeds each pod's reload-due decision; a load that does not stamp it
|
||||
would make manual reload requests race the proxy's startup"""
|
||||
|
|
|
|||
154
tests/test_litellm/test_baseten_glm_5_3_model_metadata.py
Normal file
154
tests/test_litellm/test_baseten_glm_5_3_model_metadata.py
Normal file
|
|
@ -0,0 +1,154 @@
|
|||
import json
|
||||
from pathlib import Path
|
||||
|
||||
import pytest
|
||||
|
||||
import litellm
|
||||
from litellm.litellm_core_utils.get_llm_provider_logic import get_llm_provider
|
||||
from litellm.types.utils import PromptTokensDetailsWrapper, Usage
|
||||
from litellm.utils import supports_function_calling, supports_prompt_caching
|
||||
|
||||
REPO_ROOT = Path(__file__).parents[2]
|
||||
MAIN_PATH = REPO_ROOT / "model_prices_and_context_window.json"
|
||||
BACKUP_PATH = REPO_ROOT / "litellm" / "model_prices_and_context_window_backup.json"
|
||||
|
||||
MODEL = "baseten/zai-org/GLM-5.3"
|
||||
|
||||
INPUT_COST = 1.4e-06
|
||||
CACHED_INPUT_COST = 1.4e-07
|
||||
OUTPUT_COST = 4.4e-06
|
||||
|
||||
|
||||
def _load(path):
|
||||
with open(path) as f:
|
||||
return json.load(f)
|
||||
|
||||
|
||||
@pytest.fixture
|
||||
def local_model_cost_map(monkeypatch):
|
||||
"""Force get_model_info to resolve against the in-repo cost map instead of the
|
||||
remote one fetched at import time, which still carries the pre-merge registry."""
|
||||
monkeypatch.setenv("LITELLM_LOCAL_MODEL_COST_MAP", "True")
|
||||
monkeypatch.setattr(litellm, "model_cost", litellm.get_model_cost_map(url=""))
|
||||
litellm.get_model_info.cache_clear()
|
||||
yield
|
||||
litellm.get_model_info.cache_clear()
|
||||
|
||||
|
||||
def test_baseten_glm_5_3_specs():
|
||||
info = _load(MAIN_PATH).get(MODEL)
|
||||
assert info is not None, f"{MODEL} missing from model_prices_and_context_window.json"
|
||||
|
||||
assert info["litellm_provider"] == "baseten"
|
||||
assert info["mode"] == "chat"
|
||||
|
||||
assert info["input_cost_per_token"] == INPUT_COST
|
||||
assert info["output_cost_per_token"] == OUTPUT_COST
|
||||
assert info["cache_read_input_token_cost"] == CACHED_INPUT_COST
|
||||
|
||||
assert info["max_input_tokens"] == 1048576
|
||||
assert info["max_output_tokens"] == 262144
|
||||
assert info["max_tokens"] == 262144
|
||||
|
||||
assert info["supports_function_calling"] is True
|
||||
assert info["supports_prompt_caching"] is True
|
||||
assert info["supports_response_schema"] is True
|
||||
assert info["supports_tool_choice"] is True
|
||||
assert info["supported_modalities"] == ["text"]
|
||||
assert info["supported_output_modalities"] == ["text"]
|
||||
|
||||
routed_model, provider, _, _ = get_llm_provider(model=MODEL)
|
||||
assert routed_model == "zai-org/GLM-5.3"
|
||||
assert provider == "baseten"
|
||||
|
||||
|
||||
def test_baseten_glm_5_3_capabilities_are_visible_to_callers(local_model_cost_map):
|
||||
"""The entry advertises prompt caching and tool calling, so the helpers every
|
||||
caller checks before sending a request must say so too."""
|
||||
assert supports_prompt_caching(model=MODEL) is True
|
||||
assert supports_function_calling(model=MODEL) is True
|
||||
|
||||
info = litellm.get_model_info(model="zai-org/GLM-5.3", custom_llm_provider="baseten")
|
||||
assert info["max_input_tokens"] == 1048576
|
||||
assert info["max_output_tokens"] == 262144
|
||||
|
||||
|
||||
def test_cached_prompt_tokens_bill_at_the_cached_rate(local_model_cost_map):
|
||||
"""A cache hit reports its reused tokens under prompt_tokens_details, and those
|
||||
tokens cost a tenth of the input rate, not the full rate and not nothing."""
|
||||
usage = Usage(
|
||||
prompt_tokens=21010,
|
||||
completion_tokens=100,
|
||||
total_tokens=21110,
|
||||
prompt_tokens_details=PromptTokensDetailsWrapper(cached_tokens=20992),
|
||||
)
|
||||
|
||||
prompt_cost, completion_cost = litellm.cost_per_token(
|
||||
model=MODEL, usage_object=usage, custom_llm_provider="baseten"
|
||||
)
|
||||
|
||||
assert prompt_cost == pytest.approx(18 * INPUT_COST + 20992 * CACHED_INPUT_COST)
|
||||
assert completion_cost == pytest.approx(100 * OUTPUT_COST)
|
||||
|
||||
|
||||
def test_backup_matches_main():
|
||||
"""Ensure the bundled (backup) cost map stays in sync with the canonical file.
|
||||
|
||||
Both keys are asserted present first: comparing two ``.get`` results alone passes
|
||||
just as happily when neither file has the entry at all, which is the exact state
|
||||
this test exists to catch.
|
||||
"""
|
||||
main_cost = _load(MAIN_PATH)
|
||||
backup_cost = _load(BACKUP_PATH)
|
||||
|
||||
assert MODEL in main_cost, f"{MODEL} missing from model_prices_and_context_window.json"
|
||||
assert MODEL in backup_cost, f"{MODEL} missing from model_prices_and_context_window_backup.json"
|
||||
assert backup_cost[MODEL] == main_cost[MODEL], f"{MODEL} differs between main and backup model cost maps"
|
||||
|
||||
|
||||
def test_entry_advertises_only_what_the_baseten_path_accepts(local_model_cost_map):
|
||||
"""The entry must not claim a capability whose request parameter BasetenConfig
|
||||
refuses.
|
||||
|
||||
``BasetenConfig.get_supported_openai_params`` returns one hardcoded list for every
|
||||
Baseten model, and it carries neither ``parallel_tool_calls`` nor
|
||||
``reasoning_effort``. Baseten's own Model API does take ``reasoning_effort``, but
|
||||
litellm's Baseten path drops it (``drop_params=True``) or raises
|
||||
``UnsupportedParamsError`` (``drop_params=False``), so declaring
|
||||
``supports_parallel_function_calling``, ``supports_reasoning`` or
|
||||
``reasoning_effort_levels`` here would advertise a level the gateway then refuses to
|
||||
send. Wiring those params through the Baseten config is separate work; until it
|
||||
lands, the registry stays honest.
|
||||
"""
|
||||
supported = litellm.get_supported_openai_params(model="zai-org/GLM-5.3", custom_llm_provider="baseten")
|
||||
assert supported is not None
|
||||
|
||||
entry = _load(MAIN_PATH)[MODEL]
|
||||
|
||||
capability_to_param = {
|
||||
"supports_function_calling": "tools",
|
||||
"supports_tool_choice": "tool_choice",
|
||||
"supports_response_schema": "response_format",
|
||||
"supports_parallel_function_calling": "parallel_tool_calls",
|
||||
"supports_reasoning": "reasoning_effort",
|
||||
}
|
||||
for capability, param in capability_to_param.items():
|
||||
if entry.get(capability):
|
||||
assert param in supported, f"{MODEL} advertises {capability} but baseten drops/rejects {param}"
|
||||
|
||||
assert "reasoning_effort_levels" not in entry, (
|
||||
"reasoning_effort_levels advertises accepted reasoning_effort values, which the Baseten path does not accept"
|
||||
)
|
||||
assert "thinking_always_on" not in entry, (
|
||||
"thinking_always_on is only read by AnthropicModelInfo._is_always_on_thinking_model, "
|
||||
"which no Baseten route reaches"
|
||||
)
|
||||
|
||||
with pytest.raises(litellm.UnsupportedParamsError):
|
||||
litellm.utils.get_optional_params(
|
||||
model="zai-org/GLM-5.3",
|
||||
custom_llm_provider="baseten",
|
||||
parallel_tool_calls=True,
|
||||
reasoning_effort="high",
|
||||
drop_params=False,
|
||||
)
|
||||
|
|
@ -2779,7 +2779,7 @@ def test_model_info_for_openrouter_kimi_k2_5():
|
|||
|
||||
Model properties from OpenRouter API:
|
||||
- context_length: 262144
|
||||
- pricing: prompt=$0.0000006, completion=$0.000003, input_cache_read=$0.0000001
|
||||
- pricing: prompt=$0.00000045, completion=$0.00000225, input_cache_read=$0.00000007
|
||||
- modality: text+image->text (supports vision)
|
||||
- supports: tool_choice, tools (function calling)
|
||||
"""
|
||||
|
|
@ -2804,9 +2804,9 @@ def test_model_info_for_openrouter_kimi_k2_5():
|
|||
assert model_info["max_tokens"] == 262144
|
||||
|
||||
# Verify pricing
|
||||
assert model_info["input_cost_per_token"] == 6e-07
|
||||
assert model_info["output_cost_per_token"] == 3e-06
|
||||
assert model_info["cache_read_input_token_cost"] == 1e-07
|
||||
assert model_info["input_cost_per_token"] == 4.5e-07
|
||||
assert model_info["output_cost_per_token"] == 2.25e-06
|
||||
assert model_info["cache_read_input_token_cost"] == 7e-08
|
||||
|
||||
# Verify capabilities
|
||||
assert model_info["supports_vision"] is True
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue