From ec629d4b019ae4d3ba5b02e1bc3a0ded3b8653a0 Mon Sep 17 00:00:00 2001 From: 0-don Date: Thu, 9 Jul 2026 22:26:25 +0200 Subject: [PATCH] feat: add UnoRouter as an OpenAI-compatible provider --- litellm/llms/openai_like/providers.json | 6 ++ model_prices_and_context_window.json | 136 ++++++++++++++++++++++++ provider_endpoints_support.json | 17 +++ 3 files changed, 159 insertions(+) diff --git a/litellm/llms/openai_like/providers.json b/litellm/llms/openai_like/providers.json index d87346fea70..11351842b52 100644 --- a/litellm/llms/openai_like/providers.json +++ b/litellm/llms/openai_like/providers.json @@ -176,5 +176,11 @@ "max_completion_tokens": "max_tokens" }, "supported_endpoints": ["/v1/chat/completions", "/v1/responses", "/v1/embeddings"] + }, + "unorouter": { + "base_url": "https://api.unorouter.com/v1", + "api_key_env": "UNOROUTER_API_KEY", + "api_base_env": "UNOROUTER_API_BASE", + "supported_endpoints": ["/v1/chat/completions", "/v1/responses", "/v1/embeddings"] } } diff --git a/model_prices_and_context_window.json b/model_prices_and_context_window.json index d6e4a265da0..9dfee89acf4 100644 --- a/model_prices_and_context_window.json +++ b/model_prices_and_context_window.json @@ -44677,6 +44677,142 @@ "supports_system_messages": true, "supports_tool_choice": true }, + "unorouter/deepseek-v4-flash:free": { + "input_cost_per_token": 0, + "litellm_provider": "unorouter", + "max_input_tokens": 1000000, + "max_output_tokens": 384000, + "max_tokens": 384000, + "mode": "chat", + "output_cost_per_token": 0, + "source": "https://unorouter.com/models", + "supported_endpoints": [ + "/v1/chat/completions" + ], + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "unorouter/kimi-k2.6": { + "input_cost_per_token": 0.00000126749, + "litellm_provider": "unorouter", + "max_input_tokens": 262100, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 0.000005336767, + "source": "https://unorouter.com/models", + "supported_endpoints": [ + "/v1/chat/completions" + ], + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "unorouter/claude-sonnet-5": { + "input_cost_per_token": 0.00000144, + "litellm_provider": "unorouter", + "max_input_tokens": 1000000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 0.0000072, + "source": "https://unorouter.com/models", + "supported_endpoints": [ + "/v1/chat/completions" + ], + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "unorouter/gpt-5.5": { + "input_cost_per_token": 1.875e-7, + "litellm_provider": "unorouter", + "max_input_tokens": 1100000, + "max_output_tokens": 128000, + "max_tokens": 128000, + "mode": "chat", + "output_cost_per_token": 0.000001125, + "source": "https://unorouter.com/models", + "supported_endpoints": [ + "/v1/chat/completions" + ], + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "unorouter/glm-5.2": { + "input_cost_per_token": 0.00000160006, + "litellm_provider": "unorouter", + "max_input_tokens": 1000000, + "max_output_tokens": 262144, + "max_tokens": 262144, + "mode": "chat", + "output_cost_per_token": 0.000005028829, + "source": "https://unorouter.com/models", + "supported_endpoints": [ + "/v1/chat/completions" + ], + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "unorouter/step-3.7-flash:free": { + "input_cost_per_token": 0, + "litellm_provider": "unorouter", + "max_input_tokens": 256000, + "max_output_tokens": 256000, + "max_tokens": 256000, + "mode": "chat", + "output_cost_per_token": 0, + "source": "https://unorouter.com/models", + "supported_endpoints": [ + "/v1/chat/completions" + ], + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "unorouter/minimax-m2.7:free": { + "input_cost_per_token": 0, + "litellm_provider": "unorouter", + "max_input_tokens": 204800, + "max_output_tokens": 131072, + "max_tokens": 131072, + "mode": "chat", + "output_cost_per_token": 0, + "source": "https://unorouter.com/models", + "supported_endpoints": [ + "/v1/chat/completions" + ], + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, + "unorouter/qwen3.5-397b-a17b:free": { + "input_cost_per_token": 0, + "litellm_provider": "unorouter", + "max_input_tokens": 262100, + "max_output_tokens": 65536, + "max_tokens": 65536, + "mode": "chat", + "output_cost_per_token": 0, + "source": "https://unorouter.com/models", + "supported_endpoints": [ + "/v1/chat/completions" + ], + "supports_function_calling": true, + "supports_native_streaming": true, + "supports_system_messages": true, + "supports_tool_choice": true + }, "fallback_generalizations": { "rules": [ { diff --git a/provider_endpoints_support.json b/provider_endpoints_support.json index 3034ada56ba..12dbfb793c9 100644 --- a/provider_endpoints_support.json +++ b/provider_endpoints_support.json @@ -2052,6 +2052,23 @@ "a2a": false } }, + "unorouter": { + "display_name": "UnoRouter (`unorouter`)", + "url": "https://unorouter.com/models", + "endpoints": { + "chat_completions": true, + "messages": false, + "responses": true, + "embeddings": true, + "image_generations": false, + "audio_transcriptions": false, + "audio_speech": false, + "moderations": false, + "batches": false, + "rerank": false, + "a2a": false + } + }, "predibase": { "display_name": "Predibase (`predibase`)", "url": "https://docs.litellm.ai/docs/providers/predibase",