{ "openapi": "3.1.0", "info": { "title": "llm.rusal.com", "description": "Enterprise Edition \n\nProxy Server to call 100+ LLMs in the OpenAI format. [**Customize Swagger Docs**](https://docs.litellm.ai/docs/proxy/enterprise#swagger-docs---custom-routes--branding)\n\n\ud83d\udc49 [```LiteLLM Admin Panel on /ui```](/ui). Create, Edit Keys with SSO. Having issues? Try [```Fallback Login```](/fallback/login)\n\n\ud83d\udcb8 [```LiteLLM Model Cost Map```](https://models.litellm.ai/).\n\n\ud83d\udd0e [```LiteLLM Model Hub```](/ui/model_hub_table). See available models on the proxy. [**Docs**](https://docs.litellm.ai/docs/proxy/ai_hub)\n\n\ud83d\udcac [```LiteLLM Chat UI```](/ui/chat). ChatGPT-like interface for your users to chat with AI models and MCP tools.", "version": "1.83.7" }, "paths": { "/models": { "get": { "tags": [ "model management" ], "summary": "Model List", "description": "Use `/model/info` - to get detailed model information, example - pricing, mode, etc.\n\nThis is just for compatibility with openai projects like aider.\n\nQuery Parameters:\n- include_metadata: Include additional metadata in the response with fallback information\n- fallback_type: Type of fallbacks to include (\"general\", \"context_window\", \"content_policy\")\n Defaults to \"general\" when include_metadata=true\n- scope: Optional scope parameter. Currently only accepts \"expand\".\n When scope=expand is passed, proxy admins, team admins, and org admins\n will receive all proxy models as if they are a proxy admin.", "operationId": "model_list_models_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "return_wildcard_routes", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Return Wildcard Routes" } }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" } }, { "name": "include_model_access_groups", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Include Model Access Groups" } }, { "name": "only_model_access_groups", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Only Model Access Groups" } }, { "name": "include_metadata", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Include Metadata" } }, { "name": "fallback_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fallback Type" } }, { "name": "scope", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scope" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/models": { "get": { "tags": [ "model management" ], "summary": "Model List", "description": "Use `/model/info` - to get detailed model information, example - pricing, mode, etc.\n\nThis is just for compatibility with openai projects like aider.\n\nQuery Parameters:\n- include_metadata: Include additional metadata in the response with fallback information\n- fallback_type: Type of fallbacks to include (\"general\", \"context_window\", \"content_policy\")\n Defaults to \"general\" when include_metadata=true\n- scope: Optional scope parameter. Currently only accepts \"expand\".\n When scope=expand is passed, proxy admins, team admins, and org admins\n will receive all proxy models as if they are a proxy admin.", "operationId": "model_list_v1_models_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "return_wildcard_routes", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Return Wildcard Routes" } }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" } }, { "name": "include_model_access_groups", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Include Model Access Groups" } }, { "name": "only_model_access_groups", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Only Model Access Groups" } }, { "name": "include_metadata", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": false, "title": "Include Metadata" } }, { "name": "fallback_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Fallback Type" } }, { "name": "scope", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scope" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/models/{model_id}": { "get": { "tags": [ "model management" ], "summary": "Model Info", "description": "Retrieve information about a specific model accessible to your API key.\n\nReturns model details only if the model is available to your API key/team.\nReturns 404 if the model doesn't exist or is not accessible.\n\nFollows OpenAI API specification for individual model retrieval.\nhttps://platform.openai.com/docs/api-reference/models/retrieve", "operationId": "model_info_models__model_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/models/{model_id}": { "get": { "tags": [ "model management" ], "summary": "Model Info", "description": "Retrieve information about a specific model accessible to your API key.\n\nReturns model details only if the model is available to your API key/team.\nReturns 404 if the model doesn't exist or is not accessible.\n\nFollows OpenAI API specification for individual model retrieval.\nhttps://platform.openai.com/docs/api-reference/models/retrieve", "operationId": "model_info_v1_models__model_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/openai/deployments/{model}/chat/completions": { "post": { "tags": [ "chat/completions" ], "summary": "Chat Completion", "description": "Follows the exact same API spec as `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat`\n\n```bash\ncurl -X POST http://localhost:4000/v1/chat/completions \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"gpt-4o\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello!\"\n }\n ]\n}'\n```", "operationId": "chat_completion_openai_deployments__model__chat_completions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful response", "content": { "application/json": { "schema": {} } } }, "401": { "description": "AuthenticationError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "404": { "description": "NotFoundError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "400": { "description": "ContentPolicyViolationError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "422": { "description": "UnprocessableEntityError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "408": { "description": "Timeout", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "403": { "description": "PermissionDeniedError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "429": { "description": "RateLimitError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "500": { "description": "JSONSchemaValidationError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } }, "503": { "description": "APIConnectionError", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ErrorResponse" } } } } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "model", "messages" ], "properties": { "model": { "title": "Model", "type": "string" }, "messages": { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionUserMessage" }, { "$ref": "#/components/schemas/ChatCompletionAssistantMessage" }, { "$ref": "#/components/schemas/ChatCompletionToolMessage" }, { "$ref": "#/components/schemas/ChatCompletionSystemMessage" }, { "$ref": "#/components/schemas/ChatCompletionFunctionMessage" }, { "$ref": "#/components/schemas/ChatCompletionDeveloperMessage" } ] }, "title": "Messages", "type": "array", "example": [ { "role": "user", "content": "Hello, how are you?" } ] }, "frequency_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Frequency Penalty" }, "logit_bias": { "anyOf": [ { "additionalProperties": { "type": "number" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Logit Bias" }, "logprobs": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Logprobs" }, "top_logprobs": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Top Logprobs" }, "max_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Max Tokens" }, "n": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "N" }, "presence_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Presence Penalty" }, "response_format": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Response Format" }, "seed": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Seed" }, "service_tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Service Tier" }, "stop": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Stop" }, "stream_options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Stream Options" }, "temperature": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Temperature" }, "top_p": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Top P" }, "tools": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tools" }, "tool_choice": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Tool Choice" }, "parallel_tool_calls": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Parallel Tool Calls" }, "function_call": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Function Call" }, "functions": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Functions" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "stream": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Stream" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Guardrails" }, "caching": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Caching" }, "num_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Retries" }, "context_window_fallback_dict": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Context Window Fallback Dict" }, "fallbacks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Fallbacks" } } } } } } } }, "/engines/{model}/chat/completions": { "post": { "tags": [ "chat/completions" ], "summary": "Chat Completion", "description": "Follows the exact same API spec as `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat`\n\n```bash\ncurl -X POST http://localhost:4000/v1/chat/completions \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"gpt-4o\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello!\"\n }\n ]\n}'\n```", "operationId": "chat_completion_engines__model__chat_completions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "model", "messages" ], "properties": { "model": { "title": "Model", "type": "string" }, "messages": { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionUserMessage" }, { "$ref": "#/components/schemas/ChatCompletionAssistantMessage" }, { "$ref": "#/components/schemas/ChatCompletionToolMessage" }, { "$ref": "#/components/schemas/ChatCompletionSystemMessage" }, { "$ref": "#/components/schemas/ChatCompletionFunctionMessage" }, { "$ref": "#/components/schemas/ChatCompletionDeveloperMessage" } ] }, "title": "Messages", "type": "array", "example": [ { "role": "user", "content": "Hello, how are you?" } ] }, "frequency_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Frequency Penalty" }, "logit_bias": { "anyOf": [ { "additionalProperties": { "type": "number" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Logit Bias" }, "logprobs": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Logprobs" }, "top_logprobs": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Top Logprobs" }, "max_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Max Tokens" }, "n": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "N" }, "presence_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Presence Penalty" }, "response_format": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Response Format" }, "seed": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Seed" }, "service_tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Service Tier" }, "stop": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Stop" }, "stream_options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Stream Options" }, "temperature": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Temperature" }, "top_p": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Top P" }, "tools": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tools" }, "tool_choice": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Tool Choice" }, "parallel_tool_calls": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Parallel Tool Calls" }, "function_call": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Function Call" }, "functions": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Functions" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "stream": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Stream" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Guardrails" }, "caching": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Caching" }, "num_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Retries" }, "context_window_fallback_dict": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Context Window Fallback Dict" }, "fallbacks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Fallbacks" } } } } } } } }, "/chat/completions": { "post": { "tags": [ "chat/completions" ], "summary": "Chat Completion", "description": "Follows the exact same API spec as `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat`\n\n```bash\ncurl -X POST http://localhost:4000/v1/chat/completions \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"gpt-4o\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello!\"\n }\n ]\n}'\n```", "operationId": "chat_completion_chat_completions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "model", "messages" ], "properties": { "model": { "title": "Model", "type": "string" }, "messages": { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionUserMessage" }, { "$ref": "#/components/schemas/ChatCompletionAssistantMessage" }, { "$ref": "#/components/schemas/ChatCompletionToolMessage" }, { "$ref": "#/components/schemas/ChatCompletionSystemMessage" }, { "$ref": "#/components/schemas/ChatCompletionFunctionMessage" }, { "$ref": "#/components/schemas/ChatCompletionDeveloperMessage" } ] }, "title": "Messages", "type": "array", "example": [ { "role": "user", "content": "Hello, how are you?" } ] }, "frequency_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Frequency Penalty" }, "logit_bias": { "anyOf": [ { "additionalProperties": { "type": "number" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Logit Bias" }, "logprobs": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Logprobs" }, "top_logprobs": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Top Logprobs" }, "max_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Max Tokens" }, "n": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "N" }, "presence_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Presence Penalty" }, "response_format": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Response Format" }, "seed": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Seed" }, "service_tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Service Tier" }, "stop": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Stop" }, "stream_options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Stream Options" }, "temperature": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Temperature" }, "top_p": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Top P" }, "tools": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tools" }, "tool_choice": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Tool Choice" }, "parallel_tool_calls": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Parallel Tool Calls" }, "function_call": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Function Call" }, "functions": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Functions" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "stream": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Stream" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Guardrails" }, "caching": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Caching" }, "num_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Retries" }, "context_window_fallback_dict": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Context Window Fallback Dict" }, "fallbacks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Fallbacks" } } } } } } } }, "/v1/chat/completions": { "post": { "tags": [ "chat/completions" ], "summary": "Chat Completion", "description": "Follows the exact same API spec as `OpenAI's Chat API https://platform.openai.com/docs/api-reference/chat`\n\n```bash\ncurl -X POST http://localhost:4000/v1/chat/completions \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"gpt-4o\",\n \"messages\": [\n {\n \"role\": \"user\",\n \"content\": \"Hello!\"\n }\n ]\n}'\n```", "operationId": "chat_completion_v1_chat_completions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "model", "messages" ], "properties": { "model": { "title": "Model", "type": "string" }, "messages": { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionUserMessage" }, { "$ref": "#/components/schemas/ChatCompletionAssistantMessage" }, { "$ref": "#/components/schemas/ChatCompletionToolMessage" }, { "$ref": "#/components/schemas/ChatCompletionSystemMessage" }, { "$ref": "#/components/schemas/ChatCompletionFunctionMessage" }, { "$ref": "#/components/schemas/ChatCompletionDeveloperMessage" } ] }, "title": "Messages", "type": "array", "example": [ { "role": "user", "content": "Hello, how are you?" } ] }, "frequency_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Frequency Penalty" }, "logit_bias": { "anyOf": [ { "additionalProperties": { "type": "number" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Logit Bias" }, "logprobs": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Logprobs" }, "top_logprobs": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Top Logprobs" }, "max_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Max Tokens" }, "n": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "N" }, "presence_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Presence Penalty" }, "response_format": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Response Format" }, "seed": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Seed" }, "service_tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Service Tier" }, "stop": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Stop" }, "stream_options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Stream Options" }, "temperature": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Temperature" }, "top_p": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Top P" }, "tools": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tools" }, "tool_choice": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Tool Choice" }, "parallel_tool_calls": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Parallel Tool Calls" }, "function_call": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Function Call" }, "functions": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Functions" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "stream": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Stream" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Guardrails" }, "caching": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Caching" }, "num_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Retries" }, "context_window_fallback_dict": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Context Window Fallback Dict" }, "fallbacks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Fallbacks" } } } } } } } }, "/openai/deployments/{model}/completions": { "post": { "tags": [ "completions" ], "summary": "Completion", "description": "Follows the exact same API spec as `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions`\n\n```bash\ncurl -X POST http://localhost:4000/v1/completions \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"gpt-3.5-turbo-instruct\",\n \"prompt\": \"Once upon a time\",\n \"max_tokens\": 50,\n \"temperature\": 0.7\n}'\n```", "operationId": "completion_openai_deployments__model__completions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/engines/{model}/completions": { "post": { "tags": [ "completions" ], "summary": "Completion", "description": "Follows the exact same API spec as `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions`\n\n```bash\ncurl -X POST http://localhost:4000/v1/completions \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"gpt-3.5-turbo-instruct\",\n \"prompt\": \"Once upon a time\",\n \"max_tokens\": 50,\n \"temperature\": 0.7\n}'\n```", "operationId": "completion_engines__model__completions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/completions": { "post": { "tags": [ "completions" ], "summary": "Completion", "description": "Follows the exact same API spec as `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions`\n\n```bash\ncurl -X POST http://localhost:4000/v1/completions \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"gpt-3.5-turbo-instruct\",\n \"prompt\": \"Once upon a time\",\n \"max_tokens\": 50,\n \"temperature\": 0.7\n}'\n```", "operationId": "completion_completions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/completions": { "post": { "tags": [ "completions" ], "summary": "Completion", "description": "Follows the exact same API spec as `OpenAI's Completions API https://platform.openai.com/docs/api-reference/completions`\n\n```bash\ncurl -X POST http://localhost:4000/v1/completions \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"gpt-3.5-turbo-instruct\",\n \"prompt\": \"Once upon a time\",\n \"max_tokens\": 50,\n \"temperature\": 0.7\n}'\n```", "operationId": "completion_v1_completions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/openai/deployments/{model}/embeddings": { "post": { "tags": [ "embeddings" ], "summary": "Embeddings", "description": "Follows the exact same API spec as `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings`\n\n```bash\ncurl -X POST http://localhost:4000/v1/embeddings \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"text-embedding-ada-002\",\n \"input\": \"The quick brown fox jumps over the lazy dog\"\n}'\n```", "operationId": "embeddings_openai_deployments__model__embeddings_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "model" ], "properties": { "model": { "title": "Model", "type": "string" }, "input": { "default": [], "items": { "type": "string" }, "title": "Input", "type": "array" }, "timeout": { "default": 600, "title": "Timeout", "type": "integer" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Base" }, "api_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Version" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Key" }, "api_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Type" }, "caching": { "default": false, "title": "Caching", "type": "boolean" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "custom_llm_provider": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Custom Llm Provider" }, "litellm_call_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Litellm Call Id" }, "litellm_logging_obj": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Litellm Logging Obj" }, "logger_fn": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Logger Fn" } } } } } } } }, "/engines/{model}/embeddings": { "post": { "tags": [ "embeddings" ], "summary": "Embeddings", "description": "Follows the exact same API spec as `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings`\n\n```bash\ncurl -X POST http://localhost:4000/v1/embeddings \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"text-embedding-ada-002\",\n \"input\": \"The quick brown fox jumps over the lazy dog\"\n}'\n```", "operationId": "embeddings_engines__model__embeddings_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "model" ], "properties": { "model": { "title": "Model", "type": "string" }, "input": { "default": [], "items": { "type": "string" }, "title": "Input", "type": "array" }, "timeout": { "default": 600, "title": "Timeout", "type": "integer" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Base" }, "api_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Version" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Key" }, "api_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Type" }, "caching": { "default": false, "title": "Caching", "type": "boolean" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "custom_llm_provider": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Custom Llm Provider" }, "litellm_call_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Litellm Call Id" }, "litellm_logging_obj": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Litellm Logging Obj" }, "logger_fn": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Logger Fn" } } } } } } } }, "/embeddings": { "post": { "tags": [ "embeddings" ], "summary": "Embeddings", "description": "Follows the exact same API spec as `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings`\n\n```bash\ncurl -X POST http://localhost:4000/v1/embeddings \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"text-embedding-ada-002\",\n \"input\": \"The quick brown fox jumps over the lazy dog\"\n}'\n```", "operationId": "embeddings_embeddings_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "model" ], "properties": { "model": { "title": "Model", "type": "string" }, "input": { "default": [], "items": { "type": "string" }, "title": "Input", "type": "array" }, "timeout": { "default": 600, "title": "Timeout", "type": "integer" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Base" }, "api_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Version" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Key" }, "api_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Type" }, "caching": { "default": false, "title": "Caching", "type": "boolean" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "custom_llm_provider": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Custom Llm Provider" }, "litellm_call_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Litellm Call Id" }, "litellm_logging_obj": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Litellm Logging Obj" }, "logger_fn": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Logger Fn" } } } } } } } }, "/v1/embeddings": { "post": { "tags": [ "embeddings" ], "summary": "Embeddings", "description": "Follows the exact same API spec as `OpenAI's Embeddings API https://platform.openai.com/docs/api-reference/embeddings`\n\n```bash\ncurl -X POST http://localhost:4000/v1/embeddings \n-H \"Content-Type: application/json\" \n-H \"Authorization: Bearer sk-1234\" \n-d '{\n \"model\": \"text-embedding-ada-002\",\n \"input\": \"The quick brown fox jumps over the lazy dog\"\n}'\n```", "operationId": "embeddings_v1_embeddings_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "requestBody": { "required": true, "content": { "application/json": { "schema": { "type": "object", "required": [ "model" ], "properties": { "model": { "title": "Model", "type": "string" }, "input": { "default": [], "items": { "type": "string" }, "title": "Input", "type": "array" }, "timeout": { "default": 600, "title": "Timeout", "type": "integer" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Base" }, "api_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Version" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Key" }, "api_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Type" }, "caching": { "default": false, "title": "Caching", "type": "boolean" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "custom_llm_provider": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Custom Llm Provider" }, "litellm_call_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Litellm Call Id" }, "litellm_logging_obj": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Litellm Logging Obj" }, "logger_fn": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Logger Fn" } } } } } } } }, "/moderations": { "post": { "tags": [ "moderations" ], "summary": "Moderations", "description": "The moderations endpoint is a tool you can use to check whether content complies with an LLM Providers policies.\nQuick Start\n```\ncurl --location 'http://0.0.0.0:4000/moderations' --header 'Content-Type: application/json' --header 'Authorization: Bearer sk-1234' --data '{\"input\": \"Sample text goes here\", \"model\": \"text-moderation-stable\"}'\n```", "operationId": "moderations_moderations_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/moderations": { "post": { "tags": [ "moderations" ], "summary": "Moderations", "description": "The moderations endpoint is a tool you can use to check whether content complies with an LLM Providers policies.\nQuick Start\n```\ncurl --location 'http://0.0.0.0:4000/moderations' --header 'Content-Type: application/json' --header 'Authorization: Bearer sk-1234' --data '{\"input\": \"Sample text goes here\", \"model\": \"text-moderation-stable\"}'\n```", "operationId": "moderations_v1_moderations_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/audio/speech": { "post": { "tags": [ "audio" ], "summary": "Audio Speech", "description": "Same params as:\n\nhttps://platform.openai.com/docs/api-reference/audio/createSpeech", "operationId": "audio_speech_audio_speech_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/audio/speech": { "post": { "tags": [ "audio" ], "summary": "Audio Speech", "description": "Same params as:\n\nhttps://platform.openai.com/docs/api-reference/audio/createSpeech", "operationId": "audio_speech_v1_audio_speech_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/audio/transcriptions": { "post": { "tags": [ "audio" ], "summary": "Audio Transcriptions", "description": "Same params as:\n\nhttps://platform.openai.com/docs/api-reference/audio/createTranscription?lang=curl", "operationId": "audio_transcriptions_audio_transcriptions_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_audio_transcriptions_audio_transcriptions_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/audio/transcriptions": { "post": { "tags": [ "audio" ], "summary": "Audio Transcriptions", "description": "Same params as:\n\nhttps://platform.openai.com/docs/api-reference/audio/createTranscription?lang=curl", "operationId": "audio_transcriptions_v1_audio_transcriptions_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_audio_transcriptions_v1_audio_transcriptions_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/assistants": { "get": { "tags": [ "assistants" ], "summary": "Get Assistants", "description": "Returns a list of assistants.\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/listAssistants", "operationId": "get_assistants_assistants_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "assistants" ], "summary": "Create Assistant", "description": "Create assistant\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/createAssistant", "operationId": "create_assistant_assistants_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/assistants": { "get": { "tags": [ "assistants" ], "summary": "Get Assistants", "description": "Returns a list of assistants.\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/listAssistants", "operationId": "get_assistants_v1_assistants_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "assistants" ], "summary": "Create Assistant", "description": "Create assistant\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/createAssistant", "operationId": "create_assistant_v1_assistants_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/assistants/{assistant_id}": { "delete": { "tags": [ "assistants" ], "summary": "Delete Assistant", "description": "Delete assistant\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/createAssistant", "operationId": "delete_assistant_assistants__assistant_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "assistant_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Assistant Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/assistants/{assistant_id}": { "delete": { "tags": [ "assistants" ], "summary": "Delete Assistant", "description": "Delete assistant\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/createAssistant", "operationId": "delete_assistant_v1_assistants__assistant_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "assistant_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Assistant Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/threads": { "post": { "tags": [ "assistants" ], "summary": "Create Threads", "description": "Create a thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/threads/createThread", "operationId": "create_threads_threads_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/threads": { "post": { "tags": [ "assistants" ], "summary": "Create Threads", "description": "Create a thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/threads/createThread", "operationId": "create_threads_v1_threads_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/threads/{thread_id}": { "get": { "tags": [ "assistants" ], "summary": "Get Thread", "description": "Retrieves a thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/threads/getThread", "operationId": "get_thread_threads__thread_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Thread Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/threads/{thread_id}": { "get": { "tags": [ "assistants" ], "summary": "Get Thread", "description": "Retrieves a thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/threads/getThread", "operationId": "get_thread_v1_threads__thread_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Thread Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/threads/{thread_id}/messages": { "post": { "tags": [ "assistants" ], "summary": "Add Messages", "description": "Create a message.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/messages/createMessage", "operationId": "add_messages_threads__thread_id__messages_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Thread Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "assistants" ], "summary": "Get Messages", "description": "Returns a list of messages for a given thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/messages/listMessages", "operationId": "get_messages_threads__thread_id__messages_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Thread Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/threads/{thread_id}/messages": { "post": { "tags": [ "assistants" ], "summary": "Add Messages", "description": "Create a message.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/messages/createMessage", "operationId": "add_messages_v1_threads__thread_id__messages_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Thread Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "assistants" ], "summary": "Get Messages", "description": "Returns a list of messages for a given thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/messages/listMessages", "operationId": "get_messages_v1_threads__thread_id__messages_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Thread Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/threads/{thread_id}/runs": { "post": { "tags": [ "assistants" ], "summary": "Run Thread", "description": "Create a run.\n\nAPI Reference: https://platform.openai.com/docs/api-reference/runs/createRun", "operationId": "run_thread_threads__thread_id__runs_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Thread Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/threads/{thread_id}/runs": { "post": { "tags": [ "assistants" ], "summary": "Run Thread", "description": "Create a run.\n\nAPI Reference: https://platform.openai.com/docs/api-reference/runs/createRun", "operationId": "run_thread_v1_threads__thread_id__runs_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "thread_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Thread Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/utils/token_counter": { "post": { "tags": [ "llm utils" ], "summary": "Token Counter", "description": "Args:\n request: TokenCountRequest\n call_endpoint: bool - When set to \"True\" it will call the token counting endpoint - e.g Anthropic or Google AI Studio Token Counting APIs.\n\nReturns:\n TokenCountResponse", "operationId": "token_counter_utils_token_counter_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "call_endpoint", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Call Endpoint" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenCountRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenCountResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/utils/supported_openai_params": { "get": { "tags": [ "llm utils" ], "summary": "Supported Openai Params", "description": "Returns supported openai params for a given litellm model name\n\ne.g. `gpt-4` vs `gpt-3.5-turbo`\n\nExample curl:\n```\ncurl -X GET --location 'http://localhost:4000/utils/supported_openai_params?model=gpt-3.5-turbo-16k' --header 'Authorization: Bearer sk-1234'\n```", "operationId": "supported_openai_params_utils_supported_openai_params_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": true, "schema": { "type": "string", "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/utils/transform_request": { "post": { "tags": [ "llm utils" ], "summary": "Transform Request", "operationId": "transform_request_utils_transform_request_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TransformRequestBody" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RawRequestTypedDict" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/model/info": { "get": { "tags": [ "model management" ], "summary": "Model Info V1", "description": "Provides more info about each model in /models, including config.yaml descriptions (except api key and api base)\n\nParameters:\n litellm_model_id: Optional[str] = None (this is the value of `x-litellm-model-id` returned in response headers)\n\n - When litellm_model_id is passed, it will return the info for that specific model\n - When litellm_model_id is not passed, it will return the info for all models\n\nReturns:\n Returns a dictionary containing information about each model.\n\nExample Response:\n```json\n{\n \"data\": [\n {\n \"model_name\": \"fake-openai-endpoint\",\n \"litellm_params\": {\n \"api_base\": \"https://exampleopenaiendpoint-production.up.railway.app/\",\n \"model\": \"openai/fake\"\n },\n \"model_info\": {\n \"id\": \"112f74fab24a7a5245d2ced3536dd8f5f9192c57ee6e332af0f0512e08bed5af\",\n \"db_model\": false\n }\n }\n ]\n}\n\n```", "operationId": "model_info_v1_v1_model_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm_model_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Model Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/model/info": { "get": { "tags": [ "model management" ], "summary": "Model Info V1", "description": "Provides more info about each model in /models, including config.yaml descriptions (except api key and api base)\n\nParameters:\n litellm_model_id: Optional[str] = None (this is the value of `x-litellm-model-id` returned in response headers)\n\n - When litellm_model_id is passed, it will return the info for that specific model\n - When litellm_model_id is not passed, it will return the info for all models\n\nReturns:\n Returns a dictionary containing information about each model.\n\nExample Response:\n```json\n{\n \"data\": [\n {\n \"model_name\": \"fake-openai-endpoint\",\n \"litellm_params\": {\n \"api_base\": \"https://exampleopenaiendpoint-production.up.railway.app/\",\n \"model\": \"openai/fake\"\n },\n \"model_info\": {\n \"id\": \"112f74fab24a7a5245d2ced3536dd8f5f9192c57ee6e332af0f0512e08bed5af\",\n \"db_model\": false\n }\n }\n ]\n}\n\n```", "operationId": "model_info_v1_model_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm_model_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Model Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/model_group/info": { "get": { "tags": [ "model management" ], "summary": "Model Group Info", "description": "Get information about all the deployments on litellm proxy, including config.yaml descriptions (except api key and api base)\n\n- /model_group/info returns all model groups. End users of proxy should use /model_group/info since those models will be used for /chat/completions, /embeddings, etc.\n- /model_group/info?model_group=rerank-english-v3.0 returns all model groups for a specific model group (`model_name` in config.yaml)\n\n\n\nExample Request (All Models):\n```shell\ncurl -X 'GET' 'http://localhost:4000/model_group/info' -H 'accept: application/json' -H 'x-api-key: sk-1234'\n```\n\nExample Request (Specific Model Group):\n```shell\ncurl -X 'GET' 'http://localhost:4000/model_group/info?model_group=rerank-english-v3.0' -H 'accept: application/json' -H 'Authorization: Bearer sk-1234'\n```\n\nExample Request (Specific Wildcard Model Group): (e.g. `model_name: openai/*` on config.yaml)\n```shell\ncurl -X 'GET' 'http://localhost:4000/model_group/info?model_group=openai/tts-1'\n-H 'accept: application/json' -H 'Authorization: Bearersk-1234'\n```\n\nLearn how to use and set wildcard models [here](https://docs.litellm.ai/docs/wildcard_routing)\n\nExample Response:\n```json\n {\n \"data\": [\n {\n \"model_group\": \"rerank-english-v3.0\",\n \"providers\": [\n \"cohere\"\n ],\n \"max_input_tokens\": null,\n \"max_output_tokens\": null,\n \"input_cost_per_token\": 0.0,\n \"output_cost_per_token\": 0.0,\n \"mode\": null,\n \"tpm\": null,\n \"rpm\": null,\n \"supports_parallel_function_calling\": false,\n \"supports_vision\": false,\n \"supports_function_calling\": false,\n \"supported_openai_params\": [\n \"stream\",\n \"temperature\",\n \"max_tokens\",\n \"logit_bias\",\n \"top_p\",\n \"frequency_penalty\",\n \"presence_penalty\",\n \"stop\",\n \"n\",\n \"extra_headers\"\n ]\n },\n {\n \"model_group\": \"gpt-3.5-turbo\",\n \"providers\": [\n \"openai\"\n ],\n \"max_input_tokens\": 16385.0,\n \"max_output_tokens\": 4096.0,\n \"input_cost_per_token\": 1.5e-06,\n \"output_cost_per_token\": 2e-06,\n \"mode\": \"chat\",\n \"tpm\": null,\n \"rpm\": null,\n \"supports_parallel_function_calling\": false,\n \"supports_vision\": false,\n \"supports_function_calling\": true,\n \"supported_openai_params\": [\n \"frequency_penalty\",\n \"logit_bias\",\n \"logprobs\",\n \"top_logprobs\",\n \"max_tokens\",\n \"max_completion_tokens\",\n \"n\",\n \"presence_penalty\",\n \"seed\",\n \"stop\",\n \"stream\",\n \"stream_options\",\n \"temperature\",\n \"top_p\",\n \"tools\",\n \"tool_choice\",\n \"function_call\",\n \"functions\",\n \"max_retries\",\n \"extra_headers\",\n \"parallel_tool_calls\",\n \"response_format\"\n ]\n },\n {\n \"model_group\": \"llava-hf\",\n \"providers\": [\n \"openai\"\n ],\n \"max_input_tokens\": null,\n \"max_output_tokens\": null,\n \"input_cost_per_token\": 0.0,\n \"output_cost_per_token\": 0.0,\n \"mode\": null,\n \"tpm\": null,\n \"rpm\": null,\n \"supports_parallel_function_calling\": false,\n \"supports_vision\": true,\n \"supports_function_calling\": false,\n \"supported_openai_params\": [\n \"frequency_penalty\",\n \"logit_bias\",\n \"logprobs\",\n \"top_logprobs\",\n \"max_tokens\",\n \"max_completion_tokens\",\n \"n\",\n \"presence_penalty\",\n \"seed\",\n \"stop\",\n \"stream\",\n \"stream_options\",\n \"temperature\",\n \"top_p\",\n \"tools\",\n \"tool_choice\",\n \"function_call\",\n \"functions\",\n \"max_retries\",\n \"extra_headers\",\n \"parallel_tool_calls\",\n \"response_format\"\n ]\n }\n ]\n }\n```", "operationId": "model_group_info_model_group_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_group", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Group" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/": { "get": { "summary": "Home", "operationId": "home__get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/routes": { "get": { "summary": "Get Routes", "description": "Get a list of available routes in the FastAPI application.", "operationId": "get_routes_routes_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/openai/v1/responses": { "post": { "tags": [ "responses" ], "summary": "Responses Api", "description": "Follows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses\n\nSupports background mode with polling_via_cache for partial response retrieval.\nWhen background=true and polling_via_cache is enabled, returns a polling_id immediately\nand streams the response in the background, updating Redis cache.\n\n```bash\n# Normal request\ncurl -X POST http://localhost:4000/v1/responses -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"model\": \"gpt-4o\",\n \"input\": \"Tell me about AI\"\n}'\n\n# Background request with polling\ncurl -X POST http://localhost:4000/v1/responses -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"model\": \"gpt-4o\",\n \"input\": \"Tell me about AI\",\n \"background\": true\n}'\n```", "operationId": "responses_api_openai_v1_responses_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/responses": { "get": { "summary": "WebSocket: responses_websocket_endpoint", "description": "WebSocket connection endpoint", "operationId": "websocket_responses_websocket_endpoint", "parameters": [ { "name": "model", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "101": { "description": "WebSocket Protocol Switched" } }, "tags": [ "WebSocket" ] } }, "/v1/responses": { "get": { "summary": "WebSocket: responses_websocket_endpoint", "description": "WebSocket connection endpoint", "operationId": "websocket_responses_websocket_endpoint", "parameters": [ { "name": "model", "in": "query", "required": true, "schema": { "type": "string" } } ], "responses": { "101": { "description": "WebSocket Protocol Switched" } }, "tags": [ "WebSocket" ] } }, "/cursor/chat/completions": { "post": { "tags": [ "responses" ], "summary": "Cursor Chat Completions", "description": "Cursor-specific endpoint that accepts Responses API input format but returns chat completions format.\n\nThis endpoint handles requests from Cursor IDE which sends Responses API format (`input` field)\nbut expects chat completions format response (`choices`, `messages`, etc.).\n\n```bash\ncurl -X POST http://localhost:4000/cursor/chat/completions -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"model\": \"gpt-4o\",\n \"input\": [{\"role\": \"user\", \"content\": \"Hello\"}]\n}'\nResponds back in chat completions format.\n```", "operationId": "cursor_chat_completions_cursor_chat_completions_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/openai/v1/responses/{response_id}": { "get": { "tags": [ "responses" ], "summary": "Get Response", "description": "Get a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Returns cumulative cached content from background responses\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/get\n\n```bash\n# Get polling response\ncurl -X GET http://localhost:4000/v1/responses/litellm_poll_abc123 -H \"Authorization: Bearer sk-1234\"\n\n# Get provider response\ncurl -X GET http://localhost:4000/v1/responses/resp_abc123 -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "get_response_openai_v1_responses__response_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "responses" ], "summary": "Delete Response", "description": "Delete a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Deletes from Redis cache\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/delete\n\n```bash\ncurl -X DELETE http://localhost:4000/v1/responses/resp_abc123 -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "delete_response_openai_v1_responses__response_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/responses/{response_id}": { "get": { "tags": [ "responses" ], "summary": "Get Response", "description": "Get a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Returns cumulative cached content from background responses\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/get\n\n```bash\n# Get polling response\ncurl -X GET http://localhost:4000/v1/responses/litellm_poll_abc123 -H \"Authorization: Bearer sk-1234\"\n\n# Get provider response\ncurl -X GET http://localhost:4000/v1/responses/resp_abc123 -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "get_response_responses__response_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "responses" ], "summary": "Delete Response", "description": "Delete a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Deletes from Redis cache\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/delete\n\n```bash\ncurl -X DELETE http://localhost:4000/v1/responses/resp_abc123 -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "delete_response_responses__response_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/responses/{response_id}": { "get": { "tags": [ "responses" ], "summary": "Get Response", "description": "Get a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Returns cumulative cached content from background responses\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/get\n\n```bash\n# Get polling response\ncurl -X GET http://localhost:4000/v1/responses/litellm_poll_abc123 -H \"Authorization: Bearer sk-1234\"\n\n# Get provider response\ncurl -X GET http://localhost:4000/v1/responses/resp_abc123 -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "get_response_v1_responses__response_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "responses" ], "summary": "Delete Response", "description": "Delete a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Deletes from Redis cache\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/delete\n\n```bash\ncurl -X DELETE http://localhost:4000/v1/responses/resp_abc123 -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "delete_response_v1_responses__response_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/openai/v1/responses/{response_id}/input_items": { "get": { "tags": [ "responses" ], "summary": "Get Response Input Items", "description": "List input items for a response.", "operationId": "get_response_input_items_openai_v1_responses__response_id__input_items_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/responses/{response_id}/input_items": { "get": { "tags": [ "responses" ], "summary": "Get Response Input Items", "description": "List input items for a response.", "operationId": "get_response_input_items_responses__response_id__input_items_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/responses/{response_id}/input_items": { "get": { "tags": [ "responses" ], "summary": "Get Response Input Items", "description": "List input items for a response.", "operationId": "get_response_input_items_v1_responses__response_id__input_items_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/openai/v1/responses/compact": { "post": { "tags": [ "responses" ], "summary": "Compact Response", "description": "Compact a response by running a compaction pass over a conversation.\n\nReturns encrypted, opaque items that can be used to reduce context size.\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/compact\n\n```bash\ncurl -X POST http://localhost:4000/v1/responses/compact -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"model\": \"gpt-4o\",\n \"input\": [{\"role\": \"user\", \"content\": \"Hello\"}]\n}'\n```", "operationId": "compact_response_openai_v1_responses_compact_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/responses/compact": { "post": { "tags": [ "responses" ], "summary": "Compact Response", "description": "Compact a response by running a compaction pass over a conversation.\n\nReturns encrypted, opaque items that can be used to reduce context size.\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/compact\n\n```bash\ncurl -X POST http://localhost:4000/v1/responses/compact -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"model\": \"gpt-4o\",\n \"input\": [{\"role\": \"user\", \"content\": \"Hello\"}]\n}'\n```", "operationId": "compact_response_responses_compact_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/responses/compact": { "post": { "tags": [ "responses" ], "summary": "Compact Response", "description": "Compact a response by running a compaction pass over a conversation.\n\nReturns encrypted, opaque items that can be used to reduce context size.\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/compact\n\n```bash\ncurl -X POST http://localhost:4000/v1/responses/compact -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"model\": \"gpt-4o\",\n \"input\": [{\"role\": \"user\", \"content\": \"Hello\"}]\n}'\n```", "operationId": "compact_response_v1_responses_compact_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/openai/v1/responses/{response_id}/cancel": { "post": { "tags": [ "responses" ], "summary": "Cancel Response", "description": "Cancel a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Cancels background response and updates status in Redis\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/cancel\n\n```bash\n# Cancel polling response\ncurl -X POST http://localhost:4000/v1/responses/litellm_poll_abc123/cancel -H \"Authorization: Bearer sk-1234\"\n\n# Cancel provider response\ncurl -X POST http://localhost:4000/v1/responses/resp_abc123/cancel -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "cancel_response_openai_v1_responses__response_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/responses/{response_id}/cancel": { "post": { "tags": [ "responses" ], "summary": "Cancel Response", "description": "Cancel a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Cancels background response and updates status in Redis\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/cancel\n\n```bash\n# Cancel polling response\ncurl -X POST http://localhost:4000/v1/responses/litellm_poll_abc123/cancel -H \"Authorization: Bearer sk-1234\"\n\n# Cancel provider response\ncurl -X POST http://localhost:4000/v1/responses/resp_abc123/cancel -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "cancel_response_responses__response_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/responses/{response_id}/cancel": { "post": { "tags": [ "responses" ], "summary": "Cancel Response", "description": "Cancel a response by ID.\n\nSupports both:\n- Polling IDs (litellm_poll_*): Cancels background response and updates status in Redis\n- Provider response IDs: Passes through to provider API\n\nFollows the OpenAI Responses API spec: https://platform.openai.com/docs/api-reference/responses/cancel\n\n```bash\n# Cancel polling response\ncurl -X POST http://localhost:4000/v1/responses/litellm_poll_abc123/cancel -H \"Authorization: Bearer sk-1234\"\n\n# Cancel provider response\ncurl -X POST http://localhost:4000/v1/responses/resp_abc123/cancel -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "cancel_response_v1_responses__response_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Response Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/batches": { "post": { "tags": [ "batch" ], "summary": "Create Batch", "description": "Create large batches of API requests for asynchronous processing.\nThis is the equivalent of POST https://api.openai.com/v1/batch\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"input_file_id\": \"file-abc123\",\n \"endpoint\": \"/v1/chat/completions\",\n \"completion_window\": \"24h\"\n}'\n```", "operationId": "create_batch_batches_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "batch" ], "summary": "List Batches", "description": "Lists \nThis is the equivalent of GET https://api.openai.com/v1/batches/\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/list\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches?limit=2 -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" \n```", "operationId": "list_batches_batches_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit" } }, { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "target_model_names", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Target Model Names" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/batches": { "post": { "tags": [ "batch" ], "summary": "Create Batch", "description": "Create large batches of API requests for asynchronous processing.\nThis is the equivalent of POST https://api.openai.com/v1/batch\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"input_file_id\": \"file-abc123\",\n \"endpoint\": \"/v1/chat/completions\",\n \"completion_window\": \"24h\"\n}'\n```", "operationId": "create_batch_v1_batches_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "batch" ], "summary": "List Batches", "description": "Lists \nThis is the equivalent of GET https://api.openai.com/v1/batches/\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/list\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches?limit=2 -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" \n```", "operationId": "list_batches_v1_batches_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit" } }, { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "target_model_names", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Target Model Names" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{provider}/v1/batches": { "post": { "tags": [ "batch" ], "summary": "Create Batch", "description": "Create large batches of API requests for asynchronous processing.\nThis is the equivalent of POST https://api.openai.com/v1/batch\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"input_file_id\": \"file-abc123\",\n \"endpoint\": \"/v1/chat/completions\",\n \"completion_window\": \"24h\"\n}'\n```", "operationId": "create_batch__provider__v1_batches_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "batch" ], "summary": "List Batches", "description": "Lists \nThis is the equivalent of GET https://api.openai.com/v1/batches/\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/list\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches?limit=2 -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" \n```", "operationId": "list_batches__provider__v1_batches_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit" } }, { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "target_model_names", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Target Model Names" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/batches/{batch_id}": { "get": { "tags": [ "batch" ], "summary": "Retrieve Batch", "description": "Retrieves a batch.\nThis is the equivalent of GET https://api.openai.com/v1/batches/{batch_id}\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/retrieve\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches/batch_abc123 -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" \n```", "operationId": "retrieve_batch_batches__batch_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "batch_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Batch ID to retrieve", "description": "The ID of the batch to retrieve" }, "description": "The ID of the batch to retrieve" }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/batches/{batch_id}": { "get": { "tags": [ "batch" ], "summary": "Retrieve Batch", "description": "Retrieves a batch.\nThis is the equivalent of GET https://api.openai.com/v1/batches/{batch_id}\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/retrieve\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches/batch_abc123 -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" \n```", "operationId": "retrieve_batch_v1_batches__batch_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "batch_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Batch ID to retrieve", "description": "The ID of the batch to retrieve" }, "description": "The ID of the batch to retrieve" }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{provider}/v1/batches/{batch_id}": { "get": { "tags": [ "batch" ], "summary": "Retrieve Batch", "description": "Retrieves a batch.\nThis is the equivalent of GET https://api.openai.com/v1/batches/{batch_id}\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/retrieve\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches/batch_abc123 -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" \n```", "operationId": "retrieve_batch__provider__v1_batches__batch_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, { "name": "batch_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Batch ID to retrieve", "description": "The ID of the batch to retrieve" }, "description": "The ID of the batch to retrieve" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/batches/{batch_id}/cancel": { "post": { "tags": [ "batch" ], "summary": "Cancel Batch", "description": "Cancel a batch.\nThis is the equivalent of POST https://api.openai.com/v1/batches/{batch_id}/cancel\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/cancel\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches/batch_abc123/cancel -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -X POST\n\n```", "operationId": "cancel_batch_batches__batch_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "batch_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Batch Id" } }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/batches/{batch_id}/cancel": { "post": { "tags": [ "batch" ], "summary": "Cancel Batch", "description": "Cancel a batch.\nThis is the equivalent of POST https://api.openai.com/v1/batches/{batch_id}/cancel\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/cancel\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches/batch_abc123/cancel -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -X POST\n\n```", "operationId": "cancel_batch_v1_batches__batch_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "batch_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Batch Id" } }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{provider}/v1/batches/{batch_id}/cancel": { "post": { "tags": [ "batch" ], "summary": "Cancel Batch", "description": "Cancel a batch.\nThis is the equivalent of POST https://api.openai.com/v1/batches/{batch_id}/cancel\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/batch/cancel\n\nExample Curl\n```\ncurl http://localhost:4000/v1/batches/batch_abc123/cancel -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -X POST\n\n```", "operationId": "cancel_batch__provider__v1_batches__batch_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "batch_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Batch Id" } }, { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/public/model_hub": { "get": { "tags": [ "public", "model management" ], "summary": "Public Model Hub", "operationId": "public_model_hub_public_model_hub_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ModelGroupInfoProxy" }, "type": "array", "title": "Response Public Model Hub Public Model Hub Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/public/agent_hub": { "get": { "tags": [ "[beta] Agents", "public" ], "summary": "Get Agents", "operationId": "get_agents_public_agent_hub_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AgentCard-Output" }, "type": "array", "title": "Response Get Agents Public Agent Hub Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/public/mcp_hub": { "get": { "tags": [ "[beta] MCP", "public" ], "summary": "Get Mcp Servers", "operationId": "get_mcp_servers_public_mcp_hub_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MCPPublicServer" }, "type": "array", "title": "Response Get Mcp Servers Public Mcp Hub Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/public/model_hub/info": { "get": { "tags": [ "public", "model management" ], "summary": "Public Model Hub Info", "operationId": "public_model_hub_info_public_model_hub_info_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PublicModelHubInfo" } } } } } } }, "/public/providers": { "get": { "tags": [ "public", "providers" ], "summary": "Get Supported Providers", "description": "Return a sorted list of all providers supported by LiteLLM.", "operationId": "get_supported_providers_public_providers_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "type": "string" }, "type": "array", "title": "Response Get Supported Providers Public Providers Get" } } } } } } }, "/public/providers/fields": { "get": { "tags": [ "public", "providers" ], "summary": "Get Provider Fields", "description": "Return provider metadata required by the dashboard create-model flow.", "operationId": "get_provider_fields_public_providers_fields_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/ProviderCreateInfo" }, "type": "array", "title": "Response Get Provider Fields Public Providers Fields Get" } } } } } } }, "/public/litellm_model_cost_map": { "get": { "tags": [ "public", "model management" ], "summary": "Get Litellm Model Cost Map", "description": "Public endpoint to get the LiteLLM model cost map.\nReturns pricing information for all supported models.", "operationId": "get_litellm_model_cost_map_public_litellm_model_cost_map_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/public/litellm_blog_posts": { "get": { "tags": [ "public" ], "summary": "Get Litellm Blog Posts", "description": "Public endpoint to get the latest LiteLLM blog posts.\n\nFetches from GitHub with a 1-hour in-process cache.\nFalls back to the bundled local backup on any failure.", "operationId": "get_litellm_blog_posts_public_litellm_blog_posts_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlogPostsResponse" } } } } } } }, "/public/endpoints": { "get": { "tags": [ "public" ], "summary": "Get Supported Endpoints", "description": "Return the list of LiteLLM proxy endpoints and which providers support each one.\n\nReads from the bundled local backup file. Result is cached in-process for\nthe lifetime of the server process.", "operationId": "get_supported_endpoints_public_endpoints_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SupportedEndpointsResponse" } } } } } } }, "/public/agents/fields": { "get": { "tags": [ "public", "[beta] Agents" ], "summary": "Get Agent Fields", "description": "Return agent type metadata required by the dashboard create-agent flow.\n\nIf an agent has `inherit_credentials_from_provider`, the provider's credential\nfields are automatically appended to the agent's credential_fields.", "operationId": "get_agent_fields_public_agents_fields_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AgentCreateInfo" }, "type": "array", "title": "Response Get Agent Fields Public Agents Fields Get" } } } } } } }, "/rerank": { "post": { "tags": [ "rerank" ], "summary": "Rerank", "operationId": "rerank_rerank_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/rerank": { "post": { "tags": [ "rerank" ], "summary": "Rerank", "operationId": "rerank_v1_rerank_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v2/rerank": { "post": { "tags": [ "rerank" ], "summary": "Rerank", "operationId": "rerank_v2_rerank_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/ocr": { "post": { "tags": [ "ocr" ], "summary": "Ocr", "description": "OCR endpoint for extracting text from documents and images.\n\nSupports two input modes:\n\n**1. JSON body** (Mistral OCR API compatible):\n```bash\ncurl -X POST \"http://localhost:4000/v1/ocr\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"model\": \"mistral-ocr\",\n \"document\": {\n \"type\": \"document_url\",\n \"document_url\": \"https://arxiv.org/pdf/2201.04234\"\n }\n }'\n```\n\n**2. Multipart form file upload**:\n```bash\ncurl -X POST \"http://localhost:4000/v1/ocr\" -H \"Authorization: Bearer sk-1234\" -F \"model=mistral-ocr\" -F \"file=@document.pdf\"\n```", "operationId": "ocr_ocr_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/ocr": { "post": { "tags": [ "ocr" ], "summary": "Ocr", "description": "OCR endpoint for extracting text from documents and images.\n\nSupports two input modes:\n\n**1. JSON body** (Mistral OCR API compatible):\n```bash\ncurl -X POST \"http://localhost:4000/v1/ocr\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"model\": \"mistral-ocr\",\n \"document\": {\n \"type\": \"document_url\",\n \"document_url\": \"https://arxiv.org/pdf/2201.04234\"\n }\n }'\n```\n\n**2. Multipart form file upload**:\n```bash\ncurl -X POST \"http://localhost:4000/v1/ocr\" -H \"Authorization: Bearer sk-1234\" -F \"model=mistral-ocr\" -F \"file=@document.pdf\"\n```", "operationId": "ocr_v1_ocr_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/rag/ingest": { "post": { "tags": [ "rag" ], "summary": "Rag Ingest", "description": "RAG Ingest endpoint - all-in-one document ingestion pipeline.\n\nSupports form upload (for files) or JSON body (for URLs).\n\n## Form upload (for files):\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/ingest\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -F file=\"@document.pdf\" \\\n -F 'ingest_options={\"vector_store\": {\"custom_llm_provider\": \"openai\"}}'\n```\n\n## JSON body (for URLs):\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/ingest\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"file_url\": \"https://example.com/document.pdf\",\n \"ingest_options\": {\"vector_store\": {\"custom_llm_provider\": \"openai\"}}\n }'\n```\n\n## Bedrock:\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/ingest\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -F file=\"@document.pdf\" \\\n -F 'ingest_options={\"vector_store\": {\"custom_llm_provider\": \"bedrock\"}}'\n```", "operationId": "rag_ingest_rag_ingest_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/rag/ingest": { "post": { "tags": [ "rag" ], "summary": "Rag Ingest", "description": "RAG Ingest endpoint - all-in-one document ingestion pipeline.\n\nSupports form upload (for files) or JSON body (for URLs).\n\n## Form upload (for files):\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/ingest\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -F file=\"@document.pdf\" \\\n -F 'ingest_options={\"vector_store\": {\"custom_llm_provider\": \"openai\"}}'\n```\n\n## JSON body (for URLs):\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/ingest\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"file_url\": \"https://example.com/document.pdf\",\n \"ingest_options\": {\"vector_store\": {\"custom_llm_provider\": \"openai\"}}\n }'\n```\n\n## Bedrock:\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/ingest\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -F file=\"@document.pdf\" \\\n -F 'ingest_options={\"vector_store\": {\"custom_llm_provider\": \"bedrock\"}}'\n```", "operationId": "rag_ingest_v1_rag_ingest_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/rag/query": { "post": { "tags": [ "rag" ], "summary": "Rag Query", "description": "RAG Query endpoint - search vector store, optionally rerank, and generate LLM response.\n\nThis endpoint:\n1. Extracts the query from the last user message\n2. Searches the vector store for relevant context\n3. Optionally reranks the results\n4. Generates an LLM response with the retrieved context\n\n## Example Request:\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/query\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gpt-4o-mini\",\n \"messages\": [{\"role\": \"user\", \"content\": \"What is LiteLLM?\"}],\n \"retrieval_config\": {\n \"vector_store_id\": \"vs_abc123\",\n \"custom_llm_provider\": \"openai\",\n \"top_k\": 5\n }\n }'\n```\n\n## With Reranking:\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/query\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gpt-4o-mini\",\n \"messages\": [{\"role\": \"user\", \"content\": \"What is LiteLLM?\"}],\n \"retrieval_config\": {\n \"vector_store_id\": \"vs_abc123\",\n \"custom_llm_provider\": \"openai\",\n \"top_k\": 10\n },\n \"rerank\": {\n \"enabled\": true,\n \"model\": \"cohere/rerank-english-v3.0\",\n \"top_n\": 3\n }\n }'\n```", "operationId": "rag_query_rag_query_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/rag/query": { "post": { "tags": [ "rag" ], "summary": "Rag Query", "description": "RAG Query endpoint - search vector store, optionally rerank, and generate LLM response.\n\nThis endpoint:\n1. Extracts the query from the last user message\n2. Searches the vector store for relevant context\n3. Optionally reranks the results\n4. Generates an LLM response with the retrieved context\n\n## Example Request:\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/query\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gpt-4o-mini\",\n \"messages\": [{\"role\": \"user\", \"content\": \"What is LiteLLM?\"}],\n \"retrieval_config\": {\n \"vector_store_id\": \"vs_abc123\",\n \"custom_llm_provider\": \"openai\",\n \"top_k\": 5\n }\n }'\n```\n\n## With Reranking:\n```bash\ncurl -X POST \"http://localhost:4000/v1/rag/query\" \\\n -H \"Authorization: Bearer sk-1234\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"model\": \"gpt-4o-mini\",\n \"messages\": [{\"role\": \"user\", \"content\": \"What is LiteLLM?\"}],\n \"retrieval_config\": {\n \"vector_store_id\": \"vs_abc123\",\n \"custom_llm_provider\": \"openai\",\n \"top_k\": 10\n },\n \"rerank\": {\n \"enabled\": true,\n \"model\": \"cohere/rerank-english-v3.0\",\n \"top_n\": 3\n }\n }'\n```", "operationId": "rag_query_v1_rag_query_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/videos": { "get": { "tags": [ "videos" ], "summary": "Video List", "description": "Video list endpoint for retrieving a list of videos.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/videos\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "video_list_videos_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "videos" ], "summary": "Video Generation", "description": "Video generation endpoint for creating videos from text prompts.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"model\": \"sora-2\",\n \"prompt\": \"A beautiful sunset over the ocean\"\n }'\n```", "operationId": "video_generation_videos_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_video_generation_videos_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/videos": { "get": { "tags": [ "videos" ], "summary": "Video List", "description": "Video list endpoint for retrieving a list of videos.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/videos\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "video_list_v1_videos_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "videos" ], "summary": "Video Generation", "description": "Video generation endpoint for creating videos from text prompts.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"model\": \"sora-2\",\n \"prompt\": \"A beautiful sunset over the ocean\"\n }'\n```", "operationId": "video_generation_v1_videos_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_video_generation_v1_videos_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/videos/{video_id}": { "get": { "tags": [ "videos" ], "summary": "Video Status", "description": "Video status endpoint for retrieving video status and metadata.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/videos/video_123\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "video_status_videos__video_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/videos/{video_id}": { "get": { "tags": [ "videos" ], "summary": "Video Status", "description": "Video status endpoint for retrieving video status and metadata.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/videos/video_123\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "video_status_v1_videos__video_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/videos/{video_id}/content": { "get": { "tags": [ "videos" ], "summary": "Video Content", "description": "Video content endpoint for downloading video content.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/videos/{video_id}/content\" -H \"Authorization: Bearer sk-1234\" --output video.mp4\n```", "operationId": "video_content_videos__video_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } } ], "responses": { "200": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/videos/{video_id}/content": { "get": { "tags": [ "videos" ], "summary": "Video Content", "description": "Video content endpoint for downloading video content.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/videos/{video_id}/content\" -H \"Authorization: Bearer sk-1234\" --output video.mp4\n```", "operationId": "video_content_v1_videos__video_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } } ], "responses": { "200": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/videos/{video_id}/remix": { "post": { "tags": [ "videos" ], "summary": "Video Remix", "description": "Video remix endpoint for remixing existing videos with new prompts.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos/video_123/remix\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"prompt\": \"A new version with different colors\"\n }'\n```", "operationId": "video_remix_videos__video_id__remix_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/videos/{video_id}/remix": { "post": { "tags": [ "videos" ], "summary": "Video Remix", "description": "Video remix endpoint for remixing existing videos with new prompts.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos/video_123/remix\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"prompt\": \"A new version with different colors\"\n }'\n```", "operationId": "video_remix_v1_videos__video_id__remix_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "video_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Video Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/videos/characters": { "post": { "tags": [ "videos" ], "summary": "Video Create Character", "description": "Create a character from an uploaded video file.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos/create-character\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos/characters\" -H \"Authorization: Bearer sk-1234\" -F \"video=@character_video.mp4\" -F \"name=my_character\"\n```", "operationId": "video_create_character_videos_characters_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_video_create_character_videos_characters_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/videos/characters": { "post": { "tags": [ "videos" ], "summary": "Video Create Character", "description": "Create a character from an uploaded video file.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos/create-character\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos/characters\" -H \"Authorization: Bearer sk-1234\" -F \"video=@character_video.mp4\" -F \"name=my_character\"\n```", "operationId": "video_create_character_v1_videos_characters_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_video_create_character_v1_videos_characters_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/videos/characters/{character_id}": { "get": { "tags": [ "videos" ], "summary": "Video Get Character", "description": "Retrieve a character by ID.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos/get-character\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/videos/characters/char_123\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "video_get_character_videos_characters__character_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "character_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Character Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/videos/characters/{character_id}": { "get": { "tags": [ "videos" ], "summary": "Video Get Character", "description": "Retrieve a character by ID.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos/get-character\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/videos/characters/char_123\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "video_get_character_v1_videos_characters__character_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "character_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Character Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/videos/edits": { "post": { "tags": [ "videos" ], "summary": "Video Edit", "description": "Create a video edit job.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos/create-edit\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos/edits\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\"prompt\": \"Make it brighter\", \"video\": {\"id\": \"video_123\"}}'\n```", "operationId": "video_edit_videos_edits_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/videos/edits": { "post": { "tags": [ "videos" ], "summary": "Video Edit", "description": "Create a video edit job.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos/create-edit\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos/edits\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\"prompt\": \"Make it brighter\", \"video\": {\"id\": \"video_123\"}}'\n```", "operationId": "video_edit_v1_videos_edits_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/videos/extensions": { "post": { "tags": [ "videos" ], "summary": "Video Extension", "description": "Create a video extension.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos/create-extension\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos/extensions\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\"prompt\": \"Continue the scene\", \"seconds\": \"5\", \"video\": {\"id\": \"video_123\"}}'\n```", "operationId": "video_extension_videos_extensions_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/videos/extensions": { "post": { "tags": [ "videos" ], "summary": "Video Extension", "description": "Create a video extension.\n\nFollows the OpenAI Videos API spec:\nhttps://platform.openai.com/docs/api-reference/videos/create-extension\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/videos/extensions\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\"prompt\": \"Continue the scene\", \"seconds\": \"5\", \"video\": {\"id\": \"video_123\"}}'\n```", "operationId": "video_extension_v1_videos_extensions_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/containers": { "get": { "tags": [ "containers" ], "summary": "List Containers", "description": "Container list endpoint for retrieving a list of containers.\n\nFollows the OpenAI Containers API spec:\nhttps://platform.openai.com/docs/api-reference/containers\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/containers?limit=20&order=desc\" -H \"Authorization: Bearer sk-1234\"\n```\n\nOr specify provider via header or query param:\n```bash\ncurl -X GET \"http://localhost:4000/v1/containers?custom_llm_provider=azure\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "list_containers_containers_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "containers" ], "summary": "Create Container", "description": "Container creation endpoint for creating new containers.\n\nFollows the OpenAI Containers API spec:\nhttps://platform.openai.com/docs/api-reference/containers\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/containers\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"name\": \"My Container\",\n \"expires_after\": {\n \"anchor\": \"last_active_at\",\n \"minutes\": 20\n }\n }'\n```\n\nOr specify provider via header:\n```bash\ncurl -X POST \"http://localhost:4000/v1/containers\" -H \"Authorization: Bearer sk-1234\" -H \"custom-llm-provider: azure\" -H \"Content-Type: application/json\" -d '{\n \"name\": \"My Container\"\n }'\n```", "operationId": "create_container_containers_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/containers": { "get": { "tags": [ "containers" ], "summary": "List Containers", "description": "Container list endpoint for retrieving a list of containers.\n\nFollows the OpenAI Containers API spec:\nhttps://platform.openai.com/docs/api-reference/containers\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/containers?limit=20&order=desc\" -H \"Authorization: Bearer sk-1234\"\n```\n\nOr specify provider via header or query param:\n```bash\ncurl -X GET \"http://localhost:4000/v1/containers?custom_llm_provider=azure\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "list_containers_v1_containers_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "containers" ], "summary": "Create Container", "description": "Container creation endpoint for creating new containers.\n\nFollows the OpenAI Containers API spec:\nhttps://platform.openai.com/docs/api-reference/containers\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1/containers\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"name\": \"My Container\",\n \"expires_after\": {\n \"anchor\": \"last_active_at\",\n \"minutes\": 20\n }\n }'\n```\n\nOr specify provider via header:\n```bash\ncurl -X POST \"http://localhost:4000/v1/containers\" -H \"Authorization: Bearer sk-1234\" -H \"custom-llm-provider: azure\" -H \"Content-Type: application/json\" -d '{\n \"name\": \"My Container\"\n }'\n```", "operationId": "create_container_v1_containers_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/containers/{container_id}": { "get": { "tags": [ "containers" ], "summary": "Retrieve Container", "description": "Container retrieve endpoint for getting details of a specific container.\n\nFollows the OpenAI Containers API spec:\nhttps://platform.openai.com/docs/api-reference/containers\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/containers/cntr_123\" -H \"Authorization: Bearer sk-1234\"\n```\n\nOr specify provider via header:\n```bash\ncurl -X GET \"http://localhost:4000/v1/containers/cntr_123\" -H \"Authorization: Bearer sk-1234\" -H \"custom-llm-provider: azure\"\n```", "operationId": "retrieve_container_containers__container_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "containers" ], "summary": "Delete Container", "description": "Container delete endpoint for deleting a specific container.\n\nFollows the OpenAI Containers API spec:\nhttps://platform.openai.com/docs/api-reference/containers\n\nExample:\n```bash\ncurl -X DELETE \"http://localhost:4000/v1/containers/cntr_123\" -H \"Authorization: Bearer sk-1234\"\n```\n\nOr specify provider via header:\n```bash\ncurl -X DELETE \"http://localhost:4000/v1/containers/cntr_123\" -H \"Authorization: Bearer sk-1234\" -H \"custom-llm-provider: azure\"\n```", "operationId": "delete_container_containers__container_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/containers/{container_id}": { "get": { "tags": [ "containers" ], "summary": "Retrieve Container", "description": "Container retrieve endpoint for getting details of a specific container.\n\nFollows the OpenAI Containers API spec:\nhttps://platform.openai.com/docs/api-reference/containers\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/containers/cntr_123\" -H \"Authorization: Bearer sk-1234\"\n```\n\nOr specify provider via header:\n```bash\ncurl -X GET \"http://localhost:4000/v1/containers/cntr_123\" -H \"Authorization: Bearer sk-1234\" -H \"custom-llm-provider: azure\"\n```", "operationId": "retrieve_container_v1_containers__container_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "containers" ], "summary": "Delete Container", "description": "Container delete endpoint for deleting a specific container.\n\nFollows the OpenAI Containers API spec:\nhttps://platform.openai.com/docs/api-reference/containers\n\nExample:\n```bash\ncurl -X DELETE \"http://localhost:4000/v1/containers/cntr_123\" -H \"Authorization: Bearer sk-1234\"\n```\n\nOr specify provider via header:\n```bash\ncurl -X DELETE \"http://localhost:4000/v1/containers/cntr_123\" -H \"Authorization: Bearer sk-1234\" -H \"custom-llm-provider: azure\"\n```", "operationId": "delete_container_v1_containers__container_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/containers/{container_id}/files": { "get": { "tags": [ "containers" ], "summary": "Handler Container Id", "operationId": "handler_container_id_v1_containers__container_id__files_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "containers" ], "summary": "Handler Multipart Upload", "operationId": "handler_multipart_upload_v1_containers__container_id__files_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/containers/{container_id}/files": { "get": { "tags": [ "containers" ], "summary": "Handler Container Id", "operationId": "handler_container_id_containers__container_id__files_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "containers" ], "summary": "Handler Multipart Upload", "operationId": "handler_multipart_upload_containers__container_id__files_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/containers/{container_id}/files/{file_id}": { "get": { "tags": [ "containers" ], "summary": "Handler Container File", "operationId": "handler_container_file_v1_containers__container_id__files__file_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "containers" ], "summary": "Handler Container File", "operationId": "handler_container_file_v1_containers__container_id__files__file_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/containers/{container_id}/files/{file_id}": { "get": { "tags": [ "containers" ], "summary": "Handler Container File", "operationId": "handler_container_file_containers__container_id__files__file_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "containers" ], "summary": "Handler Container File", "operationId": "handler_container_file_containers__container_id__files__file_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/containers/{container_id}/files/{file_id}/content": { "get": { "tags": [ "containers" ], "summary": "Handler Binary Content", "operationId": "handler_binary_content_v1_containers__container_id__files__file_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/containers/{container_id}/files/{file_id}/content": { "get": { "tags": [ "containers" ], "summary": "Handler Binary Content", "operationId": "handler_binary_content_containers__container_id__files__file_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "container_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Container Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/search": { "post": { "tags": [ "search" ], "summary": "Search", "description": "Search endpoint for performing web searches.\n\nFollows the Perplexity Search API spec:\nhttps://docs.perplexity.ai/api-reference/search-post\n\nThe search_tool_name can be passed either:\n1. In the URL path: /v1/search/{search_tool_name}\n2. In the request body: {\"search_tool_name\": \"...\"}\n\nExample with search_tool_name in URL (recommended - keeps body Perplexity-compatible):\n```bash\ncurl -X POST \"http://localhost:4000/v1/search/litellm-search\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"query\": \"latest AI developments 2024\",\n \"max_results\": 5,\n \"search_domain_filter\": [\"arxiv.org\", \"nature.com\"],\n \"country\": \"US\"\n }'\n```\n\nExample with search_tool_name in body:\n```bash\ncurl -X POST \"http://localhost:4000/v1/search\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"search_tool_name\": \"litellm-search\",\n \"query\": \"latest AI developments 2024\",\n \"max_results\": 5,\n \"search_domain_filter\": [\"arxiv.org\", \"nature.com\"],\n \"country\": \"US\"\n }'\n```\n\nRequest Body Parameters (when search_tool_name not in URL):\n- search_tool_name (str, required if not in URL): Name of the search tool configured in router\n- query (str or list[str], required): Search query\n- max_results (int, optional): Maximum number of results (1-20), default 10\n- search_domain_filter (list[str], optional): List of domains to filter (max 20)\n- max_tokens_per_page (int, optional): Max tokens per page, default 1024\n- country (str, optional): Country code filter (e.g., 'US', 'GB', 'DE')\n\nWhen using URL path parameter, only Perplexity-compatible parameters are needed in body:\n- query (str or list[str], required): Search query\n- max_results (int, optional): Maximum number of results (1-20), default 10\n- search_domain_filter (list[str], optional): List of domains to filter (max 20)\n- max_tokens_per_page (int, optional): Max tokens per page, default 1024\n- country (str, optional): Country code filter (e.g., 'US', 'GB', 'DE')\n\nResponse follows Perplexity Search API format:\n```json\n{\n \"object\": \"search\",\n \"results\": [\n {\n \"title\": \"Result title\",\n \"url\": \"https://example.com\",\n \"snippet\": \"Result snippet...\",\n \"date\": \"2024-01-01\",\n \"last_updated\": \"2024-01-01\"\n }\n ]\n}\n```", "operationId": "search_search_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "search_tool_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search Tool Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/search": { "post": { "tags": [ "search" ], "summary": "Search", "description": "Search endpoint for performing web searches.\n\nFollows the Perplexity Search API spec:\nhttps://docs.perplexity.ai/api-reference/search-post\n\nThe search_tool_name can be passed either:\n1. In the URL path: /v1/search/{search_tool_name}\n2. In the request body: {\"search_tool_name\": \"...\"}\n\nExample with search_tool_name in URL (recommended - keeps body Perplexity-compatible):\n```bash\ncurl -X POST \"http://localhost:4000/v1/search/litellm-search\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"query\": \"latest AI developments 2024\",\n \"max_results\": 5,\n \"search_domain_filter\": [\"arxiv.org\", \"nature.com\"],\n \"country\": \"US\"\n }'\n```\n\nExample with search_tool_name in body:\n```bash\ncurl -X POST \"http://localhost:4000/v1/search\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"search_tool_name\": \"litellm-search\",\n \"query\": \"latest AI developments 2024\",\n \"max_results\": 5,\n \"search_domain_filter\": [\"arxiv.org\", \"nature.com\"],\n \"country\": \"US\"\n }'\n```\n\nRequest Body Parameters (when search_tool_name not in URL):\n- search_tool_name (str, required if not in URL): Name of the search tool configured in router\n- query (str or list[str], required): Search query\n- max_results (int, optional): Maximum number of results (1-20), default 10\n- search_domain_filter (list[str], optional): List of domains to filter (max 20)\n- max_tokens_per_page (int, optional): Max tokens per page, default 1024\n- country (str, optional): Country code filter (e.g., 'US', 'GB', 'DE')\n\nWhen using URL path parameter, only Perplexity-compatible parameters are needed in body:\n- query (str or list[str], required): Search query\n- max_results (int, optional): Maximum number of results (1-20), default 10\n- search_domain_filter (list[str], optional): List of domains to filter (max 20)\n- max_tokens_per_page (int, optional): Max tokens per page, default 1024\n- country (str, optional): Country code filter (e.g., 'US', 'GB', 'DE')\n\nResponse follows Perplexity Search API format:\n```json\n{\n \"object\": \"search\",\n \"results\": [\n {\n \"title\": \"Result title\",\n \"url\": \"https://example.com\",\n \"snippet\": \"Result snippet...\",\n \"date\": \"2024-01-01\",\n \"last_updated\": \"2024-01-01\"\n }\n ]\n}\n```", "operationId": "search_v1_search_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "search_tool_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search Tool Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/search/{search_tool_name}": { "post": { "tags": [ "search" ], "summary": "Search", "description": "Search endpoint for performing web searches.\n\nFollows the Perplexity Search API spec:\nhttps://docs.perplexity.ai/api-reference/search-post\n\nThe search_tool_name can be passed either:\n1. In the URL path: /v1/search/{search_tool_name}\n2. In the request body: {\"search_tool_name\": \"...\"}\n\nExample with search_tool_name in URL (recommended - keeps body Perplexity-compatible):\n```bash\ncurl -X POST \"http://localhost:4000/v1/search/litellm-search\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"query\": \"latest AI developments 2024\",\n \"max_results\": 5,\n \"search_domain_filter\": [\"arxiv.org\", \"nature.com\"],\n \"country\": \"US\"\n }'\n```\n\nExample with search_tool_name in body:\n```bash\ncurl -X POST \"http://localhost:4000/v1/search\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"search_tool_name\": \"litellm-search\",\n \"query\": \"latest AI developments 2024\",\n \"max_results\": 5,\n \"search_domain_filter\": [\"arxiv.org\", \"nature.com\"],\n \"country\": \"US\"\n }'\n```\n\nRequest Body Parameters (when search_tool_name not in URL):\n- search_tool_name (str, required if not in URL): Name of the search tool configured in router\n- query (str or list[str], required): Search query\n- max_results (int, optional): Maximum number of results (1-20), default 10\n- search_domain_filter (list[str], optional): List of domains to filter (max 20)\n- max_tokens_per_page (int, optional): Max tokens per page, default 1024\n- country (str, optional): Country code filter (e.g., 'US', 'GB', 'DE')\n\nWhen using URL path parameter, only Perplexity-compatible parameters are needed in body:\n- query (str or list[str], required): Search query\n- max_results (int, optional): Maximum number of results (1-20), default 10\n- search_domain_filter (list[str], optional): List of domains to filter (max 20)\n- max_tokens_per_page (int, optional): Max tokens per page, default 1024\n- country (str, optional): Country code filter (e.g., 'US', 'GB', 'DE')\n\nResponse follows Perplexity Search API format:\n```json\n{\n \"object\": \"search\",\n \"results\": [\n {\n \"title\": \"Result title\",\n \"url\": \"https://example.com\",\n \"snippet\": \"Result snippet...\",\n \"date\": \"2024-01-01\",\n \"last_updated\": \"2024-01-01\"\n }\n ]\n}\n```", "operationId": "search_search__search_tool_name__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "search_tool_name", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search Tool Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/search/{search_tool_name}": { "post": { "tags": [ "search" ], "summary": "Search", "description": "Search endpoint for performing web searches.\n\nFollows the Perplexity Search API spec:\nhttps://docs.perplexity.ai/api-reference/search-post\n\nThe search_tool_name can be passed either:\n1. In the URL path: /v1/search/{search_tool_name}\n2. In the request body: {\"search_tool_name\": \"...\"}\n\nExample with search_tool_name in URL (recommended - keeps body Perplexity-compatible):\n```bash\ncurl -X POST \"http://localhost:4000/v1/search/litellm-search\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"query\": \"latest AI developments 2024\",\n \"max_results\": 5,\n \"search_domain_filter\": [\"arxiv.org\", \"nature.com\"],\n \"country\": \"US\"\n }'\n```\n\nExample with search_tool_name in body:\n```bash\ncurl -X POST \"http://localhost:4000/v1/search\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"search_tool_name\": \"litellm-search\",\n \"query\": \"latest AI developments 2024\",\n \"max_results\": 5,\n \"search_domain_filter\": [\"arxiv.org\", \"nature.com\"],\n \"country\": \"US\"\n }'\n```\n\nRequest Body Parameters (when search_tool_name not in URL):\n- search_tool_name (str, required if not in URL): Name of the search tool configured in router\n- query (str or list[str], required): Search query\n- max_results (int, optional): Maximum number of results (1-20), default 10\n- search_domain_filter (list[str], optional): List of domains to filter (max 20)\n- max_tokens_per_page (int, optional): Max tokens per page, default 1024\n- country (str, optional): Country code filter (e.g., 'US', 'GB', 'DE')\n\nWhen using URL path parameter, only Perplexity-compatible parameters are needed in body:\n- query (str or list[str], required): Search query\n- max_results (int, optional): Maximum number of results (1-20), default 10\n- search_domain_filter (list[str], optional): List of domains to filter (max 20)\n- max_tokens_per_page (int, optional): Max tokens per page, default 1024\n- country (str, optional): Country code filter (e.g., 'US', 'GB', 'DE')\n\nResponse follows Perplexity Search API format:\n```json\n{\n \"object\": \"search\",\n \"results\": [\n {\n \"title\": \"Result title\",\n \"url\": \"https://example.com\",\n \"snippet\": \"Result snippet...\",\n \"date\": \"2024-01-01\",\n \"last_updated\": \"2024-01-01\"\n }\n ]\n}\n```", "operationId": "search_v1_search__search_tool_name__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "search_tool_name", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search Tool Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/search/tools": { "get": { "tags": [ "search" ], "summary": "List Search Tools", "description": "List all available search tools configured in the router.\n\nThis endpoint returns the search tools that are currently loaded and available\nfor use with the /v1/search endpoint.\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/search/tools\" -H \"Authorization: Bearer sk-1234\"\n```\n\nResponse:\n```json\n{\n \"object\": \"list\",\n \"data\": [\n {\n \"search_tool_name\": \"litellm-search\",\n \"search_provider\": \"perplexity\",\n \"description\": \"Perplexity search tool\"\n }\n ]\n}\n```", "operationId": "list_search_tools_search_tools_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/search/tools": { "get": { "tags": [ "search" ], "summary": "List Search Tools", "description": "List all available search tools configured in the router.\n\nThis endpoint returns the search tools that are currently loaded and available\nfor use with the /v1/search endpoint.\n\nExample:\n```bash\ncurl -X GET \"http://localhost:4000/v1/search/tools\" -H \"Authorization: Bearer sk-1234\"\n```\n\nResponse:\n```json\n{\n \"object\": \"list\",\n \"data\": [\n {\n \"search_tool_name\": \"litellm-search\",\n \"search_provider\": \"perplexity\",\n \"description\": \"Perplexity search tool\"\n }\n ]\n}\n```", "operationId": "list_search_tools_v1_search_tools_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/openai/deployments/{model}/images/generations": { "post": { "tags": [ "images" ], "summary": "Image Generation", "operationId": "image_generation_openai_deployments__model__images_generations_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/images/generations": { "post": { "tags": [ "images" ], "summary": "Image Generation", "operationId": "image_generation_images_generations_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/images/generations": { "post": { "tags": [ "images" ], "summary": "Image Generation", "operationId": "image_generation_v1_images_generations_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/openai/deployments/{model}/images/edits": { "post": { "tags": [ "images" ], "summary": "Image Edit Api", "description": "Follows the OpenAI Images API spec: https://platform.openai.com/docs/api-reference/images/create\n\n```bash\ncurl -s -D >(grep -i x-request-id >&2) -o >(jq -r '.data[0].b64_json' | base64 --decode > gift-basket.png) -X POST \"http://localhost:4000/v1/images/edits\" -H \"Authorization: Bearer sk-1234\" -F \"model=gpt-image-1\" -F \"image[]=@soap.png\" -F 'prompt=Create a studio ghibli image of this'\n```", "operationId": "image_edit_api_openai_deployments__model__images_edits_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_image_edit_api_openai_deployments__model__images_edits_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/images/edits": { "post": { "tags": [ "images" ], "summary": "Image Edit Api", "description": "Follows the OpenAI Images API spec: https://platform.openai.com/docs/api-reference/images/create\n\n```bash\ncurl -s -D >(grep -i x-request-id >&2) -o >(jq -r '.data[0].b64_json' | base64 --decode > gift-basket.png) -X POST \"http://localhost:4000/v1/images/edits\" -H \"Authorization: Bearer sk-1234\" -F \"model=gpt-image-1\" -F \"image[]=@soap.png\" -F 'prompt=Create a studio ghibli image of this'\n```", "operationId": "image_edit_api_images_edits_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_image_edit_api_images_edits_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/images/edits": { "post": { "tags": [ "images" ], "summary": "Image Edit Api", "description": "Follows the OpenAI Images API spec: https://platform.openai.com/docs/api-reference/images/create\n\n```bash\ncurl -s -D >(grep -i x-request-id >&2) -o >(jq -r '.data[0].b64_json' | base64 --decode > gift-basket.png) -X POST \"http://localhost:4000/v1/images/edits\" -H \"Authorization: Bearer sk-1234\" -F \"model=gpt-image-1\" -F \"image[]=@soap.png\" -F 'prompt=Create a studio ghibli image of this'\n```", "operationId": "image_edit_api_v1_images_edits_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } } ], "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_image_edit_api_v1_images_edits_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/fine_tuning/jobs": { "post": { "tags": [ "fine-tuning" ], "summary": "\u2728 (Enterprise) Create Fine-Tuning Job", "description": "Creates a fine-tuning job which begins the process of creating a new model from a given dataset.\nThis is the equivalent of POST https://api.openai.com/v1/fine_tuning/jobs\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/fine-tuning/create\n\nExample Curl:\n```\ncurl http://localhost:4000/v1/fine_tuning/jobs -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"model\": \"gpt-3.5-turbo\",\n \"training_file\": \"file-abc123\",\n \"hyperparameters\": {\n \"n_epochs\": 4\n }\n }'\n```", "operationId": "create_fine_tuning_job_fine_tuning_jobs_post", "security": [ { "APIKeyHeader": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLMFineTuningJobCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "fine-tuning" ], "summary": "\u2728 (Enterprise) List Fine-Tuning Jobs", "description": "Lists fine-tuning jobs for the organization.\nThis is the equivalent of GET https://api.openai.com/v1/fine_tuning/jobs\n\nSupported Query Params:\n- `custom_llm_provider`: Name of the LiteLLM provider\n- `after`: Identifier for the last job from the previous pagination request.\n- `limit`: Number of fine-tuning jobs to retrieve (default is 20).", "operationId": "list_fine_tuning_jobs_fine_tuning_jobs_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "enum": [ "openai", "azure" ], "type": "string" }, { "type": "null" } ], "title": "Custom Llm Provider" } }, { "name": "target_model_names", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini'", "title": "Target Model Names" }, "description": "Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini'" }, { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/fine_tuning/jobs": { "post": { "tags": [ "fine-tuning" ], "summary": "\u2728 (Enterprise) Create Fine-Tuning Job", "description": "Creates a fine-tuning job which begins the process of creating a new model from a given dataset.\nThis is the equivalent of POST https://api.openai.com/v1/fine_tuning/jobs\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/fine-tuning/create\n\nExample Curl:\n```\ncurl http://localhost:4000/v1/fine_tuning/jobs -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"model\": \"gpt-3.5-turbo\",\n \"training_file\": \"file-abc123\",\n \"hyperparameters\": {\n \"n_epochs\": 4\n }\n }'\n```", "operationId": "create_fine_tuning_job_v1_fine_tuning_jobs_post", "security": [ { "APIKeyHeader": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLMFineTuningJobCreate" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "fine-tuning" ], "summary": "\u2728 (Enterprise) List Fine-Tuning Jobs", "description": "Lists fine-tuning jobs for the organization.\nThis is the equivalent of GET https://api.openai.com/v1/fine_tuning/jobs\n\nSupported Query Params:\n- `custom_llm_provider`: Name of the LiteLLM provider\n- `after`: Identifier for the last job from the previous pagination request.\n- `limit`: Number of fine-tuning jobs to retrieve (default is 20).", "operationId": "list_fine_tuning_jobs_v1_fine_tuning_jobs_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "enum": [ "openai", "azure" ], "type": "string" }, { "type": "null" } ], "title": "Custom Llm Provider" } }, { "name": "target_model_names", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini'", "title": "Target Model Names" }, "description": "Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini'" }, { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/fine_tuning/jobs/{fine_tuning_job_id}": { "get": { "tags": [ "fine-tuning" ], "summary": "\u2728 (Enterprise) Retrieve Fine-Tuning Job", "description": "Retrieves a fine-tuning job.\nThis is the equivalent of GET https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}\n\nSupported Query Params:\n- `custom_llm_provider`: Name of the LiteLLM provider\n- `fine_tuning_job_id`: The ID of the fine-tuning job to retrieve.", "operationId": "retrieve_fine_tuning_job_fine_tuning_jobs__fine_tuning_job_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "fine_tuning_job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Fine Tuning Job Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "enum": [ "openai", "azure" ], "type": "string" }, { "type": "null" } ], "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/fine_tuning/jobs/{fine_tuning_job_id}": { "get": { "tags": [ "fine-tuning" ], "summary": "\u2728 (Enterprise) Retrieve Fine-Tuning Job", "description": "Retrieves a fine-tuning job.\nThis is the equivalent of GET https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}\n\nSupported Query Params:\n- `custom_llm_provider`: Name of the LiteLLM provider\n- `fine_tuning_job_id`: The ID of the fine-tuning job to retrieve.", "operationId": "retrieve_fine_tuning_job_v1_fine_tuning_jobs__fine_tuning_job_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "fine_tuning_job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Fine Tuning Job Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "enum": [ "openai", "azure" ], "type": "string" }, { "type": "null" } ], "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/fine_tuning/jobs/{fine_tuning_job_id}/cancel": { "post": { "tags": [ "fine-tuning" ], "summary": "\u2728 (Enterprise) Cancel Fine-Tuning Jobs", "description": "Cancel a fine-tuning job.\n\nThis is the equivalent of POST https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel\n\nSupported Query Params:\n- `custom_llm_provider`: Name of the LiteLLM provider\n- `fine_tuning_job_id`: The ID of the fine-tuning job to cancel.", "operationId": "cancel_fine_tuning_job_fine_tuning_jobs__fine_tuning_job_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "fine_tuning_job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Fine Tuning Job Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel": { "post": { "tags": [ "fine-tuning" ], "summary": "\u2728 (Enterprise) Cancel Fine-Tuning Jobs", "description": "Cancel a fine-tuning job.\n\nThis is the equivalent of POST https://api.openai.com/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel\n\nSupported Query Params:\n- `custom_llm_provider`: Name of the LiteLLM provider\n- `fine_tuning_job_id`: The ID of the fine-tuning job to cancel.", "operationId": "cancel_fine_tuning_job_v1_fine_tuning_jobs__fine_tuning_job_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "fine_tuning_job_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Fine Tuning Job Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vector_stores/{vector_store_id}/search": { "post": { "summary": "Vector Store Search", "description": "Search a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/search", "operationId": "vector_store_search_vector_stores__vector_store_id__search_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/vector_stores/{vector_store_id}/search": { "post": { "summary": "Vector Store Search", "description": "Search a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/search", "operationId": "vector_store_search_v1_vector_stores__vector_store_id__search_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vector_stores": { "post": { "summary": "Vector Store Create", "description": "Create a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/create\n\nSupports target_model_names parameter for creating vector stores across multiple models:\n```json\n{\n \"name\": \"my-vector-store\",\n \"target_model_names\": \"gpt-4,gemini-2.0\"\n}\n```", "operationId": "vector_store_create_vector_stores_post", "security": [ { "APIKeyHeader": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } }, "get": { "summary": "Vector Store List", "description": "List vector stores.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/list", "operationId": "vector_store_list_vector_stores_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "before", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Before" } }, { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 20, "title": "Limit" } }, { "name": "order", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "desc", "title": "Order" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/vector_stores": { "post": { "summary": "Vector Store Create", "description": "Create a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/create\n\nSupports target_model_names parameter for creating vector stores across multiple models:\n```json\n{\n \"name\": \"my-vector-store\",\n \"target_model_names\": \"gpt-4,gemini-2.0\"\n}\n```", "operationId": "vector_store_create_v1_vector_stores_post", "security": [ { "APIKeyHeader": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } }, "get": { "summary": "Vector Store List", "description": "List vector stores.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/list", "operationId": "vector_store_list_v1_vector_stores_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "before", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Before" } }, { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 20, "title": "Limit" } }, { "name": "order", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "desc", "title": "Order" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vector_stores/{vector_store_id}": { "get": { "summary": "Vector Store Retrieve", "description": "Retrieve a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/retrieve", "operationId": "vector_store_retrieve_vector_stores__vector_store_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "summary": "Vector Store Update", "description": "Update a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/modify", "operationId": "vector_store_update_vector_stores__vector_store_id__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Vector Store Delete", "description": "Delete a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/delete", "operationId": "vector_store_delete_vector_stores__vector_store_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/vector_stores/{vector_store_id}": { "get": { "summary": "Vector Store Retrieve", "description": "Retrieve a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/retrieve", "operationId": "vector_store_retrieve_v1_vector_stores__vector_store_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "summary": "Vector Store Update", "description": "Update a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/modify", "operationId": "vector_store_update_v1_vector_stores__vector_store_id__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Vector Store Delete", "description": "Delete a vector store.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/delete", "operationId": "vector_store_delete_v1_vector_stores__vector_store_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/indexes": { "post": { "summary": "Index Create", "description": "Create an index. Just writes the index to the database.\n\n```bash\ncurl -L -X POST 'http://0.0.0.0:4000/indexes/create' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -H 'LiteLLM-Beta: indexes_beta=v1' -d '{ \n \"index_name\": \"dall-e-3\",\n \"vector_store_index\": \"real-index-name\",\n \"vector_store_name\": \"azure-ai-search\"\n }'\n```", "operationId": "index_create_v1_indexes_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IndexCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vector_store/new": { "post": { "tags": [ "vector store management" ], "summary": "New Vector Store", "description": "Create a new vector store.\n\nParameters:\n- vector_store_id: str - Unique identifier for the vector store\n- custom_llm_provider: str - Provider of the vector store\n- vector_store_name: Optional[str] - Name of the vector store\n- vector_store_description: Optional[str] - Description of the vector store\n- vector_store_metadata: Optional[Dict] - Additional metadata for the vector store", "operationId": "new_vector_store_vector_store_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_ManagedVectorStore" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/vector_store/list": { "get": { "tags": [ "vector store management" ], "summary": "List Vector Stores", "description": "List all available vector stores with optional filtering and pagination.\nCombines both in-memory vector stores and those stored in the database.\nDatabase is the source of truth - deleted stores are removed from memory, updated stores sync to memory.\n\nParameters:\n- page: int - Page number for pagination (default: 1)\n- page_size: int - Number of items per page (default: 100)", "operationId": "list_vector_stores_v1_vector_store_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 100, "title": "Page Size" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_ManagedVectorStoreListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vector_store/list": { "get": { "tags": [ "vector store management" ], "summary": "List Vector Stores", "description": "List all available vector stores with optional filtering and pagination.\nCombines both in-memory vector stores and those stored in the database.\nDatabase is the source of truth - deleted stores are removed from memory, updated stores sync to memory.\n\nParameters:\n- page: int - Page number for pagination (default: 1)\n- page_size: int - Number of items per page (default: 100)", "operationId": "list_vector_stores_vector_store_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 100, "title": "Page Size" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_ManagedVectorStoreListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vector_store/delete": { "post": { "tags": [ "vector store management" ], "summary": "Delete Vector Store", "description": "Delete a vector store from both database and in-memory registry.\n\nParameters:\n- vector_store_id: str - ID of the vector store to delete", "operationId": "delete_vector_store_vector_store_delete_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VectorStoreDeleteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vector_store/info": { "post": { "tags": [ "vector store management" ], "summary": "Get Vector Store Info", "description": "Return a single vector store's details", "operationId": "get_vector_store_info_vector_store_info_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VectorStoreInfoRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResponseLiteLLM_ManagedVectorStore" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vector_store/update": { "post": { "tags": [ "vector store management" ], "summary": "Update Vector Store", "description": "Update vector store details in both database and in-memory registry.\nThe updated data is immediately synchronized to the in-memory registry.", "operationId": "update_vector_store_vector_store_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VectorStoreUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vector_stores/{vector_store_id}/files": { "post": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Create", "operationId": "vector_store_file_create_vector_stores__vector_store_id__files_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "vector_store_files" ], "summary": "Vector Store File List", "operationId": "vector_store_file_list_vector_stores__vector_store_id__files_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/vector_stores/{vector_store_id}/files": { "post": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Create", "operationId": "vector_store_file_create_v1_vector_stores__vector_store_id__files_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "vector_store_files" ], "summary": "Vector Store File List", "operationId": "vector_store_file_list_v1_vector_stores__vector_store_id__files_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vector_stores/{vector_store_id}/files/{file_id}": { "get": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Retrieve", "operationId": "vector_store_file_retrieve_vector_stores__vector_store_id__files__file_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Update", "operationId": "vector_store_file_update_vector_stores__vector_store_id__files__file_id__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Delete", "operationId": "vector_store_file_delete_vector_stores__vector_store_id__files__file_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/vector_stores/{vector_store_id}/files/{file_id}": { "get": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Retrieve", "operationId": "vector_store_file_retrieve_v1_vector_stores__vector_store_id__files__file_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Update", "operationId": "vector_store_file_update_v1_vector_stores__vector_store_id__files__file_id__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Delete", "operationId": "vector_store_file_delete_v1_vector_stores__vector_store_id__files__file_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vector_stores/{vector_store_id}/files/{file_id}/content": { "get": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Content", "operationId": "vector_store_file_content_vector_stores__vector_store_id__files__file_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/vector_stores/{vector_store_id}/files/{file_id}/content": { "get": { "tags": [ "vector_store_files" ], "summary": "Vector Store File Content", "operationId": "vector_store_file_content_v1_vector_stores__vector_store_id__files__file_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "vector_store_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Vector Store Id" } }, { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/credentials": { "get": { "tags": [ "credential management" ], "summary": "Get Credentials", "description": "[BETA] endpoint. This might change unexpectedly.", "operationId": "get_credentials_credentials_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "credential management" ], "summary": "Create Credential", "description": "[BETA] endpoint. This might change unexpectedly.\nStores credential in DB.\nReloads credentials in memory.", "operationId": "create_credential_credentials_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateCredentialItem" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/credentials/by_name/{credential_name}": { "get": { "tags": [ "credential management" ], "summary": "Get Credential By Name", "description": "[BETA] endpoint. This might change unexpectedly.", "operationId": "get_credential_by_name_credentials_by_name__credential_name__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "credential_name", "in": "path", "required": true, "schema": { "type": "string", "description": "The credential name, percent-decoded; may contain slashes", "title": "Credential Name" }, "description": "The credential name, percent-decoded; may contain slashes" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialItem" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/credentials/by_model/{model_id}": { "get": { "tags": [ "credential management" ], "summary": "Get Credential By Model", "description": "[BETA] endpoint. This might change unexpectedly.", "operationId": "get_credential_by_model_credentials_by_model__model_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_id", "in": "path", "required": true, "schema": { "type": "string", "description": "The model ID to look up credentials for", "title": "Model Id" }, "description": "The model ID to look up credentials for" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialItem" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/credentials/{credential_name}": { "delete": { "tags": [ "credential management" ], "summary": "Delete Credential", "description": "[BETA] endpoint. This might change unexpectedly.", "operationId": "delete_credential_credentials__credential_name__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "credential_name", "in": "path", "required": true, "schema": { "type": "string", "description": "The credential name, percent-decoded; may contain slashes", "title": "Credential Name" }, "description": "The credential name, percent-decoded; may contain slashes" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "credential management" ], "summary": "Update Credential", "description": "[BETA] endpoint. This might change unexpectedly.", "operationId": "update_credential_credentials__credential_name__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "credential_name", "in": "path", "required": true, "schema": { "type": "string", "description": "The credential name, percent-decoded; may contain slashes", "title": "Credential Name" }, "description": "The credential name, percent-decoded; may contain slashes" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CredentialItem" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/gemini/{endpoint}": { "patch": { "tags": [ "Google AI Studio Pass-through", "pass-through" ], "summary": "Gemini Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)", "operationId": "gemini_proxy_route_gemini__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Google AI Studio Pass-through", "pass-through" ], "summary": "Gemini Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)", "operationId": "gemini_proxy_route_gemini__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Google AI Studio Pass-through", "pass-through" ], "summary": "Gemini Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)", "operationId": "gemini_proxy_route_gemini__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Google AI Studio Pass-through", "pass-through" ], "summary": "Gemini Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)", "operationId": "gemini_proxy_route_gemini__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Google AI Studio Pass-through", "pass-through" ], "summary": "Gemini Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)", "operationId": "gemini_proxy_route_gemini__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/cohere/{endpoint}": { "patch": { "tags": [ "Cohere Pass-through", "pass-through" ], "summary": "Cohere Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)", "operationId": "cohere_proxy_route_cohere__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Cohere Pass-through", "pass-through" ], "summary": "Cohere Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)", "operationId": "cohere_proxy_route_cohere__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Cohere Pass-through", "pass-through" ], "summary": "Cohere Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)", "operationId": "cohere_proxy_route_cohere__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Cohere Pass-through", "pass-through" ], "summary": "Cohere Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)", "operationId": "cohere_proxy_route_cohere__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Cohere Pass-through", "pass-through" ], "summary": "Cohere Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)", "operationId": "cohere_proxy_route_cohere__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vllm/{endpoint}": { "patch": { "tags": [ "VLLM Pass-through", "pass-through" ], "summary": "Vllm Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)", "operationId": "vllm_proxy_route_vllm__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "VLLM Pass-through", "pass-through" ], "summary": "Vllm Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)", "operationId": "vllm_proxy_route_vllm__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "VLLM Pass-through", "pass-through" ], "summary": "Vllm Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)", "operationId": "vllm_proxy_route_vllm__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "VLLM Pass-through", "pass-through" ], "summary": "Vllm Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)", "operationId": "vllm_proxy_route_vllm__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "VLLM Pass-through", "pass-through" ], "summary": "Vllm Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)", "operationId": "vllm_proxy_route_vllm__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/mistral/{endpoint}": { "patch": { "tags": [ "Mistral Pass-through", "pass-through" ], "summary": "Mistral Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)", "operationId": "mistral_proxy_route_mistral__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Mistral Pass-through", "pass-through" ], "summary": "Mistral Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)", "operationId": "mistral_proxy_route_mistral__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Mistral Pass-through", "pass-through" ], "summary": "Mistral Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)", "operationId": "mistral_proxy_route_mistral__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Mistral Pass-through", "pass-through" ], "summary": "Mistral Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)", "operationId": "mistral_proxy_route_mistral__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Mistral Pass-through", "pass-through" ], "summary": "Mistral Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)", "operationId": "mistral_proxy_route_mistral__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/milvus/{endpoint}": { "patch": { "tags": [ "Milvus Pass-through", "pass-through" ], "summary": "Milvus Proxy Route", "description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.", "operationId": "milvus_proxy_route_milvus__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Milvus Pass-through", "pass-through" ], "summary": "Milvus Proxy Route", "description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.", "operationId": "milvus_proxy_route_milvus__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Milvus Pass-through", "pass-through" ], "summary": "Milvus Proxy Route", "description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.", "operationId": "milvus_proxy_route_milvus__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Milvus Pass-through", "pass-through" ], "summary": "Milvus Proxy Route", "description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.", "operationId": "milvus_proxy_route_milvus__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Milvus Pass-through", "pass-through" ], "summary": "Milvus Proxy Route", "description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.", "operationId": "milvus_proxy_route_milvus__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/anthropic/{endpoint}": { "patch": { "tags": [ "Anthropic Pass-through", "pass-through" ], "summary": "Anthropic Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)", "operationId": "anthropic_proxy_route_anthropic__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Anthropic Pass-through", "pass-through" ], "summary": "Anthropic Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)", "operationId": "anthropic_proxy_route_anthropic__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Anthropic Pass-through", "pass-through" ], "summary": "Anthropic Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)", "operationId": "anthropic_proxy_route_anthropic__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Anthropic Pass-through", "pass-through" ], "summary": "Anthropic Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)", "operationId": "anthropic_proxy_route_anthropic__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Anthropic Pass-through", "pass-through" ], "summary": "Anthropic Proxy Route", "description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)", "operationId": "anthropic_proxy_route_anthropic__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/bedrock/{endpoint}": { "patch": { "tags": [ "Bedrock Pass-through", "pass-through" ], "summary": "Bedrock Proxy Route", "description": "This is the v1 passthrough for Bedrock.\nV2 is handled by the `/bedrock/v2` endpoint.\n[Docs](https://docs.litellm.ai/docs/pass_through/bedrock)", "operationId": "bedrock_proxy_route_bedrock__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Bedrock Pass-through", "pass-through" ], "summary": "Bedrock Proxy Route", "description": "This is the v1 passthrough for Bedrock.\nV2 is handled by the `/bedrock/v2` endpoint.\n[Docs](https://docs.litellm.ai/docs/pass_through/bedrock)", "operationId": "bedrock_proxy_route_bedrock__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Bedrock Pass-through", "pass-through" ], "summary": "Bedrock Proxy Route", "description": "This is the v1 passthrough for Bedrock.\nV2 is handled by the `/bedrock/v2` endpoint.\n[Docs](https://docs.litellm.ai/docs/pass_through/bedrock)", "operationId": "bedrock_proxy_route_bedrock__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Bedrock Pass-through", "pass-through" ], "summary": "Bedrock Proxy Route", "description": "This is the v1 passthrough for Bedrock.\nV2 is handled by the `/bedrock/v2` endpoint.\n[Docs](https://docs.litellm.ai/docs/pass_through/bedrock)", "operationId": "bedrock_proxy_route_bedrock__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Bedrock Pass-through", "pass-through" ], "summary": "Bedrock Proxy Route", "description": "This is the v1 passthrough for Bedrock.\nV2 is handled by the `/bedrock/v2` endpoint.\n[Docs](https://docs.litellm.ai/docs/pass_through/bedrock)", "operationId": "bedrock_proxy_route_bedrock__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/eu.assemblyai/{endpoint}": { "patch": { "tags": [ "AssemblyAI EU Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "AssemblyAI EU Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "AssemblyAI EU Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "AssemblyAI EU Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "AssemblyAI EU Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/assemblyai/{endpoint}": { "patch": { "tags": [ "AssemblyAI Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "AssemblyAI Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "AssemblyAI Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "AssemblyAI Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "AssemblyAI Pass-through", "pass-through" ], "summary": "Assemblyai Proxy Route", "operationId": "assemblyai_proxy_route_assemblyai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/azure/{endpoint}": { "patch": { "tags": [ "Azure Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Azure Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Azure Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Azure Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Azure Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/azure_ai/{endpoint}": { "patch": { "tags": [ "Azure AI Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Azure AI Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Azure AI Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Azure AI Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Azure AI Pass-through", "pass-through" ], "summary": "Azure Proxy Route", "description": "Call any azure endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/azure/{endpoint:path}`\n\nChecks if the deployment id in the url is a litellm model name. If so, it will route using the llm_router.allm_passthrough_route.", "operationId": "azure_proxy_route_azure_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vertex_ai/discovery/{endpoint}": { "patch": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Discovery Proxy Route", "description": "Call any vertex discovery endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/vertex_ai/discovery/{endpoint:path}`\n\nTarget url: `https://discoveryengine.googleapis.com`", "operationId": "vertex_discovery_proxy_route_vertex_ai_discovery__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Discovery Proxy Route", "description": "Call any vertex discovery endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/vertex_ai/discovery/{endpoint:path}`\n\nTarget url: `https://discoveryengine.googleapis.com`", "operationId": "vertex_discovery_proxy_route_vertex_ai_discovery__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Discovery Proxy Route", "description": "Call any vertex discovery endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/vertex_ai/discovery/{endpoint:path}`\n\nTarget url: `https://discoveryengine.googleapis.com`", "operationId": "vertex_discovery_proxy_route_vertex_ai_discovery__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Discovery Proxy Route", "description": "Call any vertex discovery endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/vertex_ai/discovery/{endpoint:path}`\n\nTarget url: `https://discoveryengine.googleapis.com`", "operationId": "vertex_discovery_proxy_route_vertex_ai_discovery__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Discovery Proxy Route", "description": "Call any vertex discovery endpoint using the proxy.\n\nJust use `{PROXY_BASE_URL}/vertex_ai/discovery/{endpoint:path}`\n\nTarget url: `https://discoveryengine.googleapis.com`", "operationId": "vertex_discovery_proxy_route_vertex_ai_discovery__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vertex_ai/{endpoint}": { "patch": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Proxy Route", "description": "Call LiteLLM proxy via Vertex AI SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai)", "operationId": "vertex_proxy_route_vertex_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Proxy Route", "description": "Call LiteLLM proxy via Vertex AI SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai)", "operationId": "vertex_proxy_route_vertex_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Proxy Route", "description": "Call LiteLLM proxy via Vertex AI SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai)", "operationId": "vertex_proxy_route_vertex_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Proxy Route", "description": "Call LiteLLM proxy via Vertex AI SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai)", "operationId": "vertex_proxy_route_vertex_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Vertex AI Pass-through", "pass-through" ], "summary": "Vertex Proxy Route", "description": "Call LiteLLM proxy via Vertex AI SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/vertex_ai)", "operationId": "vertex_proxy_route_vertex_ai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/openai/{endpoint}": { "patch": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/openai_passthrough/{endpoint}": { "patch": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai_passthrough__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai_passthrough__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai_passthrough__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai_passthrough__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "OpenAI Pass-through", "pass-through" ], "summary": "Openai Proxy Route", "description": "Pass-through endpoint for OpenAI API calls.\n\nAvailable on both routes:\n- /openai/{endpoint:path} - Standard OpenAI passthrough route\n- /openai_passthrough/{endpoint:path} - Dedicated passthrough route (recommended for Responses API)\n\nUse /openai_passthrough/* when you need guaranteed passthrough to OpenAI without conflicts\nwith LiteLLM's native implementations (e.g., for the Responses API at /v1/responses).\n\nExamples:\n Standard route:\n - /openai/v1/chat/completions\n - /openai/v1/assistants\n - /openai/v1/threads\n\n Dedicated passthrough (for Responses API):\n - /openai_passthrough/v1/responses\n - /openai_passthrough/v1/responses/{response_id}\n - /openai_passthrough/v1/responses/{response_id}/input_items\n\n[Docs](https://docs.litellm.ai/docs/pass_through/openai_passthrough)", "operationId": "openai_proxy_route_openai_passthrough__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/cursor/{endpoint}": { "patch": { "tags": [ "Cursor Pass-through", "pass-through" ], "summary": "Cursor Proxy Route", "description": "Pass-through endpoint for the Cursor Cloud Agents API.\n\nSupports all Cursor Cloud Agents endpoints:\n- GET /v0/agents \u2014 List agents\n- POST /v0/agents \u2014 Launch an agent\n- GET /v0/agents/{id} \u2014 Agent status\n- GET /v0/agents/{id}/conversation \u2014 Agent conversation\n- POST /v0/agents/{id}/followup \u2014 Add follow-up\n- POST /v0/agents/{id}/stop \u2014 Stop an agent\n- DELETE /v0/agents/{id} \u2014 Delete an agent\n- GET /v0/me \u2014 API key info\n- GET /v0/models \u2014 List models\n- GET /v0/repositories \u2014 List GitHub repositories\n\nUses Basic Authentication (base64-encoded `API_KEY:`).\n\nCredential lookup order:\n1. passthrough_endpoint_router (config.yaml deployments with use_in_pass_through)\n2. litellm.credential_list (credentials added via UI)\n3. CURSOR_API_KEY environment variable", "operationId": "cursor_proxy_route_cursor__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Cursor Pass-through", "pass-through" ], "summary": "Cursor Proxy Route", "description": "Pass-through endpoint for the Cursor Cloud Agents API.\n\nSupports all Cursor Cloud Agents endpoints:\n- GET /v0/agents \u2014 List agents\n- POST /v0/agents \u2014 Launch an agent\n- GET /v0/agents/{id} \u2014 Agent status\n- GET /v0/agents/{id}/conversation \u2014 Agent conversation\n- POST /v0/agents/{id}/followup \u2014 Add follow-up\n- POST /v0/agents/{id}/stop \u2014 Stop an agent\n- DELETE /v0/agents/{id} \u2014 Delete an agent\n- GET /v0/me \u2014 API key info\n- GET /v0/models \u2014 List models\n- GET /v0/repositories \u2014 List GitHub repositories\n\nUses Basic Authentication (base64-encoded `API_KEY:`).\n\nCredential lookup order:\n1. passthrough_endpoint_router (config.yaml deployments with use_in_pass_through)\n2. litellm.credential_list (credentials added via UI)\n3. CURSOR_API_KEY environment variable", "operationId": "cursor_proxy_route_cursor__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Cursor Pass-through", "pass-through" ], "summary": "Cursor Proxy Route", "description": "Pass-through endpoint for the Cursor Cloud Agents API.\n\nSupports all Cursor Cloud Agents endpoints:\n- GET /v0/agents \u2014 List agents\n- POST /v0/agents \u2014 Launch an agent\n- GET /v0/agents/{id} \u2014 Agent status\n- GET /v0/agents/{id}/conversation \u2014 Agent conversation\n- POST /v0/agents/{id}/followup \u2014 Add follow-up\n- POST /v0/agents/{id}/stop \u2014 Stop an agent\n- DELETE /v0/agents/{id} \u2014 Delete an agent\n- GET /v0/me \u2014 API key info\n- GET /v0/models \u2014 List models\n- GET /v0/repositories \u2014 List GitHub repositories\n\nUses Basic Authentication (base64-encoded `API_KEY:`).\n\nCredential lookup order:\n1. passthrough_endpoint_router (config.yaml deployments with use_in_pass_through)\n2. litellm.credential_list (credentials added via UI)\n3. CURSOR_API_KEY environment variable", "operationId": "cursor_proxy_route_cursor__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Cursor Pass-through", "pass-through" ], "summary": "Cursor Proxy Route", "description": "Pass-through endpoint for the Cursor Cloud Agents API.\n\nSupports all Cursor Cloud Agents endpoints:\n- GET /v0/agents \u2014 List agents\n- POST /v0/agents \u2014 Launch an agent\n- GET /v0/agents/{id} \u2014 Agent status\n- GET /v0/agents/{id}/conversation \u2014 Agent conversation\n- POST /v0/agents/{id}/followup \u2014 Add follow-up\n- POST /v0/agents/{id}/stop \u2014 Stop an agent\n- DELETE /v0/agents/{id} \u2014 Delete an agent\n- GET /v0/me \u2014 API key info\n- GET /v0/models \u2014 List models\n- GET /v0/repositories \u2014 List GitHub repositories\n\nUses Basic Authentication (base64-encoded `API_KEY:`).\n\nCredential lookup order:\n1. passthrough_endpoint_router (config.yaml deployments with use_in_pass_through)\n2. litellm.credential_list (credentials added via UI)\n3. CURSOR_API_KEY environment variable", "operationId": "cursor_proxy_route_cursor__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Cursor Pass-through", "pass-through" ], "summary": "Cursor Proxy Route", "description": "Pass-through endpoint for the Cursor Cloud Agents API.\n\nSupports all Cursor Cloud Agents endpoints:\n- GET /v0/agents \u2014 List agents\n- POST /v0/agents \u2014 Launch an agent\n- GET /v0/agents/{id} \u2014 Agent status\n- GET /v0/agents/{id}/conversation \u2014 Agent conversation\n- POST /v0/agents/{id}/followup \u2014 Add follow-up\n- POST /v0/agents/{id}/stop \u2014 Stop an agent\n- DELETE /v0/agents/{id} \u2014 Delete an agent\n- GET /v0/me \u2014 API key info\n- GET /v0/models \u2014 List models\n- GET /v0/repositories \u2014 List GitHub repositories\n\nUses Basic Authentication (base64-encoded `API_KEY:`).\n\nCredential lookup order:\n1. passthrough_endpoint_router (config.yaml deployments with use_in_pass_through)\n2. litellm.credential_list (credentials added via UI)\n3. CURSOR_API_KEY environment variable", "operationId": "cursor_proxy_route_cursor__endpoint__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/openai/v1/realtime/client_secrets": { "post": { "tags": [ "realtime" ], "summary": "Create Realtime Client Secret", "operationId": "create_realtime_client_secret_openai_v1_realtime_client_secrets_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RealtimeClientSecretResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/realtime/client_secrets": { "post": { "tags": [ "realtime" ], "summary": "Create Realtime Client Secret", "operationId": "create_realtime_client_secret_realtime_client_secrets_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RealtimeClientSecretResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/realtime/client_secrets": { "post": { "tags": [ "realtime" ], "summary": "Create Realtime Client Secret", "operationId": "create_realtime_client_secret_v1_realtime_client_secrets_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RealtimeClientSecretResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/openai/v1/realtime/calls": { "post": { "tags": [ "realtime" ], "summary": "Proxy Realtime Calls", "operationId": "proxy_realtime_calls_openai_v1_realtime_calls_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/realtime/calls": { "post": { "tags": [ "realtime" ], "summary": "Proxy Realtime Calls", "operationId": "proxy_realtime_calls_realtime_calls_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/v1/realtime/calls": { "post": { "tags": [ "realtime" ], "summary": "Proxy Realtime Calls", "operationId": "proxy_realtime_calls_v1_realtime_calls_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/v1/mcp/tools": { "get": { "tags": [ "mcp", "mcp" ], "summary": "Get Mcp Tools", "description": "Get all MCP tools available for the current key, including those from access groups", "operationId": "get_mcp_tools_v1_mcp_tools_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/mcp/access_groups": { "get": { "tags": [ "mcp", "mcp" ], "summary": "Get Mcp Access Groups", "description": "Get all available MCP access groups from the database AND config", "operationId": "get_mcp_access_groups_v1_mcp_access_groups_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/mcp/network/client-ip": { "get": { "tags": [ "mcp", "mcp" ], "summary": "Get Client Ip", "description": "Returns the caller's IP address as seen by the proxy.", "operationId": "get_client_ip_v1_mcp_network_client_ip_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/mcp/registry.json": { "get": { "tags": [ "mcp", "mcp" ], "summary": "Get Mcp Registry", "description": "MCP registry endpoint. Spec: https://github.com/modelcontextprotocol/registry", "operationId": "get_mcp_registry_v1_mcp_registry_json_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/v1/mcp/server": { "get": { "tags": [ "mcp" ], "summary": "Fetch All Mcp Servers", "description": "Returns the mcp server list with associated teams", "operationId": "fetch_all_mcp_servers_v1_mcp_server_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter MCP servers by team scope. When provided, returns only servers the team has access to plus globally available (allow_all_keys) servers. Used by the Create Key UI to show team-scoped MCP servers.", "title": "Team Id" }, "description": "Filter MCP servers by team scope. When provided, returns only servers the team has access to plus globally available (allow_all_keys) servers. Used by the Create Key UI to show team-scoped MCP servers." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiteLLM_MCPServerTable" }, "title": "Response Fetch All Mcp Servers V1 Mcp Server Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "mcp" ], "summary": "Add Mcp Server", "description": "Allows creation of mcp servers", "operationId": "add_mcp_server_v1_mcp_server_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewMCPServerRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_MCPServerTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "mcp" ], "summary": "Edit Mcp Server", "description": "Allows deleting mcp serves in the db", "operationId": "edit_mcp_server_v1_mcp_server_put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMCPServerRequest" } } } }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_MCPServerTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/server/health": { "get": { "tags": [ "mcp" ], "summary": "Health Check Servers", "description": "Health check for MCP servers", "operationId": "health_check_servers_v1_mcp_server_health_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Server IDs to check. If not provided, checks all accessible servers.", "title": "Server Ids" }, "description": "Server IDs to check. If not provided, checks all accessible servers." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/server/register": { "post": { "tags": [ "mcp" ], "summary": "Register Mcp Server", "description": "Submit a new MCP server for admin review (non-admin users). Mirrors POST /guardrails/register.", "operationId": "register_mcp_server_v1_mcp_server_register_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewMCPServerRequest" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_MCPServerTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/mcp/server/submissions": { "get": { "tags": [ "mcp" ], "summary": "Get Mcp Server Submissions", "description": "Returns all MCP servers submitted by non-admin users (admin review queue). Mirrors GET /guardrails/submissions.", "operationId": "get_mcp_server_submissions_v1_mcp_server_submissions_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPSubmissionsSummary" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/mcp/server/{server_id}/approve": { "put": { "tags": [ "mcp" ], "summary": "Approve Mcp Server Submission", "description": "Approve a pending MCP server submission (admin only). Mirrors PUT /guardrails/{id}/approve.", "operationId": "approve_mcp_server_submission_v1_mcp_server__server_id__approve_put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_MCPServerTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/server/{server_id}/reject": { "put": { "tags": [ "mcp" ], "summary": "Reject Mcp Server Submission", "description": "Reject a pending MCP server submission (admin only). Mirrors PUT /guardrails/{id}/reject.", "operationId": "reject_mcp_server_submission_v1_mcp_server__server_id__reject_put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RejectMCPServerRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_MCPServerTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/server/{server_id}": { "get": { "tags": [ "mcp" ], "summary": "Fetch Mcp Server", "description": "Returns the mcp server info", "operationId": "fetch_mcp_server_v1_mcp_server__server_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_MCPServerTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "mcp" ], "summary": "Remove Mcp Server", "description": "Allows deleting mcp serves in the db", "operationId": "remove_mcp_server_v1_mcp_server__server_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } }, { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/server/oauth/session": { "post": { "tags": [ "mcp" ], "summary": "Add Session Mcp Server", "description": "Temporarily cache an MCP server in memory without writing to the database", "operationId": "add_session_mcp_server_v1_mcp_server_oauth_session_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewMCPServerRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/server/{server_id}/user-credential": { "post": { "tags": [ "mcp" ], "summary": "Store Mcp User Credential", "description": "Store or update the calling user's API key for a BYOK MCP server", "operationId": "store_mcp_user_credential_v1_mcp_server__server_id__user_credential_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPUserCredentialRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPUserCredentialResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "mcp" ], "summary": "Delete Mcp User Credential", "description": "Delete the calling user's stored API key for a BYOK MCP server", "operationId": "delete_mcp_user_credential_v1_mcp_server__server_id__user_credential_delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPUserCredentialResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/server/{server_id}/oauth-user-credential": { "post": { "tags": [ "mcp" ], "summary": "Store Mcp Oauth User Credential", "description": "Store the calling user's OAuth2 token for an OpenAPI MCP server", "operationId": "store_mcp_oauth_user_credential_v1_mcp_server__server_id__oauth_user_credential_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPOAuthUserCredentialRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPOAuthUserCredentialStatus" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "mcp" ], "summary": "Delete Mcp Oauth User Credential", "description": "Revoke the calling user's stored OAuth2 token for an MCP server", "operationId": "delete_mcp_oauth_user_credential_v1_mcp_server__server_id__oauth_user_credential_delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPOAuthUserCredentialStatus" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/server/{server_id}/oauth-user-credential/status": { "get": { "tags": [ "mcp" ], "summary": "Get Mcp Oauth User Credential Status", "description": "Check whether the calling user has a stored OAuth2 credential for this MCP server", "operationId": "get_mcp_oauth_user_credential_status_v1_mcp_server__server_id__oauth_user_credential_status_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Server Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPOAuthUserCredentialStatus" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/user-credentials": { "get": { "tags": [ "mcp" ], "summary": "List Mcp User Credentials", "description": "List all OAuth2 MCP credentials stored for the calling user", "operationId": "list_mcp_user_credentials_v1_mcp_user_credentials_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/MCPUserCredentialListItem" }, "type": "array", "title": "Response List Mcp User Credentials V1 Mcp User Credentials Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/mcp/make_public": { "post": { "tags": [ "mcp" ], "summary": "Make Mcp Servers Public", "description": "Allows making MCP servers public for AI Hub", "operationId": "make_mcp_servers_public_v1_mcp_make_public_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MakeMCPServersPublicRequest" } } }, "required": true }, "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/mcp/discover": { "get": { "tags": [ "mcp" ], "summary": "Discover Mcp Servers", "description": "Returns a curated list of well-known MCP servers for discovery UI", "operationId": "discover_mcp_servers_v1_mcp_discover_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "query", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Search filter for server names and descriptions", "title": "Query" }, "description": "Search filter for server names and descriptions" }, { "name": "category", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by category", "title": "Category" }, "description": "Filter by category" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/openapi-registry": { "get": { "tags": [ "mcp" ], "summary": "Get Openapi Registry", "description": "Returns well-known OpenAPI APIs with OAuth 2.0 metadata for the OpenAPI MCP picker", "operationId": "get_openapi_registry_v1_mcp_openapi_registry_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/mcp/toolset": { "post": { "tags": [ "mcp" ], "summary": "Add Mcp Toolset", "description": "Create a new MCP toolset (admin only)", "operationId": "add_mcp_toolset_v1_mcp_toolset_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm-Changed-By" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewMCPToolsetRequest" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "mcp" ], "summary": "Fetch Mcp Toolsets", "description": "List MCP toolsets accessible to the calling key", "operationId": "fetch_mcp_toolsets_v1_mcp_toolset_get", "security": [ { "APIKeyHeader": [] } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } }, "put": { "tags": [ "mcp" ], "summary": "Edit Mcp Toolset", "description": "Update an existing MCP toolset (admin only)", "operationId": "edit_mcp_toolset_v1_mcp_toolset_put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm-Changed-By" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateMCPToolsetRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/mcp/toolset/{toolset_id}": { "get": { "tags": [ "mcp" ], "summary": "Fetch Mcp Toolset", "description": "Get a specific MCP toolset by ID", "operationId": "fetch_mcp_toolset_v1_mcp_toolset__toolset_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "toolset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "mcp" ], "summary": "Remove Mcp Toolset", "description": "Delete an MCP toolset (admin only)", "operationId": "remove_mcp_toolset_v1_mcp_toolset__toolset_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "toolset_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Id" } }, { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm-Changed-By" } } ], "responses": { "202": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/messages": { "post": { "tags": [ "[beta] Anthropic `/v1/messages`" ], "summary": "Anthropic Response", "description": "Use `{PROXY_BASE_URL}/anthropic/v1/messages` instead - [Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion).\n\nThis was a BETA endpoint that calls 100+ LLMs in the anthropic format.", "operationId": "anthropic_response_v1_messages_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/messages/count_tokens": { "post": { "tags": [ "[beta] Anthropic Messages Token Counting" ], "summary": "Count Tokens", "description": "Count tokens for Anthropic Messages API format.\n\nThis endpoint follows the Anthropic Messages API token counting specification.\nIt accepts the same parameters as the /v1/messages endpoint but returns\ntoken counts instead of generating a response.\n\nExample usage:\n```\ncurl -X POST \"http://localhost:4000/v1/messages/count_tokens?beta=true\" -H \"Content-Type: application/json\" -H \"Authorization: Bearer your-key\" -d '{\n \"model\": \"claude-3-sonnet-20240229\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Hello Claude!\"}]\n }'\n```\n\nReturns: {\"input_tokens\": }", "operationId": "count_tokens_v1_messages_count_tokens_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/api/event_logging/batch": { "post": { "tags": [ "[beta] Anthropic Event Logging" ], "summary": "Event Logging Batch", "description": "Stubbed endpoint for Anthropic event logging batch requests.\n\nThis endpoint accepts event logging requests but does nothing with them.\nIt exists to prevent 404 errors from Claude Code clients that send telemetry.", "operationId": "event_logging_batch_api_event_logging_batch_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/v1/skills": { "post": { "tags": [ "[beta] Anthropic Skills API" ], "summary": "Create Skill", "description": "Create a new skill on Anthropic.\n\nRequires `?beta=true` query parameter.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: claude-account-1`\n- Pass model via query: `?model=claude-account-1`\n- Pass model via form field: `model=claude-account-1`\n\nExample usage:\n```bash\n# Basic usage\ncurl -X POST \"http://localhost:4000/v1/skills?beta=true\" -H \"Content-Type: multipart/form-data\" -H \"Authorization: Bearer your-key\" -F \"display_title=My Skill\" -F \"files[]=@skill.zip\"\n\n# With model-based routing\ncurl -X POST \"http://localhost:4000/v1/skills?beta=true\" -H \"Content-Type: multipart/form-data\" -H \"Authorization: Bearer your-key\" -H \"x-litellm-model: claude-account-1\" -F \"display_title=My Skill\" -F \"files[]=@skill.zip\"\n```\n\nReturns: Skill object with id, display_title, etc.", "operationId": "create_skill_v1_skills_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "anthropic", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Skill" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "[beta] Anthropic Skills API" ], "summary": "List Skills", "description": "List skills on Anthropic.\n\nRequires `?beta=true` query parameter.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: claude-account-1`\n- Pass model via query: `?model=claude-account-1`\n- Pass model via body: `{\"model\": \"claude-account-1\"}`\n\nExample usage:\n```bash\n# Basic usage\ncurl \"http://localhost:4000/v1/skills?beta=true&limit=10\" -H \"Authorization: Bearer your-key\"\n\n# With model-based routing\ncurl \"http://localhost:4000/v1/skills?beta=true&limit=10\" -H \"Authorization: Bearer your-key\" -H \"x-litellm-model: claude-account-1\"\n```\n\nReturns: ListSkillsResponse with list of skills", "operationId": "list_skills_v1_skills_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 10, "title": "Limit" } }, { "name": "after_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After Id" } }, { "name": "before_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Before Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "anthropic", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListSkillsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/skills/{skill_id}": { "get": { "tags": [ "[beta] Anthropic Skills API" ], "summary": "Get Skill", "description": "Get a specific skill by ID from Anthropic.\n\nRequires `?beta=true` query parameter.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: claude-account-1`\n- Pass model via query: `?model=claude-account-1`\n- Pass model via body: `{\"model\": \"claude-account-1\"}`\n\nExample usage:\n```bash\n# Basic usage\ncurl \"http://localhost:4000/v1/skills/skill_123?beta=true\" -H \"Authorization: Bearer your-key\"\n\n# With model-based routing\ncurl \"http://localhost:4000/v1/skills/skill_123?beta=true\" -H \"Authorization: Bearer your-key\" -H \"x-litellm-model: claude-account-1\"\n```\n\nReturns: Skill object", "operationId": "get_skill_v1_skills__skill_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "skill_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Skill Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "anthropic", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Skill" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "[beta] Anthropic Skills API" ], "summary": "Delete Skill", "description": "Delete a skill by ID from Anthropic.\n\nRequires `?beta=true` query parameter.\n\nNote: Anthropic does not allow deleting skills with existing versions.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: claude-account-1`\n- Pass model via query: `?model=claude-account-1`\n- Pass model via body: `{\"model\": \"claude-account-1\"}`\n\nExample usage:\n```bash\n# Basic usage\ncurl -X DELETE \"http://localhost:4000/v1/skills/skill_123?beta=true\" -H \"Authorization: Bearer your-key\"\n\n# With model-based routing\ncurl -X DELETE \"http://localhost:4000/v1/skills/skill_123?beta=true\" -H \"Authorization: Bearer your-key\" -H \"x-litellm-model: claude-account-1\"\n```\n\nReturns: DeleteSkillResponse with type=\"skill_deleted\"", "operationId": "delete_skill_v1_skills__skill_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "skill_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Skill Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "anthropic", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteSkillResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/evals": { "post": { "tags": [ "OpenAI Evals API" ], "summary": "Create Eval", "description": "Create a new evaluation.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n- Pass model via body: `{\"model\": \"gpt-4-account-1\"}`\n\nExample usage:\n```bash\ncurl -X POST \"http://localhost:4000/v1/evals\" -H \"Authorization: Bearer your-key\" -H \"Content-Type: application/json\" -d '{\n \"name\": \"Test Eval\",\n \"data_source_config\": {\"type\": \"file\", \"file_id\": \"file-abc123\"},\n \"testing_criteria\": {\"graders\": [{\"type\": \"llm_as_judge\"}]}\n }'\n```\n\nReturns: Eval object with id, status, timestamps, etc.", "operationId": "create_eval_v1_evals_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Eval" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "OpenAI Evals API" ], "summary": "List Evals", "description": "List evaluations with pagination.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n- Pass model via body: `{\"model\": \"gpt-4-account-1\"}`\n\nExample usage:\n```bash\ncurl \"http://localhost:4000/v1/evals?limit=10\" -H \"Authorization: Bearer your-key\"\n```\n\nReturns: ListEvalsResponse with list of evaluations", "operationId": "list_evals_v1_evals_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 20, "title": "Limit" } }, { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "before", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Before" } }, { "name": "order", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Order" } }, { "name": "order_by", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Order By" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListEvalsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/evals/{eval_id}": { "get": { "tags": [ "OpenAI Evals API" ], "summary": "Get Eval", "description": "Get a specific evaluation by ID.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n- Pass model via body: `{\"model\": \"gpt-4-account-1\"}`\n\nExample usage:\n```bash\ncurl \"http://localhost:4000/v1/evals/eval_123\" -H \"Authorization: Bearer your-key\"\n```\n\nReturns: Eval object", "operationId": "get_eval_v1_evals__eval_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Eval" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "OpenAI Evals API" ], "summary": "Update Eval", "description": "Update an evaluation.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n- Pass model via body: `{\"model\": \"gpt-4-account-1\"}`\n\nExample usage:\n```bash\ncurl -X POST \"http://localhost:4000/v1/evals/eval_123\" -H \"Authorization: Bearer your-key\" -H \"Content-Type: application/json\" -d '{\"name\": \"Updated Name\"}'\n```\n\nReturns: Updated Eval object", "operationId": "update_eval_v1_evals__eval_id__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Eval" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "OpenAI Evals API" ], "summary": "Delete Eval", "description": "Delete an evaluation.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n- Pass model via body: `{\"model\": \"gpt-4-account-1\"}`\n\nExample usage:\n```bash\ncurl -X DELETE \"http://localhost:4000/v1/evals/eval_123\" -H \"Authorization: Bearer your-key\"\n```\n\nReturns: DeleteEvalResponse with deletion confirmation", "operationId": "delete_eval_v1_evals__eval_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteEvalResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/evals/{eval_id}/cancel": { "post": { "tags": [ "OpenAI Evals API" ], "summary": "Cancel Eval", "description": "Cancel a running evaluation.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n- Pass model via body: `{\"model\": \"gpt-4-account-1\"}`\n\nExample usage:\n```bash\ncurl -X POST \"http://localhost:4000/v1/evals/eval_123/cancel\" -H \"Authorization: Bearer your-key\"\n```\n\nReturns: CancelEvalResponse with cancellation confirmation", "operationId": "cancel_eval_v1_evals__eval_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CancelEvalResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/evals/{eval_id}/runs": { "post": { "tags": [ "OpenAI Evals API - Runs" ], "summary": "Create Run", "description": "Create a new run for an evaluation.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n- Pass model via body: `{\"model\": \"gpt-4-account-1\"}`\n- Pass model via completion.model: `{\"completion\": {\"model\": \"gpt-4-account-1\"}}`\n\nExample usage:\n```bash\ncurl -X POST \"http://localhost:4000/v1/evals/eval_123/runs\" -H \"Authorization: Bearer your-key\" -H \"Content-Type: application/json\" -d '{\n \"data_source\": {\"type\": \"dataset\", \"dataset_id\": \"dataset_123\"},\n \"completion\": {\"model\": \"gpt-4\", \"temperature\": 0.7}\n }'\n```\n\nReturns: Run object with id, status, timestamps, etc.", "operationId": "create_run_v1_evals__eval_id__runs_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Run" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "OpenAI Evals API - Runs" ], "summary": "List Runs", "description": "List all runs for an evaluation with pagination.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n\nExample usage:\n```bash\ncurl \"http://localhost:4000/v1/evals/eval_123/runs?limit=10\" -H \"Authorization: Bearer your-key\"\n```\n\nReturns: ListRunsResponse with list of runs", "operationId": "list_runs_v1_evals__eval_id__runs_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "limit", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": 20, "title": "Limit" } }, { "name": "after", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "After" } }, { "name": "before", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Before" } }, { "name": "order", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Order" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListRunsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/evals/{eval_id}/runs/{run_id}": { "get": { "tags": [ "OpenAI Evals API - Runs" ], "summary": "Get Run", "description": "Get a specific run by ID.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n\nExample usage:\n```bash\ncurl \"http://localhost:4000/v1/evals/eval_123/runs/run_456\" -H \"Authorization: Bearer your-key\"\n```\n\nReturns: Run object with full details", "operationId": "get_run_v1_evals__eval_id__runs__run_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "run_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Run Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Run" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "OpenAI Evals API - Runs" ], "summary": "Cancel Run", "description": "Cancel a running run.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n\nExample usage:\n```bash\ncurl -X POST \"http://localhost:4000/v1/evals/eval_123/runs/run_456/cancel\" -H \"Authorization: Bearer your-key\"\n```\n\nReturns: CancelRunResponse with cancellation confirmation", "operationId": "cancel_run_v1_evals__eval_id__runs__run_id__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "run_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Run Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CancelRunResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "OpenAI Evals API - Runs" ], "summary": "Delete Run", "description": "Delete a run.\n\nModel-based routing (for multi-account support):\n- Pass model via header: `x-litellm-model: gpt-4-account-1`\n- Pass model via query: `?model=gpt-4-account-1`\n\nExample usage:\n```bash\ncurl -X DELETE \"http://localhost:4000/v1/evals/eval_123/runs/run_456\" -H \"Authorization: Bearer your-key\"\n```\n\nReturns: RunDeleteResponse with deletion confirmation", "operationId": "delete_run_v1_evals__eval_id__runs__run_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "eval_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Eval Id" } }, { "name": "run_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Run Id" } }, { "name": "custom_llm_provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": "openai", "title": "Custom Llm Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RunDeleteResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/claude-code/marketplace.json": { "get": { "tags": [ "Claude Code Marketplace" ], "summary": "Get Marketplace", "description": "Serve marketplace.json for Claude Code plugin discovery.\n\nThis endpoint is accessed by Claude Code CLI when users run:\n- claude plugin marketplace add \n- claude plugin install @\n\nReturns:\n Marketplace catalog with list of available plugins and their git sources.\n\nExample:\n ```bash\n claude plugin marketplace add http://localhost:4000/claude-code/marketplace.json\n claude plugin install my-plugin@litellm\n ```", "operationId": "get_marketplace_claude_code_marketplace_json_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/claude-code/plugins": { "post": { "tags": [ "Claude Code Marketplace" ], "summary": "Register Plugin", "description": "Register a plugin in the LiteLLM marketplace.\n\nLiteLLM acts as a registry/discovery layer. Plugins are hosted on\nGitHub/GitLab/Bitbucket. Claude Code will clone from the git source\nwhen users install.\n\nParameters:\n - name: Plugin name (kebab-case)\n - source: Git source reference (github, url, or git-subdir format)\n - version: Semantic version (optional)\n - description: Plugin description (optional)\n - author: Author information (optional)\n - homepage: Plugin homepage URL (optional)\n - keywords: Search keywords (optional)\n - category: Plugin category (optional)\n\nReturns:\n Registration status and plugin information.\n\nExample:\n ```bash\n curl -X POST http://localhost:4000/claude-code/plugins \\\n -H \"Authorization: Bearer sk-...\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"name\": \"my-plugin\",\n \"source\": {\"source\": \"github\", \"repo\": \"org/my-plugin\"},\n \"version\": \"1.0.0\",\n \"description\": \"My awesome plugin\"\n }'\n ```", "operationId": "register_plugin_claude_code_plugins_post", "security": [ { "APIKeyHeader": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterPluginRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Claude Code Marketplace" ], "summary": "List Plugins", "description": "List all plugins in the marketplace.\n\nParameters:\n - enabled_only: If true, only return enabled plugins\n\nReturns:\n List of plugins with their metadata.", "operationId": "list_plugins_claude_code_plugins_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "enabled_only", "in": "query", "required": false, "schema": { "type": "boolean", "default": false, "title": "Enabled Only" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListPluginsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/claude-code/plugins/{plugin_name}": { "get": { "tags": [ "Claude Code Marketplace" ], "summary": "Get Plugin", "description": "Get details of a specific plugin.\n\nParameters:\n - plugin_name: The name of the plugin\n\nReturns:\n Plugin details including source and metadata.", "operationId": "get_plugin_claude_code_plugins__plugin_name__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "plugin_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Plugin Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Claude Code Marketplace" ], "summary": "Delete Plugin", "description": "Delete a plugin from the marketplace.\n\nParameters:\n - plugin_name: The name of the plugin to delete", "operationId": "delete_plugin_claude_code_plugins__plugin_name__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "plugin_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Plugin Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/claude-code/plugins/{plugin_name}/enable": { "post": { "tags": [ "Claude Code Marketplace" ], "summary": "Enable Plugin", "description": "Enable a disabled plugin.\n\nParameters:\n - plugin_name: The name of the plugin to enable", "operationId": "enable_plugin_claude_code_plugins__plugin_name__enable_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "plugin_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Plugin Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/claude-code/plugins/{plugin_name}/disable": { "post": { "tags": [ "Claude Code Marketplace" ], "summary": "Disable Plugin", "description": "Disable a plugin without deleting it.\n\nParameters:\n - plugin_name: The name of the plugin to disable", "operationId": "disable_plugin_claude_code_plugins__plugin_name__disable_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "plugin_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Plugin Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/models/{model_name}:generateContent": { "post": { "tags": [ "google genai endpoints" ], "summary": "Google Generate Content", "operationId": "google_generate_content_models__model_name__generateContent_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1beta/models/{model_name}:generateContent": { "post": { "tags": [ "google genai endpoints" ], "summary": "Google Generate Content", "operationId": "google_generate_content_v1beta_models__model_name__generateContent_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/models/{model_name}:streamGenerateContent": { "post": { "tags": [ "google genai endpoints" ], "summary": "Google Stream Generate Content", "operationId": "google_stream_generate_content_models__model_name__streamGenerateContent_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1beta/models/{model_name}:streamGenerateContent": { "post": { "tags": [ "google genai endpoints" ], "summary": "Google Stream Generate Content", "operationId": "google_stream_generate_content_v1beta_models__model_name__streamGenerateContent_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/models/{model_name}:countTokens": { "post": { "tags": [ "google genai endpoints" ], "summary": "Google Count Tokens", "description": "```json\nreturn {\n \"totalTokens\": 31,\n \"totalBillableCharacters\": 96,\n \"promptTokensDetails\": [\n {\n \"modality\": \"TEXT\",\n \"tokenCount\": 31\n }\n ]\n}\n```", "operationId": "google_count_tokens_models__model_name__countTokens_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenCountDetailsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1beta/models/{model_name}:countTokens": { "post": { "tags": [ "google genai endpoints" ], "summary": "Google Count Tokens", "description": "```json\nreturn {\n \"totalTokens\": 31,\n \"totalBillableCharacters\": 96,\n \"promptTokensDetails\": [\n {\n \"modality\": \"TEXT\",\n \"tokenCount\": 31\n }\n ]\n}\n```", "operationId": "google_count_tokens_v1beta_models__model_name__countTokens_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TokenCountDetailsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/interactions": { "post": { "tags": [ "google genai endpoints", "interactions" ], "summary": "Create Interaction", "description": "Create a new interaction using Google's Interactions API.\n\nPer OpenAPI spec: POST /{api_version}/interactions\n\nSupports both model interactions and agent interactions:\n- Model: Provide `model` parameter (e.g., \"gemini-2.5-flash\")\n- Agent: Provide `agent` parameter (e.g., \"deep-research-pro-preview-12-2025\")\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1beta/interactions\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"model\": \"gemini/gemini-2.5-flash\",\n \"input\": \"Hello, how are you?\"\n }'\n```", "operationId": "create_interaction_interactions_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1beta/interactions": { "post": { "tags": [ "google genai endpoints", "interactions" ], "summary": "Create Interaction", "description": "Create a new interaction using Google's Interactions API.\n\nPer OpenAPI spec: POST /{api_version}/interactions\n\nSupports both model interactions and agent interactions:\n- Model: Provide `model` parameter (e.g., \"gemini-2.5-flash\")\n- Agent: Provide `agent` parameter (e.g., \"deep-research-pro-preview-12-2025\")\n\nExample:\n```bash\ncurl -X POST \"http://localhost:4000/v1beta/interactions\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\" -d '{\n \"model\": \"gemini/gemini-2.5-flash\",\n \"input\": \"Hello, how are you?\"\n }'\n```", "operationId": "create_interaction_v1beta_interactions_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/interactions/{interaction_id}": { "get": { "tags": [ "google genai endpoints", "interactions" ], "summary": "Get Interaction", "description": "Get an interaction by ID.\n\nPer OpenAPI spec: GET /{api_version}/interactions/{interaction_id}", "operationId": "get_interaction_interactions__interaction_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "interaction_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Interaction Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "google genai endpoints", "interactions" ], "summary": "Delete Interaction", "description": "Delete an interaction by ID.\n\nPer OpenAPI spec: DELETE /{api_version}/interactions/{interaction_id}", "operationId": "delete_interaction_interactions__interaction_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "interaction_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Interaction Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1beta/interactions/{interaction_id}": { "get": { "tags": [ "google genai endpoints", "interactions" ], "summary": "Get Interaction", "description": "Get an interaction by ID.\n\nPer OpenAPI spec: GET /{api_version}/interactions/{interaction_id}", "operationId": "get_interaction_v1beta_interactions__interaction_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "interaction_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Interaction Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "google genai endpoints", "interactions" ], "summary": "Delete Interaction", "description": "Delete an interaction by ID.\n\nPer OpenAPI spec: DELETE /{api_version}/interactions/{interaction_id}", "operationId": "delete_interaction_v1beta_interactions__interaction_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "interaction_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Interaction Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/interactions/{interaction_id}/cancel": { "post": { "tags": [ "google genai endpoints", "interactions" ], "summary": "Cancel Interaction", "description": "Cancel an interaction by ID.\n\nPer OpenAPI spec: POST /{api_version}/interactions/{interaction_id}:cancel", "operationId": "cancel_interaction_interactions__interaction_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "interaction_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Interaction Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1beta/interactions/{interaction_id}/cancel": { "post": { "tags": [ "google genai endpoints", "interactions" ], "summary": "Cancel Interaction", "description": "Cancel an interaction by ID.\n\nPer OpenAPI spec: POST /{api_version}/interactions/{interaction_id}:cancel", "operationId": "cancel_interaction_v1beta_interactions__interaction_id__cancel_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "interaction_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Interaction Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/langfuse/{endpoint}": { "patch": { "tags": [ "Langfuse Pass-through", "pass-through" ], "summary": "Langfuse Proxy Route", "description": "Call Langfuse via LiteLLM proxy. Works with Langfuse SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/langfuse)", "operationId": "langfuse_proxy_route_langfuse__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Langfuse Pass-through", "pass-through" ], "summary": "Langfuse Proxy Route", "description": "Call Langfuse via LiteLLM proxy. Works with Langfuse SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/langfuse)", "operationId": "langfuse_proxy_route_langfuse__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Langfuse Pass-through", "pass-through" ], "summary": "Langfuse Proxy Route", "description": "Call Langfuse via LiteLLM proxy. Works with Langfuse SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/langfuse)", "operationId": "langfuse_proxy_route_langfuse__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Langfuse Pass-through", "pass-through" ], "summary": "Langfuse Proxy Route", "description": "Call Langfuse via LiteLLM proxy. Works with Langfuse SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/langfuse)", "operationId": "langfuse_proxy_route_langfuse__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Langfuse Pass-through", "pass-through" ], "summary": "Langfuse Proxy Route", "description": "Call Langfuse via LiteLLM proxy. Works with Langfuse SDK.\n\n[Docs](https://docs.litellm.ai/docs/pass_through/langfuse)", "operationId": "langfuse_proxy_route_langfuse__endpoint__patch", "parameters": [ { "name": "endpoint", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/config/pass_through_endpoint/team/{team_id}": { "get": { "summary": "Get Pass Through Endpoints", "description": "GET configured pass through endpoint.\n\nIf no endpoint_id given, return all configured endpoints.", "operationId": "get_pass_through_endpoints_config_pass_through_endpoint_team__team_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "team_id", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" } }, { "name": "endpoint_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Endpoint Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PassThroughEndpointResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/config/pass_through_endpoint": { "get": { "summary": "Get Pass Through Endpoints", "description": "GET configured pass through endpoint.\n\nIf no endpoint_id given, return all configured endpoints.", "operationId": "get_pass_through_endpoints_config_pass_through_endpoint_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Endpoint Id" } }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PassThroughEndpointResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "summary": "Create Pass Through Endpoints", "description": "Create new pass-through endpoint", "operationId": "create_pass_through_endpoints_config_pass_through_endpoint_post", "security": [ { "APIKeyHeader": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PassThroughGenericEndpoint" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Delete Pass Through Endpoints", "description": "Delete a pass-through endpoint by ID.\n\nReturns - the deleted endpoint", "operationId": "delete_pass_through_endpoints_config_pass_through_endpoint_delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint_id", "in": "query", "required": true, "schema": { "type": "string", "title": "Endpoint Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PassThroughEndpointResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/config/pass_through_endpoint/{endpoint_id}": { "post": { "summary": "Update Pass Through Endpoints", "description": "Update a pass-through endpoint by ID.", "operationId": "update_pass_through_endpoints_config_pass_through_endpoint__endpoint_id__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "endpoint_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Endpoint Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PassThroughGenericEndpoint" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/test": { "get": { "tags": [ "health" ], "summary": "Test Endpoint", "description": "[DEPRECATED] use `/health/liveliness` instead.\n\nA test endpoint that pings the proxy server to check if it's healthy.\n\nParameters:\n request (Request): The incoming request.\n\nReturns:\n dict: A dictionary containing the route of the request URL.", "operationId": "test_endpoint_test_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/health/services": { "get": { "tags": [ "health" ], "summary": "Health Services Endpoint", "description": "Use this admin-only endpoint to check if the service is healthy.\n\nExample:\n```\ncurl -L -X GET 'http://0.0.0.0:4000/health/services?service=datadog' -H 'Authorization: Bearer sk-1234'\n```", "operationId": "health_services_endpoint_health_services_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "service", "in": "query", "required": true, "schema": { "anyOf": [ { "enum": [ "slack_budget_alerts", "langfuse", "langfuse_otel", "slack", "openmeter", "webhook", "email", "braintrust", "datadog", "datadog_llm_observability", "generic_api", "arize", "sqs" ], "type": "string" }, { "type": "string" } ], "description": "Specify the service being hit.", "title": "Service" }, "description": "Specify the service being hit." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health": { "get": { "tags": [ "health" ], "summary": "Health Endpoint", "description": "\ud83d\udea8 USE `/health/liveliness` to health check the proxy \ud83d\udea8\n\nSee more \ud83d\udc49 https://docs.litellm.ai/docs/proxy/health\n\n\nCheck the health of all the endpoints in config.yaml\n\nTo run health checks in the background, add this to config.yaml:\n```\ngeneral_settings:\n # ... other settings\n background_health_checks: True\n```\nelse, the health checks will be run on models when /health is called.", "operationId": "health_endpoint_health_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Specify the model name (optional)", "title": "Model" }, "description": "Specify the model name (optional)" }, { "name": "model_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Specify the model ID (optional)", "title": "Model Id" }, "description": "Specify the model ID (optional)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health/history": { "get": { "tags": [ "health" ], "summary": "Health Check History Endpoint", "description": "Get health check history for models\n\nReturns historical health check data with optional filtering.", "operationId": "health_check_history_endpoint_health_history_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific model name", "title": "Model" }, "description": "Filter by specific model name" }, { "name": "status_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status (healthy/unhealthy)", "title": "Status Filter" }, "description": "Filter by status (healthy/unhealthy)" }, { "name": "limit", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 1000, "minimum": 1, "description": "Number of records to return", "default": 100, "title": "Limit" }, "description": "Number of records to return" }, { "name": "offset", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 0, "description": "Number of records to skip", "default": 0, "title": "Offset" }, "description": "Number of records to skip" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/health/latest": { "get": { "tags": [ "health" ], "summary": "Latest Health Checks Endpoint", "description": "Get the latest health check status for all models\n\nReturns the most recent health check result for each model.", "operationId": "latest_health_checks_endpoint_health_latest_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/health/shared-status": { "get": { "tags": [ "health" ], "summary": "Shared Health Check Status Endpoint", "description": "Get the status of shared health check coordination across pods.\n\nReturns information about Redis connectivity, lock status, and cache status.", "operationId": "shared_health_check_status_endpoint_health_shared_status_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/health/license": { "get": { "tags": [ "health" ], "summary": "Health License Endpoint", "description": "Return metadata about the configured LiteLLM license without exposing the key.", "operationId": "health_license_endpoint_health_license_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/active/callbacks": { "get": { "tags": [ "health" ], "summary": "Active Callbacks", "description": "Returns a list of litellm level settings\n\nThis is useful for debugging and ensuring the proxy server is configured correctly.\n\nResponse schema:\n```\n{\n \"alerting\": _alerting,\n \"litellm.callbacks\": litellm_callbacks,\n \"litellm.input_callback\": litellm_input_callbacks,\n \"litellm.failure_callback\": litellm_failure_callbacks,\n \"litellm.success_callback\": litellm_success_callbacks,\n \"litellm._async_success_callback\": litellm_async_success_callbacks,\n \"litellm._async_failure_callback\": litellm_async_failure_callbacks,\n \"litellm._async_input_callback\": litellm_async_input_callbacks,\n \"all_litellm_callbacks\": all_litellm_callbacks,\n \"num_callbacks\": len(all_litellm_callbacks),\n \"num_alerting\": _num_alerting,\n \"litellm.request_timeout\": litellm.request_timeout,\n}\n```", "operationId": "active_callbacks_active_callbacks_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/settings": { "get": { "tags": [ "health" ], "summary": "Active Callbacks", "description": "Returns a list of litellm level settings\n\nThis is useful for debugging and ensuring the proxy server is configured correctly.\n\nResponse schema:\n```\n{\n \"alerting\": _alerting,\n \"litellm.callbacks\": litellm_callbacks,\n \"litellm.input_callback\": litellm_input_callbacks,\n \"litellm.failure_callback\": litellm_failure_callbacks,\n \"litellm.success_callback\": litellm_success_callbacks,\n \"litellm._async_success_callback\": litellm_async_success_callbacks,\n \"litellm._async_failure_callback\": litellm_async_failure_callbacks,\n \"litellm._async_input_callback\": litellm_async_input_callbacks,\n \"all_litellm_callbacks\": all_litellm_callbacks,\n \"num_callbacks\": len(all_litellm_callbacks),\n \"num_alerting\": _num_alerting,\n \"litellm.request_timeout\": litellm.request_timeout,\n}\n```", "operationId": "active_callbacks_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/health/readiness": { "get": { "tags": [ "health" ], "summary": "Health Readiness", "description": "Unprotected endpoint for checking if worker can receive requests", "operationId": "health_readiness_health_readiness_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "options": { "tags": [ "health" ], "summary": "Health Readiness Options", "description": "Options endpoint for health/readiness check.", "operationId": "health_readiness_options_health_readiness_options", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/health/backlog": { "get": { "tags": [ "health" ], "summary": "Health Backlog", "description": "Returns the number of HTTP requests currently in-flight on this uvicorn worker.\n\nUse this to measure per-pod queue depth. A high value means the worker is\nprocessing many concurrent requests \u2014 requests arriving now will have to wait\nfor the event loop to get to them, adding latency before LiteLLM even starts\nits own timer.", "operationId": "health_backlog_health_backlog_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/health/liveness": { "get": { "tags": [ "health" ], "summary": "Health Liveliness", "description": "Unprotected endpoint for checking if worker is alive", "operationId": "health_liveliness_health_liveness_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } }, "options": { "tags": [ "health" ], "summary": "Health Liveliness Options", "description": "Options endpoint for health/liveliness check.", "operationId": "health_liveliness_options_health_liveness_options", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/health/liveliness": { "get": { "tags": [ "health" ], "summary": "Health Liveliness", "description": "Unprotected endpoint for checking if worker is alive", "operationId": "health_liveliness_health_liveliness_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } }, "options": { "tags": [ "health" ], "summary": "Health Liveliness Options", "description": "Options endpoint for health/liveliness check.", "operationId": "health_liveliness_options_health_liveliness_options", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/health/test_connection": { "post": { "tags": [ "health" ], "summary": "Test Model Connection", "description": "Test a direct connection to a specific model.\n\nThis endpoint allows you to verify if your proxy can successfully connect to a specific model.\nIt's useful for troubleshooting model connectivity issues without going through the full proxy routing.\n\nExample:\n```bash\n# If model is configured in proxy_config.yaml, you only need to specify the model name:\ncurl -X POST 'http://localhost:4000/health/test_connection' \\\n -H 'Authorization: Bearer sk-1234' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"litellm_params\": {\n \"model\": \"gpt-4o\"\n },\n \"mode\": \"chat\"\n }'\n\n# The endpoint will automatically use api_key, api_base, etc. from proxy_config.yaml\n\n# You can also override specific params or test with custom credentials:\ncurl -X POST 'http://localhost:4000/health/test_connection' \\\n -H 'Authorization: Bearer sk-1234' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"litellm_params\": {\n \"model\": \"azure/gpt-4o\",\n \"api_key\": \"os.environ/AZURE_OPENAI_API_KEY\",\n \"api_base\": \"os.environ/AZURE_OPENAI_ENDPOINT\",\n \"api_version\": \"2024-10-21\"\n },\n \"mode\": \"chat\"\n }'\n```\n\nNote: \n- If the model is configured in proxy_config.yaml, credentials (api_key, api_base, etc.) \n will be automatically loaded from the config (with resolved environment variables).\n- You can override specific params by including them in the request.\n- You can use `os.environ/VARIABLE_NAME` syntax to reference environment variables,\n which will be resolved automatically (same as in proxy_config.yaml).\n\nReturns:\n dict: A dictionary containing the health check result with either success information or error details.", "operationId": "test_model_connection_health_test_connection_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Body_test_model_connection_health_test_connection_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/key/generate": { "post": { "tags": [ "key management" ], "summary": "Generate Key Fn", "description": "Generate an API key based on the provided data.\n\nDocs: https://docs.litellm.ai/docs/proxy/virtual_keys\n\nParameters:\n- duration: Optional[str] - Specify the length of time the token is valid for. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\").\n- key_alias: Optional[str] - User defined key alias\n- key: Optional[str] - User defined key value. If not set, a 16-digit unique sk-key is created for you.\n- team_id: Optional[str] - The team id of the key\n- user_id: Optional[str] - The user id of the key\n- agent_id: Optional[str] - The agent id associated with the key.\n- organization_id: Optional[str] - The organization id of the key. If not set, and team_id is set, the organization id will be the same as the team id. If conflict, an error will be raised.\n- project_id: Optional[str] - The project id of the key. When set, models and max_budget are validated against the project's limits.\n- budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`.\n- models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models)\n- aliases: Optional[dict] - Any alias mappings, on top of anything in the config.yaml model list. - https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models\n- config: Optional[dict] - any key-specific configs, overrides config in config.yaml\n- spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend\n- send_invite_email: Optional[bool] - Whether to send an invite email to the user_id, with the generate key\n- max_budget: Optional[float] - Specify max budget for a given key.\n- budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\").\n- max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x.\n- metadata: Optional[dict] - Metadata for key, store information for key. Example metadata = {\"team\": \"core-infra\", \"app\": \"app2\", \"email\": \"ishaan@berri.ai\" }\n- guardrails: Optional[List[str]] - List of active guardrails for the key\n- policies: Optional[List[str]] - List of policy names to apply to the key. Policies define guardrails, conditions, and inheritance rules.\n- disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key.\n- permissions: Optional[dict] - key-specific permissions. Currently just used for turning off pii masking (if connected). Example - {\"pii\": false}\n- model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}}}. IF null or {} then no model specific budget.\n- model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - {\"text-davinci-002\": 1000, \"gpt-3.5-turbo\": 1000}. IF null or {} then no model specific rpm limit.\n- model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - {\"text-davinci-002\": 1000, \"gpt-3.5-turbo\": 1000}. IF null or {} then no model specific tpm limit.\n- tpm_limit_type: Optional[str] - Type of tpm limit. Options: \"best_effort_throughput\" (no error if we're overallocating tpm), \"guaranteed_throughput\" (raise an error if we're overallocating tpm), \"dynamic\" (dynamically exceed limit when no 429 errors). Defaults to \"best_effort_throughput\".\n- rpm_limit_type: Optional[str] - Type of rpm limit. Options: \"best_effort_throughput\" (no error if we're overallocating rpm), \"guaranteed_throughput\" (raise an error if we're overallocating rpm), \"dynamic\" (dynamically exceed limit when no 429 errors). Defaults to \"best_effort_throughput\".\n- allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - [\"no-cache\", \"no-store\"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request\n- blocked: Optional[bool] - Whether the key is blocked.\n- rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per minute)\n- tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per minute)\n- soft_budget: Optional[float] - Specify soft budget for a given key. Will trigger a slack alert when this soft budget is reached.\n- tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing).\n- prompts: Optional[List[str]] - List of prompts that the key is allowed to use.\n- enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests)\n- prompts: Optional[List[str]] - List of prompts that the key is allowed to use.\n- allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - [\"/chat/completions\", \"/embeddings\", \"/keys/*\"]\n- allowed_passthrough_routes: Optional[list] - List of allowed pass through endpoints for the key. Store the actual endpoint or store a wildcard pattern for a set of endpoints. Example - [\"/my-custom-endpoint\"]. Use this instead of allowed_routes, if you just want to specify which pass through endpoints the key can access, without specifying the routes. If allowed_routes is specified, allowed_pass_through_endpoints is ignored.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"], \"agents\": [\"agent_1\", \"agent_2\"], \"agent_access_groups\": [\"dev_group\"]}. IF null or {} then no object permission.\n- key_type: Optional[str] - Type of key that determines default allowed routes. Options: \"llm_api\" (can call LLM API routes), \"management\" (can call management routes), \"read_only\" (can only call info/read routes), \"default\" (uses default allowed routes). Defaults to \"default\".\n- prompts: Optional[List[str]] - List of allowed prompts for the key. If specified, the key will only be able to use these specific prompts.\n- auto_rotate: Optional[bool] - Whether this key should be automatically rotated (regenerated)\n- rotation_interval: Optional[str] - How often to auto-rotate this key (e.g., '30s', '30m', '30h', '30d'). Required if auto_rotate=True.\n- allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{\"index_name\": \"my-index\", \"index_permissions\": [\"write\", \"read\"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint.\n- router_settings: Optional[UpdateRouterConfig] - key-specific router settings. Example - {\"model_group_retry_policy\": {\"max_retries\": 5}}. IF null or {} then no router settings.\n- access_group_ids: Optional[List[str]] - List of access group IDs to associate with the key. Access groups define which models a key can access. Example - [\"access_group_1\", \"access_group_2\"].\n\nExamples:\n\n1. Allow users to turn on/off pii masking\n\n```bash\ncurl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"permissions\": {\"allow_pii_controls\": true}\n}'\n```\n\nReturns:\n- key: (str) The generated api key\n- expires: (datetime) Datetime object for when key expires.\n- user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id.", "operationId": "generate_key_fn_key_generate_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateKeyResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/service-account/generate": { "post": { "tags": [ "key management" ], "summary": "Generate Service Account Key Fn", "description": "Generate a Service Account API key based on the provided data. This key does not belong to any user. It belongs to the team.\n\nWhy use a service account key?\n- Prevent key from being deleted when user is deleted.\n- Apply team limits, not team member limits to key.\n\nDocs: https://docs.litellm.ai/docs/proxy/virtual_keys\n\nParameters:\n- duration: Optional[str] - Specify the length of time the token is valid for. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\").\n- key_alias: Optional[str] - User defined key alias\n- key: Optional[str] - User defined key value. If not set, a 16-digit unique sk-key is created for you.\n- team_id: Optional[str] - The team id of the key\n- user_id: Optional[str] - [NON-FUNCTIONAL] THIS WILL BE IGNORED. The user id of the key\n- budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`.\n- models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models)\n- aliases: Optional[dict] - Any alias mappings, on top of anything in the config.yaml model list. - https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---upgradedowngrade-models\n- config: Optional[dict] - any key-specific configs, overrides config in config.yaml\n- spend: Optional[int] - Amount spent by key. Default is 0. Will be updated by proxy whenever key is used. https://docs.litellm.ai/docs/proxy/virtual_keys#managing-auth---tracking-spend\n- send_invite_email: Optional[bool] - Whether to send an invite email to the user_id, with the generate key\n- max_budget: Optional[float] - Specify max budget for a given key.\n- budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\").\n- max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x.\n- metadata: Optional[dict] - Metadata for key, store information for key. Example metadata = {\"team\": \"core-infra\", \"app\": \"app2\", \"email\": \"ishaan@berri.ai\" }\n- guardrails: Optional[List[str]] - List of active guardrails for the key\n- permissions: Optional[dict] - key-specific permissions. Currently just used for turning off pii masking (if connected). Example - {\"pii\": false}\n- model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}}}. IF null or {} then no model specific budget.\n- model_rpm_limit: Optional[dict] - key-specific model rpm limit. Example - {\"text-davinci-002\": 1000, \"gpt-3.5-turbo\": 1000}. IF null or {} then no model specific rpm limit.\n- model_tpm_limit: Optional[dict] - key-specific model tpm limit. Example - {\"text-davinci-002\": 1000, \"gpt-3.5-turbo\": 1000}. IF null or {} then no model specific tpm limit.\n- tpm_limit_type: Optional[str] - TPM rate limit type - \"best_effort_throughput\", \"guaranteed_throughput\", or \"dynamic\"\n- rpm_limit_type: Optional[str] - RPM rate limit type - \"best_effort_throughput\", \"guaranteed_throughput\", or \"dynamic\"\n- allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - [\"no-cache\", \"no-store\"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request\n- blocked: Optional[bool] - Whether the key is blocked.\n- rpm_limit: Optional[int] - Specify rpm limit for a given key (Requests per minute)\n- tpm_limit: Optional[int] - Specify tpm limit for a given key (Tokens per minute)\n- soft_budget: Optional[float] - Specify soft budget for a given key. Will trigger a slack alert when this soft budget is reached.\n- tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing).\n- enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests)\n- allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - [\"/chat/completions\", \"/embeddings\", \"/keys/*\"]\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"], \"agents\": [\"agent_1\", \"agent_2\"], \"agent_access_groups\": [\"dev_group\"]}. IF null or {} then no object permission.\nExamples:\n- allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{\"index_name\": \"my-index\", \"index_permissions\": [\"write\", \"read\"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint.\n\n\n1. Allow users to turn on/off pii masking\n\n```bash\ncurl --location 'http://0.0.0.0:4000/key/generate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"permissions\": {\"allow_pii_controls\": true}\n}'\n```\n\nReturns:\n- key: (str) The generated api key\n- expires: (datetime) Datetime object for when key expires.\n- user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id.", "operationId": "generate_service_account_key_fn_key_service_account_generate_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GenerateKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/update": { "post": { "tags": [ "key management" ], "summary": "Update Key Fn", "description": "Update an existing API key's parameters.\n\nParameters:\n- key: str - The key to update\n- key_alias: Optional[str] - User-friendly key alias\n- user_id: Optional[str] - User ID associated with key\n- team_id: Optional[str] - Team ID associated with key\n- agent_id: Optional[str] - The agent id associated with the key.\n- organization_id: Optional[str] - The organization id of the key.\n- budget_id: Optional[str] - The budget id associated with the key. Created by calling `/budget/new`.\n- models: Optional[list] - Model_name's a user is allowed to call\n- tags: Optional[List[str]] - Tags for organizing keys (Enterprise only)\n- prompts: Optional[List[str]] - List of prompts that the key is allowed to use.\n- enforced_params: Optional[List[str]] - List of enforced params for the key (Enterprise only). [Docs](https://docs.litellm.ai/docs/proxy/enterprise#enforce-required-params-for-llm-requests)\n- spend: Optional[float] - Amount spent by key\n- max_budget: Optional[float] - Max budget for key\n- model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}}\n- budget_duration: Optional[str] - Budget reset period (\"30d\", \"1h\", etc.)\n- soft_budget: Optional[float] - [TODO] Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached.\n- max_parallel_requests: Optional[int] - Rate limit for parallel requests\n- metadata: Optional[dict] - Metadata for key. Example {\"team\": \"core-infra\", \"app\": \"app2\"}\n- tpm_limit: Optional[int] - Tokens per minute limit\n- rpm_limit: Optional[int] - Requests per minute limit\n- model_rpm_limit: Optional[dict] - Model-specific RPM limits {\"gpt-4\": 100, \"claude-v1\": 200}\n- model_tpm_limit: Optional[dict] - Model-specific TPM limits {\"gpt-4\": 100000, \"claude-v1\": 200000}\n- tpm_limit_type: Optional[str] - TPM rate limit type - \"best_effort_throughput\", \"guaranteed_throughput\", or \"dynamic\"\n- rpm_limit_type: Optional[str] - RPM rate limit type - \"best_effort_throughput\", \"guaranteed_throughput\", or \"dynamic\"\n- allowed_cache_controls: Optional[list] - List of allowed cache control values\n- duration: Optional[str] - Key validity duration (\"30d\", \"1h\", etc.), null to never expire, or \"-1\" to never expire (deprecated, use null)\n- permissions: Optional[dict] - Key-specific permissions\n- send_invite_email: Optional[bool] - Send invite email to user_id\n- guardrails: Optional[List[str]] - List of active guardrails for the key\n- policies: Optional[List[str]] - List of policy names to apply to the key. Policies define guardrails, conditions, and inheritance rules.\n- disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key.\n- prompts: Optional[List[str]] - List of prompts that the key is allowed to use.\n- blocked: Optional[bool] - Whether the key is blocked\n- aliases: Optional[dict] - Model aliases for the key - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases)\n- config: Optional[dict] - [DEPRECATED PARAM] Key-specific config.\n- temp_budget_increase: Optional[float] - Temporary budget increase for the key (Enterprise only).\n- temp_budget_expiry: Optional[str] - Expiry time for the temporary budget increase (Enterprise only).\n- allowed_routes: Optional[list] - List of allowed routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - [\"/chat/completions\", \"/embeddings\", \"/keys/*\"]\n- allowed_passthrough_routes: Optional[list] - List of allowed pass through routes for the key. Store the actual route or store a wildcard pattern for a set of routes. Example - [\"/my-custom-endpoint\"]. Use this instead of allowed_routes, if you just want to specify which pass through routes the key can access, without specifying the routes. If allowed_routes is specified, allowed_passthrough_routes is ignored.\n- prompts: Optional[List[str]] - List of allowed prompts for the key. If specified, the key will only be able to use these specific prompts.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - key-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"], \"agents\": [\"agent_1\", \"agent_2\"], \"agent_access_groups\": [\"dev_group\"]}. IF null or {} then no object permission.\n- auto_rotate: Optional[bool] - Whether this key should be automatically rotated\n- rotation_interval: Optional[str] - How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True\n- allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{\"index_name\": \"my-index\", \"index_permissions\": [\"write\", \"read\"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint.\n- router_settings: Optional[UpdateRouterConfig] - key-specific router settings. Example - {\"model_group_retry_policy\": {\"max_retries\": 5}}. IF null or {} then no router settings.\n- access_group_ids: Optional[List[str]] - List of access group IDs to associate with the key. Access groups define which models a key can access. Example - [\"access_group_1\", \"access_group_2\"].\n\nExample:\n```bash\ncurl --location 'http://0.0.0.0:4000/key/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"key\": \"sk-1234\",\n \"key_alias\": \"my-key\",\n \"user_id\": \"user-1234\",\n \"team_id\": \"team-1234\",\n \"max_budget\": 100,\n \"metadata\": {\"any_key\": \"any-val\"},\n}'\n```", "operationId": "update_key_fn_key_update_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/bulk_update": { "post": { "tags": [ "key management" ], "summary": "Bulk Update Keys", "description": "Bulk update multiple keys at once.\n\nThis endpoint allows updating multiple keys in a single request. Each key update\nis processed independently - if some updates fail, others will still succeed.\n\nParameters:\n- keys: List[BulkUpdateKeyRequestItem] - List of key update requests, each containing:\n - key: str - The key identifier (token) to update\n - budget_id: Optional[str] - Budget ID associated with the key\n - max_budget: Optional[float] - Max budget for key\n - team_id: Optional[str] - Team ID associated with key\n - tags: Optional[List[str]] - Tags for organizing keys\n\nReturns:\n- total_requested: int - Total number of keys requested for update\n- successful_updates: List[SuccessfulKeyUpdate] - List of successfully updated keys with their updated info\n- failed_updates: List[FailedKeyUpdate] - List of failed updates with key_info and failed_reason\n\nExample request:\n```bash\ncurl --location 'http://0.0.0.0:4000/key/bulk_update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"keys\": [\n {\n \"key\": \"sk-1234\",\n \"max_budget\": 100.0,\n \"team_id\": \"team-123\",\n \"tags\": [\"production\", \"api\"]\n },\n {\n \"key\": \"sk-5678\",\n \"budget_id\": \"budget-456\",\n \"tags\": [\"staging\"]\n }\n ]\n}'\n```", "operationId": "bulk_update_keys_key_bulk_update_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateKeyResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/delete": { "post": { "tags": [ "key management" ], "summary": "Delete Key Fn", "description": "Delete a key from the key management system.\n\nParameters::\n- keys (List[str]): A list of keys or hashed keys to delete. Example {\"keys\": [\"sk-QWrxEynunsNpV1zT48HIrw\", \"837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be\"]}\n- key_aliases (List[str]): A list of key aliases to delete. Can be passed instead of `keys`.Example {\"key_aliases\": [\"alias1\", \"alias2\"]}\n\nReturns:\n- deleted_keys (List[str]): A list of deleted keys. Example {\"deleted_keys\": [\"sk-QWrxEynunsNpV1zT48HIrw\", \"837e17519f44683334df5291321d97b8bf1098cd490e49e215f6fea935aa28be\"]}\n\nExample:\n```bash\ncurl --location 'http://0.0.0.0:4000/key/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"keys\": [\"sk-QWrxEynunsNpV1zT48HIrw\"]\n}'\n```\n\nRaises:\n HTTPException: If an error occurs during key deletion.", "operationId": "delete_key_fn_key_delete_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/info": { "get": { "tags": [ "key management" ], "summary": "Info Key Fn", "description": "Retrieve information about a key.\nParameters:\n key: Optional[str] = Query parameter representing the key in the request\n user_api_key_dict: UserAPIKeyAuth = Dependency representing the user's API key\nReturns:\n Dict containing the key and its associated information\n\nExample Curl:\n```\ncurl -X GET \"http://0.0.0.0:4000/key/info?key=sk-test-example-key-123\" -H \"Authorization: Bearer sk-1234\"\n```\n\nExample Curl - if no key is passed, it will use the Key Passed in Authorization Header\n```\ncurl -X GET \"http://0.0.0.0:4000/key/info\" -H \"Authorization: Bearer sk-test-example-key-123\"\n```", "operationId": "info_key_fn_key_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Key in the request parameters", "title": "Key" }, "description": "Key in the request parameters" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/regenerate": { "post": { "tags": [ "key management" ], "summary": "Regenerate Key Fn", "description": "Regenerate an existing API key while optionally updating its parameters.\n\nParameters:\n- key: str (path parameter) - The key to regenerate\n- data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update\n - key: Optional[str] - The key to regenerate.\n - new_master_key: Optional[str] - The new master key to use, if key is the master key.\n - new_key: Optional[str] - The new key to use, if key is not the master key. If both set, new_master_key will be used.\n - key_alias: Optional[str] - User-friendly key alias\n - user_id: Optional[str] - User ID associated with key\n - team_id: Optional[str] - Team ID associated with key\n - models: Optional[list] - Model_name's a user is allowed to call\n - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only)\n - spend: Optional[float] - Amount spent by key\n - max_budget: Optional[float] - Max budget for key\n - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}}\n - budget_duration: Optional[str] - Budget reset period (\"30d\", \"1h\", etc.)\n - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached.\n - max_parallel_requests: Optional[int] - Rate limit for parallel requests\n - metadata: Optional[dict] - Metadata for key. Example {\"team\": \"core-infra\", \"app\": \"app2\"}\n - tpm_limit: Optional[int] - Tokens per minute limit\n - rpm_limit: Optional[int] - Requests per minute limit\n - model_rpm_limit: Optional[dict] - Model-specific RPM limits {\"gpt-4\": 100, \"claude-v1\": 200}\n - model_tpm_limit: Optional[dict] - Model-specific TPM limits {\"gpt-4\": 100000, \"claude-v1\": 200000}\n - allowed_cache_controls: Optional[list] - List of allowed cache control values\n - duration: Optional[str] - Key validity duration (\"30d\", \"1h\", etc.)\n - permissions: Optional[dict] - Key-specific permissions\n - guardrails: Optional[List[str]] - List of active guardrails for the key\n - blocked: Optional[bool] - Whether the key is blocked\n - grace_period: Optional[str] - Duration to keep old key valid after rotation (e.g. \"24h\", \"2d\"). Omitted = immediate revoke. Env: LITELLM_KEY_ROTATION_GRACE_PERIOD\n\n\nReturns:\n- GenerateKeyResponse containing the new key and its updated parameters\n\nExample:\n```bash\ncurl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"max_budget\": 100,\n \"metadata\": {\"team\": \"core-infra\"},\n \"models\": [\"gpt-4\", \"gpt-3.5-turbo\"]\n}'\n```\n\nNote: This is an Enterprise feature. It requires a premium license to use.", "operationId": "regenerate_key_fn_key_regenerate_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key" } }, { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/RegenerateKeyRequest" }, { "type": "null" } ], "title": "Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/GenerateKeyResponse" }, { "type": "null" } ], "title": "Response Regenerate Key Fn Key Regenerate Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/{key}/regenerate": { "post": { "tags": [ "key management" ], "summary": "Regenerate Key Fn", "description": "Regenerate an existing API key while optionally updating its parameters.\n\nParameters:\n- key: str (path parameter) - The key to regenerate\n- data: Optional[RegenerateKeyRequest] - Request body containing optional parameters to update\n - key: Optional[str] - The key to regenerate.\n - new_master_key: Optional[str] - The new master key to use, if key is the master key.\n - new_key: Optional[str] - The new key to use, if key is not the master key. If both set, new_master_key will be used.\n - key_alias: Optional[str] - User-friendly key alias\n - user_id: Optional[str] - User ID associated with key\n - team_id: Optional[str] - Team ID associated with key\n - models: Optional[list] - Model_name's a user is allowed to call\n - tags: Optional[List[str]] - Tags for organizing keys (Enterprise only)\n - spend: Optional[float] - Amount spent by key\n - max_budget: Optional[float] - Max budget for key\n - model_max_budget: Optional[Dict[str, BudgetConfig]] - Model-specific budgets {\"gpt-4\": {\"budget_limit\": 0.0005, \"time_period\": \"30d\"}}\n - budget_duration: Optional[str] - Budget reset period (\"30d\", \"1h\", etc.)\n - soft_budget: Optional[float] - Soft budget limit (warning vs. hard stop). Will trigger a slack alert when this soft budget is reached.\n - max_parallel_requests: Optional[int] - Rate limit for parallel requests\n - metadata: Optional[dict] - Metadata for key. Example {\"team\": \"core-infra\", \"app\": \"app2\"}\n - tpm_limit: Optional[int] - Tokens per minute limit\n - rpm_limit: Optional[int] - Requests per minute limit\n - model_rpm_limit: Optional[dict] - Model-specific RPM limits {\"gpt-4\": 100, \"claude-v1\": 200}\n - model_tpm_limit: Optional[dict] - Model-specific TPM limits {\"gpt-4\": 100000, \"claude-v1\": 200000}\n - allowed_cache_controls: Optional[list] - List of allowed cache control values\n - duration: Optional[str] - Key validity duration (\"30d\", \"1h\", etc.)\n - permissions: Optional[dict] - Key-specific permissions\n - guardrails: Optional[List[str]] - List of active guardrails for the key\n - blocked: Optional[bool] - Whether the key is blocked\n - grace_period: Optional[str] - Duration to keep old key valid after rotation (e.g. \"24h\", \"2d\"). Omitted = immediate revoke. Env: LITELLM_KEY_ROTATION_GRACE_PERIOD\n\n\nReturns:\n- GenerateKeyResponse containing the new key and its updated parameters\n\nExample:\n```bash\ncurl --location --request POST 'http://localhost:4000/key/sk-1234/regenerate' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"max_budget\": 100,\n \"metadata\": {\"team\": \"core-infra\"},\n \"models\": [\"gpt-4\", \"gpt-3.5-turbo\"]\n}'\n```\n\nNote: This is an Enterprise feature. It requires a premium license to use.", "operationId": "regenerate_key_fn_key__key__regenerate_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "key", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key" } }, { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/RegenerateKeyRequest" }, { "type": "null" } ], "title": "Data" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/GenerateKeyResponse" }, { "type": "null" } ], "title": "Response Regenerate Key Fn Key Key Regenerate Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/{key}/reset_spend": { "post": { "tags": [ "key management" ], "summary": "Reset Key Spend Fn", "operationId": "reset_key_spend_fn_key__key__reset_spend_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "key", "in": "path", "required": true, "schema": { "type": "string", "title": "Key" } }, { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ResetSpendRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Reset Key Spend Fn Key Key Reset Spend Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/list": { "get": { "tags": [ "key management" ], "summary": "List Keys", "description": "List all keys for a given user / team / organization.\n\nParameters:\n expand: Optional[List[str]] - Expand related objects (e.g. 'user' to include user information)\n status: Optional[str] - Filter by status. Currently supports \"deleted\" to query deleted keys.\n\nReturns:\n {\n \"keys\": List[str] or List[UserAPIKeyAuth],\n \"total_count\": int,\n \"current_page\": int,\n \"total_pages\": int,\n }\n\nWhen expand includes \"user\", each key object will include a \"user\" field with the associated user object.\nNote: When expand=user is specified, full key objects are returned regardless of the return_full_object parameter.", "operationId": "list_keys_key_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number", "default": 1, "title": "Page" }, "description": "Page number" }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Page size", "default": 10, "title": "Size" }, "description": "Page size" }, { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter keys by user ID. Supports partial matching (substring, case-insensitive).", "title": "User Id" }, "description": "Filter keys by user ID. Supports partial matching (substring, case-insensitive)." }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter keys by team ID", "title": "Team Id" }, "description": "Filter keys by team ID" }, { "name": "organization_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter keys by organization ID", "title": "Organization Id" }, "description": "Filter keys by organization ID" }, { "name": "key_hash", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter keys by key hash", "title": "Key Hash" }, "description": "Filter keys by key hash" }, { "name": "key_alias", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter keys by key alias. Supports partial matching (substring, case-insensitive).", "title": "Key Alias" }, "description": "Filter keys by key alias. Supports partial matching (substring, case-insensitive)." }, { "name": "return_full_object", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Return full key object", "default": false, "title": "Return Full Object" }, "description": "Return full key object" }, { "name": "include_team_keys", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include all keys for teams that user is an admin of.", "default": false, "title": "Include Team Keys" }, "description": "Include all keys for teams that user is an admin of." }, { "name": "include_created_by_keys", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Include keys created by the user", "default": false, "title": "Include Created By Keys" }, "description": "Include keys created by the user" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Column to sort by (e.g. 'user_id', 'created_at', 'spend')", "title": "Sort By" }, "description": "Column to sort by (e.g. 'user_id', 'created_at', 'spend')" }, { "name": "sort_order", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort order ('asc' or 'desc')", "default": "desc", "title": "Sort Order" }, "description": "Sort order ('asc' or 'desc')" }, { "name": "expand", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Expand related objects (e.g. 'user')", "title": "Expand" }, "description": "Expand related objects (e.g. 'user')" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status (e.g. 'deleted')", "title": "Status" }, "description": "Filter by status (e.g. 'deleted')" }, { "name": "project_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter keys by project ID", "title": "Project Id" }, "description": "Filter keys by project ID" }, { "name": "access_group_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter keys by access group ID", "title": "Access Group Id" }, "description": "Filter keys by access group ID" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyListResponseObject" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/aliases": { "get": { "tags": [ "key management" ], "summary": "Key Aliases", "description": "Lists key aliases with pagination and optional search.\n\nNon-admin users only see aliases for keys they own or keys belonging to\ntheir teams.\n\nReturns:\n {\n \"aliases\": List[str],\n \"total_count\": int,\n \"current_page\": int,\n \"total_pages\": int,\n \"size\": int,\n }", "operationId": "key_aliases_key_aliases_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number", "default": 1, "title": "Page" }, "description": "Page number" }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Page size", "default": 50, "title": "Size" }, "description": "Page size" }, { "name": "search", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Search key aliases (case-insensitive partial match)", "title": "Search" }, "description": "Search key aliases (case-insensitive partial match)" }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter aliases to keys belonging to this team", "title": "Team Id" }, "description": "Filter aliases to keys belonging to this team" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response Key Aliases Key Aliases Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/block": { "post": { "tags": [ "key management" ], "summary": "Block Key", "description": "Block an Virtual key from making any requests.\n\nParameters:\n- key: str - The key to block. Can be either the unhashed key (sk-...) or the hashed key value\n\n Example:\n```bash\ncurl --location 'http://0.0.0.0:4000/key/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"key\": \"sk-Fn8Ej39NxjAXrvpUGKghGw\"\n}'\n```\n\nNote: This is an admin-only endpoint. Only proxy admins, team admins, or org admins can block keys.", "operationId": "block_key_key_block_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_VerificationToken" }, { "type": "null" } ], "title": "Response Block Key Key Block Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/unblock": { "post": { "tags": [ "key management" ], "summary": "Unblock Key", "description": "Unblock a Virtual key to allow it to make requests again.\n\nParameters:\n- key: str - The key to unblock. Can be either the unhashed key (sk-...) or the hashed key value\n\nExample:\n```bash\ncurl --location 'http://0.0.0.0:4000/key/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"key\": \"sk-Fn8Ej39NxjAXrvpUGKghGw\"\n}'\n```\n\nNote: This is an admin-only endpoint. Only proxy admins, team admins, or org admins can unblock keys.", "operationId": "unblock_key_key_unblock_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockKeyRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/key/health": { "post": { "tags": [ "key management" ], "summary": "Key Health", "description": "Check the health of the key\n\nChecks:\n- If key based logging is configured correctly - sends a test log\n\nUsage \n\nPass the key in the request header\n\n```bash\ncurl -X POST \"http://localhost:4000/key/health\" -H \"Authorization: Bearer sk-1234\" -H \"Content-Type: application/json\"\n```\n\nResponse when logging callbacks are setup correctly:\n\n```json\n{\n \"key\": \"healthy\",\n \"logging_callbacks\": {\n \"callbacks\": [\n \"gcs_bucket\"\n ],\n \"status\": \"healthy\",\n \"details\": \"No logger exceptions triggered, system is healthy. Manually check if logs were sent to ['gcs_bucket']\"\n }\n}\n```\n\n\nResponse when logging callbacks are not setup correctly:\n```json\n{\n \"key\": \"unhealthy\",\n \"logging_callbacks\": {\n \"callbacks\": [\n \"gcs_bucket\"\n ],\n \"status\": \"unhealthy\",\n \"details\": \"Logger exceptions triggered, system is unhealthy: Failed to load vertex credentials. Check to see if credentials containing partial/invalid information.\"\n }\n}\n```", "operationId": "key_health_key_health_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/KeyHealthResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/user/new": { "post": { "tags": [ "Internal User management" ], "summary": "New User", "description": "Use this to create a new INTERNAL user with a budget.\nInternal Users can access LiteLLM Admin UI to make keys, request access to models.\nThis creates a new user and generates a new api key for the new user. The new api key is returned.\n\nReturns user id, budget + new key.\n\nParameters:\n- user_id: Optional[str] - Specify a user id. If not set, a unique id will be generated.\n- user_alias: Optional[str] - A descriptive name for you to know who this user id refers to.\n- teams: Optional[list] - specify a list of team id's a user belongs to.\n- user_email: Optional[str] - Specify a user email.\n- send_invite_email: Optional[bool] - Specify if an invite email should be sent.\n- user_role: Optional[str] - Specify a user role - \"proxy_admin\", \"proxy_admin_viewer\", \"internal_user\", \"internal_user_viewer\", \"team\", \"customer\". Info about each role here: `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20`\n- max_budget: Optional[float] - Specify max budget for a given user.\n- budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\"), months (\"1mo\").\n- models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models). Set to ['no-default-models'] to block all model access. Restricting user to only team-based model access.\n- tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per minute)\n- rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per minute)\n- auto_create_key: bool - Default=True. Flag used for returning a key as part of the /user/new response\n- aliases: Optional[dict] - Model aliases for the user - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases)\n- config: Optional[dict] - [DEPRECATED PARAM] User-specific config.\n- allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - [\"no-cache\", \"no-store\"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request-\n- blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked.\n- guardrails: Optional[List[str]] - [Not Implemented Yet] List of active guardrails for the user\n- policies: Optional[List[str]] - List of policy names to apply to the user. Policies define guardrails, conditions, and inheritance rules.\n- permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking.\n- metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {\"team\": \"core-infra\", \"app\": \"app2\", \"email\": \"ishaan@berri.ai\" }\n- max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x.\n- soft_budget: Optional[float] - Get alerts when user crosses given budget, doesn't block requests.\n- model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys)\n- model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys)\n- model_tpm_limit: Optional[float] - Model-specific tpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys)\n- spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by proxy whenever user is used. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\"), months (\"1mo\").\n- agent_id: Optional[str] - The agent id associated with the user.\n- team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default is None.\n- duration: Optional[str] - Duration for the key auto-created on `/user/new`. Default is None.\n- key_alias: Optional[str] - Alias for the key auto-created on `/user/new`. Default is None.\n- sso_user_id: Optional[str] - The id of the user in the SSO provider.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - internal user-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"]}. IF null or {} then no object permission.\n- prompts: Optional[List[str]] - List of allowed prompts for the user. If specified, the user will only be able to use these specific prompts.\n- organizations: List[str] - List of organization id's the user is a member of\nReturns:\n- key: (str) The generated api key for the user\n- expires: (datetime) Datetime object for when key expires.\n- user_id: (str) Unique user id - used for tracking spend across multiple keys for same user id.\n- max_budget: (float|None) Max budget for given user.\n\nUsage Example \n\n```shell\n curl -X POST \"http://localhost:4000/user/new\" -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\" -d '{\n \"username\": \"new_user\",\n \"email\": \"new_user@example.com\"\n }'\n```", "operationId": "new_user_user_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewUserRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewUserResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/user/info": { "get": { "tags": [ "Internal User management" ], "summary": "User Info", "description": "[10/07/2024]\nNote: To get all users (+pagination), use `/user/list` endpoint.\n\n\nUse this to get user information. (user row + all user key info)\n\nExample request\n```\ncurl -X GET 'http://localhost:4000/user/info?user_id=krrish7%40berri.ai' --header 'Authorization: Bearer sk-1234'\n```", "operationId": "user_info_user_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "User ID in the request parameters", "title": "User Id" }, "description": "User ID in the request parameters" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v2/user/info": { "get": { "tags": [ "Internal User management" ], "summary": "User Info V2", "description": "Lightweight endpoint to get user info. Returns only the user object \u2014 no keys, no teams objects.\n\nThis is the v2 replacement for /user/info, designed to avoid the \"god endpoint\" problem\nwhere the old endpoint loaded all keys and teams into memory.\n\nAccess control:\n- Proxy admins can query any user\n- Team admins can query users within their teams\n- Internal users can only query themselves (omit user_id or pass own)\n- Returns 404 for non-existent users or unauthorized access\n\nExample request:\n```\ncurl -X GET 'http://localhost:4000/v2/user/info?user_id=user123' \\\n--header 'Authorization: Bearer sk-1234'\n```", "operationId": "user_info_v2_v2_user_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "User ID in the request parameters", "title": "User Id" }, "description": "User ID in the request parameters" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserInfoV2Response" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/user/update": { "post": { "tags": [ "Internal User management" ], "summary": "User Update", "description": "Example curl \n\n```\ncurl --location 'http://0.0.0.0:4000/user/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"user_id\": \"test-litellm-user-4\",\n \"user_role\": \"proxy_admin_viewer\"\n}'\n```\n\nParameters:\n - user_id: Optional[str] - Specify a user id. If not set, a unique id will be generated.\n - user_email: Optional[str] - Specify a user email.\n - password: Optional[str] - Specify a user password.\n - user_alias: Optional[str] - A descriptive name for you to know who this user id refers to.\n - teams: Optional[list] - specify a list of team id's a user belongs to.\n - send_invite_email: Optional[bool] - Specify if an invite email should be sent.\n - user_role: Optional[str] - Specify a user role - \"proxy_admin\", \"proxy_admin_viewer\", \"internal_user\", \"internal_user_viewer\", \"team\", \"customer\". Info about each role here: `https://github.com/BerriAI/litellm/litellm/proxy/_types.py#L20`\n - max_budget: Optional[float] - Specify max budget for a given user.\n - budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\"), months (\"1mo\").\n - models: Optional[list] - Model_name's a user is allowed to call. (if empty, key is allowed to call all models)\n - tpm_limit: Optional[int] - Specify tpm limit for a given user (Tokens per minute)\n - rpm_limit: Optional[int] - Specify rpm limit for a given user (Requests per minute)\n - auto_create_key: bool - Default=True. Flag used for returning a key as part of the /user/new response\n - aliases: Optional[dict] - Model aliases for the user - [Docs](https://litellm.vercel.app/docs/proxy/virtual_keys#model-aliases)\n - config: Optional[dict] - [DEPRECATED PARAM] User-specific config.\n - allowed_cache_controls: Optional[list] - List of allowed cache control values. Example - [\"no-cache\", \"no-store\"]. See all values - https://docs.litellm.ai/docs/proxy/caching#turn-on--off-caching-per-request-\n - blocked: Optional[bool] - [Not Implemented Yet] Whether the user is blocked.\n - guardrails: Optional[List[str]] - [Not Implemented Yet] List of active guardrails for the user\n - policies: Optional[List[str]] - List of policy names to apply to the user. Policies define guardrails, conditions, and inheritance rules.\n - permissions: Optional[dict] - [Not Implemented Yet] User-specific permissions, eg. turning off pii masking.\n - metadata: Optional[dict] - Metadata for user, store information for user. Example metadata = {\"team\": \"core-infra\", \"app\": \"app2\", \"email\": \"ishaan@berri.ai\" }\n - max_parallel_requests: Optional[int] - Rate limit a user based on the number of parallel requests. Raises 429 error, if user's parallel requests > x.\n - soft_budget: Optional[float] - Get alerts when user crosses given budget, doesn't block requests.\n - model_max_budget: Optional[dict] - Model-specific max budget for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-budgets-to-keys)\n - model_rpm_limit: Optional[float] - Model-specific rpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys)\n - model_tpm_limit: Optional[float] - Model-specific tpm limit for user. [Docs](https://docs.litellm.ai/docs/proxy/users#add-model-specific-limits-to-keys)\n - spend: Optional[float] - Amount spent by user. Default is 0. Will be updated by proxy whenever user is used. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\"), months (\"1mo\").\n - agent_id: Optional[str] - The agent id associated with the user.\n - team_id: Optional[str] - [DEPRECATED PARAM] The team id of the user. Default is None.\n - duration: Optional[str] - [NOT IMPLEMENTED].\n - key_alias: Optional[str] - [NOT IMPLEMENTED].\n - object_permission: Optional[LiteLLM_ObjectPermissionBase] - internal user-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"]}. IF null or {} then no object permission.\n - prompts: Optional[List[str]] - List of allowed prompts for the user. If specified, the user will only be able to use these specific prompts.", "operationId": "user_update_user_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUserRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/user/bulk_update": { "post": { "tags": [ "Internal User management" ], "summary": "Bulk User Update", "description": "Bulk update multiple users at once.\n\nThis endpoint allows updating multiple users in a single request. Each user update\nis processed independently - if some updates fail, others will still succeed.\n\nParameters:\n- users: Optional[List[UpdateUserRequest]] - List of specific user update requests\n- all_users: Optional[bool] - Set to true to update all users in the system\n- user_updates: Optional[UpdateUserRequest] - Updates to apply when all_users=True\n\nReturns:\n- results: List of individual update results\n- total_requested: Total number of users requested for update\n- successful_updates: Number of successful updates\n- failed_updates: Number of failed updates\n\nExample request for specific users:\n```bash\ncurl --location 'http://0.0.0.0:4000/user/bulk_update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"users\": [\n {\n \"user_id\": \"user1\",\n \"user_role\": \"internal_user\",\n \"max_budget\": 100.0\n },\n {\n \"user_email\": \"user2@example.com\", \n \"user_role\": \"internal_user_viewer\",\n \"max_budget\": 50.0\n }\n ]\n}'\n```\n\nExample request for all users:\n```bash\ncurl --location 'http://0.0.0.0:4000/user/bulk_update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"all_users\": true,\n \"user_updates\": {\n \"user_role\": \"internal_user\",\n \"max_budget\": 50.0\n }\n}'\n```", "operationId": "bulk_user_update_user_bulk_update_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateUserRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateUserResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/user/list": { "get": { "tags": [ "Internal User management" ], "summary": "Get Users", "description": "Get a paginated list of users with filtering and sorting options.\n\nParameters:\n role: Optional[str]\n Filter users by role. Can be one of:\n - proxy_admin\n - proxy_admin_viewer\n - internal_user\n - internal_user_viewer\n user_ids: Optional[str]\n Get list of users by user_ids. Comma separated list of user_ids.\n sso_ids: Optional[str]\n Get list of users by sso_ids. Comma separated list of sso_ids.\n user_email: Optional[str]\n Filter users by partial email match\n team: Optional[str]\n Filter users by team id. Will match if user has this team in their teams array.\n page: int\n The page number to return\n page_size: int\n The number of items per page\n sort_by: Optional[str]\n Column to sort by (e.g. 'user_id', 'user_email', 'created_at', 'spend')\n sort_order: Optional[str]\n Sort order ('asc' or 'desc')", "operationId": "get_users_user_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "role", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter users by role", "title": "Role" }, "description": "Filter users by role" }, { "name": "user_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Get list of users by user_ids", "title": "User Ids" }, "description": "Get list of users by user_ids" }, { "name": "sso_user_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Get list of users by sso_user_id", "title": "Sso User Ids" }, "description": "Get list of users by sso_user_id" }, { "name": "user_email", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter users by partial email match", "title": "User Email" }, "description": "Filter users by partial email match" }, { "name": "team", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter users by team id", "title": "Team" }, "description": "Filter users by team id" }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number", "default": 1, "title": "Page" }, "description": "Page number" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Number of items per page", "default": 25, "title": "Page Size" }, "description": "Number of items per page" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Column to sort by (e.g. 'user_id', 'user_email', 'created_at', 'spend')", "title": "Sort By" }, "description": "Column to sort by (e.g. 'user_id', 'user_email', 'created_at', 'spend')" }, { "name": "sort_order", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort order ('asc' or 'desc')", "default": "asc", "title": "Sort Order" }, "description": "Sort order ('asc' or 'desc')" }, { "name": "organization_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter users by organization membership. Comma-separated list of org IDs.", "title": "Organization Ids" }, "description": "Filter users by organization membership. Comma-separated list of org IDs." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UserListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/user/delete": { "post": { "tags": [ "Internal User management" ], "summary": "Delete User", "description": "delete user and associated user keys\n\n```\ncurl --location 'http://0.0.0.0:4000/user/delete' \n--header 'Authorization: Bearer sk-1234' \n--header 'Content-Type: application/json' \n--data-raw '{\n \"user_ids\": [\"45e3e396-ee08-4a61-a88e-16b3ce7e0849\"]\n}'\n```\n\nParameters:\n- user_ids: List[str] - The list of user id's to be deleted.", "operationId": "delete_user_user_delete_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteUserRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/user/daily/activity": { "get": { "tags": [ "Budget & Spend Tracking", "Internal User management" ], "summary": "Get User Daily Activity", "description": "[BETA] This is a beta endpoint. It will change.\n\nMeant to optimize querying spend data for analytics for a user.\n\nReturns:\n(by date)\n- spend\n- prompt_tokens\n- completion_tokens\n- cache_read_input_tokens\n- cache_creation_input_tokens\n- total_tokens\n- api_requests\n- breakdown by model, api_key, provider", "operationId": "get_user_daily_activity_user_daily_activity_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Start date in YYYY-MM-DD format", "title": "Start Date" }, "description": "Start date in YYYY-MM-DD format" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "End date in YYYY-MM-DD format", "title": "End Date" }, "description": "End date in YYYY-MM-DD format" }, { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific model", "title": "Model" }, "description": "Filter by specific model" }, { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific API key", "title": "Api Key" }, "description": "Filter by specific API key" }, { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific user ID. Admins can filter by any user or omit for global view. Non-admins must provide their own user_id.", "title": "User Id" }, "description": "Filter by specific user ID. Admins can filter by any user or omit for global view. Non-admins must provide their own user_id." }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number for pagination", "default": 1, "title": "Page" }, "description": "Page number for pagination" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 1000, "minimum": 1, "description": "Items per page", "default": 50, "title": "Page Size" }, "description": "Items per page" }, { "name": "timezone", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Timezone offset in minutes from UTC (e.g., 480 for PST). Matches JavaScript's Date.getTimezoneOffset() convention.", "title": "Timezone" }, "description": "Timezone offset in minutes from UTC (e.g., 480 for PST). Matches JavaScript's Date.getTimezoneOffset() convention." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/user/daily/activity/aggregated": { "get": { "tags": [ "Budget & Spend Tracking", "Internal User management" ], "summary": "Get User Daily Activity Aggregated", "description": "Aggregated analytics for a user's daily activity without pagination.\nReturns the same response shape as the paginated endpoint with page metadata set to single-page.", "operationId": "get_user_daily_activity_aggregated_user_daily_activity_aggregated_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Start date in YYYY-MM-DD format", "title": "Start Date" }, "description": "Start date in YYYY-MM-DD format" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "End date in YYYY-MM-DD format", "title": "End Date" }, "description": "End date in YYYY-MM-DD format" }, { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific model", "title": "Model" }, "description": "Filter by specific model" }, { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific API key", "title": "Api Key" }, "description": "Filter by specific API key" }, { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific user ID. Admins can filter by any user or omit for global view. Non-admins must provide their own user_id.", "title": "User Id" }, "description": "Filter by specific user ID. Admins can filter by any user or omit for global view. Non-admins must provide their own user_id." }, { "name": "timezone", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "description": "Timezone offset in minutes from UTC (e.g., 480 for PST). Matches JavaScript's Date.getTimezoneOffset() convention.", "title": "Timezone" }, "description": "Timezone offset in minutes from UTC (e.g., 480 for PST). Matches JavaScript's Date.getTimezoneOffset() convention." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/new": { "post": { "tags": [ "team management" ], "summary": "New Team", "description": "Allow users to create a new team. Apply user permissions to their team.\n\n\ud83d\udc49 [Detailed Doc on setting team budgets](https://docs.litellm.ai/docs/proxy/team_budgets)\n\n\nParameters:\n- team_alias: Optional[str] - User defined team alias\n- team_id: Optional[str] - The team id of the user. If none passed, we'll generate it.\n- members_with_roles: List[{\"role\": \"admin\" or \"user\", \"user_id\": \"\"}] - A list of users and their roles in the team. Get user_id when making a new user via `/user/new`.\n- team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: [\"/key/generate\", \"/key/update\", \"/key/delete\"]\n- metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {\"extra_info\": \"some info\"}\n- model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit for this team - applied across all keys for this team. \n- model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit for this team - applied across all keys for this team.\n- tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - all keys with this team_id will have at max this TPM limit\n- rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - all keys associated with this team_id will have at max this RPM limit\n- rpm_limit_type: Optional[Literal[\"guaranteed_throughput\", \"best_effort_throughput\"]] - The type of RPM limit enforcement. Use \"guaranteed_throughput\" to raise an error if overallocating RPM, or \"best_effort_throughput\" for best effort enforcement.\n- tpm_limit_type: Optional[Literal[\"guaranteed_throughput\", \"best_effort_throughput\"]] - The type of TPM limit enforcement. Use \"guaranteed_throughput\" to raise an error if overallocating TPM, or \"best_effort_throughput\" for best effort enforcement.\n- max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget\n- soft_budget: Optional[float] - The soft budget threshold for the team. If max_budget is set, soft_budget must be strictly lower than max_budget. Can be set independently if max_budget is not set.\n- budget_duration: Optional[str] - The duration of the budget for the team. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets)\n- models: Optional[list] - A list of models associated with the team - all keys for this team_id will have at most, these models. If empty, assumes all models are allowed.\n- blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id.\n- members: Optional[List] - Control team members via `/team/member/add` and `/team/member/delete`.\n- tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing).\n- prompts: Optional[List[str]] - List of prompts that the team is allowed to use.\n- organization_id: Optional[str] - The organization id of the team. Default is None. Create via `/organization/new`.\n- model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias)\n- guardrails: Optional[List[str]] - Guardrails for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails)\n- policies: Optional[List[str]] - Policies for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies)\n- disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"], \"agents\": [\"agent_1\", \"agent_2\"], \"agent_access_groups\": [\"dev_group\"]}. IF null or {} then no object permission.\n- team_member_budget: Optional[float] - The maximum budget allocated to an individual team member.\n- team_member_budget_duration: Optional[str] - The duration of the budget for the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets)\n- team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members.\n- team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members.\n- team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. \"1d\", \"1w\", \"1mo\"\n- allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team.\n- allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{\"index_name\": \"my-index\", \"index_permissions\": [\"write\", \"read\"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint.\n- secret_manager_settings: Optional[dict] - Secret manager settings for the team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview)\n- router_settings: Optional[UpdateRouterConfig] - team-specific router settings. Example - {\"model_group_retry_policy\": {\"max_retries\": 5}}. IF null or {} then no router settings.\n- access_group_ids: Optional[List[str]] - List of access group IDs to associate with the team. Access groups define which models the team can access. Example - [\"access_group_1\", \"access_group_2\"].\n- enforced_file_expires_after: Optional[dict] - Enforced file expiration policy for the team. Keys created under this team will inherit this policy for file uploads. Example - {\"anchor\": \"created_at\", \"days\": 30}.\n- enforced_batch_output_expires_after: Optional[dict] - Enforced batch output file expiration policy for the team. Keys created under this team will inherit this policy for batch output files. Example - {\"anchor\": \"created_at\", \"days\": 30}.\n\nReturns:\n- team_id: (str) Unique team id - used for tracking spend across multiple keys for same team id.\n\n_deprecated_params:\n- admins: list - A list of user_id's for the admin role\n- users: list - A list of user_id's for the user role\n\nExample Request:\n```\ncurl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_alias\": \"my-new-team_2\",\n \"members_with_roles\": [{\"role\": \"admin\", \"user_id\": \"user-1234\"},\n {\"role\": \"user\", \"user_id\": \"user-2434\"}]\n}'\n\n```\n\n ```\ncurl --location 'http://0.0.0.0:4000/team/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_alias\": \"QA Prod Bot\",\n \"max_budget\": 0.000000001,\n \"budget_duration\": \"1d\"\n }'\n```", "operationId": "new_team_team_new_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewTeamRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_TeamTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/update": { "post": { "tags": [ "team management" ], "summary": "Update Team", "description": "Use `/team/member_add` AND `/team/member/delete` to add/remove new team members\n\nYou can now update team budget / rate limits via /team/update\n\nParameters:\n- team_id: str - The team id of the user. Required param.\n- team_alias: Optional[str] - User defined team alias\n- team_member_permissions: Optional[List[str]] - A list of routes that non-admin team members can access. example: [\"/key/generate\", \"/key/update\", \"/key/delete\"]\n- metadata: Optional[dict] - Metadata for team, store information for team. Example metadata = {\"team\": \"core-infra\", \"app\": \"app2\", \"email\": \"ishaan@berri.ai\" }\n- tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for this team - all keys with this team_id will have at max this TPM limit\n- rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for this team - all keys associated with this team_id will have at max this RPM limit\n- max_budget: Optional[float] - The maximum budget allocated to the team - all keys for this team_id will have at max this max_budget\n- soft_budget: Optional[float] - The soft budget threshold for the team. If max_budget is set (either in the request or existing), soft_budget must be strictly lower than max_budget. Can be set independently if max_budget is not set.\n- budget_duration: Optional[str] - The duration of the budget for the team. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets)\n- models: Optional[list] - A list of models associated with the team - all keys for this team_id will have at most, these models. If empty, assumes all models are allowed.\n- prompts: Optional[List[str]] - List of prompts that the team is allowed to use.\n- blocked: bool - Flag indicating if the team is blocked or not - will stop all calls from keys with this team_id.\n- tags: Optional[List[str]] - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing).\n- organization_id: Optional[str] - The organization id of the team. Default is None. Create via `/organization/new`.\n- model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias)\n- guardrails: Optional[List[str]] - Guardrails for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails)\n- policies: Optional[List[str]] - Policies for the team. [Docs](https://docs.litellm.ai/docs/proxy/guardrails/guardrail_policies)\n- disable_global_guardrails: Optional[bool] - Whether to disable global guardrails for the key.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - team-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"], \"agents\": [\"agent_1\", \"agent_2\"], \"agent_access_groups\": [\"dev_group\"]}. IF null or {} then no object permission.\n- team_member_budget: Optional[float] - The maximum budget allocated to an individual team member.\n- team_member_budget_duration: Optional[str] - The duration of the budget for the team member. Doc [here](https://docs.litellm.ai/docs/proxy/team_budgets)\n- team_member_rpm_limit: Optional[int] - The RPM (Requests Per Minute) limit for individual team members.\n- team_member_tpm_limit: Optional[int] - The TPM (Tokens Per Minute) limit for individual team members.\n- team_member_key_duration: Optional[str] - The duration for a team member's key. e.g. \"1d\", \"1w\", \"1mo\"\n- allowed_passthrough_routes: Optional[List[str]] - List of allowed pass through routes for the team.\n- model_rpm_limit: Optional[Dict[str, int]] - The RPM (Requests Per Minute) limit per model for this team. Example: {\"gpt-4\": 100, \"gpt-3.5-turbo\": 200}\n- model_tpm_limit: Optional[Dict[str, int]] - The TPM (Tokens Per Minute) limit per model for this team. Example: {\"gpt-4\": 10000, \"gpt-3.5-turbo\": 20000}\nExample - update team TPM Limit\n- allowed_vector_store_indexes: Optional[List[dict]] - List of allowed vector store indexes for the key. Example - [{\"index_name\": \"my-index\", \"index_permissions\": [\"write\", \"read\"]}]. If specified, the key will only be able to use these specific vector store indexes. Create index, using `/v1/indexes` endpoint.\n- secret_manager_settings: Optional[dict] - Secret manager settings for the team. [Docs](https://docs.litellm.ai/docs/secret_managers/overview)\n- router_settings: Optional[UpdateRouterConfig] - team-specific router settings. Example - {\"model_group_retry_policy\": {\"max_retries\": 5}}. IF null or {} then no router settings.\n- access_group_ids: Optional[List[str]] - List of access group IDs to associate with the team. Access groups define which models the team can access. Example - [\"access_group_1\", \"access_group_2\"].\n- enforced_file_expires_after: Optional[dict] - Enforced file expiration policy for the team. Keys created under this team will inherit this policy for file uploads. Example - {\"anchor\": \"created_at\", \"days\": 30}.\n- enforced_batch_output_expires_after: Optional[dict] - Enforced batch output file expiration policy for the team. Keys created under this team will inherit this policy for batch output files. Example - {\"anchor\": \"created_at\", \"days\": 30}.\n\n```\ncurl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"team_id\": \"8d916b1c-510d-4894-a334-1c16a93344f5\",\n \"tpm_limit\": 100\n}'\n```\n\nExample - Update Team `max_budget` budget\n```\ncurl --location 'http://0.0.0.0:4000/team/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"team_id\": \"8d916b1c-510d-4894-a334-1c16a93344f5\",\n \"max_budget\": 10\n}'\n```", "operationId": "update_team_team_update_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTeamRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/member_add": { "post": { "tags": [ "team management" ], "summary": "Team Member Add", "description": "Add new members (either via user_email or user_id) to a team\n\nIf user doesn't exist, new user row will also be added to User Table\n\nOnly proxy_admin or admin of team, allowed to access this endpoint.\n```\n\ncurl -X POST 'http://0.0.0.0:4000/team/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{\"team_id\": \"45e3e396-ee08-4a61-a88e-16b3ce7e0849\", \"member\": {\"role\": \"user\", \"user_id\": \"krrish247652@berri.ai\"}}'\n\n```", "operationId": "team_member_add_team_member_add_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamMemberAddRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamAddMemberResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/member_delete": { "post": { "tags": [ "team management" ], "summary": "Team Member Delete", "description": "[BETA]\n\ndelete members (either via user_email or user_id) from a team\n\nIf user doesn't exist, an exception will be raised\n```\ncurl -X POST 'http://0.0.0.0:8000/team/member_delete' \n-H 'Authorization: Bearer sk-1234' \n-H 'Content-Type: application/json' \n-d '{\n \"team_id\": \"45e3e396-ee08-4a61-a88e-16b3ce7e0849\",\n \"user_id\": \"krrish247652@berri.ai\"\n}'\n```", "operationId": "team_member_delete_team_member_delete_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamMemberDeleteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/member_update": { "post": { "tags": [ "team management" ], "summary": "Team Member Update", "description": "[BETA]\n\nUpdate team member budgets and team member role", "operationId": "team_member_update_team_member_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamMemberUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamMemberUpdateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/bulk_member_add": { "post": { "tags": [ "team management" ], "summary": "Bulk Team Member Add", "description": "Bulk add multiple members to a team at once.\n\nThis endpoint reuses the same logic as /team/member_add but provides a bulk-friendly response format.\n\nParameters:\n- team_id: str - The ID of the team to add members to\n- members: List[Member] - List of members to add to the team\n- all_users: Optional[bool] - Flag to add all users on Proxy to the team\n- max_budget_in_team: Optional[float] - Maximum budget allocated to each user within the team\n\nReturns:\n- results: List of individual member addition results\n- total_requested: Total number of members requested for addition\n- successful_additions: Number of successful additions \n- failed_additions: Number of failed additions\n- updated_team: The updated team object\n\nExample request:\n```bash\ncurl --location 'http://0.0.0.0:4000/team/bulk_member_add' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\",\n \"members\": [\n {\n \"user_id\": \"user1\",\n \"role\": \"user\"\n },\n {\n \"user_email\": \"user2@example.com\",\n \"role\": \"admin\"\n }\n ],\n \"max_budget_in_team\": 100.0\n}'\n```", "operationId": "bulk_team_member_add_team_bulk_member_add_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkTeamMemberAddRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkTeamMemberAddResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/delete": { "post": { "tags": [ "team management" ], "summary": "Delete Team", "description": "delete team and associated team keys\n\nParameters:\n- team_ids: List[str] - Required. List of team IDs to delete. Example: [\"team-1234\", \"team-5678\"]\n\n```\ncurl --location 'http://0.0.0.0:4000/team/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"team_ids\": [\"8d916b1c-510d-4894-a334-1c16a93344f5\"]\n}'\n```", "operationId": "delete_team_team_delete_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteTeamRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/info": { "get": { "tags": [ "team management" ], "summary": "Team Info", "description": "get info on team + related keys\n\nParameters:\n- team_id: str - Required. The unique identifier of the team to get info on.\n\n```\ncurl --location 'http://localhost:4000/team/info?team_id=your_team_id_here' --header 'Authorization: Bearer your_api_key_here'\n```", "operationId": "team_info_team_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "team_id", "in": "query", "required": false, "schema": { "type": "string", "description": "Team ID in the request parameters", "title": "Team Id" }, "description": "Team ID in the request parameters" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/block": { "post": { "tags": [ "team management" ], "summary": "Block Team", "description": "Blocks all calls from keys with this team id.\n\nParameters:\n- team_id: str - Required. The unique identifier of the team to block.\n\nExample:\n```\ncurl --location 'http://0.0.0.0:4000/team/block' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\"\n}'\n```\n\nReturns:\n- The updated team record with blocked=True", "operationId": "block_team_team_block_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockTeamRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/unblock": { "post": { "tags": [ "team management" ], "summary": "Unblock Team", "description": "Unblocks a previously blocked team, re-enabling calls from keys with this team id.\n\nParameters:\n- team_id: str - Required. The unique identifier of the team to unblock.\n\nExample:\n```\ncurl --location 'http://0.0.0.0:4000/team/unblock' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\"\n}'\n```", "operationId": "unblock_team_team_unblock_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockTeamRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/available": { "get": { "summary": "List Available Teams", "operationId": "list_available_teams_team_available_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "response_model", "in": "query", "required": false, "schema": { "title": "Response Model" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v2/team/list": { "get": { "tags": [ "team management" ], "summary": "List Team V2", "description": "Get a paginated list of teams with filtering and sorting options.\n\nParameters:\n user_id: Optional[str]\n Only return teams which this user belongs to\n organization_id: Optional[str]\n Only return teams which belong to this organization\n team_id: Optional[str]\n Filter teams by exact team_id match\n team_alias: Optional[str]\n Filter teams by partial team_alias match\n page: int\n The page number to return\n page_size: int\n The number of items per page\n sort_by: Optional[str]\n Column to sort by (e.g. 'team_id', 'team_alias', 'created_at')\n sort_order: str\n Sort order ('asc' or 'desc')\n status: Optional[str]\n Filter by status. Currently supports \"deleted\" to query deleted teams.", "operationId": "list_team_v2_v2_team_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Only return teams which this 'user_id' belongs to", "title": "User Id" }, "description": "Only return teams which this 'user_id' belongs to" }, { "name": "organization_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Only return teams which this 'organization_id' belongs to", "title": "Organization Id" }, "description": "Only return teams which this 'organization_id' belongs to" }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Only return teams which this 'team_id' belongs to", "title": "Team Id" }, "description": "Only return teams which this 'team_id' belongs to" }, { "name": "team_alias", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Only return teams which this 'team_alias' belongs to. Supports partial matching.", "title": "Team Alias" }, "description": "Only return teams which this 'team_alias' belongs to. Supports partial matching." }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number for pagination", "default": 1, "title": "Page" }, "description": "Page number for pagination" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Number of teams per page", "default": 10, "title": "Page Size" }, "description": "Number of teams per page" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Column to sort by (e.g. 'team_id', 'team_alias', 'created_at')", "title": "Sort By" }, "description": "Column to sort by (e.g. 'team_id', 'team_alias', 'created_at')" }, { "name": "sort_order", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort order ('asc' or 'desc')", "default": "asc", "title": "Sort Order" }, "description": "Sort order ('asc' or 'desc')" }, { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by status (e.g. 'deleted')", "title": "Status" }, "description": "Filter by status (e.g. 'deleted')" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/list": { "get": { "tags": [ "team management" ], "summary": "List Team", "description": "```\ncurl --location --request GET 'http://0.0.0.0:4000/team/list' --header 'Authorization: Bearer sk-1234'\n```\n\nParameters:\n- user_id: str - Optional. If passed will only return teams that the user_id is a member of.\n- organization_id: str - Optional. If passed will only return teams that belong to the organization_id. Pass 'default_organization' to get all teams without organization_id.", "operationId": "list_team_team_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Only return teams which this 'user_id' belongs to", "title": "User Id" }, "description": "Only return teams which this 'user_id' belongs to" }, { "name": "organization_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/model/add": { "post": { "tags": [ "team management" ], "summary": "Team Model Add", "description": "Add models to a team's allowed model list. Only proxy admin or team admin can add models.\n\nParameters:\n- team_id: str - Required. The team to add models to\n- models: List[str] - Required. List of models to add to the team\n\nExample Request:\n```\ncurl --location 'http://0.0.0.0:4000/team/model/add' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\",\n \"models\": [\"gpt-4\", \"claude-2\"]\n}'\n```", "operationId": "team_model_add_team_model_add_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamModelAddRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/model/delete": { "post": { "tags": [ "team management" ], "summary": "Team Model Delete", "description": "Remove models from a team's allowed model list. Only proxy admin or team admin can remove models.\n\nParameters:\n- team_id: str - Required. The team to remove models from\n- models: List[str] - Required. List of models to remove from the team\n\nExample Request:\n```\ncurl --location 'http://0.0.0.0:4000/team/model/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"team_id\": \"team-1234\",\n \"models\": [\"gpt-4\"]\n}'\n```", "operationId": "team_model_delete_team_model_delete_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TeamModelDeleteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/permissions_list": { "get": { "tags": [ "team management" ], "summary": "Team Member Permissions", "description": "Get the team member permissions for a team", "operationId": "team_member_permissions_team_permissions_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "team_id", "in": "query", "required": false, "schema": { "type": "string", "description": "Team ID in the request parameters", "title": "Team Id" }, "description": "Team ID in the request parameters" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GetTeamMemberPermissionsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/permissions_update": { "post": { "tags": [ "team management" ], "summary": "Update Team Member Permissions", "description": "Update the team member permissions for a team", "operationId": "update_team_member_permissions_team_permissions_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateTeamMemberPermissionsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_TeamTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/permissions_bulk_update": { "post": { "tags": [ "team management" ], "summary": "Bulk Update Team Member Permissions", "description": "Append permissions to existing teams.\n\nEither pass team_ids to target specific teams, or set\napply_to_all_teams=True to update every team. For each team,\nthe provided permissions are merged with the team's existing\npermissions (duplicates are skipped).", "operationId": "bulk_update_team_member_permissions_team_permissions_bulk_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateTeamMemberPermissionsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BulkUpdateTeamMemberPermissionsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/team/daily/activity": { "get": { "tags": [ "team management" ], "summary": "Get Team Daily Activity", "description": "Get daily activity for specific teams or all teams.\n\nArgs:\n team_ids (Optional[str]): Comma-separated list of team IDs to filter by. If not provided, returns data for all teams.\n start_date (Optional[str]): Start date for the activity period (YYYY-MM-DD).\n end_date (Optional[str]): End date for the activity period (YYYY-MM-DD).\n model (Optional[str]): Filter by model name.\n api_key (Optional[str]): Filter by API key.\n page (int): Page number for pagination.\n page_size (int): Number of items per page.\n exclude_team_ids (Optional[str]): Comma-separated list of team IDs to exclude.\nReturns:\n SpendAnalyticsPaginatedResponse: Paginated response containing daily activity data.", "operationId": "get_team_daily_activity_team_daily_activity_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "team_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Ids" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" } }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" } }, { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } }, { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } }, { "name": "exclude_team_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Exclude Team Ids" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/sso/readiness": { "get": { "tags": [ "experimental" ], "summary": "Sso Readiness", "description": "Health endpoint for checking SSO readiness.\nChecks if the configured SSO provider has all required environment variables set in memory.", "operationId": "sso_readiness_sso_readiness_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/scim/v2": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Scim Base", "description": "Base SCIM v2 endpoint for resource discovery per RFC 7644 Section 4.\n\nReturns a ListResponse of ResourceTypes supported by this SCIM service provider.\nIdentity providers (Okta, Azure AD, etc.) use this endpoint for resource discovery.", "operationId": "get_scim_base_scim_v2_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/ResourceTypes": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Resource Types", "description": "SCIM ResourceTypes endpoint per RFC 7644 Section 4.\n\nReturns a ListResponse of all resource types supported by this service provider.", "operationId": "get_resource_types_scim_v2_ResourceTypes_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/ResourceTypes/{resource_type_id}": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Resource Type", "description": "Get a single ResourceType by ID per RFC 7644.", "operationId": "get_resource_type_scim_v2_ResourceTypes__resource_type_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "resource_type_id", "in": "path", "required": true, "schema": { "type": "string", "title": "ResourceType ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/Schemas": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Schemas", "description": "SCIM Schemas endpoint per RFC 7643 Section 7.\n\nReturns a ListResponse of all schemas supported by this service provider.", "operationId": "get_schemas_scim_v2_Schemas_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/Schemas/{schema_id}": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Schema", "description": "Get a single Schema by its URI per RFC 7643 Section 7.", "operationId": "get_schema_scim_v2_Schemas__schema_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "schema_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Schema URI" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/ServiceProviderConfig": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Service Provider Config", "description": "Return SCIM Service Provider Configuration.", "operationId": "get_service_provider_config_scim_v2_ServiceProviderConfig_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMServiceProviderConfig" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/Users": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Users", "description": "Get a list of users according to SCIM v2 protocol", "operationId": "get_users_scim_v2_Users_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "startIndex", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 1, "title": "Startindex" } }, { "name": "count", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 10, "title": "Count" } }, { "name": "filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Filter" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Create User", "description": "Create a user according to SCIM v2 protocol", "operationId": "create_user_scim_v2_Users_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMUser" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMUser" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/Users/{user_id}": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get User", "description": "Get a single user by ID according to SCIM v2 protocol", "operationId": "get_user_scim_v2_Users__user_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "title": "User ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMUser" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Update User", "description": "Update a user according to SCIM v2 protocol (full replacement)", "operationId": "update_user_scim_v2_Users__user_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "title": "User ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMUser" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMUser" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Delete User", "description": "Delete a user according to SCIM v2 protocol", "operationId": "delete_user_scim_v2_Users__user_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "title": "User ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Patch User", "description": "Patch a user according to SCIM v2 protocol", "operationId": "patch_user_scim_v2_Users__user_id__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "user_id", "in": "path", "required": true, "schema": { "type": "string", "title": "User ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMPatchOp" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMUser" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/Groups": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Groups", "description": "Get a list of groups according to SCIM v2 protocol", "operationId": "get_groups_scim_v2_Groups_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "startIndex", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 1, "title": "Startindex" } }, { "name": "count", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 10, "title": "Count" } }, { "name": "filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Filter" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Create Group", "description": "Create a group according to SCIM v2 protocol", "operationId": "create_group_scim_v2_Groups_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMGroup" } } } }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMGroup" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/scim/v2/Groups/{group_id}": { "get": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Get Group", "description": "Get a single group by ID according to SCIM v2 protocol", "operationId": "get_group_scim_v2_Groups__group_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Group ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMGroup" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Update Group", "description": "Update a group according to SCIM v2 protocol", "operationId": "update_group_scim_v2_Groups__group_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Group ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMGroup" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMGroup" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Delete Group", "description": "Delete a group according to SCIM v2 protocol", "operationId": "delete_group_scim_v2_Groups__group_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Group ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "\u2728 SCIM v2 (Enterprise Only)" ], "summary": "Patch Group", "description": "Patch a group according to SCIM v2 protocol", "operationId": "patch_group_scim_v2_Groups__group_id__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Group ID" } }, { "name": "feature", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Feature" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMPatchOp" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SCIMGroup" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/organization/new": { "post": { "tags": [ "organization management" ], "summary": "New Organization", "description": "Allow orgs to own teams\n\nSet org level budgets + model access.\n\nOnly admins can create orgs.\n\n# Parameters\n\n- organization_alias: *str* - The name of the organization.\n- models: *List* - The models the organization has access to.\n- budget_id: *Optional[str]* - The id for a budget (tpm/rpm/max budget) for the organization.\n### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS ###\n- max_budget: *Optional[float]* - Max budget for org\n- tpm_limit: *Optional[int]* - Max tpm limit for org\n- rpm_limit: *Optional[int]* - Max rpm limit for org\n- model_rpm_limit: *Optional[Dict[str, int]]* - The RPM (Requests Per Minute) limit per model for this organization.\n- model_tpm_limit: *Optional[Dict[str, int]]* - The TPM (Tokens Per Minute) limit per model for this organization.\n- max_parallel_requests: *Optional[int]* - [Not Implemented Yet] Max parallel requests for org\n- soft_budget: *Optional[float]* - [Not Implemented Yet] Get a slack alert when this soft budget is reached. Don't block requests.\n- model_max_budget: *Optional[dict]* - Max budget for a specific model\n- budget_duration: *Optional[str]* - Frequency of reseting org budget\n- metadata: *Optional[dict]* - Metadata for organization, store information for organization. Example metadata - {\"extra_info\": \"some info\"}\n- blocked: *bool* - Flag indicating if the org is blocked or not - will stop all calls from keys with this org_id.\n- tags: *Optional[List[str]]* - Tags for [tracking spend](https://litellm.vercel.app/docs/proxy/enterprise#tracking-spend-for-custom-tags) and/or doing [tag-based routing](https://litellm.vercel.app/docs/proxy/tag_routing).\n- organization_id: *Optional[str]* - The organization id of the team. Default is None. Create via `/organization/new`.\n- model_aliases: Optional[dict] - Model aliases for the team. [Docs](https://docs.litellm.ai/docs/proxy/team_based_routing#create-team-with-model-alias)\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - organization-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"]}. IF null or {} then no object permission.\nCase 1: Create new org **without** a budget_id\n\n```bash\ncurl --location 'http://0.0.0.0:4000/organization/new' \n--header 'Authorization: Bearer sk-1234' \n--header 'Content-Type: application/json' \n--data '{\n \"organization_alias\": \"my-secret-org\",\n \"models\": [\"model1\", \"model2\"],\n \"max_budget\": 100\n}'\n\n\n```\n\nCase 2: Create new org **with** a budget_id\n\n```bash\ncurl --location 'http://0.0.0.0:4000/organization/new' \n--header 'Authorization: Bearer sk-1234' \n--header 'Content-Type: application/json' \n--data '{\n \"organization_alias\": \"my-secret-org\",\n \"models\": [\"model1\", \"model2\"],\n \"budget_id\": \"428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689\"\n}'\n```", "operationId": "new_organization_organization_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewOrganizationRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewOrganizationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/organization/daily/activity": { "get": { "tags": [ "organization management" ], "summary": "Get Organization Daily Activity", "description": "Get daily activity for specific organizations or all accessible organizations.", "operationId": "get_organization_daily_activity_organization_daily_activity_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "organization_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Ids" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" } }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" } }, { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } }, { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } }, { "name": "exclude_organization_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Exclude Organization Ids" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/organization/update": { "patch": { "tags": [ "organization management" ], "summary": "Update Organization", "description": "Update an organization", "operationId": "update_organization_organization_update_patch", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/organization/delete": { "delete": { "tags": [ "organization management" ], "summary": "Delete Organization", "description": "Delete an organization\n\n# Parameters:\n\n- organization_ids: List[str] - The organization ids to delete.", "operationId": "delete_organization_organization_delete_delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteOrganizationRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers" }, "type": "array", "title": "Response Delete Organization Organization Delete Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/organization/list": { "get": { "tags": [ "organization management" ], "summary": "List Organization", "description": "Get a list of organizations with optional filtering.\n\nParameters:\n org_id: Optional[str]\n Filter organizations by exact organization_id match\n org_alias: Optional[str]\n Filter organizations by partial organization_alias match (case-insensitive)\n\nExample:\n```\ncurl --location --request GET 'http://0.0.0.0:4000/organization/list?org_alias=my-org' --header 'Authorization: Bearer sk-1234'\n```\n\nExample with org_id:\n```\ncurl --location --request GET 'http://0.0.0.0:4000/organization/list?org_id=123e4567-e89b-12d3-a456-426614174000' --header 'Authorization: Bearer sk-1234'\n```", "operationId": "list_organization_organization_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "org_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter organizations by exact organization_id match", "title": "Org Id" }, "description": "Filter organizations by exact organization_id match" }, { "name": "org_alias", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter organizations by partial organization_alias match. Supports case-insensitive search.", "title": "Org Alias" }, "description": "Filter organizations by partial organization_alias match. Supports case-insensitive search." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers" }, "title": "Response List Organization Organization List Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/organization/info": { "get": { "tags": [ "organization management" ], "summary": "Info Organization", "description": "Get the org specific information", "operationId": "info_organization_organization_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "organization_id", "in": "query", "required": true, "schema": { "type": "string", "title": "Organization Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "organization management" ], "summary": "Deprecated Info Organization", "description": "DEPRECATED: Use GET /organization/info instead", "operationId": "deprecated_info_organization_organization_info_post", "security": [ { "APIKeyHeader": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/organization/member_add": { "post": { "tags": [ "organization management" ], "summary": "Organization Member Add", "description": "[BETA]\n\nAdd new members (either via user_email or user_id) to an organization\n\nIf user doesn't exist, new user row will also be added to User Table\n\nOnly proxy_admin or org_admin of organization, allowed to access this endpoint.\n\n# Parameters:\n\n- organization_id: str (required)\n- member: Union[List[Member], Member] (required)\n - role: Literal[LitellmUserRoles] (required)\n - user_id: Optional[str]\n - user_email: Optional[str]\n\nNote: Either user_id or user_email must be provided for each member.\n\nExample:\n```\ncurl -X POST 'http://0.0.0.0:4000/organization/member_add' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{\n \"organization_id\": \"45e3e396-ee08-4a61-a88e-16b3ce7e0849\",\n \"member\": {\n \"role\": \"internal_user\",\n \"user_id\": \"krrish247652@berri.ai\"\n },\n \"max_budget_in_organization\": 100.0\n}'\n```\n\nThe following is executed in this function:\n\n1. Check if organization exists\n2. Creates a new Internal User if the user_id or user_email is not found in LiteLLM_UserTable\n3. Add Internal User to the `LiteLLM_OrganizationMembership` table", "operationId": "organization_member_add_organization_member_add_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationMemberAddRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationAddMemberResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/organization/member_update": { "patch": { "tags": [ "organization management" ], "summary": "Organization Member Update", "description": "Update a member's role in an organization", "operationId": "organization_member_update_organization_member_update_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationMemberUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/organization/member_delete": { "delete": { "tags": [ "organization management" ], "summary": "Organization Member Delete", "description": "Delete a member from an organization", "operationId": "organization_member_delete_organization_member_delete_delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/OrganizationMemberDeleteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/project/new": { "post": { "tags": [ "project management" ], "summary": "New Project", "description": "Create a new project. Projects sit between teams and keys in the hierarchy.\n\nOnly admins or team admins can create projects.\n\n# Parameters\n\n- project_alias: *Optional[str]* - The name of the project.\n- description: *Optional[str]* - Description of the project's purpose and use case.\n- team_id: *str* - The team id that this project belongs to. Required.\n- models: *List* - The models the project has access to.\n- budget_id: *Optional[str]* - The id for a budget (tpm/rpm/max budget) for the project.\n### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS ###\n- max_budget: *Optional[float]* - Max budget for project\n- tpm_limit: *Optional[int]* - Max tpm limit for project\n- rpm_limit: *Optional[int]* - Max rpm limit for project\n- max_parallel_requests: *Optional[int]* - Max parallel requests for project\n- soft_budget: *Optional[float]* - Get a slack alert when this soft budget is reached. Don't block requests.\n- model_max_budget: *Optional[dict]* - Max budget for a specific model. Example: {\"gpt-4\": 100.0, \"gpt-3.5-turbo\": 50.0}\n- model_rpm_limit: *Optional[dict]* - RPM limits per model. Example: {\"gpt-4\": 1000, \"gpt-3.5-turbo\": 5000}\n- model_tpm_limit: *Optional[dict]* - TPM limits per model. Example: {\"gpt-4\": 50000, \"gpt-3.5-turbo\": 100000}\n- budget_duration: *Optional[str]* - Frequency of reseting project budget\n- metadata: *Optional[dict]* - Metadata for project, store information for project. Example metadata - {\"use_case_id\": \"SNOW-12345\", \"responsible_ai_id\": \"RAI-67890\"}\n- tags: *Optional[list]* - Tags for the project. Example: [\"production\", \"api\"]\n- blocked: *bool* - Flag indicating if the project is blocked or not - will stop all calls from keys with this project_id.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - project-specific object permission. Example - {\"vector_stores\": [\"vector_store_1\", \"vector_store_2\"]}. IF null or {} then no object permission.\n\nExample 1: Create new project **without** a budget_id, with model-specific limits\n\n```bash\ncurl --location 'http://0.0.0.0:4000/project/new' \\\n--header 'Authorization: Bearer sk-1234' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"project_alias\": \"flight-search-assistant\",\n \"description\": \"AI-powered flight search and booking assistant\",\n \"team_id\": \"team-123\",\n \"models\": [\"gpt-4\", \"gpt-3.5-turbo\"],\n \"max_budget\": 100,\n \"model_rpm_limit\": {\n \"gpt-4\": 1000,\n \"gpt-3.5-turbo\": 5000\n },\n \"model_tpm_limit\": {\n \"gpt-4\": 50000,\n \"gpt-3.5-turbo\": 100000\n },\n \"metadata\": {\n \"use_case_id\": \"SNOW-12345\",\n \"responsible_ai_id\": \"RAI-67890\"\n }\n}'\n```\n\nExample 2: Create new project **with** a budget_id\n\n```bash\ncurl --location 'http://0.0.0.0:4000/project/new' \\\n--header 'Authorization: Bearer sk-1234' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"project_alias\": \"hotel-recommendations\",\n \"description\": \"Personalized hotel recommendation engine\",\n \"team_id\": \"team-123\",\n \"models\": [\"claude-3-sonnet\"],\n \"budget_id\": \"428eeaa8-f3ac-4e85-a8fb-7dc8d7aa8689\",\n \"metadata\": {\n \"use_case_id\": \"SNOW-54321\"\n }\n}'\n```", "operationId": "new_project_project_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewProjectRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewProjectResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/project/update": { "post": { "tags": [ "project management" ], "summary": "Update Project", "description": "Update a project\n\nParameters:\n- project_id: *str* - The project id to update. Required.\n- project_alias: *Optional[str]* - Updated name for the project\n- description: *Optional[str]* - Updated description for the project\n- team_id: *Optional[str]* - Updated team_id for the project\n- metadata: *Optional[dict]* - Updated metadata for project\n- models: *Optional[list]* - Updated list of models for the project\n- blocked: *Optional[bool]* - Updated blocked status\n- max_budget: *Optional[float]* - Updated max budget\n- tpm_limit: *Optional[int]* - Updated tpm limit\n- rpm_limit: *Optional[int]* - Updated rpm limit\n- model_rpm_limit: *Optional[dict]* - Updated RPM limits per model\n- model_tpm_limit: *Optional[dict]* - Updated TPM limits per model\n- budget_duration: *Optional[str]* - Updated budget duration\n- tags: *Optional[list]* - Updated list of tags for the project\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - Updated object permission\n\nExample:\n```bash\ncurl --location 'http://0.0.0.0:4000/project/update' \\\n--header 'Authorization: Bearer sk-1234' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"project_id\": \"project-123\",\n \"description\": \"Updated flight search system with enhanced capabilities\",\n \"max_budget\": 200,\n \"model_rpm_limit\": {\n \"gpt-4\": 2000,\n \"gpt-3.5-turbo\": 10000\n },\n \"metadata\": {\n \"use_case_id\": \"SNOW-12345\",\n \"status\": \"active\"\n }\n}'\n```", "operationId": "update_project_project_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateProjectRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_ProjectTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/project/delete": { "delete": { "tags": [ "project management" ], "summary": "Delete Project", "description": "Delete projects\n\nParameters:\n- project_ids: *List[str]* - List of project ids to delete\n\nExample:\n```bash\ncurl --location --request DELETE 'http://0.0.0.0:4000/project/delete' \\\n--header 'Authorization: Bearer sk-1234' \\\n--header 'Content-Type: application/json' \\\n--data '{\n \"project_ids\": [\"project-123\", \"project-456\"]\n}'\n```", "operationId": "delete_project_project_delete_delete", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteProjectRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LiteLLM_ProjectTable" }, "type": "array", "title": "Response Delete Project Project Delete Delete" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/project/info": { "get": { "tags": [ "project management" ], "summary": "Project Info", "description": "Get information about a specific project\n\nParameters:\n- project_id: *str* - The project id to fetch info for\n\nExample:\n```bash\ncurl --location 'http://0.0.0.0:4000/project/info?project_id=project-123' \\\n--header 'Authorization: Bearer sk-1234'\n```", "operationId": "project_info_project_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "project_id", "in": "query", "required": true, "schema": { "type": "string", "title": "Project Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_ProjectTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/project/list": { "get": { "tags": [ "project management" ], "summary": "List Projects", "description": "List all projects that the user has access to\n\nExample:\n```bash\ncurl --location 'http://0.0.0.0:4000/project/list' \\\n--header 'Authorization: Bearer sk-1234'\n```", "operationId": "list_projects_project_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LiteLLM_ProjectTable" }, "type": "array", "title": "Response List Projects Project List Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/customer/block": { "post": { "tags": [ "Customer Management" ], "summary": "Block User", "description": "[BETA] Reject calls with this end-user id\n\nParameters:\n- user_ids (List[str], required): The unique `user_id`s for the users to block\n\n (any /chat/completion call with this user={end-user-id} param, will be rejected.)\n\n ```\n curl -X POST \"http://0.0.0.0:8000/user/block\"\n -H \"Authorization: Bearer sk-1234\"\n -d '{\n \"user_ids\": [, ...]\n }'\n ```", "operationId": "block_user_customer_block_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockUsers" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/customer/unblock": { "post": { "tags": [ "Customer Management" ], "summary": "Unblock User", "description": "[BETA] Unblock calls with this user id\n\nExample\n```\ncurl -X POST \"http://0.0.0.0:8000/user/unblock\"\n-H \"Authorization: Bearer sk-1234\"\n-d '{\n\"user_ids\": [, ...]\n}'\n```", "operationId": "unblock_user_customer_unblock_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BlockUsers" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/customer/new": { "post": { "tags": [ "Customer Management" ], "summary": "New End User", "description": "Allow creating a new Customer \n\n\nParameters:\n- user_id: str - The unique identifier for the user.\n- alias: Optional[str] - A human-friendly alias for the user.\n- blocked: bool - Flag to allow or disallow requests for this end-user. Default is False.\n- max_budget: Optional[float] - The maximum budget allocated to the user. Either 'max_budget' or 'budget_id' should be provided, not both.\n- budget_id: Optional[str] - The identifier for an existing budget allocated to the user. Either 'max_budget' or 'budget_id' should be provided, not both.\n- allowed_model_region: Optional[Union[Literal[\"eu\"], Literal[\"us\"]]] - Require all user requests to use models in this specific region.\n- default_model: Optional[str] - If no equivalent model in the allowed region, default all requests to this model.\n- metadata: Optional[dict] = Metadata for customer, store information for customer. Example metadata = {\"data_training_opt_out\": True}\n- budget_duration: Optional[str] - Budget is reset at the end of specified duration. If not set, budget is never reset. You can set duration as seconds (\"30s\"), minutes (\"30m\"), hours (\"30h\"), days (\"30d\").\n- tpm_limit: Optional[int] - [Not Implemented Yet] Specify tpm limit for a given customer (Tokens per minute)\n- rpm_limit: Optional[int] - [Not Implemented Yet] Specify rpm limit for a given customer (Requests per minute)\n- model_max_budget: Optional[dict] - [Not Implemented Yet] Specify max budget for a given model. Example: {\"openai/gpt-4o-mini\": {\"max_budget\": 100.0, \"budget_duration\": \"1d\"}}\n- max_parallel_requests: Optional[int] - [Not Implemented Yet] Specify max parallel requests for a given customer.\n- soft_budget: Optional[float] - [Not Implemented Yet] Get alerts when customer crosses given budget, doesn't block requests.\n- spend: Optional[float] - Specify initial spend for a given customer.\n- budget_reset_at: Optional[str] - Specify the date and time when the budget should be reset.\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - Customer-specific object permissions to control access to resources.\n Supported fields:\n * mcp_servers: List[str] - List of allowed MCP server IDs\n * mcp_access_groups: List[str] - List of MCP access group names\n * mcp_tool_permissions: Dict[str, List[str]] - Map of server ID to allowed tool names (e.g., {\"server_1\": [\"tool_a\", \"tool_b\"]})\n * vector_stores: List[str] - List of allowed vector store IDs\n * agents: List[str] - List of allowed agent IDs\n * agent_access_groups: List[str] - List of agent access group names\n Example: {\"mcp_servers\": [\"server_1\", \"server_2\"], \"vector_stores\": [\"vector_store_1\"], \"agents\": [\"agent_1\"]}\n IF null or {} then no object-level restrictions apply.\n\n\n- Allow specifying allowed regions \n- Allow specifying default model\n\nExample curl:\n```\ncurl --location 'http://0.0.0.0:4000/customer/new' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"user_id\" : \"ishaan-jaff-3\",\n \"allowed_region\": \"eu\",\n \"budget_id\": \"free_tier\",\n \"default_model\": \"azure/gpt-3.5-turbo-eu\"\n }'\n\n# With object permissions\ncurl -L -X POST 'http://localhost:4000/customer/new' -H 'Authorization: Bearer sk-1234' -H 'Content-Type: application/json' -d '{\n \"user_id\": \"user_1\",\n \"object_permission\": {\n \"mcp_servers\": [\"server_1\"],\n \"mcp_access_groups\": [\"public_group\"],\n \"vector_stores\": [\"vector_store_1\"]\n }\n }'\n\n # return end-user object\n```\n\nNOTE: This used to be called `/end_user/new`, we will still be maintaining compatibility for /end_user/XXX for these endpoints", "operationId": "new_end_user_customer_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewCustomerRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/customer/info": { "get": { "tags": [ "Customer Management" ], "summary": "End User Info", "description": "Get information about an end-user. An `end_user` is a customer (external user) of the proxy.\n\nParameters:\n- end_user_id (str, required): The unique identifier for the end-user\n\nExample curl:\n```\ncurl -X GET 'http://localhost:4000/customer/info?end_user_id=test-litellm-user-4' -H 'Authorization: Bearer sk-1234'\n```", "operationId": "end_user_info_customer_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "end_user_id", "in": "query", "required": true, "schema": { "type": "string", "description": "End User ID in the request parameters", "title": "End User Id" }, "description": "End User ID in the request parameters" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_EndUserTable" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/customer/update": { "post": { "tags": [ "Customer Management" ], "summary": "Update End User", "description": "Example curl \n\nParameters:\n- user_id: str\n- alias: Optional[str] = None # human-friendly alias\n- blocked: bool = False # allow/disallow requests for this end-user\n- max_budget: Optional[float] = None\n- budget_id: Optional[str] = None # give either a budget_id or max_budget\n- allowed_model_region: Optional[AllowedModelRegion] = (\n None # require all user requests to use models in this specific region\n)\n- default_model: Optional[str] = (\n None # if no equivalent model in allowed region - default all requests to this model\n)\n- object_permission: Optional[LiteLLM_ObjectPermissionBase] - Customer-specific object permissions to control access to resources.\n Supported fields:\n * mcp_servers: List[str] - List of allowed MCP server IDs\n * mcp_access_groups: List[str] - List of MCP access group names\n * mcp_tool_permissions: Dict[str, List[str]] - Map of server ID to allowed tool names\n * vector_stores: List[str] - List of allowed vector store IDs\n * agents: List[str] - List of allowed agent IDs\n * agent_access_groups: List[str] - List of agent access group names\n Example: {\"mcp_servers\": [\"server_1\"], \"vector_stores\": [\"vector_store_1\"]}\n IF null or {} then no object-level restrictions apply.\n\nExample curl:\n```\ncurl --location 'http://0.0.0.0:4000/customer/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"user_id\": \"test-litellm-user-4\",\n \"budget_id\": \"paid_tier\"\n}'\n\n# Updating object permissions\ncurl -L -X POST 'http://localhost:4000/customer/update' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"user_id\": \"user_1\",\n \"object_permission\": {\n \"mcp_servers\": [\"server_3\"],\n \"vector_stores\": [\"vector_store_2\", \"vector_store_3\"]\n }\n }'\n\nSee below for all params\n```", "operationId": "update_end_user_customer_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateCustomerRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/customer/delete": { "post": { "tags": [ "Customer Management" ], "summary": "Delete End User", "description": "Delete multiple end-users.\n\nParameters:\n- user_ids (List[str], required): The unique `user_id`s for the users to delete\n\nExample curl:\n```\ncurl --location 'http://0.0.0.0:4000/customer/delete' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data '{\n \"user_ids\" :[\"ishaan-jaff-5\"]\n}'\n\nSee below for all params \n```", "operationId": "delete_end_user_customer_delete_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteCustomerRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/customer/list": { "get": { "tags": [ "Customer Management" ], "summary": "List End User", "description": "[Admin-only] List all available customers\n\nExample curl:\n```\ncurl --location --request GET 'http://0.0.0.0:4000/customer/list' --header 'Authorization: Bearer sk-1234'\n```", "operationId": "list_end_user_customer_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/LiteLLM_EndUserTable" }, "type": "array", "title": "Response List End User Customer List Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/customer/daily/activity": { "get": { "tags": [ "Customer Management" ], "summary": "Get Customer Daily Activity", "description": "Get daily activity for specific organizations or all accessible organizations.", "operationId": "get_customer_daily_activity_customer_daily_activity_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "end_user_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End User Ids" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" } }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" } }, { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } }, { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } }, { "name": "exclude_end_user_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Exclude End User Ids" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/spend/tags": { "get": { "tags": [ "Budget & Spend Tracking" ], "summary": "View Spend Tags", "description": "LiteLLM Enterprise - View Spend Per Request Tag\n\nExample Request:\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/tags\" -H \"Authorization: Bearer sk-1234\"\n```\n\nSpend with Start Date and End Date\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/tags?start_date=2022-01-01&end_date=2022-02-01\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "view_spend_tags_spend_tags_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time from which to start viewing key spend", "title": "Start Date" }, "description": "Time from which to start viewing key spend" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time till which to view key spend", "title": "End Date" }, "description": "Time till which to view key spend" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiteLLM_SpendLogs" }, "title": "Response 200 View Spend Tags Spend Tags Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/global/spend/report": { "get": { "tags": [ "Budget & Spend Tracking" ], "summary": "Get Global Spend Report", "description": "Get Daily Spend per Team, based on specific startTime and endTime. Per team, view usage by each key, model\n[\n {\n \"group-by-day\": \"2024-05-10\",\n \"teams\": [\n {\n \"team_name\": \"team-1\"\n \"spend\": 10,\n \"keys\": [\n \"key\": \"1213\",\n \"usage\": {\n \"model-1\": {\n \"cost\": 12.50,\n \"input_tokens\": 1000,\n \"output_tokens\": 5000,\n \"requests\": 100\n },\n \"audio-modelname1\": {\n \"cost\": 25.50,\n \"seconds\": 25,\n \"requests\": 50\n },\n }\n }\n ]\n ]\n}", "operationId": "get_global_spend_report_global_spend_report_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time from which to start viewing spend", "title": "Start Date" }, "description": "Time from which to start viewing spend" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time till which to view spend", "title": "End Date" }, "description": "Time till which to view spend" }, { "name": "group_by", "in": "query", "required": false, "schema": { "anyOf": [ { "enum": [ "team", "customer", "api_key" ], "type": "string" }, { "type": "null" } ], "description": "Group spend by internal team or customer or api_key", "default": "team", "title": "Group By" }, "description": "Group spend by internal team or customer or api_key" }, { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "View spend for a specific api_key. Example api_key='sk-1234", "title": "Api Key" }, "description": "View spend for a specific api_key. Example api_key='sk-1234" }, { "name": "internal_user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "View spend for a specific internal_user_id. Example internal_user_id='1234", "title": "Internal User Id" }, "description": "View spend for a specific internal_user_id. Example internal_user_id='1234" }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "View spend for a specific team_id. Example team_id='1234", "title": "Team Id" }, "description": "View spend for a specific team_id. Example team_id='1234" }, { "name": "customer_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "View spend for a specific customer_id. Example customer_id='1234. Can be used in conjunction with team_id as well.", "title": "Customer Id" }, "description": "View spend for a specific customer_id. Example customer_id='1234. Can be used in conjunction with team_id as well." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiteLLM_SpendLogs" }, "title": "Response 200 Get Global Spend Report Global Spend Report Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/global/spend/tags": { "get": { "tags": [ "Budget & Spend Tracking" ], "summary": "Global View Spend Tags", "description": "LiteLLM Enterprise - View Spend Per Request Tag. Used by LiteLLM UI\n\nExample Request:\n```\ncurl -X GET \"http://0.0.0.0:4000/spend/tags\" -H \"Authorization: Bearer sk-1234\"\n```\n\nSpend with Start Date and End Date\n```\ncurl -X GET \"http://0.0.0.0:4000/spend/tags?start_date=2022-01-01&end_date=2022-02-01\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "global_view_spend_tags_global_spend_tags_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time from which to start viewing key spend", "title": "Start Date" }, "description": "Time from which to start viewing key spend" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time till which to view key spend", "title": "End Date" }, "description": "Time till which to view key spend" }, { "name": "tags", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "comman separated tags to filter on", "title": "Tags" }, "description": "comman separated tags to filter on" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiteLLM_SpendLogs" }, "title": "Response 200 Global View Spend Tags Global Spend Tags Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/spend/calculate": { "post": { "tags": [ "Budget & Spend Tracking" ], "summary": "Calculate Spend", "description": "Accepts all the params of completion_cost.\n\nCalculate spend **before** making call:\n\nNote: If you see a spend of $0.0 you need to set custom_pricing for your model: https://docs.litellm.ai/docs/proxy/custom_pricing\n\n```\ncurl --location 'http://localhost:4000/spend/calculate'\n--header 'Authorization: Bearer sk-1234'\n--header 'Content-Type: application/json'\n--data '{\n \"model\": \"anthropic.claude-v2\",\n \"messages\": [{\"role\": \"user\", \"content\": \"Hey, how'''s it going?\"}]\n}'\n```\n\nCalculate spend **after** making call:\n\n```\ncurl --location 'http://localhost:4000/spend/calculate'\n--header 'Authorization: Bearer sk-1234'\n--header 'Content-Type: application/json'\n--data '{\n \"completion_response\": {\n \"id\": \"chatcmpl-123\",\n \"object\": \"chat.completion\",\n \"created\": 1677652288,\n \"model\": \"gpt-3.5-turbo-0125\",\n \"system_fingerprint\": \"fp_44709d6fcb\",\n \"choices\": [{\n \"index\": 0,\n \"message\": {\n \"role\": \"assistant\",\n \"content\": \"Hello there, how may I assist you today?\"\n },\n \"logprobs\": null,\n \"finish_reason\": \"stop\"\n }]\n \"usage\": {\n \"prompt_tokens\": 9,\n \"completion_tokens\": 12,\n \"total_tokens\": 21\n }\n }\n}'\n```", "operationId": "calculate_spend_spend_calculate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpendCalculateRequest" } } }, "required": true }, "responses": { "200": { "description": "The calculated cost", "content": { "application/json": { "schema": { "properties": { "cost": { "type": "number", "description": "The calculated cost", "example": 0.0 } }, "type": "object" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/spend/logs/v2": { "get": { "tags": [ "Budget & Spend Tracking" ], "summary": "Ui View Spend Logs", "description": "View spend logs with pagination support.\nAvailable at both `/spend/logs/v2` (public API) and `/spend/logs/ui` (internal UI).\n\nReturns paginated response with data, total, page, page_size, and total_pages.\n\nExample:\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/logs/v2?start_date=2025-11-25%2000:00:00&end_date=2025-11-26%2023:59:59&page=1&page_size=50\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "ui_view_spend_logs_spend_logs_v2_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Get spend logs based on api key", "title": "Api Key" }, "description": "Get spend logs based on api key" }, { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Get spend logs based on user_id", "title": "User Id" }, "description": "Get spend logs based on user_id" }, { "name": "request_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "request_id to get spend logs for specific request_id", "title": "Request Id" }, "description": "request_id to get spend logs for specific request_id" }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter spend logs by team_id", "title": "Team Id" }, "description": "Filter spend logs by team_id" }, { "name": "min_spend", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Filter logs with spend greater than or equal to this value", "title": "Min Spend" }, "description": "Filter logs with spend greater than or equal to this value" }, { "name": "max_spend", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "description": "Filter logs with spend less than or equal to this value", "title": "Max Spend" }, "description": "Filter logs with spend less than or equal to this value" }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time from which to start viewing key spend", "title": "Start Date" }, "description": "Time from which to start viewing key spend" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time till which to view key spend", "title": "End Date" }, "description": "Time till which to view key spend" }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number for pagination", "default": 1, "title": "Page" }, "description": "Page number for pagination" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Number of items per page", "default": 50, "title": "Page Size" }, "description": "Number of items per page" }, { "name": "status_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs by status (e.g., success, failure)", "title": "Status Filter" }, "description": "Filter logs by status (e.g., success, failure)" }, { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs by model", "title": "Model" }, "description": "Filter logs by model" }, { "name": "model_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs by model ID (litellm model deployment id)", "title": "Model Id" }, "description": "Filter logs by model ID (litellm model deployment id)" }, { "name": "key_alias", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs by key alias", "title": "Key Alias" }, "description": "Filter logs by key alias" }, { "name": "end_user", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs by end user", "title": "End User" }, "description": "Filter logs by end user" }, { "name": "error_code", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs by error code (e.g., '404', '500')", "title": "Error Code" }, "description": "Filter logs by error code (e.g., '404', '500')" }, { "name": "error_message", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs by error message (partial string match)", "title": "Error Message" }, "description": "Filter logs by error message (partial string match)" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort logs by field: spend, total_tokens, startTime, or endTime", "default": "startTime", "title": "Sort By" }, "description": "Sort logs by field: spend, total_tokens, startTime, or endTime" }, { "name": "sort_order", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Sort order: asc or desc", "default": "desc", "title": "Sort Order" }, "description": "Sort order: asc or desc" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response 200 Ui View Spend Logs Spend Logs V2 Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/spend/logs": { "get": { "tags": [ "Budget & Spend Tracking" ], "summary": "View Spend Logs", "description": "[DEPRECATED] This endpoint is not paginated and can cause performance issues.\nPlease use `/spend/logs/v2` instead for paginated access to spend logs.\n\nView all spend logs, if request_id is provided, only logs for that request_id will be returned\n\nWhen start_date and end_date are provided:\n- summarize=true (default): Returns aggregated spend data grouped by date (maintains backward compatibility)\n- summarize=false: Returns filtered individual log entries within the date range\n\nExample Request for all logs\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/logs\" -H \"Authorization: Bearer sk-1234\"\n```\n\nExample Request for specific request_id\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/logs?request_id=chatcmpl-6dcb2540-d3d7-4e49-bb27-291f863f112e\" -H \"Authorization: Bearer sk-1234\"\n```\n\nExample Request for specific api_key\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/logs?api_key=sk-test-example-key-123\" -H \"Authorization: Bearer sk-1234\"\n```\n\nExample Request for specific user_id\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/logs?user_id=ishaan@berri.ai\" -H \"Authorization: Bearer sk-1234\"\n```\n\nExample Request for date range with individual logs (unsummarized)\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/logs?start_date=2024-01-01&end_date=2024-01-02&summarize=false\" -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "view_spend_logs_spend_logs_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Get spend logs based on api key", "title": "Api Key" }, "description": "Get spend logs based on api key" }, { "name": "user_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Get spend logs based on user_id", "title": "User Id" }, "description": "Get spend logs based on user_id" }, { "name": "request_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "request_id to get spend logs for specific request_id. If none passed then pass spend logs for all requests", "title": "Request Id" }, "description": "request_id to get spend logs for specific request_id. If none passed then pass spend logs for all requests" }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time from which to start viewing key spend", "title": "Start Date" }, "description": "Time from which to start viewing key spend" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Time till which to view key spend", "title": "End Date" }, "description": "Time till which to view key spend" }, { "name": "summarize", "in": "query", "required": false, "schema": { "type": "boolean", "description": "When start_date and end_date are provided, summarize=true returns aggregated data by date (legacy behavior), summarize=false returns filtered individual logs", "default": true, "title": "Summarize" }, "description": "When start_date and end_date are provided, summarize=true returns aggregated data by date (legacy behavior), summarize=false returns filtered individual logs" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/LiteLLM_SpendLogs" }, "title": "Response 200 View Spend Logs Spend Logs Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/global/spend/reset": { "post": { "tags": [ "Budget & Spend Tracking" ], "summary": "Global Spend Reset", "description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nGlobally reset spend for All API Keys and Teams, maintain LiteLLM_SpendLogs\n\n1. LiteLLM_SpendLogs will maintain the logs on spend, no data gets deleted from there\n2. LiteLLM_VerificationTokens spend will be set = 0\n3. LiteLLM_TeamTable spend will be set = 0", "operationId": "global_spend_reset_global_spend_reset_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/provider/budgets": { "get": { "summary": "Provider Budgets", "description": "Provider Budget Routing - Get Budget, Spend Details https://docs.litellm.ai/docs/proxy/provider_budget_routing\n\nUse this endpoint to check current budget, spend and budget reset time for a provider\n\nExample Request\n\n```bash\ncurl -X GET http://localhost:4000/provider/budgets -H \"Content-Type: application/json\" -H \"Authorization: Bearer sk-1234\"\n```\n\nExample Response\n\n```json\n{\n \"providers\": {\n \"openai\": {\n \"budget_limit\": 1e-12,\n \"time_period\": \"1d\",\n \"spend\": 0.0,\n \"budget_reset_at\": null\n },\n \"azure\": {\n \"budget_limit\": 100.0,\n \"time_period\": \"1d\",\n \"spend\": 0.0,\n \"budget_reset_at\": null\n },\n \"anthropic\": {\n \"budget_limit\": 100.0,\n \"time_period\": \"10d\",\n \"spend\": 0.0,\n \"budget_reset_at\": null\n },\n \"vertex_ai\": {\n \"budget_limit\": 100.0,\n \"time_period\": \"12d\",\n \"spend\": 0.0,\n \"budget_reset_at\": null\n }\n }\n}\n```", "operationId": "provider_budgets_provider_budgets_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ProviderBudgetResponse" } } } } } } }, "/cloudzero/settings": { "get": { "tags": [ "CloudZero" ], "summary": "Get Cloudzero Settings", "description": "View current CloudZero settings.\n\nReturns the current CloudZero configuration with the API key masked for security.\nOnly the first 4 and last 4 characters of the API key are shown.\nReturns null/empty values when settings are not configured (consistent with other settings endpoints).\n\nOnly admin users can view CloudZero settings.", "operationId": "get_cloudzero_settings_cloudzero_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroSettingsView" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "put": { "tags": [ "CloudZero" ], "summary": "Update Cloudzero Settings", "description": "Update existing CloudZero settings.\n\nAllows updating individual CloudZero configuration fields without requiring all fields.\nOnly provided fields will be updated; others will remain unchanged.\n\nParameters:\n- api_key: (Optional) New CloudZero API key for authentication\n- connection_id: (Optional) New CloudZero connection ID for data submission\n- timezone: (Optional) New timezone for date handling\n\nOnly admin users can update CloudZero settings.", "operationId": "update_cloudzero_settings_cloudzero_settings_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroSettingsUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroInitResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cloudzero/init": { "post": { "tags": [ "CloudZero" ], "summary": "Init Cloudzero Settings", "description": "Initialize CloudZero settings and store in the database.\n\nThis endpoint stores the CloudZero API key, connection ID, and timezone configuration\nin the proxy database for use by the CloudZero logger.\n\nParameters:\n- api_key: CloudZero API key for authentication\n- connection_id: CloudZero connection ID for data submission\n- timezone: Timezone for date handling (default: UTC)\n\nOnly admin users can configure CloudZero settings.", "operationId": "init_cloudzero_settings_cloudzero_init_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroInitRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroInitResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cloudzero/dry-run": { "post": { "tags": [ "CloudZero" ], "summary": "Cloudzero Dry Run Export", "description": "Perform a dry run export using the CloudZero logger.\n\nThis endpoint uses the CloudZero logger to perform a dry run export,\nwhich returns the data that would be exported without actually sending it to CloudZero.\n\nParameters:\n- limit: Optional limit on number of records to process (default: 10000)\n\nReturns:\n- usage_data: Sample of the raw usage data (first 50 records)\n- cbf_data: CloudZero CBF formatted data ready for export\n- summary: Statistics including total cost, tokens, and record counts\n\nOnly admin users can perform CloudZero exports.", "operationId": "cloudzero_dry_run_export_cloudzero_dry_run_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroExportRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroExportResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cloudzero/export": { "post": { "tags": [ "CloudZero" ], "summary": "Cloudzero Export", "description": "Perform an actual export using the CloudZero logger.\n\nThis endpoint uses the CloudZero logger to export usage data to CloudZero AnyCost API.\n\nParameters:\n- limit: Optional limit on number of records to export\n- operation: CloudZero operation type (\"replace_hourly\" or \"sum\", default: \"replace_hourly\")\n\nOnly admin users can perform CloudZero exports.", "operationId": "cloudzero_export_cloudzero_export_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroExportRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroExportResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cloudzero/delete": { "delete": { "tags": [ "CloudZero" ], "summary": "Delete Cloudzero Settings", "description": "Delete CloudZero settings from the database.\n\nThis endpoint removes the CloudZero configuration (API key, connection ID, timezone)\nfrom the proxy database. Only the CloudZero settings entry will be deleted;\nother configuration values in the database will remain unchanged.\n\nOnly admin users can delete CloudZero settings.", "operationId": "delete_cloudzero_settings_cloudzero_delete_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CloudZeroInitResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vantage/settings": { "get": { "tags": [ "Vantage" ], "summary": "Get Vantage Settings", "description": "View current Vantage settings.\n\nReturns the current Vantage configuration with the API key masked for security.\nOnly admin users can view Vantage settings.", "operationId": "get_vantage_settings_vantage_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageSettingsView" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "put": { "tags": [ "Vantage" ], "summary": "Update Vantage Settings", "description": "Update existing Vantage settings.\n\nAllows updating individual Vantage configuration fields without requiring all fields.\nOnly admin users can update Vantage settings.", "operationId": "update_vantage_settings_vantage_settings_put", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageSettingsUpdate" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageInitResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vantage/init": { "post": { "tags": [ "Vantage" ], "summary": "Init Vantage Settings", "description": "Initialize Vantage settings and store in the database.\n\nParameters:\n- api_key: Vantage API key for authentication\n- integration_token: Vantage integration token for the cost-import endpoint\n- base_url: Vantage API base URL (default: https://api.vantage.sh)\n\nOnly admin users can configure Vantage settings.", "operationId": "init_vantage_settings_vantage_init_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageInitRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageInitResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vantage/dry-run": { "post": { "tags": [ "Vantage" ], "summary": "Vantage Dry Run Export", "description": "Perform a dry run export using the Vantage logger.\n\nReturns the data that would be exported without actually sending it to Vantage.\n\nParameters:\n- limit: Limit on number of records to preview (default: 500)\n\nOnly admin users can perform Vantage exports.", "operationId": "vantage_dry_run_export_vantage_dry_run_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageDryRunRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageExportResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vantage/export": { "post": { "tags": [ "Vantage" ], "summary": "Vantage Export", "description": "Perform an actual export using the Vantage logger.\n\nExports usage data in FOCUS CSV format to the Vantage API.\n\nParameters:\n- limit: Optional limit on number of records to export\n- start_time_utc: Optional start time for data export\n- end_time_utc: Optional end time for data export\n\nOnly admin users can perform Vantage exports.", "operationId": "vantage_export_vantage_export_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageExportRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageExportResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/vantage/delete": { "delete": { "tags": [ "Vantage" ], "summary": "Delete Vantage Settings", "description": "Delete Vantage settings from the database.\n\nOnly admin users can delete Vantage settings.", "operationId": "delete_vantage_settings_vantage_delete_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/VantageInitResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cache/ping": { "get": { "tags": [ "caching" ], "summary": "Cache Ping", "description": "Endpoint for checking if cache can be pinged", "operationId": "cache_ping_cache_ping_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CachePingResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cache/delete": { "post": { "tags": [ "caching", "caching" ], "summary": "Cache Delete", "description": "Endpoint for deleting a key from the cache. All responses from litellm proxy have `x-litellm-cache-key` in the headers\n\nParameters:\n- **keys**: *Optional[List[str]]* - A list of keys to delete from the cache. Example {\"keys\": [\"key1\", \"key2\"]}\n\n```shell\ncurl -X POST \"http://0.0.0.0:4000/cache/delete\" -H \"Authorization: Bearer sk-1234\" -d '{\"keys\": [\"key1\", \"key2\"]}'\n```", "operationId": "cache_delete_cache_delete_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cache/redis/info": { "get": { "tags": [ "caching" ], "summary": "Cache Redis Info", "description": "Endpoint for getting /redis/info", "operationId": "cache_redis_info_cache_redis_info_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cache/flushall": { "post": { "tags": [ "caching", "caching" ], "summary": "Cache Flushall", "description": "A function to flush all items from the cache. (All items will be deleted from the cache with this)\nRaises HTTPException if the cache is not initialized or if the cache type does not support flushing.\nReturns a dictionary with the status of the operation.\n\nUsage:\n```\ncurl -X POST http://0.0.0.0:4000/cache/flushall -H \"Authorization: Bearer sk-1234\"\n```", "operationId": "cache_flushall_cache_flushall_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/list": { "get": { "tags": [ "Guardrails" ], "summary": "List Guardrails", "description": "List the guardrails that are available on the proxy server\n\n\ud83d\udc49 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start)\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/guardrails/list\" -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"guardrails\": [\n {\n \"guardrail_name\": \"bedrock-pre-guard\",\n \"guardrail_info\": {\n \"params\": [\n {\n \"name\": \"toxicity_score\",\n \"type\": \"float\",\n \"description\": \"Score between 0-1 indicating content toxicity level\"\n },\n {\n \"name\": \"pii_detection\",\n \"type\": \"boolean\"\n }\n ]\n }\n }\n ]\n}\n```", "operationId": "list_guardrails_guardrails_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListGuardrailsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v2/guardrails/list": { "get": { "tags": [ "Guardrails" ], "summary": "List Guardrails V2", "description": "List the guardrails that are available in the database using GuardrailRegistry\n\n\ud83d\udc49 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start)\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/v2/guardrails/list\" -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"guardrails\": [\n {\n \"guardrail_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"guardrail_name\": \"my-bedrock-guard\",\n \"litellm_params\": {\n \"guardrail\": \"bedrock\",\n \"mode\": \"pre_call\",\n \"guardrailIdentifier\": \"ff6ujrregl1q\",\n \"guardrailVersion\": \"DRAFT\",\n \"default_on\": true\n },\n \"guardrail_info\": {\n \"description\": \"Bedrock content moderation guardrail\"\n }\n }\n ]\n}\n```", "operationId": "list_guardrails_v2_v2_guardrails_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListGuardrailsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails": { "post": { "tags": [ "Guardrails" ], "summary": "Create Guardrail", "description": "Create a new guardrail\n\n\ud83d\udc49 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start)\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/guardrails\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"guardrail\": {\n \"guardrail_name\": \"my-bedrock-guard\",\n \"litellm_params\": {\n \"guardrail\": \"bedrock\",\n \"mode\": \"pre_call\",\n \"guardrailIdentifier\": \"ff6ujrregl1q\",\n \"guardrailVersion\": \"DRAFT\",\n \"default_on\": true\n },\n \"guardrail_info\": {\n \"description\": \"Bedrock content moderation guardrail\"\n }\n }\n }'\n```\n\nExample Response:\n```json\n{\n \"guardrail_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"guardrail_name\": \"my-bedrock-guard\",\n \"litellm_params\": {\n \"guardrail\": \"bedrock\",\n \"mode\": \"pre_call\",\n \"guardrailIdentifier\": \"ff6ujrregl1q\",\n \"guardrailVersion\": \"DRAFT\",\n \"default_on\": true\n },\n \"guardrail_info\": {\n \"description\": \"Bedrock content moderation guardrail\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\"\n}\n```", "operationId": "create_guardrail_guardrails_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateGuardrailRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/{guardrail_id}": { "put": { "tags": [ "Guardrails" ], "summary": "Update Guardrail", "description": "Update an existing guardrail\n\n\ud83d\udc49 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start)\n\nExample Request:\n```bash\ncurl -X PUT \"http://localhost:4000/guardrails/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"guardrail\": {\n \"guardrail_name\": \"updated-bedrock-guard\",\n \"litellm_params\": {\n \"guardrail\": \"bedrock\",\n \"mode\": \"pre_call\",\n \"guardrailIdentifier\": \"ff6ujrregl1q\",\n \"guardrailVersion\": \"1.0\",\n \"default_on\": true\n },\n \"guardrail_info\": {\n \"description\": \"Updated Bedrock content moderation guardrail\"\n }\n }\n }'\n```\n\nExample Response:\n```json\n{\n \"guardrail_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"guardrail_name\": \"updated-bedrock-guard\",\n \"litellm_params\": {\n \"guardrail\": \"bedrock\",\n \"mode\": \"pre_call\",\n \"guardrailIdentifier\": \"ff6ujrregl1q\",\n \"guardrailVersion\": \"1.0\",\n \"default_on\": true\n },\n \"guardrail_info\": {\n \"description\": \"Updated Bedrock content moderation guardrail\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T13:45:12.345Z\"\n}\n```", "operationId": "update_guardrail_guardrails__guardrail_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateGuardrailRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Guardrails" ], "summary": "Delete Guardrail", "description": "Delete a guardrail\n\n\ud83d\udc49 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start)\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/guardrails/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Guardrail 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```", "operationId": "delete_guardrail_guardrails__guardrail_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "Guardrails" ], "summary": "Patch Guardrail", "description": "Partially update an existing guardrail\n\n\ud83d\udc49 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start)\n\nThis endpoint allows updating specific fields of a guardrail without sending the entire object.\nOnly the following fields can be updated:\n- guardrail_name: The name of the guardrail\n- default_on: Whether the guardrail is enabled by default\n- guardrail_info: Additional information about the guardrail\n\nExample Request:\n```bash\ncurl -X PATCH \"http://localhost:4000/guardrails/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"guardrail_name\": \"updated-name\",\n \"default_on\": true,\n \"guardrail_info\": {\n \"description\": \"Updated description\"\n }\n }'\n```\n\nExample Response:\n```json\n{\n \"guardrail_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"guardrail_name\": \"updated-name\",\n \"litellm_params\": {\n \"guardrail\": \"bedrock\",\n \"mode\": \"pre_call\",\n \"guardrailIdentifier\": \"ff6ujrregl1q\",\n \"guardrailVersion\": \"DRAFT\",\n \"default_on\": true\n },\n \"guardrail_info\": {\n \"description\": \"Updated description\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T14:22:33.456Z\"\n}\n```", "operationId": "patch_guardrail_guardrails__guardrail_id__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchGuardrailRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Guardrails" ], "summary": "Get Guardrail Info", "description": "Get detailed information about a specific guardrail by ID\n\n\ud83d\udc49 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start)\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/guardrails/123e4567-e89b-12d3-a456-426614174000/info\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"guardrail_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"guardrail_name\": \"my-bedrock-guard\",\n \"litellm_params\": {\n \"guardrail\": \"bedrock\",\n \"mode\": \"pre_call\",\n \"guardrailIdentifier\": \"ff6ujrregl1q\",\n \"guardrailVersion\": \"DRAFT\",\n \"default_on\": true\n },\n \"guardrail_info\": {\n \"description\": \"Bedrock content moderation guardrail\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\"\n}\n```", "operationId": "get_guardrail_info_guardrails__guardrail_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/register": { "post": { "tags": [ "Guardrails" ], "summary": "Register Guardrail", "description": "Register a guardrail for onboarding (team submission).\n\nAccepts a guardrail config in the\n[Generic Guardrail API](https://docs.litellm.ai/docs/adding_provider/generic_guardrail_api) format.\nThe submission is stored with status `pending_review` until an admin approves it.", "operationId": "register_guardrail_guardrails_register_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterGuardrailRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RegisterGuardrailResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/submissions": { "get": { "tags": [ "Guardrails" ], "summary": "List Guardrail Submissions", "description": "List team guardrail submissions. Returns only guardrails with a team_id.\n\nAdmins see all submissions. Non-admin users see submissions for teams they are\na member of.\n\nStatus values: pending_review (team-registered, awaiting approval), active (approved), rejected.\n\nOptional filters:\n- status: pending_review | active | rejected\n- team_id: filter by specific team (non-admins must be a member of that team)\n- search: name/description", "operationId": "list_guardrail_submissions_guardrails_submissions_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status" } }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" } }, { "name": "search", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListGuardrailSubmissionsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/submissions/{guardrail_id}": { "get": { "tags": [ "Guardrails" ], "summary": "Get Guardrail Submission", "description": "Get a single guardrail submission by id. Non-admins may only access submissions for teams they belong to.", "operationId": "get_guardrail_submission_guardrails_submissions__guardrail_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/GuardrailSubmissionItem" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/submissions/{guardrail_id}/approve": { "post": { "tags": [ "Guardrails" ], "summary": "Approve Guardrail Submission", "description": "Approve a pending guardrail submission: set status to active and initialize in memory (admin only).", "operationId": "approve_guardrail_submission_guardrails_submissions__guardrail_id__approve_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/submissions/{guardrail_id}/reject": { "post": { "tags": [ "Guardrails" ], "summary": "Reject Guardrail Submission", "description": "Reject a guardrail submission (admin only).", "operationId": "reject_guardrail_submission_guardrails_submissions__guardrail_id__reject_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/{guardrail_id}/info": { "get": { "tags": [ "Guardrails" ], "summary": "Get Guardrail Info", "description": "Get detailed information about a specific guardrail by ID\n\n\ud83d\udc49 [Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/quick_start)\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/guardrails/123e4567-e89b-12d3-a456-426614174000/info\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"guardrail_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"guardrail_name\": \"my-bedrock-guard\",\n \"litellm_params\": {\n \"guardrail\": \"bedrock\",\n \"mode\": \"pre_call\",\n \"guardrailIdentifier\": \"ff6ujrregl1q\",\n \"guardrailVersion\": \"DRAFT\",\n \"default_on\": true\n },\n \"guardrail_info\": {\n \"description\": \"Bedrock content moderation guardrail\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\"\n}\n```", "operationId": "get_guardrail_info_guardrails__guardrail_id__info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/ui/add_guardrail_settings": { "get": { "tags": [ "Guardrails" ], "summary": "Get Guardrail Ui Settings", "description": "Get the UI settings for the guardrails\n\nReturns:\n- Supported entities for guardrails\n- Supported modes for guardrails\n- PII entity categories for UI organization\n- Content filter settings (patterns and categories)", "operationId": "get_guardrail_ui_settings_guardrails_ui_add_guardrail_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/ui/category_yaml/{category_name}": { "get": { "tags": [ "Guardrails" ], "summary": "Get Category Yaml", "description": "Get the YAML or JSON content for a specific content filter category.\n\nArgs:\n category_name: The name of the category (e.g., \"bias_gender\", \"harmful_self_harm\")\n\nReturns:\n The raw YAML or JSON content of the category file with file type indicator", "operationId": "get_category_yaml_guardrails_ui_category_yaml__category_name__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "category_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Category Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/ui/major_airlines": { "get": { "tags": [ "Guardrails" ], "summary": "Get Major Airlines", "description": "Get the major airlines list from IATA (competitor intent, airline type).\nReturns airline id, match variants (pipe-separated), and tags.", "operationId": "get_major_airlines_guardrails_ui_major_airlines_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/validate_blocked_words_file": { "post": { "tags": [ "Guardrails" ], "summary": "Validate Blocked Words File", "description": "Validate a blocked_words YAML file content.\n\nArgs:\n request: Dictionary with 'file_content' key containing the YAML string\n\nReturns:\n Dictionary with 'valid' boolean and either 'message'/'errors' depending on result\n\nExample Request:\n```json\n{\n \"file_content\": \"blocked_words:\\n - keyword: \\\"test\\\"\\n action: \\\"BLOCK\\\"\"\n}\n```\n\nExample Success Response:\n```json\n{\n \"valid\": true,\n \"message\": \"Valid YAML file with 2 blocked words\"\n}\n```\n\nExample Error Response:\n```json\n{\n \"valid\": false,\n \"errors\": [\"Entry 0: missing 'action' field\"]\n}\n```", "operationId": "validate_blocked_words_file_guardrails_validate_blocked_words_file_post", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Request" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/ui/provider_specific_params": { "get": { "tags": [ "Guardrails" ], "summary": "Get Provider Specific Params", "description": "Get provider-specific parameters for different guardrail types.\n\nReturns a dictionary mapping guardrail providers to their specific parameters,\nincluding parameter names, descriptions, and whether they are required.\n\nExample Response:\n```json\n{\n \"bedrock\": {\n \"guardrailIdentifier\": {\n \"description\": \"The ID of your guardrail on Bedrock\",\n \"required\": true,\n \"type\": null\n },\n \"guardrailVersion\": {\n \"description\": \"The version of your Bedrock guardrail (e.g., DRAFT or version number)\",\n \"required\": true,\n \"type\": null\n }\n },\n \"azure_content_safety_text_moderation\": {\n \"api_key\": {\n \"description\": \"API key for the Azure Content Safety Text Moderation guardrail\",\n \"required\": false,\n \"type\": null\n },\n \"optional_params\": {\n \"description\": \"Optional parameters for the Azure Content Safety Text Moderation guardrail\",\n \"required\": true,\n \"type\": \"nested\",\n \"fields\": {\n \"severity_threshold\": {\n \"description\": \"Severity threshold for the Azure Content Safety Text Moderation guardrail across all categories\",\n \"required\": false,\n \"type\": null\n },\n \"categories\": {\n \"description\": \"Categories to scan for the Azure Content Safety Text Moderation guardrail\",\n \"required\": false,\n \"type\": \"multiselect\",\n \"options\": [\"Hate\", \"SelfHarm\", \"Sexual\", \"Violence\"],\n \"default_value\": None\n }\n }\n }\n }\n}\n```", "operationId": "get_provider_specific_params_guardrails_ui_provider_specific_params_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/test_custom_code": { "post": { "tags": [ "Guardrails" ], "summary": "Test Custom Code Guardrail", "description": "Test custom code guardrail logic without creating a guardrail.\n\nThis endpoint allows admins to experiment with custom code guardrails by:\n1. Compiling the provided code in a sandbox\n2. Executing the apply_guardrail function with test input\n3. Returning the result (allow/block/modify)\n\n\ud83d\udc49 [Custom Code Guardrail docs](https://docs.litellm.ai/docs/proxy/guardrails/custom_code_guardrail)\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/guardrails/test_custom_code\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"custom_code\": \"def apply_guardrail(inputs, request_data, input_type):\\n for text in inputs[\\\"texts\\\"]:\\n if regex_match(text, r\\\"\\\\d{3}-\\\\d{2}-\\\\d{4}\\\"):\\n return block(\\\"SSN detected\\\")\\n return allow()\",\n \"test_input\": {\n \"texts\": [\"My SSN is 123-45-6789\"]\n },\n \"input_type\": \"request\"\n }'\n```\n\nExample Success Response (blocked):\n```json\n{\n \"success\": true,\n \"result\": {\n \"action\": \"block\",\n \"reason\": \"SSN detected\"\n },\n \"error\": null,\n \"error_type\": null\n}\n```\n\nExample Success Response (allowed):\n```json\n{\n \"success\": true,\n \"result\": {\n \"action\": \"allow\"\n },\n \"error\": null,\n \"error_type\": null\n}\n```\n\nExample Success Response (modified):\n```json\n{\n \"success\": true,\n \"result\": {\n \"action\": \"modify\",\n \"texts\": [\"My SSN is [REDACTED]\"]\n },\n \"error\": null,\n \"error_type\": null\n}\n```\n\nExample Error Response (compilation error):\n```json\n{\n \"success\": false,\n \"result\": null,\n \"error\": \"Syntax error in custom code: invalid syntax (, line 1)\",\n \"error_type\": \"compilation\"\n}\n```", "operationId": "test_custom_code_guardrail_guardrails_test_custom_code_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestCustomCodeGuardrailRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestCustomCodeGuardrailResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/apply_guardrail": { "post": { "summary": "Apply Guardrail", "description": "Apply a guardrail to text input and return the processed result.\n\nThis endpoint allows testing guardrails by applying them to custom text inputs.", "operationId": "apply_guardrail_apply_guardrail_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyGuardrailRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyGuardrailResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/apply_guardrail": { "post": { "summary": "Apply Guardrail", "description": "Apply a guardrail to text input and return the processed result.\n\nThis endpoint allows testing guardrails by applying them to custom text inputs.", "operationId": "apply_guardrail_guardrails_apply_guardrail_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyGuardrailRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ApplyGuardrailResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/guardrails/usage/overview": { "get": { "tags": [ "Guardrails" ], "summary": "Guardrails Usage Overview", "description": "Return guardrail performance overview for the dashboard.", "operationId": "guardrails_usage_overview_guardrails_usage_overview_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD", "title": "Start Date" }, "description": "YYYY-MM-DD" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD", "title": "End Date" }, "description": "YYYY-MM-DD" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageOverviewResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/usage/detail/{guardrail_id}": { "get": { "tags": [ "Guardrails" ], "summary": "Guardrails Usage Detail", "description": "Return single guardrail usage metrics and time series.", "operationId": "guardrails_usage_detail_guardrails_usage_detail__guardrail_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Guardrail Id" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" } }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageDetailResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/guardrails/usage/logs": { "get": { "tags": [ "Guardrails" ], "summary": "Guardrails Usage Logs", "description": "Return paginated run logs for a guardrail (or policy) from SpendLogs via index.", "operationId": "guardrails_usage_logs_guardrails_usage_logs_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "guardrail_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guardrail Id" } }, { "name": "policy_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Policy Id" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 50, "title": "Page Size" } }, { "name": "action", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Action" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" } }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageLogsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/usage/overview": { "get": { "tags": [ "Policies" ], "summary": "Policies Usage Overview", "description": "Return policy performance overview for the dashboard.", "operationId": "policies_usage_overview_policies_usage_overview_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD", "title": "Start Date" }, "description": "YYYY-MM-DD" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD", "title": "End Date" }, "description": "YYYY-MM-DD" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageOverviewResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/utils/test_policies_and_guardrails": { "post": { "tags": [ "utils" ], "summary": "Test Policies And Guardrails", "description": "Apply policies and/or guardrails to inputs (for compliance UI testing).\n\nUse inputs_list for batch testing: each input is processed as a separate call so\nper-input block/allow and errors are returned.\n\nUse inputs for a single call (legacy).", "operationId": "test_policies_and_guardrails_utils_test_policies_and_guardrails_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestPoliciesAndGuardrailsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policy/validate": { "post": { "tags": [ "policy management" ], "summary": "Validate Policy", "description": "Validate a policy configuration before applying it.\n\nChecks:\n- All referenced guardrails exist in the guardrail registry\n- All non-wildcard team aliases exist in the database\n- All non-wildcard key aliases exist in the database\n- Inheritance chains are valid (no cycles, parents exist)\n- Scope patterns are syntactically valid\n\nReturns:\n- valid: True if the policy configuration is valid (no blocking errors)\n- errors: List of blocking validation errors\n- warnings: List of non-blocking validation warnings\n\nExample request:\n```json\n{\n \"policies\": {\n \"global-baseline\": {\n \"guardrails\": {\n \"add\": [\"pii_blocker\", \"phi_blocker\"]\n },\n \"scope\": {\n \"teams\": [\"*\"],\n \"keys\": [\"*\"],\n \"models\": [\"*\"]\n }\n },\n \"healthcare-compliance\": {\n \"inherit\": \"global-baseline\",\n \"guardrails\": {\n \"add\": [\"hipaa_audit\"]\n },\n \"scope\": {\n \"teams\": [\"healthcare-team\"]\n }\n }\n }\n}\n```", "operationId": "validate_policy_policy_validate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyValidateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyValidationResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policy/list": { "get": { "tags": [ "policy management" ], "summary": "List Policies", "description": "List all loaded policies with their resolved guardrails.\n\nReturns information about each policy including:\n- Inheritance configuration\n- Scope (teams, keys, models)\n- Guardrails to add/remove\n- Resolved guardrails (after inheritance)\n- Inheritance chain", "operationId": "list_policies_policy_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyListResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policy/info/{policy_name}": { "get": { "tags": [ "policy management" ], "summary": "Get Policy Info", "description": "Get detailed information about a specific policy.\n\nReturns:\n- Policy configuration\n- Resolved guardrails (after inheritance)\n- Inheritance chain", "operationId": "get_policy_info_policy_info__policy_name__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyInfoResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policy/test": { "post": { "tags": [ "policy management" ], "summary": "Test Policy Matching", "description": "Test which policies would match a given request context.\n\nThis is useful for debugging and understanding policy behavior.\n\nRequest body:\n```json\n{\n \"team_alias\": \"healthcare-team\",\n \"key_alias\": \"my-api-key\",\n \"model\": \"gpt-4\"\n}\n```\n\nReturns:\n- matching_policies: List of policy names that match\n- resolved_guardrails: Final list of guardrails that would be applied", "operationId": "test_policy_matching_policy_test_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyMatchContext" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyTestResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policy/templates": { "get": { "tags": [ "policy management" ], "summary": "Get Policy Templates", "description": "Get policy templates for the UI (pre-configured guardrail combinations).\n\nFetches from GitHub with automatic fallback to local backup on failure.\nSet LITELLM_LOCAL_POLICY_TEMPLATES=true to skip GitHub and use local backup only.", "operationId": "get_policy_templates_policy_templates_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": {}, "type": "array", "title": "Response Get Policy Templates Policy Templates Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policy/templates/enrich": { "post": { "tags": [ "policy management" ], "summary": "Enrich Policy Template", "description": "Enrich a policy template with LLM-discovered data (e.g. competitor names).\n\nCalls an onboarded LLM to discover competitors for the given brand name,\nthen returns enriched guardrailDefinitions with the discovered data populated.", "operationId": "enrich_policy_template_policy_templates_enrich_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichTemplateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Enrich Policy Template Policy Templates Enrich Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policy/templates/enrich/stream": { "post": { "tags": [ "policy management" ], "summary": "Enrich Policy Template Stream", "description": "Stream competitor names as SSE events as the LLM generates them.\n\nEvents:\n- data: {\"type\": \"competitor\", \"name\": \"...\"} \u2014 each competitor as discovered\n- data: {\"type\": \"done\", \"competitors\": [...], \"competitor_variations\": {...}, \"guardrailDefinitions\": [...]}", "operationId": "enrich_policy_template_stream_policy_templates_enrich_stream_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EnrichTemplateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policy/templates/suggest": { "post": { "tags": [ "policy management" ], "summary": "Suggest Policy Templates", "description": "Use AI to suggest policy templates based on attack examples and descriptions.\n\nCalls an LLM with tool calling to match user requirements to available templates.", "operationId": "suggest_policy_templates_policy_templates_suggest_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SuggestTemplatesRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Suggest Policy Templates Policy Templates Suggest Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policy/templates/test": { "post": { "tags": [ "policy management" ], "summary": "Test Policy Template", "description": "Test a policy template's guardrails against a text input without creating them.\n\nInstantiates temporary guardrails from the template definitions, runs them\nagainst the provided text, and returns per-guardrail results so users can\nverify the template solves their problem before creating it.", "operationId": "test_policy_template_policy_templates_test_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestPolicyTemplateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestPolicyTemplateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/usage/ai/chat": { "post": { "tags": [ "Budget & Spend Tracking" ], "summary": "Usage Ai Chat", "description": "AI chat about usage data. Streams SSE events with the AI response.\nThe AI agent has access to tools that query aggregated daily activity data.", "operationId": "usage_ai_chat_usage_ai_chat_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UsageAIChatRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policies/list": { "get": { "tags": [ "Policies" ], "summary": "List Policies", "description": "List all policies from the database. Optionally filter by version_status.\n\nQuery params:\n- version_status: Optional. One of \"draft\", \"published\", \"production\".\n If omitted, all versions are returned.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/list\" \\\n -H \"Authorization: Bearer \"\ncurl -X GET \"http://localhost:4000/policies/list?version_status=production\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"policies\": [\n {\n \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"global-baseline\",\n \"version_number\": 1,\n \"version_status\": \"production\",\n \"inherit\": null,\n \"description\": \"Base guardrails for all requests\",\n \"guardrails_add\": [\"pii_masking\"],\n \"guardrails_remove\": [],\n \"condition\": null,\n \"created_at\": \"2024-01-01T00:00:00Z\",\n \"updated_at\": \"2024-01-01T00:00:00Z\"\n }\n ],\n \"total_count\": 1\n}\n```", "operationId": "list_policies_policies_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "version_status", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version Status" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyListDBResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies": { "post": { "tags": [ "Policies" ], "summary": "Create Policy", "description": "Create a new policy.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"policy_name\": \"global-baseline\",\n \"description\": \"Base guardrails for all requests\",\n \"guardrails_add\": [\"pii_masking\", \"prompt_injection\"],\n \"guardrails_remove\": []\n }'\n```\n\nExample Response:\n```json\n{\n \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"global-baseline\",\n \"inherit\": null,\n \"description\": \"Base guardrails for all requests\",\n \"guardrails_add\": [\"pii_masking\", \"prompt_injection\"],\n \"guardrails_remove\": [],\n \"condition\": null,\n \"created_at\": \"2024-01-01T00:00:00Z\",\n \"updated_at\": \"2024-01-01T00:00:00Z\"\n}\n```", "operationId": "create_policy_policies_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyDBResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policies/name/{policy_name}/versions": { "get": { "tags": [ "Policies" ], "summary": "List Policy Versions", "description": "List all versions of a policy by name, ordered by version_number descending.", "operationId": "list_policy_versions_policies_name__policy_name__versions_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyVersionListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "Policies" ], "summary": "Create Policy Version", "description": "Create a new draft version of a policy. Copies all fields from the source.\nSource is current production if source_policy_id is not provided.", "operationId": "create_policy_version_policies_name__policy_name__versions_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Name" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyVersionCreateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyDBResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/{policy_id}/status": { "put": { "tags": [ "Policies" ], "summary": "Update Policy Version Status", "description": "Update a policy version's status. Valid transitions:\n- draft -> published\n- published -> production (demotes current production to published)\n- production -> published (demotes, policy becomes inactive)", "operationId": "update_policy_version_status_policies__policy_id__status_put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyVersionStatusUpdateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyDBResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/compare": { "get": { "tags": [ "Policies" ], "summary": "Compare Policy Versions", "description": "Compare two policy versions. Query params: version_a, version_b (policy version IDs).", "operationId": "compare_policy_versions_policies_compare_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "version_a", "in": "query", "required": true, "schema": { "type": "string", "title": "Version A" } }, { "name": "version_b", "in": "query", "required": true, "schema": { "type": "string", "title": "Version B" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyVersionCompareResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/name/{policy_name}/all-versions": { "delete": { "tags": [ "Policies" ], "summary": "Delete All Policy Versions", "description": "Delete all versions of a policy. Also removes from in-memory registry.", "operationId": "delete_all_policy_versions_policies_name__policy_name__all_versions_delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/{policy_id}": { "get": { "tags": [ "Policies" ], "summary": "Get Policy", "description": "Get a policy by ID.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```", "operationId": "get_policy_policies__policy_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyDBResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Policies" ], "summary": "Update Policy", "description": "Update an existing policy.\n\nExample Request:\n```bash\ncurl -X PUT \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"description\": \"Updated description\",\n \"guardrails_add\": [\"pii_masking\", \"toxicity_filter\"]\n }'\n```", "operationId": "update_policy_policies__policy_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyUpdateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyDBResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Policies" ], "summary": "Delete Policy", "description": "Delete a policy.\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Policy 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```", "operationId": "delete_policy_policies__policy_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/{policy_id}/resolved-guardrails": { "get": { "tags": [ "Policies" ], "summary": "Get Resolved Guardrails", "description": "Get the resolved guardrails for a policy (including inherited guardrails).\n\nThis endpoint resolves the full inheritance chain and returns the final\nset of guardrails that would be applied for this policy.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/123e4567-e89b-12d3-a456-426614174000/resolved-guardrails\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"policy_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"healthcare-compliance\",\n \"resolved_guardrails\": [\"pii_masking\", \"prompt_injection\", \"toxicity_filter\"]\n}\n```", "operationId": "get_resolved_guardrails_policies__policy_id__resolved_guardrails_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "policy_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Policy Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/test-pipeline": { "post": { "tags": [ "Policies" ], "summary": "Test Pipeline", "description": "Test a guardrail pipeline with sample messages.\n\nExecutes the pipeline steps against the provided test messages and returns\nstep-by-step results showing which guardrails passed/failed, actions taken,\nand timing information.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/test-pipeline\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"pipeline\": {\n \"mode\": \"pre_call\",\n \"steps\": [\n {\"guardrail\": \"pii-guard\", \"on_pass\": \"next\", \"on_fail\": \"block\"}\n ]\n },\n \"test_messages\": [{\"role\": \"user\", \"content\": \"My SSN is 123-45-6789\"}]\n }'\n```", "operationId": "test_pipeline_policies_test_pipeline_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PipelineTestRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policies/attachments/list": { "get": { "tags": [ "Policies" ], "summary": "List Policy Attachments", "description": "List all policy attachments from the database.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/attachments/list\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"attachments\": [\n {\n \"attachment_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"global-baseline\",\n \"scope\": \"*\",\n \"teams\": [],\n \"keys\": [],\n \"models\": [],\n \"created_at\": \"2024-01-01T00:00:00Z\",\n \"updated_at\": \"2024-01-01T00:00:00Z\"\n }\n ],\n \"total_count\": 1\n}\n```", "operationId": "list_policy_attachments_policies_attachments_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyAttachmentListResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policies/attachments": { "post": { "tags": [ "Policies" ], "summary": "Create Policy Attachment", "description": "Create a new policy attachment.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"policy_name\": \"global-baseline\",\n \"scope\": \"*\"\n }'\n```\n\nExample with team-specific attachment:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"policy_name\": \"healthcare-compliance\",\n \"teams\": [\"healthcare-team\", \"medical-research\"]\n }'\n```\n\nExample Response:\n```json\n{\n \"attachment_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"policy_name\": \"global-baseline\",\n \"scope\": \"*\",\n \"teams\": [],\n \"keys\": [],\n \"models\": [],\n \"created_at\": \"2024-01-01T00:00:00Z\",\n \"updated_at\": \"2024-01-01T00:00:00Z\"\n}\n```", "operationId": "create_policy_attachment_policies_attachments_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyAttachmentCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyAttachmentDBResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/policies/attachments/{attachment_id}": { "get": { "tags": [ "Policies" ], "summary": "Get Policy Attachment", "description": "Get a policy attachment by ID.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/attachments/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```", "operationId": "get_policy_attachment_policies_attachments__attachment_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "attachment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Attachment Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyAttachmentDBResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Policies" ], "summary": "Delete Policy Attachment", "description": "Delete a policy attachment.\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/policies/attachments/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Attachment 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```", "operationId": "delete_policy_attachment_policies_attachments__attachment_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "attachment_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Attachment Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/resolve": { "post": { "tags": [ "Policies" ], "summary": "Resolve Policies For Context", "description": "Resolve which policies and guardrails apply for a given context.\n\nUse this endpoint to debug \"what guardrails would apply to a request\nwith this team/key/model/tags combination?\"\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/resolve\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"tags\": [\"healthcare\"],\n \"model\": \"gpt-4\"\n }'\n```", "operationId": "resolve_policies_for_context_policies_resolve_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "force_sync", "in": "query", "required": false, "schema": { "type": "boolean", "description": "Force a DB sync before resolving. Default uses in-memory cache.", "default": false, "title": "Force Sync" }, "description": "Force a DB sync before resolving. Default uses in-memory cache." } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyResolveRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyResolveResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/policies/attachments/estimate-impact": { "post": { "tags": [ "Policies" ], "summary": "Estimate Attachment Impact", "description": "Estimate how many keys and teams would be affected by a policy attachment.\n\nUse this before creating an attachment to preview the blast radius.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments/estimate-impact\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"policy_name\": \"hipaa-compliance\",\n \"tags\": [\"healthcare\", \"health-*\"]\n }'\n```", "operationId": "estimate_attachment_impact_policies_attachments_estimate_impact_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PolicyAttachmentCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AttachmentImpactResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/search_tools/list": { "get": { "tags": [ "Search Tools" ], "summary": "List Search Tools", "description": "List all search tools that are available in the database and config file.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/search_tools/list\" -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"search_tools\": [\n {\n \"search_tool_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"search_tool_name\": \"litellm-search\",\n \"litellm_params\": {\n \"search_provider\": \"perplexity\",\n \"api_key\": \"sk-***\",\n \"api_base\": \"https://api.perplexity.ai\"\n },\n \"search_tool_info\": {\n \"description\": \"Perplexity search tool\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\",\n \"is_from_config\": false\n },\n {\n \"search_tool_name\": \"config-search-tool\",\n \"litellm_params\": {\n \"search_provider\": \"tavily\",\n \"api_key\": \"tvly-***\"\n },\n \"is_from_config\": true\n }\n ]\n}\n```", "operationId": "list_search_tools_search_tools_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListSearchToolsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/search_tools": { "post": { "tags": [ "Search Tools" ], "summary": "Create Search Tool", "description": "Create a new search tool.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/search_tools\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"search_tool\": {\n \"search_tool_name\": \"litellm-search\",\n \"litellm_params\": {\n \"search_provider\": \"perplexity\",\n \"api_key\": \"sk-...\"\n },\n \"search_tool_info\": {\n \"description\": \"Perplexity search tool\"\n }\n }\n }'\n```\n\nExample Response:\n```json\n{\n \"search_tool_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"search_tool_name\": \"litellm-search\",\n \"litellm_params\": {\n \"search_provider\": \"perplexity\",\n \"api_key\": \"sk-...\"\n },\n \"search_tool_info\": {\n \"description\": \"Perplexity search tool\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\"\n}\n```", "operationId": "create_search_tool_search_tools_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateSearchToolRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/search_tools/{search_tool_id}": { "put": { "tags": [ "Search Tools" ], "summary": "Update Search Tool", "description": "Update an existing search tool.\n\nExample Request:\n```bash\ncurl -X PUT \"http://localhost:4000/search_tools/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"search_tool\": {\n \"search_tool_name\": \"updated-search\",\n \"litellm_params\": {\n \"search_provider\": \"perplexity\",\n \"api_key\": \"sk-new-key\"\n },\n \"search_tool_info\": {\n \"description\": \"Updated search tool\"\n }\n }\n }'\n```\n\nExample Response:\n```json\n{\n \"search_tool_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"search_tool_name\": \"updated-search\",\n \"litellm_params\": {\n \"search_provider\": \"perplexity\",\n \"api_key\": \"sk-new-key\"\n },\n \"search_tool_info\": {\n \"description\": \"Updated search tool\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T13:45:12.345Z\"\n}\n```", "operationId": "update_search_tool_search_tools__search_tool_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "search_tool_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Search Tool Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateSearchToolRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Search Tools" ], "summary": "Delete Search Tool", "description": "Delete a search tool.\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/search_tools/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Search tool 123e4567-e89b-12d3-a456-426614174000 deleted successfully\",\n \"search_tool_name\": \"litellm-search\"\n}\n```", "operationId": "delete_search_tool_search_tools__search_tool_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "search_tool_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Search Tool Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "Search Tools" ], "summary": "Get Search Tool Info", "description": "Get detailed information about a specific search tool by ID.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/search_tools/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"search_tool_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"search_tool_name\": \"litellm-search\",\n \"litellm_params\": {\n \"search_provider\": \"perplexity\",\n \"api_key\": \"sk-***\"\n },\n \"search_tool_info\": {\n \"description\": \"Perplexity search tool\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\"\n}\n```", "operationId": "get_search_tool_info_search_tools__search_tool_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "search_tool_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Search Tool Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/search_tools/test_connection": { "post": { "tags": [ "Search Tools" ], "summary": "Test Search Tool Connection", "description": "Test connection to a search provider with the given configuration.\n\nMakes a simple test search query to verify the API key and configuration are valid.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/search_tools/test_connection\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"litellm_params\": {\n \"search_provider\": \"perplexity\",\n \"api_key\": \"sk-...\"\n }\n }'\n```\n\nExample Response (Success):\n```json\n{\n \"status\": \"success\",\n \"message\": \"Successfully connected to perplexity search provider\",\n \"test_query\": \"test\",\n \"results_count\": 5\n}\n```\n\nExample Response (Failure):\n```json\n{\n \"status\": \"error\",\n \"message\": \"Authentication failed: Invalid API key\",\n \"error_type\": \"AuthenticationError\"\n}\n```", "operationId": "test_search_tool_connection_search_tools_test_connection_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestSearchToolConnectionRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/search_tools/ui/available_providers": { "get": { "tags": [ "Search Tools" ], "summary": "Get Available Search Providers", "description": "Get the list of available search providers with their configuration fields.\n\nAuto-discovers search providers and their UI-friendly names from transformation configs.\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/search_tools/ui/available_providers\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"providers\": [\n {\n \"provider_name\": \"perplexity\",\n \"ui_friendly_name\": \"Perplexity\"\n },\n {\n \"provider_name\": \"tavily\",\n \"ui_friendly_name\": \"Tavily\"\n }\n ]\n}\n```", "operationId": "get_available_search_providers_search_tools_ui_available_providers_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/prompts/list": { "get": { "tags": [ "Prompt Management" ], "summary": "List Prompts", "description": "List the prompts that are available on the proxy server\n\n\ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/prompts/list\" -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"prompts\": [\n {\n \"prompt_id\": \"my_prompt_id\",\n \"litellm_params\": {\n \"prompt_id\": \"my_prompt_id\",\n \"prompt_integration\": \"dotprompt\",\n \"prompt_directory\": \"/path/to/prompts\"\n },\n \"prompt_info\": {\n \"prompt_type\": \"config\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\"\n }\n ]\n}\n```", "operationId": "list_prompts_prompts_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListPromptsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/prompts/{prompt_id}/versions": { "get": { "tags": [ "Prompt Management" ], "summary": "Get Prompt Versions", "description": "Get all versions of a specific prompt by base prompt ID\n\n\ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/prompts/jack_success/versions\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"prompts\": [\n {\n \"prompt_id\": \"jack_success.v1\",\n \"litellm_params\": {...},\n \"prompt_info\": {\"prompt_type\": \"db\"},\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\"\n },\n {\n \"prompt_id\": \"jack_success.v2\",\n \"litellm_params\": {...},\n \"prompt_info\": {\"prompt_type\": \"db\"},\n \"created_at\": \"2023-11-09T13:45:12.345Z\",\n \"updated_at\": \"2023-11-09T13:45:12.345Z\"\n }\n ]\n}\n```", "operationId": "get_prompt_versions_prompts__prompt_id__versions_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } }, { "name": "environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListPromptsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/prompts/{prompt_id}/info": { "get": { "tags": [ "Prompt Management" ], "summary": "Get Prompt Info", "description": "Get detailed information about a specific prompt by ID, including prompt content\n\n \ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\n Example Request:\n ```bash\n curl -X GET \"http://localhost:4000/prompts/my_prompt_id/info\" \\\n -H \"Authorization: Bearer \"\n ```\n\n Example Response:\n ```json\n {\n \"prompt_id\": \"my_prompt_id\",\n \"litellm_params\": {\n \"prompt_id\": \"my_prompt_id\",\n \"prompt_integration\": \"dotprompt\",\n \"prompt_directory\": \"/path/to/prompts\"\n },\n \"prompt_info\": {\n \"prompt_type\": \"config\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\",\n \"content\": \"System: You are a helpful assistant.\n\nUser: {{user_message}}\"\n }\n ```", "operationId": "get_prompt_info_prompts__prompt_id__info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } }, { "name": "environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptInfoResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/prompts/{prompt_id}": { "get": { "tags": [ "Prompt Management" ], "summary": "Get Prompt Info", "description": "Get detailed information about a specific prompt by ID, including prompt content\n\n \ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\n Example Request:\n ```bash\n curl -X GET \"http://localhost:4000/prompts/my_prompt_id/info\" \\\n -H \"Authorization: Bearer \"\n ```\n\n Example Response:\n ```json\n {\n \"prompt_id\": \"my_prompt_id\",\n \"litellm_params\": {\n \"prompt_id\": \"my_prompt_id\",\n \"prompt_integration\": \"dotprompt\",\n \"prompt_directory\": \"/path/to/prompts\"\n },\n \"prompt_info\": {\n \"prompt_type\": \"config\"\n },\n \"created_at\": \"2023-11-09T12:34:56.789Z\",\n \"updated_at\": \"2023-11-09T12:34:56.789Z\",\n \"content\": \"System: You are a helpful assistant.\n\nUser: {{user_message}}\"\n }\n ```", "operationId": "get_prompt_info_prompts__prompt_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } }, { "name": "environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PromptInfoResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "Prompt Management" ], "summary": "Update Prompt", "description": "Update an existing prompt\n\n\ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\nExample Request:\n```bash\ncurl -X PUT \"http://localhost:4000/prompts/my_prompt_id\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"prompt_id\": \"my_prompt\",\n \"litellm_params\": {\n \"prompt_id\": \"my_prompt\",\n \"prompt_integration\": \"dotprompt\",\n \"prompt_directory\": \"/path/to/prompts\"\n },\n \"prompt_info\": {\n \"prompt_type\": \"config\"\n }\n }\n }'\n```", "operationId": "update_prompt_prompts__prompt_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Prompt" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Prompt Management" ], "summary": "Delete Prompt", "description": "Delete a prompt\n\n\ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/prompts/my_prompt_id\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Prompt my_prompt_id deleted successfully\"\n}\n```", "operationId": "delete_prompt_prompts__prompt_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } }, { "name": "environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "Prompt Management" ], "summary": "Patch Prompt", "description": "Partially update an existing prompt\n\n\ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\nThis endpoint allows updating specific fields of a prompt without sending the entire object.\nOnly the following fields can be updated:\n- litellm_params: LiteLLM parameters for the prompt\n- prompt_info: Additional information about the prompt\n\nExample Request:\n```bash\ncurl -X PATCH \"http://localhost:4000/prompts/my_prompt_id\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"prompt_info\": {\n \"prompt_type\": \"db\"\n }\n }'\n```", "operationId": "patch_prompt_prompts__prompt_id__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "prompt_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Prompt Id" } }, { "name": "environment", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchPromptRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/prompts": { "post": { "tags": [ "Prompt Management" ], "summary": "Create Prompt", "description": "Create a new prompt\n\n\ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/prompts\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"prompt_id\": \"my_prompt\",\n \"litellm_params\": {\n \"prompt_id\": \"json_prompt\",\n \"prompt_integration\": \"dotprompt\",\n ### EITHER prompt_directory OR prompt_data MUST BE PROVIDED\n \"prompt_directory\": \"/path/to/dotprompt/folder\",\n \"prompt_data\": {\"json_prompt\": {\"content\": \"This is a prompt\", \"metadata\": {\"model\": \"gpt-4\"}}}\n },\n \"prompt_info\": {\n \"prompt_type\": \"config\"\n }\n }'\n```", "operationId": "create_prompt_prompts_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Prompt" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/prompts/test": { "post": { "tags": [ "Prompt Management" ], "summary": "Test Prompt", "description": "Test a prompt by rendering it with variables and executing an LLM call.\n\nThis endpoint allows testing prompts before saving them to the database.\nThe response is always streamed.\n\n\ud83d\udc49 [Prompt docs](https://docs.litellm.ai/docs/proxy/prompt_management)\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/prompts/test\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"dotprompt_content\": \"---\\nmodel: gpt-4o\\ntemperature: 0.7\\n---\\n\\nUser: Hello {{name}}\",\n \"prompt_variables\": {\n \"name\": \"World\"\n }\n }'\n```", "operationId": "test_prompt_prompts_test_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TestPromptRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/utils/dotprompt_json_converter": { "post": { "tags": [ "prompts", "utils" ], "summary": "Convert Prompt File To Json", "description": "Convert a .prompt file to JSON format.\n\nThis endpoint accepts a .prompt file upload and returns the equivalent JSON representation\nthat can be stored in a database or used programmatically.\n\nReturns the JSON structure with 'content' and 'metadata' fields.", "operationId": "convert_prompt_file_to_json_utils_dotprompt_json_converter_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_convert_prompt_file_to_json_utils_dotprompt_json_converter_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "additionalProperties": true, "type": "object", "title": "Response Convert Prompt File To Json Utils Dotprompt Json Converter Post" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/callbacks/list": { "get": { "tags": [ "Logging Callbacks" ], "summary": "List Callbacks", "description": "View List of Active Logging Callbacks", "operationId": "list_callbacks_callbacks_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CallbacksByType" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/callbacks/configs": { "get": { "tags": [ "Logging Callbacks" ], "summary": "Get Callback Configs", "description": "Get Available Callback Configurations\n\nReturns the configuration details for all available logging callbacks,\nincluding supported parameters, field types, and descriptions.", "operationId": "get_callback_configs_callbacks_configs_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/debug/asyncio-tasks": { "get": { "summary": "Get Active Tasks Stats", "description": "Returns:\n total_active_tasks: int\n by_name: { coroutine_name: count }", "operationId": "get_active_tasks_stats_debug_asyncio_tasks_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/add/allowed_ip": { "post": { "tags": [ "Budget & Spend Tracking" ], "summary": "Add Allowed Ip", "operationId": "add_allowed_ip_add_allowed_ip_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IPAddress" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/delete/allowed_ip": { "post": { "tags": [ "Budget & Spend Tracking" ], "summary": "Delete Allowed Ip", "operationId": "delete_allowed_ip_delete_allowed_ip_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/IPAddress" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/get/internal_user_settings": { "get": { "tags": [ "SSO Settings" ], "summary": "Get Internal User Settings", "description": "Get all SSO settings from the litellm_settings configuration.\nReturns a structured object with values and descriptions for UI display.", "operationId": "get_internal_user_settings_get_internal_user_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InternalUserSettingsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/get/default_team_settings": { "get": { "tags": [ "SSO Settings" ], "summary": "Get Default Team Settings", "description": "Get all SSO settings from the litellm_settings configuration.\nReturns a structured object with values and descriptions for UI display.", "operationId": "get_default_team_settings_get_default_team_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultTeamSettingsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/update/internal_user_settings": { "patch": { "tags": [ "SSO Settings" ], "summary": "Update Internal User Settings", "description": "Update the default internal user parameters for SSO users.\nThese settings will be applied to new users who sign in via SSO.", "operationId": "update_internal_user_settings_update_internal_user_settings_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultInternalUserParams" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/update/default_team_settings": { "patch": { "tags": [ "SSO Settings" ], "summary": "Update Default Team Settings", "description": "Update the default team parameters for SSO users.\nThese settings will be applied to new teams created from SSO.", "operationId": "update_default_team_settings_update_default_team_settings_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DefaultTeamSSOParams" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/get/sso_settings": { "get": { "tags": [ "SSO Settings" ], "summary": "Get Sso Settings", "description": "Get all SSO configuration settings from the dedicated SSO table.\nReturns a structured object with values and descriptions for UI display.", "operationId": "get_sso_settings_get_sso_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SSOSettingsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/update/sso_settings": { "patch": { "tags": [ "SSO Settings" ], "summary": "Update Sso Settings", "description": "Update SSO configuration by saving to the dedicated SSO table.", "operationId": "update_sso_settings_update_sso_settings_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SSOConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/get/ui_theme_settings": { "get": { "tags": [ "UI Theme Settings" ], "summary": "Get Ui Theme Settings", "description": "Get UI theme configuration from the litellm_settings.\nReturns current logo settings for UI customization.\n\nNote: This endpoint is public (no authentication required) so all users can see custom branding.\nOnly the /update/ui_theme_settings endpoint requires authentication for admins to change settings.", "operationId": "get_ui_theme_settings_get_ui_theme_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UIThemeSettingsResponse" } } } } } } }, "/update/ui_theme_settings": { "patch": { "tags": [ "UI Theme Settings" ], "summary": "Update Ui Theme Settings", "description": "Update UI theme configuration.\nUpdates logo settings for the admin UI.", "operationId": "update_ui_theme_settings_update_ui_theme_settings_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UIThemeConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/get/mcp_semantic_filter_settings": { "get": { "tags": [ "Settings" ], "summary": "Get Mcp Semantic Filter Settings", "description": "Get MCP semantic filter configuration.\nReturns current settings for semantic tool filtering.", "operationId": "get_mcp_semantic_filter_settings_get_mcp_semantic_filter_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPSemanticFilterSettingsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/update/mcp_semantic_filter_settings": { "patch": { "tags": [ "Settings" ], "summary": "Update Mcp Semantic Filter Settings", "description": "Update MCP semantic filter settings in database.\nSettings will be picked up by all pods within approximately 10 seconds via background polling.", "operationId": "update_mcp_semantic_filter_settings_update_mcp_semantic_filter_settings_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MCPSemanticFilterSettings" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/in_product_nudges": { "get": { "tags": [ "UI Settings" ], "summary": "Get In Product Nudges", "description": "Get in-product nudges configuration.", "operationId": "get_in_product_nudges_in_product_nudges_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/InProductNudgeResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/get/ui_settings": { "get": { "tags": [ "UI Settings" ], "summary": "Get Ui Settings", "description": "Get UI-specific configuration flags.\nAll authenticated users can fetch these settings for client-side behavior.", "operationId": "get_ui_settings_get_ui_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UISettingsResponse" } } } } } } }, "/update/ui_settings": { "patch": { "tags": [ "UI Settings" ], "summary": "Update Ui Settings", "description": "Update UI-specific configuration flags.\nOnly proxy admins are allowed to modify these settings.", "operationId": "update_ui_settings_update_ui_settings_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UISettings" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/upload/logo": { "post": { "tags": [ "UI Theme Settings" ], "summary": "Upload Logo", "description": "Upload a custom logo for the admin UI.\nAccepts image files (PNG, JPG, JPEG, SVG) and stores them for use in the UI.", "operationId": "upload_logo_upload_logo_post", "requestBody": { "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_upload_logo_upload_logo_post" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/files": { "post": { "tags": [ "files" ], "summary": "Create File", "description": "Upload a file that can be used across - Assistants API, Batch API \nThis is the equivalent of POST https://api.openai.com/v1/files\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/create\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files -H \"Authorization: Bearer sk-1234\" -F purpose=\"batch\" -F file=\"@mydata.jsonl\"\n -F expires_after[anchor]=\"created_at\" -F expires_after[seconds]=2592000\n```", "operationId": "create_file_files_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_create_file_files_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "files" ], "summary": "List Files", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/list\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "list_files_files_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, { "name": "target_model_names", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Target Model Names" } }, { "name": "purpose", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Purpose" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/files": { "post": { "tags": [ "files" ], "summary": "Create File", "description": "Upload a file that can be used across - Assistants API, Batch API \nThis is the equivalent of POST https://api.openai.com/v1/files\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/create\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files -H \"Authorization: Bearer sk-1234\" -F purpose=\"batch\" -F file=\"@mydata.jsonl\"\n -F expires_after[anchor]=\"created_at\" -F expires_after[seconds]=2592000\n```", "operationId": "create_file_v1_files_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_create_file_v1_files_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "files" ], "summary": "List Files", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/list\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "list_files_v1_files_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, { "name": "target_model_names", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Target Model Names" } }, { "name": "purpose", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Purpose" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{provider}/v1/files": { "post": { "tags": [ "files" ], "summary": "Create File", "description": "Upload a file that can be used across - Assistants API, Batch API \nThis is the equivalent of POST https://api.openai.com/v1/files\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/create\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files -H \"Authorization: Bearer sk-1234\" -F purpose=\"batch\" -F file=\"@mydata.jsonl\"\n -F expires_after[anchor]=\"created_at\" -F expires_after[seconds]=2592000\n```", "operationId": "create_file__provider__v1_files_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "requestBody": { "required": true, "content": { "multipart/form-data": { "schema": { "$ref": "#/components/schemas/Body_create_file__provider__v1_files_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "files" ], "summary": "List Files", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/list\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "list_files__provider__v1_files_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, { "name": "target_model_names", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Target Model Names" } }, { "name": "purpose", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Purpose" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/files/{file_id}/content": { "get": { "tags": [ "files" ], "summary": "Get File Content", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/{file_id}/content\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/retrieve-contents\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123/content -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "get_file_content_files__file_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/files/{file_id}/content": { "get": { "tags": [ "files" ], "summary": "Get File Content", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/{file_id}/content\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/retrieve-contents\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123/content -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "get_file_content_v1_files__file_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{provider}/v1/files/{file_id}/content": { "get": { "tags": [ "files" ], "summary": "Get File Content", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/{file_id}/content\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/retrieve-contents\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123/content -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "get_file_content__provider__v1_files__file_id__content_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/files/{file_id}": { "get": { "tags": [ "files" ], "summary": "Get File", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/{file_id}\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/retrieve\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123 -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "get_file_files__file_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "files" ], "summary": "Delete File", "description": "Deletes a specified file. that can be used across - Assistants API, Batch API \nThis is the equivalent of DELETE https://api.openai.com/v1/files/{file_id}\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/delete\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123 -X DELETE -H \"Authorization: Bearer $OPENAI_API_KEY\"\n\n```", "operationId": "delete_file_files__file_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/files/{file_id}": { "get": { "tags": [ "files" ], "summary": "Get File", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/{file_id}\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/retrieve\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123 -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "get_file_v1_files__file_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "files" ], "summary": "Delete File", "description": "Deletes a specified file. that can be used across - Assistants API, Batch API \nThis is the equivalent of DELETE https://api.openai.com/v1/files/{file_id}\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/delete\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123 -X DELETE -H \"Authorization: Bearer $OPENAI_API_KEY\"\n\n```", "operationId": "delete_file_v1_files__file_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{provider}/v1/files/{file_id}": { "get": { "tags": [ "files" ], "summary": "Get File", "description": "Returns information about a specific file. that can be used across - Assistants API, Batch API \nThis is the equivalent of GET https://api.openai.com/v1/files/{file_id}\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/retrieve\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123 -H \"Authorization: Bearer sk-1234\"\n\n```", "operationId": "get_file__provider__v1_files__file_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "files" ], "summary": "Delete File", "description": "Deletes a specified file. that can be used across - Assistants API, Batch API \nThis is the equivalent of DELETE https://api.openai.com/v1/files/{file_id}\n\nSupports Identical Params as: https://platform.openai.com/docs/api-reference/files/delete\n\nExample Curl\n```\ncurl http://localhost:4000/v1/files/file-abc123 -X DELETE -H \"Authorization: Bearer $OPENAI_API_KEY\"\n\n```", "operationId": "delete_file__provider__v1_files__file_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "file_id", "in": "path", "required": true, "schema": { "type": "string", "title": "File Id" } }, { "name": "provider", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/{team_id}/callback": { "post": { "tags": [ "team management" ], "summary": "Add Team Callbacks", "description": "Add a success/failure callback to a team\n\nUse this if if you want different teams to have different success/failure callbacks\n\nParameters:\n- callback_name (Literal[\"langfuse\", \"langsmith\", \"gcs\"], required): The name of the callback to add\n- callback_type (Literal[\"success\", \"failure\", \"success_and_failure\"], required): The type of callback to add. One of:\n - \"success\": Callback for successful LLM calls\n - \"failure\": Callback for failed LLM calls\n - \"success_and_failure\": Callback for both successful and failed LLM calls\n- callback_vars (StandardCallbackDynamicParams, required): A dictionary of variables to pass to the callback\n - langfuse_public_key: The public key for the Langfuse callback\n - langfuse_secret_key: The secret key for the Langfuse callback\n - langfuse_secret: The secret for the Langfuse callback\n - langfuse_host: The host for the Langfuse callback\n - gcs_bucket_name: The name of the GCS bucket\n - gcs_path_service_account: The path to the GCS service account\n - langsmith_api_key: The API key for the Langsmith callback\n - langsmith_project: The project for the Langsmith callback\n - langsmith_base_url: The base URL for the Langsmith callback\n\nExample curl:\n```\ncurl -X POST 'http:/localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Content-Type: application/json' -H 'Authorization: Bearer sk-1234' -d '{\n \"callback_name\": \"langfuse\",\n \"callback_type\": \"success\",\n \"callback_vars\": {\"langfuse_public_key\": \"pk-lf-xxxx1\", \"langfuse_secret_key\": \"sk-xxxxx\"}\n \n}'\n```\n\nThis means for the team where team_id = dbe2f686-a686-4896-864a-4c3924458709, all LLM calls will be logged to langfuse using the public key pk-lf-xxxx1 and the secret key sk-xxxxx", "operationId": "add_team_callbacks_team__team_id__callback_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "team_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Team Id" } }, { "name": "litellm-changed-by", "in": "header", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability", "title": "Litellm-Changed-By" }, "description": "The litellm-changed-by header enables tracking of actions performed by authorized users on behalf of other users, providing an audit trail for accountability" } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AddTeamCallback" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "tags": [ "team management" ], "summary": "Get Team Callbacks", "description": "Get the success/failure callbacks and variables for a team\n\nParameters:\n- team_id (str, required): The unique identifier for the team\n\nExample curl:\n```\ncurl -X GET 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/callback' -H 'Authorization: Bearer sk-1234'\n```\n\nThis will return the callback settings for the team with id dbe2f686-a686-4896-864a-4c3924458709\n\nReturns {\n \"status\": \"success\",\n \"data\": {\n \"team_id\": team_id,\n \"success_callbacks\": team_callback_settings_obj.success_callback,\n \"failure_callbacks\": team_callback_settings_obj.failure_callback,\n \"callback_vars\": team_callback_settings_obj.callback_vars,\n },\n }", "operationId": "get_team_callbacks_team__team_id__callback_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "team_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Team Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/team/{team_id}/disable_logging": { "post": { "tags": [ "team management" ], "summary": "Disable Team Logging", "description": "Disable all logging callbacks for a team\n\nParameters:\n- team_id (str, required): The unique identifier for the team\n\nExample curl:\n```\ncurl -X POST 'http://localhost:4000/team/dbe2f686-a686-4896-864a-4c3924458709/disable_logging' -H 'Authorization: Bearer sk-1234'\n```", "operationId": "disable_team_logging_team__team_id__disable_logging_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "team_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Team Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/jwt/key/mapping/new": { "post": { "tags": [ "JWT Key Mapping" ], "summary": "Create Jwt Key Mapping", "operationId": "create_jwt_key_mapping_jwt_key_mapping_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CreateJWTKeyMappingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JWTKeyMappingResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/jwt/key/mapping/update": { "post": { "tags": [ "JWT Key Mapping" ], "summary": "Update Jwt Key Mapping", "operationId": "update_jwt_key_mapping_jwt_key_mapping_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateJWTKeyMappingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JWTKeyMappingResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/jwt/key/mapping/delete": { "post": { "tags": [ "JWT Key Mapping" ], "summary": "Delete Jwt Key Mapping", "operationId": "delete_jwt_key_mapping_jwt_key_mapping_delete_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteJWTKeyMappingRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/jwt/key/mapping/list": { "get": { "tags": [ "JWT Key Mapping" ], "summary": "List Jwt Key Mappings", "operationId": "list_jwt_key_mappings_jwt_key_mapping_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number", "default": 1, "title": "Page" }, "description": "Page number" }, { "name": "size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "description": "Page size", "default": 50, "title": "Size" }, "description": "Page size" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/jwt/key/mapping/info": { "get": { "tags": [ "JWT Key Mapping" ], "summary": "Info Jwt Key Mapping", "operationId": "info_jwt_key_mapping_jwt_key_mapping_info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "id", "in": "query", "required": true, "schema": { "type": "string", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/JWTKeyMappingResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/budget/new": { "post": { "tags": [ "budget management" ], "summary": "New Budget", "description": "Create a new budget object. Can apply this to teams, orgs, end-users, keys.\n\nParameters:\n- budget_duration: Optional[str] - Budget reset period (\"30d\", \"1h\", etc.)\n- budget_id: Optional[str] - The id of the budget. If not provided, a new id will be generated.\n- max_budget: Optional[float] - The max budget for the budget.\n- soft_budget: Optional[float] - The soft budget for the budget.\n- max_parallel_requests: Optional[int] - The max number of parallel requests for the budget.\n- tpm_limit: Optional[int] - The tokens per minute limit for the budget.\n- rpm_limit: Optional[int] - The requests per minute limit for the budget.\n- model_max_budget: Optional[dict] - Specify max budget for a given model. Example: {\"openai/gpt-4o-mini\": {\"max_budget\": 100.0, \"budget_duration\": \"1d\", \"tpm_limit\": 100000, \"rpm_limit\": 100000}}\n- budget_reset_at: Optional[datetime] - Datetime when the initial budget is reset. Default is now.", "operationId": "new_budget_budget_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetNewRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/budget/update": { "post": { "tags": [ "budget management" ], "summary": "Update Budget", "description": "Update an existing budget object.\n\nParameters:\n- budget_duration: Optional[str] - Budget reset period (\"30d\", \"1h\", etc.)\n- budget_id: Optional[str] - The id of the budget. If not provided, a new id will be generated.\n- max_budget: Optional[float] - The max budget for the budget.\n- soft_budget: Optional[float] - The soft budget for the budget.\n- max_parallel_requests: Optional[int] - The max number of parallel requests for the budget.\n- tpm_limit: Optional[int] - The tokens per minute limit for the budget.\n- rpm_limit: Optional[int] - The requests per minute limit for the budget.\n- model_max_budget: Optional[dict] - Specify max budget for a given model. Example: {\"openai/gpt-4o-mini\": {\"max_budget\": 100.0, \"budget_duration\": \"1d\", \"tpm_limit\": 100000, \"rpm_limit\": 100000}}\n- budget_reset_at: Optional[datetime] - Update the Datetime when the budget was last reset.", "operationId": "update_budget_budget_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetNewRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/budget/info": { "post": { "tags": [ "budget management" ], "summary": "Info Budget", "description": "Get the budget id specific information\n\nParameters:\n- budgets: List[str] - The list of budget ids to get information for", "operationId": "info_budget_budget_info_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/budget/settings": { "get": { "tags": [ "budget management" ], "summary": "Budget Settings", "description": "Get list of configurable params + current value for a budget item + description of each field\n\nUsed on Admin UI.\n\nQuery Parameters:\n- budget_id: str - The budget id to get information for", "operationId": "budget_settings_budget_settings_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "budget_id", "in": "query", "required": true, "schema": { "type": "string", "title": "Budget Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/budget/list": { "get": { "tags": [ "budget management" ], "summary": "List Budget", "description": "List all the created budgets in proxy db. Used on Admin UI.", "operationId": "list_budget_budget_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/budget/delete": { "post": { "tags": [ "budget management" ], "summary": "Delete Budget", "description": "Delete budget\n\nParameters:\n- id: str - The budget id to delete", "operationId": "delete_budget_budget_delete_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/BudgetDeleteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/model/{model_id}/update": { "patch": { "tags": [ "model management" ], "summary": "Patch Model", "description": "PATCH Endpoint for partial model updates.\n\nOnly updates the fields specified in the request while preserving other existing values.\nFollows proper PATCH semantics by only modifying provided fields.\n\nArgs:\n model_id: The ID of the model to update\n patch_data: The fields to update and their new values\n user_api_key_dict: User authentication information\n\nReturns:\n Updated model information\n\nRaises:\n ProxyException: For various error conditions including authentication and database errors", "operationId": "patch_model_model__model_id__update_patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Model Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/updateDeployment" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/model/delete": { "post": { "tags": [ "model management" ], "summary": "Delete Model", "description": "Allows deleting models in the model list in the config.yaml", "operationId": "delete_model_model_delete_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ModelInfoDelete" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/model/new": { "post": { "tags": [ "model management" ], "summary": "Add New Model", "description": "Allows adding new models to the model list in the config.yaml", "operationId": "add_new_model_model_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/Deployment" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/model/update": { "post": { "tags": [ "model management" ], "summary": "Update Model", "description": "Edit existing model params", "operationId": "update_model_model_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/updateDeployment" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/model_group/make_public": { "post": { "tags": [ "model management" ], "summary": "Update Public Model Groups", "description": "Update which model groups are public", "operationId": "update_public_model_groups_model_group_make_public_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdatePublicModelGroupsRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/model_hub/update_useful_links": { "post": { "tags": [ "model management" ], "summary": "Update Useful Links", "description": "Update useful links", "operationId": "update_useful_links_model_hub_update_useful_links_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateUsefulLinksRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/access_group/new": { "post": { "tags": [ "model management" ], "summary": "Create Model Group", "description": "Create a new access group containing multiple model names.\n\nAn access group is a named collection of model groups that can be referenced\nby teams/keys for simplified access control.\n\nExample:\n```bash\ncurl -X POST 'http://localhost:4000/access_group/new' \\\n -H 'Authorization: Bearer sk-1234' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"access_group\": \"production-models\",\n \"model_names\": [\"gpt-4\", \"claude-3-opus\", \"gemini-pro\"]\n }'\n```\n\nParameters:\n- access_group: str - The access group name (e.g., \"production-models\")\n- model_names: List[str] - List of existing model groups to include\n\nReturns:\n- NewModelGroupResponse with the created access group details\n\nRaises:\n- HTTPException 400: If any model names don't exist\n- HTTPException 500: If database operations fail", "operationId": "create_model_group_access_group_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewModelGroupRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewModelGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/access_group/list": { "get": { "tags": [ "model management" ], "summary": "List Access Groups", "description": "List all access groups.\n\nReturns a list of all access groups with their model names and deployment counts.\n\nExample:\n```bash\ncurl -X GET 'http://localhost:4000/access_group/list' \\\n -H 'Authorization: Bearer sk-1234'\n```\n\nReturns:\n- ListAccessGroupsResponse with all access groups", "operationId": "list_access_groups_access_group_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ListAccessGroupsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/access_group/{access_group}/info": { "get": { "tags": [ "model management" ], "summary": "Get Access Group Info", "description": "Get information about a specific access group.\n\nExample:\n```bash\ncurl -X GET 'http://localhost:4000/access_group/production-models/info' \\\n -H 'Authorization: Bearer sk-1234'\n```\n\nParameters:\n- access_group: str - The access group name (URL path parameter)\n\nReturns:\n- AccessGroupInfo with the access group details\n\nRaises:\n- HTTPException 404: If access group not found", "operationId": "get_access_group_info_access_group__access_group__info_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupInfo" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/access_group/{access_group}/update": { "put": { "tags": [ "model management" ], "summary": "Update Access Group", "description": "Update an access group's model names.\n\nThis will:\n1. Remove the access group from all current deployments\n2. Add the access group to all deployments for the new model_names list\n\nExample:\n```bash\ncurl -X PUT 'http://localhost:4000/access_group/production-models/update' \\\n -H 'Authorization: Bearer sk-1234' \\\n -H 'Content-Type: application/json' \\\n -d '{\n \"model_names\": [\"gpt-4\", \"claude-3-sonnet\"]\n }'\n```\n\nParameters:\n- access_group: str - The access group name (URL path parameter)\n- model_names: List[str] - New list of model groups to include\n\nReturns:\n- NewModelGroupResponse with the updated access group details\n\nRaises:\n- HTTPException 400: If any model names don't exist\n- HTTPException 404: If access group not found", "operationId": "update_access_group_access_group__access_group__update_put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UpdateModelGroupRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewModelGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/access_group/{access_group}/delete": { "delete": { "tags": [ "model management" ], "summary": "Delete Access Group", "description": "Delete an access group.\n\nRemoves the access group from all deployments that have it.\n\nExample:\n```bash\ncurl -X DELETE 'http://localhost:4000/access_group/production-models/delete' \\\n -H 'Authorization: Bearer sk-1234'\n```\n\nParameters:\n- access_group: str - The access group name (URL path parameter)\n\nReturns:\n- DeleteModelGroupResponse with deletion details\n\nRaises:\n- HTTPException 404: If access group not found", "operationId": "delete_access_group_access_group__access_group__delete_delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DeleteModelGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/tag/new": { "post": { "tags": [ "tag management" ], "summary": "New Tag", "description": "Create a new tag.\n\nParameters:\n- name: str - The name of the tag\n- description: Optional[str] - Description of what this tag represents\n- models: List[str] - List of either 'model_id' or 'model_name' allowed for this tag\n- budget_id: Optional[str] - The id for a budget (tpm/rpm/max budget) for the tag\n\n### IF NO BUDGET ID - CREATE ONE WITH THESE PARAMS ###\n- max_budget: Optional[float] - Max budget for tag\n- tpm_limit: Optional[int] - Max tpm limit for tag\n- rpm_limit: Optional[int] - Max rpm limit for tag\n- max_parallel_requests: Optional[int] - Max parallel requests for tag\n- soft_budget: Optional[float] - Get a slack alert when this soft budget is reached\n- model_max_budget: Optional[dict] - Max budget for a specific model\n- budget_duration: Optional[str] - Frequency of resetting tag budget", "operationId": "new_tag_tag_new_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagNewRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/tag/update": { "post": { "tags": [ "tag management" ], "summary": "Update Tag", "description": "Update an existing tag.\n\nParameters:\n- name: str - The name of the tag to update\n- description: Optional[str] - Updated description\n- models: List[str] - Updated list of allowed LLM models\n- budget_id: Optional[str] - The id for a budget to associate with the tag\n\n### BUDGET UPDATE PARAMS ###\n- max_budget: Optional[float] - Max budget for tag\n- tpm_limit: Optional[int] - Max tpm limit for tag\n- rpm_limit: Optional[int] - Max rpm limit for tag\n- max_parallel_requests: Optional[int] - Max parallel requests for tag\n- soft_budget: Optional[float] - Get a slack alert when this soft budget is reached\n- model_max_budget: Optional[dict] - Max budget for a specific model\n- budget_duration: Optional[str] - Frequency of resetting tag budget", "operationId": "update_tag_tag_update_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/tag/info": { "post": { "tags": [ "tag management" ], "summary": "Info Tag", "description": "Get information about specific tags.\n\nParameters:\n- names: List[str] - List of tag names to get information for", "operationId": "info_tag_tag_info_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagInfoRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/tag/list": { "get": { "tags": [ "tag management" ], "summary": "List Tags", "description": "List all available tags with their budget information.", "operationId": "list_tags_tag_list_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/tag/delete": { "post": { "tags": [ "tag management" ], "summary": "Delete Tag", "description": "Delete a tag.\n\nParameters:\n- name: str - The name of the tag to delete", "operationId": "delete_tag_tag_delete_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagDeleteRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/tag/daily/activity": { "get": { "tags": [ "tag management" ], "summary": "Get Tag Daily Activity", "description": "Get daily activity for specific tags or all tags.\n\nArgs:\n tags (Optional[str]): Comma-separated list of tags to filter by. If not provided, returns data for all tags.\n start_date (Optional[str]): Start date for the activity period (YYYY-MM-DD).\n end_date (Optional[str]): End date for the activity period (YYYY-MM-DD).\n model (Optional[str]): Filter by model name.\n api_key (Optional[str]): Filter by API key.\n page (int): Page number for pagination.\n page_size (int): Number of items per page.\n\nReturns:\n SpendAnalyticsPaginatedResponse: Paginated response containing daily activity data.", "operationId": "get_tag_daily_activity_tag_daily_activity_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tags", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tags" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" } }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" } }, { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } }, { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/tool/policy/options": { "get": { "tags": [ "tool management" ], "summary": "Get Tool Policy Options", "description": "Return the available input and output policy options with descriptions.\nStatic data \u2014 no DB call.", "operationId": "get_tool_policy_options_v1_tool_policy_options_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolPolicyOptionsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/tool/list": { "get": { "tags": [ "tool management" ], "summary": "List Tools", "description": "List all auto-discovered tools and their policies.\n\nParameters:\n- input_policy: Optional filter \u2014 one of \"trusted\", \"untrusted\", \"blocked\"", "operationId": "list_tools_v1_tool_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "input_policy", "in": "query", "required": false, "schema": { "anyOf": [ { "enum": [ "trusted", "untrusted", "blocked" ], "type": "string" }, { "type": "null" } ], "title": "Input Policy" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolListResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/tool/{tool_name}/detail": { "get": { "tags": [ "tool management" ], "summary": "Get Tool Detail", "description": "Get a single tool with its policy overrides (for UI detail view).", "operationId": "get_tool_detail_v1_tool__tool_name__detail_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tool_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Tool Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolDetailResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/tool/{tool_name}/logs": { "get": { "tags": [ "tool management" ], "summary": "Get Tool Usage Logs", "description": "Return paginated spend logs for requests that used this tool (from SpendLogToolIndex).", "operationId": "get_tool_usage_logs_v1_tool__tool_name__logs_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tool_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Tool Name" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 50, "title": "Page Size" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD", "title": "Start Date" }, "description": "YYYY-MM-DD" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "YYYY-MM-DD", "title": "End Date" }, "description": "YYYY-MM-DD" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolUsageLogsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/tool/{tool_name}": { "get": { "tags": [ "tool management" ], "summary": "Get Tool", "description": "Get details for a single tool.", "operationId": "get_tool_v1_tool__tool_name__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tool_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Tool Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/LiteLLM_ToolTableRow" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/tool/policy": { "post": { "tags": [ "tool management" ], "summary": "Update Tool Policy", "description": "Set the input_policy and/or output_policy for a tool (global), or block for a specific team/key (override).\n\nParameters:\n- tool_name: str - The tool to update\n- input_policy: optional - \"trusted\" | \"untrusted\" | \"blocked\"\n- output_policy: optional - \"trusted\" | \"untrusted\"\n- team_id: optional - if set, create/update override for this team only\n- key_hash: optional - if set, create/update override for this key only", "operationId": "update_tool_policy_v1_tool_policy_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolPolicyUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ToolPolicyUpdateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/tool/{tool_name}/overrides": { "delete": { "tags": [ "tool management" ], "summary": "Delete Tool Policy Override", "description": "Remove a policy override for a tool. Specify the override by team_id or key_hash\n(exactly one required).", "operationId": "delete_tool_policy_override_v1_tool__tool_name__overrides_delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tool_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Tool Name" } }, { "name": "team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Team ID of the override to remove", "title": "Team Id" }, "description": "Team ID of the override to remove" }, { "name": "key_hash", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Key hash of the override to remove", "title": "Key Hash" }, "description": "Key hash of the override to remove" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/config/cost_discount_config": { "get": { "tags": [ "Cost Tracking" ], "summary": "Get Cost Discount Config", "description": "Get current cost discount configuration.\n\nReturns the cost_discount_config from litellm_settings.", "operationId": "get_cost_discount_config_config_cost_discount_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "patch": { "tags": [ "Cost Tracking" ], "summary": "Update Cost Discount Config", "description": "Update cost discount configuration.\n\nUpdates the cost_discount_config in litellm_settings.\nDiscounts should be between 0 and 1 (e.g., 0.05 = 5% discount).\n\nExample:\n```json\n{\n \"vertex_ai\": 0.05,\n \"gemini\": 0.05,\n \"openai\": 0.01\n}\n```", "operationId": "update_cost_discount_config_config_cost_discount_config_patch", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": { "type": "number" }, "type": "object", "title": "Cost Discount Config" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/config/cost_margin_config": { "get": { "tags": [ "Cost Tracking" ], "summary": "Get Cost Margin Config", "description": "Get current cost margin configuration.\n\nReturns the cost_margin_config from litellm_settings.", "operationId": "get_cost_margin_config_config_cost_margin_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] }, "patch": { "tags": [ "Cost Tracking" ], "summary": "Update Cost Margin Config", "description": "Update cost margin configuration.\n\nUpdates the cost_margin_config in litellm_settings.\nMargins can be:\n- Percentage: {\"openai\": 0.10} = 10% margin\n- Fixed amount: {\"openai\": {\"fixed_amount\": 0.001}} = $0.001 per request\n- Combined: {\"vertex_ai\": {\"percentage\": 0.08, \"fixed_amount\": 0.0005}}\n- Global: {\"global\": 0.05} = 5% global margin on all providers\n\nExample:\n```json\n{\n \"global\": 0.05,\n \"openai\": 0.10,\n \"anthropic\": {\"fixed_amount\": 0.001},\n \"vertex_ai\": {\"percentage\": 0.08, \"fixed_amount\": 0.0005}\n}\n```", "operationId": "update_cost_margin_config_config_cost_margin_config_patch", "requestBody": { "content": { "application/json": { "schema": { "additionalProperties": { "anyOf": [ { "type": "number" }, { "additionalProperties": { "type": "number" }, "type": "object" } ] }, "type": "object", "title": "Cost Margin Config" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cost/estimate": { "post": { "tags": [ "Cost Tracking" ], "summary": "Estimate Cost", "description": "Estimate cost for a given model and token counts.\n\nThis endpoint uses the same cost calculation logic as actual requests,\nincluding any configured margins and discounts.\n\nParameters:\n- model: Model name (e.g., \"gpt-4\", \"claude-3-opus\")\n- input_tokens: Expected input tokens per request\n- output_tokens: Expected output tokens per request\n- num_requests_per_day: Number of requests per day (optional)\n- num_requests_per_month: Number of requests per month (optional)\n\nReturns cost breakdown including:\n- Per-request costs (input, output, margin)\n- Daily costs (if num_requests_per_day provided)\n- Monthly costs (if num_requests_per_month provided)\n\nExample:\n```json\n{\n \"model\": \"gpt-4\",\n \"input_tokens\": 1000,\n \"output_tokens\": 500,\n \"num_requests_per_day\": 100,\n \"num_requests_per_month\": 3000\n}\n```", "operationId": "estimate_cost_cost_estimate_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CostEstimateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CostEstimateResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/router/settings": { "get": { "tags": [ "Router Settings" ], "summary": "Get Router Settings", "description": "Get router configuration and available settings.\n\nReturns:\n- fields: List of all configurable router settings with their metadata (type, description, default, options)\n The routing_strategy field includes available options extracted from the Router class\n- current_values: Current values of router settings from config", "operationId": "get_router_settings_router_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouterSettingsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/router/fields": { "get": { "tags": [ "Router Settings" ], "summary": "Get Router Fields", "description": "Get router settings field definitions without values.\n\nReturns only the field metadata (type, description, default, options) without\npopulating field_value. This is useful for UI components that need to know\nwhat fields to render, but will get the actual values from a different endpoint.\n\nReturns:\n- fields: List of all configurable router settings with their metadata (type, description, default, options)\n The routing_strategy field includes available options extracted from the Router class\n Note: field_value will be None for all fields\n- routing_strategy_descriptions: Descriptions for each routing strategy option", "operationId": "get_router_fields_router_fields_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/RouterFieldsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/fallback": { "post": { "tags": [ "Fallback Management" ], "summary": "Create Fallback", "description": "Create or update fallbacks for a specific model.\n\nThis endpoint allows you to configure fallback models separately from the general config.\nFallbacks are triggered when a model call fails after retries.\n\n**Example Request:**\n```json\n{\n \"model\": \"gpt-3.5-turbo\",\n \"fallback_models\": [\"gpt-4\", \"claude-3-haiku\"],\n \"fallback_type\": \"general\"\n}\n```\n\n**Fallback Types:**\n- `general`: Standard fallbacks for any error (default)\n- `context_window`: Fallbacks specifically for context window exceeded errors\n- `content_policy`: Fallbacks specifically for content policy violations", "operationId": "create_fallback_fallback_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FallbackCreateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FallbackResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/fallback/{model}": { "get": { "tags": [ "Fallback Management" ], "summary": "Get Fallback", "description": "Get fallback configuration for a specific model.\n\n**Parameters:**\n- `model`: The model name to get fallbacks for\n- `fallback_type`: Type of fallback to retrieve (query parameter)\n\n**Example:**\n```\nGET /fallback/gpt-3.5-turbo?fallback_type=general\n```", "operationId": "get_fallback_fallback__model__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "type": "string", "title": "Model" } }, { "name": "fallback_type", "in": "query", "required": false, "schema": { "enum": [ "general", "context_window", "content_policy" ], "type": "string", "default": "general", "title": "Fallback Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FallbackGetResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Fallback Management" ], "summary": "Delete Fallback", "description": "Delete fallback configuration for a specific model.\n\n**Parameters:**\n- `model`: The model name to delete fallbacks for\n- `fallback_type`: Type of fallback to delete (query parameter)\n\n**Example:**\n```\nDELETE /fallback/gpt-3.5-turbo?fallback_type=general\n```", "operationId": "delete_fallback_fallback__model__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "model", "in": "path", "required": true, "schema": { "type": "string", "title": "Model" } }, { "name": "fallback_type", "in": "query", "required": false, "schema": { "enum": [ "general", "context_window", "content_policy" ], "type": "string", "default": "general", "title": "Fallback Type" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/FallbackDeleteResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/cache/settings": { "get": { "tags": [ "Cache Settings" ], "summary": "Get Cache Settings", "description": "Get cache configuration and available settings.\n\nReturns:\n- fields: List of all configurable cache settings with their metadata (type, description, default, options)\n- current_values: Current values of cache settings from database", "operationId": "get_cache_settings_cache_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheSettingsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "Cache Settings" ], "summary": "Update Cache Settings", "description": "Save cache settings to database and initialize cache.\n\nThis endpoint:\n1. Encrypts sensitive fields (passwords, etc.)\n2. Saves to LiteLLM_CacheConfig table\n3. Reinitializes cache with new settings", "operationId": "update_cache_settings_cache_settings_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheSettingsUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/cache/settings/test": { "post": { "tags": [ "Cache Settings" ], "summary": "Test Cache Connection", "description": "Test cache connection with provided credentials.\n\nCreates a temporary cache instance and uses its test_connection method\nto verify the credentials work without affecting global state.", "operationId": "test_cache_connection_cache_settings_test_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheTestRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/CacheTestResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/config_overrides/hashicorp_vault": { "get": { "tags": [ "Config Overrides" ], "summary": "Get Hashicorp Vault Config", "description": "Get current Hashicorp Vault configuration.\nReturns decrypted values from DB, or falls back to current env vars.", "operationId": "get_hashicorp_vault_config_config_overrides_hashicorp_vault_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ConfigOverrideSettingsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "Config Overrides" ], "summary": "Update Hashicorp Vault Config", "description": "Update Hashicorp Vault secret manager configuration.\nSets environment variables, encrypts sensitive fields, and stores in DB.\nReinitializes the secret manager on this pod.", "operationId": "update_hashicorp_vault_config_config_overrides_hashicorp_vault_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HashicorpVaultConfig" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "delete": { "tags": [ "Config Overrides" ], "summary": "Delete Hashicorp Vault Config", "description": "Delete Hashicorp Vault configuration. Idempotent.", "operationId": "delete_hashicorp_vault_config_config_overrides_hashicorp_vault_delete", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/config_overrides/hashicorp_vault/test_connection": { "post": { "tags": [ "Config Overrides" ], "summary": "Test Hashicorp Vault Connection", "description": "Test the connection to the currently configured Hashicorp Vault.\nUses the already-initialized secret manager client. Does not modify any state.", "operationId": "test_hashicorp_vault_connection_config_overrides_hashicorp_vault_test_connection_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/tag/distinct": { "get": { "tags": [ "tag management", "user agent analytics" ], "summary": "Get Distinct User Agent Tags", "description": "Get all distinct user agent tags up to a maximum of {MAX_TAGS} tags.\n\nThis endpoint returns all unique user agent tags found in the database,\nsorted by frequency of usage.\n\nReturns:\n DistinctTagsResponse: List of distinct user agent tags", "operationId": "get_distinct_user_agent_tags_tag_distinct_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/DistinctTagsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/tag/dau": { "get": { "tags": [ "tag management", "user agent analytics" ], "summary": "Get Daily Active Users", "description": "Get Daily Active Users (DAU) by tags for the last {MAX_DAYS} days ending on UTC today + 1 day.\n\nThis endpoint efficiently calculates unique users per tag for each of the last {MAX_DAYS} days\nusing a single optimized SQL query, perfect for dashboard time series visualization.\n\nArgs:\n tag_filter: Optional filter to specific tag (legacy)\n tag_filters: Optional filter to multiple specific tags (takes precedence over tag_filter)\n\nReturns:\n ActiveUsersAnalyticsResponse: DAU data by tag for each of the last {MAX_DAYS} days", "operationId": "get_daily_active_users_tag_dau_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tag_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific tag (optional)", "title": "Tag Filter" }, "description": "Filter by specific tag (optional)" }, { "name": "tag_filters", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)", "title": "Tag Filters" }, "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActiveUsersAnalyticsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/tag/wau": { "get": { "tags": [ "tag management", "user agent analytics" ], "summary": "Get Weekly Active Users", "description": "Get Weekly Active Users (WAU) by tags for the last {MAX_WEEKS} weeks ending on UTC today + 1 day.\n\nShows week-by-week breakdown:\n- Week 1 (Jan 1): Earliest week (7 weeks ago)\n- Week 2 (Jan 8): Next week (6 weeks ago)\n- Week 3 (Jan 15): Next week (5 weeks ago)\n- ... and so on for {MAX_WEEKS} weeks total\n- Week 7: Most recent week ending on UTC today + 1 day\n\nArgs:\n tag_filter: Optional filter to specific tag (legacy)\n tag_filters: Optional filter to multiple specific tags (takes precedence over tag_filter)\n\nReturns:\n ActiveUsersAnalyticsResponse: WAU data by tag for each of the last {MAX_WEEKS} weeks with descriptive week labels (e.g., \"Week 1 (Jan 1)\")", "operationId": "get_weekly_active_users_tag_wau_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tag_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific tag (optional)", "title": "Tag Filter" }, "description": "Filter by specific tag (optional)" }, { "name": "tag_filters", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)", "title": "Tag Filters" }, "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActiveUsersAnalyticsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/tag/mau": { "get": { "tags": [ "tag management", "user agent analytics" ], "summary": "Get Monthly Active Users", "description": "Get Monthly Active Users (MAU) by tags for the last {MAX_MONTHS} months ending on UTC today + 1 day.\n\nShows month-by-month breakdown:\n- Month 1 (Nov): Earliest month (7 months ago, 30-day period)\n- Month 2 (Dec): Next month (6 months ago)\n- Month 3 (Jan): Next month (5 months ago)\n- ... and so on for {MAX_MONTHS} months total\n- Month 7: Most recent month ending on UTC today + 1 day\n\nArgs:\n tag_filter: Optional filter to specific tag (legacy)\n tag_filters: Optional filter to multiple specific tags (takes precedence over tag_filter)\n\nReturns:\n ActiveUsersAnalyticsResponse: MAU data by tag for each of the last {MAX_MONTHS} months with descriptive month labels (e.g., \"Month 1 (Nov)\")", "operationId": "get_monthly_active_users_tag_mau_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tag_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific tag (optional)", "title": "Tag Filter" }, "description": "Filter by specific tag (optional)" }, { "name": "tag_filters", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)", "title": "Tag Filters" }, "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ActiveUsersAnalyticsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/tag/summary": { "get": { "tags": [ "tag management", "user agent analytics" ], "summary": "Get Tag Summary", "description": "Get summary analytics for tags including unique users, requests, tokens, and spend.\n\nArgs:\n start_date: Start date for the analytics period (YYYY-MM-DD)\n end_date: End date for the analytics period (YYYY-MM-DD)\n tag_filter: Optional filter to specific tag (legacy)\n tag_filters: Optional filter to multiple specific tags (takes precedence over tag_filter)\n\nReturns:\n TagSummaryResponse: Summary analytics data by tag", "operationId": "get_tag_summary_tag_summary_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "start_date", "in": "query", "required": true, "schema": { "type": "string", "description": "Start date in YYYY-MM-DD format", "title": "Start Date" }, "description": "Start date in YYYY-MM-DD format" }, { "name": "end_date", "in": "query", "required": true, "schema": { "type": "string", "description": "End date in YYYY-MM-DD format", "title": "End Date" }, "description": "End date in YYYY-MM-DD format" }, { "name": "tag_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific tag (optional)", "title": "Tag Filter" }, "description": "Filter by specific tag (optional)" }, { "name": "tag_filters", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)", "title": "Tag Filters" }, "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/TagSummaryResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/tag/user-agent/per-user-analytics": { "get": { "tags": [ "tag management", "user agent analytics" ], "summary": "Get Per User Analytics", "description": "Get per-user analytics including successful requests, tokens, and spend by individual users.\n\nThis endpoint provides usage metrics broken down by individual users based on their\ntag activity during the last 30 days ending on UTC today + 1 day.\n\nArgs:\n tag_filter: Optional filter to specific tag (legacy)\n tag_filters: Optional filter to multiple specific tags (takes precedence over tag_filter)\n page: Page number for pagination\n page_size: Number of items per page\n\nReturns:\n PerUserAnalyticsResponse: Analytics data broken down by individual users for the last 30 days", "operationId": "get_per_user_analytics_tag_user_agent_per_user_analytics_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "tag_filter", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by specific tag (optional)", "title": "Tag Filter" }, "description": "Filter by specific tag (optional)" }, { "name": "tag_filters", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "array", "items": { "type": "string" } }, { "type": "null" } ], "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)", "title": "Tag Filters" }, "description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)" }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "description": "Page number for pagination", "default": 1, "title": "Page" }, "description": "Page number for pagination" }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 1000, "minimum": 1, "description": "Items per page", "default": 50, "title": "Page Size" }, "description": "Items per page" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PerUserAnalyticsResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/email/event_settings": { "get": { "tags": [ "email management" ], "summary": "Get Email Event Settings", "description": "Get all email event settings", "operationId": "get_email_event_settings_email_event_settings_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailEventSettingsResponse" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "patch": { "tags": [ "email management" ], "summary": "Update Event Settings", "description": "Update the settings for email events", "operationId": "update_event_settings_email_event_settings_patch", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/EmailEventSettingsUpdateRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/email/event_settings/reset": { "post": { "tags": [ "email management" ], "summary": "Reset Event Settings", "description": "Reset all email event settings to default (new user invitations on, virtual key creation off)", "operationId": "reset_event_settings_email_event_settings_reset_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/audit": { "get": { "tags": [ "Audit Logging" ], "summary": "Get Audit Logs", "description": "Get all audit logs with filtering and pagination.\n\nReturns a paginated response of audit logs matching the specified filters.\n\nNote: object_team_id and object_key_hash use Prisma JSON path filtering,\nwhich requires PostgreSQL.", "operationId": "get_audit_logs_audit_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "minimum": 1, "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "maximum": 100, "minimum": 1, "default": 10, "title": "Page Size" } }, { "name": "changed_by", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by user or system that performed the action", "title": "Changed By" }, "description": "Filter by user or system that performed the action" }, { "name": "changed_by_api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by API key hash that performed the action", "title": "Changed By Api Key" }, "description": "Filter by API key hash that performed the action" }, { "name": "action", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by action type (create, update, delete)", "title": "Action" }, "description": "Filter by action type (create, update, delete)" }, { "name": "table_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by table name that was modified", "title": "Table Name" }, "description": "Filter by table name that was modified" }, { "name": "object_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by ID of the object that was modified", "title": "Object Id" }, "description": "Filter by ID of the object that was modified" }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs after this date", "title": "Start Date" }, "description": "Filter logs after this date" }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter logs before this date", "title": "End Date" }, "description": "Filter logs before this date" }, { "name": "object_team_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by team_id present in before_value or updated_values JSON (PostgreSQL only)", "title": "Object Team Id" }, "description": "Filter by team_id present in before_value or updated_values JSON (PostgreSQL only)" }, { "name": "object_key_hash", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Filter by token (key hash) present in before_value or updated_values JSON (PostgreSQL only)", "title": "Object Key Hash" }, "description": "Filter by token (key hash) present in before_value or updated_values JSON (PostgreSQL only)" }, { "name": "sort_by", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "Column to sort by (e.g. 'updated_at', 'action', 'table_name')", "title": "Sort By" }, "description": "Column to sort by (e.g. 'updated_at', 'action', 'table_name')" }, { "name": "sort_order", "in": "query", "required": false, "schema": { "type": "string", "description": "Sort order ('asc' or 'desc')", "default": "desc", "title": "Sort Order" }, "description": "Sort order ('asc' or 'desc')" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PaginatedAuditLogResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/audit/{id}": { "get": { "tags": [ "Audit Logging" ], "summary": "Get Audit Log By Id", "description": "Get detailed information about a specific audit log entry by its ID.\n\nArgs:\n id (str): The unique identifier of the audit log entry\n\nReturns:\n AuditLogResponse: Detailed information about the audit log entry\n\nRaises:\n HTTPException: If the audit log is not found or if there's a database connection error", "operationId": "get_audit_log_by_id_audit__id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "id", "in": "path", "required": true, "schema": { "type": "string", "title": "Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AuditLogResponse" } } } }, "404": { "description": "Audit log not found" }, "500": { "description": "Database connection error" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/user/available_users": { "get": { "tags": [ "Internal User management" ], "summary": "Available Enterprise Users", "description": "For keys with `max_users` set, return the list of users that are allowed to use the key.", "operationId": "available_enterprise_users_user_available_users_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/robots.txt": { "get": { "summary": "Get Robots", "description": "Block all web crawlers from indexing the proxy server endpoints\nThis is useful for ensuring that the API endpoints aren't indexed by search engines", "operationId": "get_robots_robots_txt_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/litellm/.well-known/litellm-ui-config": { "get": { "summary": "Get Ui Config", "operationId": "get_ui_config_litellm__well_known_litellm_ui_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UiDiscoveryEndpoints" } } } } } } }, "/.well-known/litellm-ui-config": { "get": { "summary": "Get Ui Config", "operationId": "get_ui_config__well_known_litellm_ui_config_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/UiDiscoveryEndpoints" } } } } } } }, "/v1/agents": { "get": { "tags": [ "[beta] A2A Agents" ], "summary": "Get Agents", "description": "Example usage:\n```\ncurl -X GET \"http://localhost:4000/v1/agents\" -H \"Content-Type: application/json\" -H \"Authorization: Bearer your-key\" ```\n\nPass `?health_check=true` to filter out agents whose URL is unreachable:\n```\ncurl -X GET \"http://localhost:4000/v1/agents?health_check=true\" -H \"Content-Type: application/json\" -H \"Authorization: Bearer your-key\" ```\n\nReturns: List[AgentResponse]", "operationId": "get_agents_v1_agents_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "health_check", "in": "query", "required": false, "schema": { "type": "boolean", "description": "When true, performs a GET request to each agent's URL. Agents with reachable URLs (HTTP status < 500) and agents without a URL are returned; unreachable agents are filtered out.", "default": false, "title": "Health Check" }, "description": "When true, performs a GET request to each agent's URL. Agents with reachable URLs (HTTP status < 500) and agents without a URL are returned; unreachable agents are filtered out." } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "array", "items": { "$ref": "#/components/schemas/AgentResponse" }, "title": "Response Get Agents V1 Agents Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "tags": [ "[beta] A2A Agents" ], "summary": "Create Agent", "description": "Create a new agent\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/agents\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent\": {\n \"agent_name\": \"my-custom-agent\",\n \"agent_card_params\": {\n \"protocolVersion\": \"1.0\",\n \"name\": \"Hello World Agent\",\n \"description\": \"Just a hello world agent\",\n \"url\": \"http://localhost:9999/\",\n \"version\": \"1.0.0\",\n \"defaultInputModes\": [\"text\"],\n \"defaultOutputModes\": [\"text\"],\n \"capabilities\": {\n \"streaming\": true\n },\n \"skills\": [\n {\n \"id\": \"hello_world\",\n \"name\": \"Returns hello world\",\n \"description\": \"just returns hello world\",\n \"tags\": [\"hello world\"],\n \"examples\": [\"hi\", \"hello world\"]\n }\n ]\n },\n \"litellm_params\": {\n \"make_public\": true\n }\n }\n }'\n```", "operationId": "create_agent_v1_agents_post", "security": [ { "APIKeyHeader": [] } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentConfig" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/agents/{agent_id}": { "get": { "tags": [ "[beta] A2A Agents" ], "summary": "Get Agent By Id", "description": "Get a specific agent by ID\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/agents/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```", "operationId": "get_agent_by_id_v1_agents__agent_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "[beta] A2A Agents" ], "summary": "Update Agent", "description": "Update an existing agent\n\nExample Request:\n```bash\ncurl -X PUT \"http://localhost:4000/agents/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent\": {\n \"agent_name\": \"updated-agent\",\n \"agent_card_params\": {\n \"protocolVersion\": \"1.0\",\n \"name\": \"Updated Agent\",\n \"description\": \"Updated description\",\n \"url\": \"http://localhost:9999/\",\n \"version\": \"1.1.0\",\n \"defaultInputModes\": [\"text\"],\n \"defaultOutputModes\": [\"text\"],\n \"capabilities\": {\n \"streaming\": true\n },\n \"skills\": []\n },\n \"litellm_params\": {\n \"make_public\": false\n }\n }\n }'\n```", "operationId": "update_agent_v1_agents__agent_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentConfig" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "patch": { "tags": [ "[beta] A2A Agents" ], "summary": "Patch Agent", "description": "Update an existing agent\n\nExample Request:\n```bash\ncurl -X PUT \"http://localhost:4000/agents/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent\": {\n \"agent_name\": \"updated-agent\",\n \"agent_card_params\": {\n \"protocolVersion\": \"1.0\",\n \"name\": \"Updated Agent\",\n \"description\": \"Updated description\",\n \"url\": \"http://localhost:9999/\",\n \"version\": \"1.1.0\",\n \"defaultInputModes\": [\"text\"],\n \"defaultOutputModes\": [\"text\"],\n \"capabilities\": {\n \"streaming\": true\n },\n \"skills\": []\n },\n \"litellm_params\": {\n \"make_public\": false\n }\n }\n }'\n```", "operationId": "patch_agent_v1_agents__agent_id__patch", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/PatchAgentRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "Agents" ], "summary": "Delete Agent", "description": "Delete an agent\n\nExample Request:\n```bash\ncurl -X DELETE \"http://localhost:4000/agents/123e4567-e89b-12d3-a456-426614174000\" \\\n -H \"Authorization: Bearer \"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Agent 123e4567-e89b-12d3-a456-426614174000 deleted successfully\"\n}\n```", "operationId": "delete_agent_v1_agents__agent_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/agents/{agent_id}/make_public": { "post": { "tags": [ "[beta] A2A Agents" ], "summary": "Make Agent Public", "description": "Make an agent publicly discoverable\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/v1/agents/123e4567-e89b-12d3-a456-426614174000/make_public\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\"\n```\n\nExample Response:\n```json\n{\n \"agent_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"agent_name\": \"my-custom-agent\",\n \"litellm_params\": {\n \"make_public\": true\n },\n \"agent_card_params\": {...},\n \"created_at\": \"2025-11-15T10:30:00Z\",\n \"updated_at\": \"2025-11-15T10:35:00Z\",\n \"created_by\": \"user123\",\n \"updated_by\": \"user123\"\n}\n```", "operationId": "make_agent_public_v1_agents__agent_id__make_public_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentMakePublicResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/agents/make_public": { "post": { "tags": [ "[beta] A2A Agents" ], "summary": "Make Agents Public", "description": "Make multiple agents publicly discoverable\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/v1/agents/make_public\" \\\n -H \"Authorization: Bearer \" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"agent_ids\": [\"123e4567-e89b-12d3-a456-426614174000\", \"123e4567-e89b-12d3-a456-426614174001\"]\n }'\n```\n\nExample Response:\n```json\n{\n \"agent_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"agent_name\": \"my-custom-agent\",\n \"litellm_params\": {\n \"make_public\": true\n },\n \"agent_card_params\": {...},\n \"created_at\": \"2025-11-15T10:30:00Z\",\n \"updated_at\": \"2025-11-15T10:35:00Z\",\n \"created_by\": \"user123\",\n \"updated_by\": \"user123\"\n}\n```", "operationId": "make_agents_public_v1_agents_make_public_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/MakeAgentsPublicRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AgentMakePublicResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/agent/daily/activity": { "get": { "tags": [ "Agent Management" ], "summary": "Get Agent Daily Activity", "description": "Get daily activity for specific agents or all accessible agents.", "operationId": "get_agent_daily_activity_agent_daily_activity_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Ids" } }, { "name": "start_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Start Date" } }, { "name": "end_date", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End Date" } }, { "name": "model", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } }, { "name": "api_key", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" } }, { "name": "page", "in": "query", "required": false, "schema": { "type": "integer", "default": 1, "title": "Page" } }, { "name": "page_size", "in": "query", "required": false, "schema": { "type": "integer", "default": 10, "title": "Page Size" } }, { "name": "exclude_agent_ids", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Exclude Agent Ids" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/compliance/eu-ai-act": { "post": { "tags": [ "compliance" ], "summary": "Check Eu Ai Act Compliance", "description": "Check EU AI Act compliance for a spend log entry.\n\nChecks:\n- Art. 9: Guardrails applied (any guardrail)\n- Art. 5: Content screened before LLM (pre-call guardrails)\n- Art. 12: Audit record complete (user_id, model, timestamp, guardrail_results)", "operationId": "check_eu_ai_act_compliance_compliance_eu_ai_act_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ComplianceCheckRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ComplianceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/compliance/gdpr": { "post": { "tags": [ "compliance" ], "summary": "Check Gdpr Compliance", "description": "Check GDPR compliance for a spend log entry.\n\nChecks:\n- Art. 32: Data protection applied (pre-call guardrails)\n- Art. 5(1)(c): Sensitive data protected (masked/blocked or no issues)\n- Art. 30: Audit record complete (user_id, model, timestamp, guardrail_results)", "operationId": "check_gdpr_compliance_compliance_gdpr_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ComplianceCheckRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/ComplianceResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/a2a/{agent_id}/.well-known/agent.json": { "get": { "tags": [ "[beta] A2A Agents" ], "summary": "Get Agent Card", "description": "Get the agent card for an agent (A2A discovery endpoint).\n\nSupports both standard paths:\n- /.well-known/agent-card.json\n- /.well-known/agent.json\n\nThe URL in the agent card is rewritten to point to the LiteLLM proxy,\nso all subsequent A2A calls go through LiteLLM for logging and cost tracking.", "operationId": "get_agent_card_a2a__agent_id___well_known_agent_json_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/a2a/{agent_id}/.well-known/agent-card.json": { "get": { "tags": [ "[beta] A2A Agents" ], "summary": "Get Agent Card", "description": "Get the agent card for an agent (A2A discovery endpoint).\n\nSupports both standard paths:\n- /.well-known/agent-card.json\n- /.well-known/agent.json\n\nThe URL in the agent card is rewritten to point to the LiteLLM proxy,\nso all subsequent A2A calls go through LiteLLM for logging and cost tracking.", "operationId": "get_agent_card_a2a__agent_id___well_known_agent_card_json_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/a2a/{agent_id}/message/send": { "post": { "tags": [ "[beta] A2A Agents" ], "summary": "Invoke Agent A2A", "description": "Invoke an agent using the A2A protocol (JSON-RPC 2.0).\n\nSupported methods:\n- message/send: Send a message and get a response\n- message/stream: Send a message and stream the response", "operationId": "invoke_agent_a2a_v1_a2a__agent_id__message_send_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/a2a/{agent_id}/message/send": { "post": { "tags": [ "[beta] A2A Agents" ], "summary": "Invoke Agent A2A", "description": "Invoke an agent using the A2A protocol (JSON-RPC 2.0).\n\nSupported methods:\n- message/send: Send a message and get a response\n- message/stream: Send a message and stream the response", "operationId": "invoke_agent_a2a_a2a__agent_id__message_send_post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/a2a/{agent_id}": { "post": { "tags": [ "[beta] A2A Agents" ], "summary": "Invoke Agent A2A", "description": "Invoke an agent using the A2A protocol (JSON-RPC 2.0).\n\nSupported methods:\n- message/send: Send a message and get a response\n- message/stream: Send a message and stream the response", "operationId": "invoke_agent_a2a_a2a__agent_id__post", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "agent_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Agent Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/access_group": { "get": { "tags": [ "access group management" ], "summary": "List Access Groups", "operationId": "list_access_groups_v1_access_group_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AccessGroupResponse" }, "type": "array", "title": "Response List Access Groups V1 Access Group Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "access group management" ], "summary": "Create Access Group", "operationId": "create_access_group_v1_access_group_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/access_group/{access_group_id}": { "get": { "tags": [ "access group management" ], "summary": "Get Access Group", "operationId": "get_access_group_v1_access_group__access_group_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "access group management" ], "summary": "Update Access Group", "operationId": "update_access_group_v1_access_group__access_group_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupUpdateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "access group management" ], "summary": "Delete Access Group", "operationId": "delete_access_group_v1_access_group__access_group_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/v1/unified_access_group": { "get": { "tags": [ "access group management" ], "summary": "List Access Groups", "operationId": "list_access_groups_v1_unified_access_group_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "items": { "$ref": "#/components/schemas/AccessGroupResponse" }, "type": "array", "title": "Response List Access Groups V1 Unified Access Group Get" } } } } }, "security": [ { "APIKeyHeader": [] } ] }, "post": { "tags": [ "access group management" ], "summary": "Create Access Group", "operationId": "create_access_group_v1_unified_access_group_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupCreateRequest" } } }, "required": true }, "responses": { "201": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/v1/unified_access_group/{access_group_id}": { "get": { "tags": [ "access group management" ], "summary": "Get Access Group", "operationId": "get_access_group_v1_unified_access_group__access_group_id__get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group Id" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "tags": [ "access group management" ], "summary": "Update Access Group", "operationId": "update_access_group_v1_unified_access_group__access_group_id__put", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group Id" } } ], "requestBody": { "required": true, "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupUpdateRequest" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/AccessGroupResponse" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "tags": [ "access group management" ], "summary": "Delete Access Group", "operationId": "delete_access_group_v1_unified_access_group__access_group_id__delete", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "access_group_id", "in": "path", "required": true, "schema": { "type": "string", "title": "Access Group Id" } } ], "responses": { "204": { "description": "Successful Response" }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/toolset/{toolset_name}/mcp": { "patch": { "summary": "Toolset Mcp Route", "description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset//mcp exposes exactly the tools defined in\nthe toolset. Access is enforced: non-admin API keys must have the toolset\nlisted in their object_permission.mcp_toolsets grant list, or the request\nwill be rejected with a 403.", "operationId": "toolset_mcp_route_toolset__toolset_name__mcp_patch", "parameters": [ { "name": "toolset_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "summary": "Toolset Mcp Route", "description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset//mcp exposes exactly the tools defined in\nthe toolset. Access is enforced: non-admin API keys must have the toolset\nlisted in their object_permission.mcp_toolsets grant list, or the request\nwill be rejected with a 403.", "operationId": "toolset_mcp_route_toolset__toolset_name__mcp_patch", "parameters": [ { "name": "toolset_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "options": { "summary": "Toolset Mcp Route", "description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset//mcp exposes exactly the tools defined in\nthe toolset. Access is enforced: non-admin API keys must have the toolset\nlisted in their object_permission.mcp_toolsets grant list, or the request\nwill be rejected with a 403.", "operationId": "toolset_mcp_route_toolset__toolset_name__mcp_patch", "parameters": [ { "name": "toolset_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "summary": "Toolset Mcp Route", "description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset//mcp exposes exactly the tools defined in\nthe toolset. Access is enforced: non-admin API keys must have the toolset\nlisted in their object_permission.mcp_toolsets grant list, or the request\nwill be rejected with a 403.", "operationId": "toolset_mcp_route_toolset__toolset_name__mcp_patch", "parameters": [ { "name": "toolset_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "head": { "summary": "Toolset Mcp Route", "description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset//mcp exposes exactly the tools defined in\nthe toolset. Access is enforced: non-admin API keys must have the toolset\nlisted in their object_permission.mcp_toolsets grant list, or the request\nwill be rejected with a 403.", "operationId": "toolset_mcp_route_toolset__toolset_name__mcp_patch", "parameters": [ { "name": "toolset_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "summary": "Toolset Mcp Route", "description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset//mcp exposes exactly the tools defined in\nthe toolset. Access is enforced: non-admin API keys must have the toolset\nlisted in their object_permission.mcp_toolsets grant list, or the request\nwill be rejected with a 403.", "operationId": "toolset_mcp_route_toolset__toolset_name__mcp_patch", "parameters": [ { "name": "toolset_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Toolset Mcp Route", "description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset//mcp exposes exactly the tools defined in\nthe toolset. Access is enforced: non-admin API keys must have the toolset\nlisted in their object_permission.mcp_toolsets grant list, or the request\nwill be rejected with a 403.", "operationId": "toolset_mcp_route_toolset__toolset_name__mcp_patch", "parameters": [ { "name": "toolset_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Toolset Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{mcp_server_name}/mcp": { "patch": { "summary": "Dynamic Mcp Route", "description": "Handle dynamic MCP server routes like /github_mcp/mcp and toolset routes like /devtooling-prod/mcp", "operationId": "dynamic_mcp_route__mcp_server_name__mcp_patch", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "put": { "summary": "Dynamic Mcp Route", "description": "Handle dynamic MCP server routes like /github_mcp/mcp and toolset routes like /devtooling-prod/mcp", "operationId": "dynamic_mcp_route__mcp_server_name__mcp_patch", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "options": { "summary": "Dynamic Mcp Route", "description": "Handle dynamic MCP server routes like /github_mcp/mcp and toolset routes like /devtooling-prod/mcp", "operationId": "dynamic_mcp_route__mcp_server_name__mcp_patch", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "post": { "summary": "Dynamic Mcp Route", "description": "Handle dynamic MCP server routes like /github_mcp/mcp and toolset routes like /devtooling-prod/mcp", "operationId": "dynamic_mcp_route__mcp_server_name__mcp_patch", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "head": { "summary": "Dynamic Mcp Route", "description": "Handle dynamic MCP server routes like /github_mcp/mcp and toolset routes like /devtooling-prod/mcp", "operationId": "dynamic_mcp_route__mcp_server_name__mcp_patch", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "get": { "summary": "Dynamic Mcp Route", "description": "Handle dynamic MCP server routes like /github_mcp/mcp and toolset routes like /devtooling-prod/mcp", "operationId": "dynamic_mcp_route__mcp_server_name__mcp_patch", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } }, "delete": { "summary": "Dynamic Mcp Route", "description": "Handle dynamic MCP server routes like /github_mcp/mcp and toolset routes like /devtooling-prod/mcp", "operationId": "dynamic_mcp_route__mcp_server_name__mcp_patch", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/mcp-rest/tools/list": { "get": { "tags": [ "mcp" ], "summary": "List Tool Rest Api", "description": "List all available tools with information about the server they belong to.\n\nExample response:\n{\n \"tools\": [\n {\n \"name\": \"create_zap\",\n \"description\": \"Create a new zap\",\n \"inputSchema\": \"tool_input_schema\",\n \"mcp_info\": {\n \"server_name\": \"zapier\",\n \"logo_url\": \"https://www.zapier.com/logo.png\",\n }\n }\n ],\n \"error\": null,\n \"message\": \"Successfully retrieved tools\"\n}", "operationId": "list_tool_rest_api_mcp_rest_tools_list_get", "security": [ { "APIKeyHeader": [] } ], "parameters": [ { "name": "server_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "description": "The server id to list tools for", "title": "Server Id" }, "description": "The server id to list tools for" } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": { "type": "object", "additionalProperties": true, "title": "Response List Tool Rest Api Mcp Rest Tools List Get" } } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/mcp-rest/tools/call": { "post": { "tags": [ "mcp" ], "summary": "Call Tool Rest Api", "description": "REST API to call a specific MCP tool with the provided arguments", "operationId": "call_tool_rest_api_mcp_rest_tools_call_post", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/mcp-rest/test/connection": { "post": { "tags": [ "mcp" ], "summary": "Test Connection", "description": "Test if we can connect to the provided MCP server before adding it", "operationId": "test_connection_mcp_rest_test_connection_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewMCPServerRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/mcp-rest/test/tools/list": { "post": { "tags": [ "mcp" ], "summary": "Test Tools List", "description": "Preview tools available from MCP server before adding it", "operationId": "test_tools_list_mcp_rest_test_tools_list_post", "requestBody": { "content": { "application/json": { "schema": { "$ref": "#/components/schemas/NewMCPServerRequest" } } }, "required": true }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } }, "security": [ { "APIKeyHeader": [] } ] } }, "/authorize": { "get": { "tags": [ "mcp" ], "summary": "Authorize", "operationId": "authorize_authorize_get", "parameters": [ { "name": "redirect_uri", "in": "query", "required": true, "schema": { "type": "string", "title": "Redirect Uri" } }, { "name": "client_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Id" } }, { "name": "state", "in": "query", "required": false, "schema": { "type": "string", "default": "", "title": "State" } }, { "name": "mcp_server_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } }, { "name": "code_challenge", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Code Challenge" } }, { "name": "code_challenge_method", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Code Challenge Method" } }, { "name": "response_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Response Type" } }, { "name": "scope", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scope" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{mcp_server_name}/authorize": { "get": { "tags": [ "mcp" ], "summary": "Authorize", "operationId": "authorize__mcp_server_name__authorize_get", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } }, { "name": "redirect_uri", "in": "query", "required": true, "schema": { "type": "string", "title": "Redirect Uri" } }, { "name": "client_id", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Id" } }, { "name": "state", "in": "query", "required": false, "schema": { "type": "string", "default": "", "title": "State" } }, { "name": "code_challenge", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Code Challenge" } }, { "name": "code_challenge_method", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Code Challenge Method" } }, { "name": "response_type", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Response Type" } }, { "name": "scope", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scope" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/token": { "post": { "tags": [ "mcp" ], "summary": "Token Endpoint", "description": "Accept the authorization code from client and exchange it for OAuth token.\nSupports PKCE flow by forwarding code_verifier to upstream provider.\n\n1. Call the token endpoint with PKCE parameters\n2. Store the user's token in the db - and generate a LiteLLM virtual key\n3. Return the token\n4. Return a virtual key in this response", "operationId": "token_endpoint_token_post", "parameters": [ { "name": "mcp_server_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } } ], "requestBody": { "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Body_token_endpoint_token_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{mcp_server_name}/token": { "post": { "tags": [ "mcp" ], "summary": "Token Endpoint", "description": "Accept the authorization code from client and exchange it for OAuth token.\nSupports PKCE flow by forwarding code_verifier to upstream provider.\n\n1. Call the token endpoint with PKCE parameters\n2. Store the user's token in the db - and generate a LiteLLM virtual key\n3. Return the token\n4. Return a virtual key in this response", "operationId": "token_endpoint__mcp_server_name__token_post", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } } ], "requestBody": { "required": true, "content": { "application/x-www-form-urlencoded": { "schema": { "$ref": "#/components/schemas/Body_token_endpoint__mcp_server_name__token_post" } } } }, "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/callback": { "get": { "tags": [ "mcp" ], "summary": "Callback", "operationId": "callback_callback_get", "parameters": [ { "name": "code", "in": "query", "required": true, "schema": { "type": "string", "title": "Code" } }, { "name": "state", "in": "query", "required": true, "schema": { "type": "string", "title": "State" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/.well-known/oauth-protected-resource/mcp/{mcp_server_name}": { "get": { "tags": [ "mcp" ], "summary": "Oauth Protected Resource Mcp Standard", "description": "OAuth protected resource discovery endpoint using standard MCP URL pattern.\n\nStandard pattern: /mcp/{server_name}\nDiscovery path: /.well-known/oauth-protected-resource/mcp/{server_name}\n\nThis endpoint is compliant with MCP specification and works with standard\nMCP clients like mcp-inspector and VSCode Copilot.", "operationId": "oauth_protected_resource_mcp_standard__well_known_oauth_protected_resource_mcp__mcp_server_name__get", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/.well-known/oauth-protected-resource": { "get": { "tags": [ "mcp" ], "summary": "Oauth Protected Resource Mcp", "description": "OAuth protected resource discovery endpoint using LiteLLM legacy URL pattern.\n\nLegacy pattern: /{server_name}/mcp\nDiscovery path: /.well-known/oauth-protected-resource/{server_name}/mcp\n\nThis endpoint is kept for backward compatibility. New integrations should\nuse the standard MCP pattern (/mcp/{server_name}) instead.", "operationId": "oauth_protected_resource_mcp__well_known_oauth_protected_resource_get", "parameters": [ { "name": "mcp_server_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/.well-known/oauth-protected-resource/{mcp_server_name}/mcp": { "get": { "tags": [ "mcp" ], "summary": "Oauth Protected Resource Mcp", "description": "OAuth protected resource discovery endpoint using LiteLLM legacy URL pattern.\n\nLegacy pattern: /{server_name}/mcp\nDiscovery path: /.well-known/oauth-protected-resource/{server_name}/mcp\n\nThis endpoint is kept for backward compatibility. New integrations should\nuse the standard MCP pattern (/mcp/{server_name}) instead.", "operationId": "oauth_protected_resource_mcp__well_known_oauth_protected_resource__mcp_server_name__mcp_get", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/.well-known/oauth-authorization-server/mcp/{mcp_server_name}": { "get": { "tags": [ "mcp" ], "summary": "Oauth Authorization Server Mcp Standard", "description": "OAuth authorization server discovery endpoint using standard MCP URL pattern.\n\nStandard pattern: /mcp/{server_name}\nDiscovery path: /.well-known/oauth-authorization-server/mcp/{server_name}", "operationId": "oauth_authorization_server_mcp_standard__well_known_oauth_authorization_server_mcp__mcp_server_name__get", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/.well-known/oauth-authorization-server": { "get": { "tags": [ "mcp" ], "summary": "Oauth Authorization Server Mcp", "description": "OAuth authorization server discovery endpoint.\n\nSupports both legacy pattern (/{server_name}) and root endpoint.", "operationId": "oauth_authorization_server_mcp__well_known_oauth_authorization_server_get", "parameters": [ { "name": "mcp_server_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/.well-known/oauth-authorization-server/{mcp_server_name}": { "get": { "tags": [ "mcp" ], "summary": "Oauth Authorization Server Mcp", "description": "OAuth authorization server discovery endpoint.\n\nSupports both legacy pattern (/{server_name}) and root endpoint.", "operationId": "oauth_authorization_server_mcp__well_known_oauth_authorization_server__mcp_server_name__get", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/.well-known/openid-configuration": { "get": { "tags": [ "mcp" ], "summary": "Openid Configuration", "operationId": "openid_configuration__well_known_openid_configuration_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/.well-known/jwks.json": { "get": { "tags": [ "mcp" ], "summary": "Jwks Json", "description": "JSON Web Key Set endpoint.\n\nReturns the RSA public key used by MCPJWTSigner to sign outbound MCP tokens.\nMCP servers and gateways use this endpoint to verify liteLLM-issued JWTs.\n\nReturns an empty key set if MCPJWTSigner is not configured.", "operationId": "jwks_json__well_known_jwks_json_get", "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } } } } }, "/.well-known/oauth-authorization-server/{mcp_server_name}/mcp": { "get": { "tags": [ "mcp" ], "summary": "Oauth Authorization Server Legacy", "description": "OAuth authorization server discovery for legacy /{server_name}/mcp pattern.", "operationId": "oauth_authorization_server_legacy__well_known_oauth_authorization_server__mcp_server_name__mcp_get", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "type": "string", "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/register": { "post": { "tags": [ "mcp" ], "summary": "Register Client", "operationId": "register_client_register_post", "parameters": [ { "name": "mcp_server_name", "in": "query", "required": false, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/{mcp_server_name}/register": { "post": { "tags": [ "mcp" ], "summary": "Register Client", "operationId": "register_client__mcp_server_name__register_post", "parameters": [ { "name": "mcp_server_name", "in": "path", "required": true, "schema": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Mcp Server Name" } } ], "responses": { "200": { "description": "Successful Response", "content": { "application/json": { "schema": {} } } }, "422": { "description": "Validation Error", "content": { "application/json": { "schema": { "$ref": "#/components/schemas/HTTPValidationError" } } } } } } }, "/vertex_ai/live": { "get": { "summary": "WebSocket: vertex_ai_live_passthrough_endpoint", "description": "WebSocket connection endpoint", "operationId": "websocket_vertex_ai_live_passthrough_endpoint", "parameters": [ { "name": "model", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "vertex_project", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "vertex_location", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "101": { "description": "WebSocket Protocol Switched" } }, "tags": [ "WebSocket" ] } }, "/realtime": { "get": { "summary": "WebSocket: realtime_websocket_endpoint", "description": "WebSocket connection endpoint", "operationId": "websocket_realtime_websocket_endpoint", "parameters": [ { "name": "model", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "intent", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "guardrails", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "101": { "description": "WebSocket Protocol Switched" } }, "tags": [ "WebSocket" ] } }, "/v1/realtime": { "get": { "summary": "WebSocket: realtime_websocket_endpoint", "description": "WebSocket connection endpoint", "operationId": "websocket_realtime_websocket_endpoint", "parameters": [ { "name": "model", "in": "query", "required": true, "schema": { "type": "string" } }, { "name": "intent", "in": "query", "required": false, "schema": { "type": "string" } }, { "name": "guardrails", "in": "query", "required": false, "schema": { "type": "string" } } ], "responses": { "101": { "description": "WebSocket Protocol Switched" } }, "tags": [ "WebSocket" ] } } }, "components": { "schemas": { "APIKeySecurityScheme": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "type": { "type": "string", "const": "apiKey", "title": "Type" }, "in_": { "type": "string", "enum": [ "query", "header", "cookie" ], "title": "In" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "type", "in_", "name" ], "title": "APIKeySecurityScheme", "description": "Defines a security scheme using an API key." }, "AccessControl_UI_AccessMode": { "properties": { "type": { "type": "string", "const": "restricted_sso_group", "title": "Type" }, "restricted_sso_group": { "type": "string", "title": "Restricted Sso Group" }, "sso_group_jwt_field": { "type": "string", "title": "Sso Group Jwt Field" } }, "type": "object", "required": [ "type", "restricted_sso_group", "sso_group_jwt_field" ], "title": "AccessControl_UI_AccessMode", "description": "Model for Controlling UI Access Mode via SSO Groups" }, "AccessGroupCreateRequest": { "properties": { "access_group_name": { "type": "string", "title": "Access Group Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "access_model_names": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Model Names" }, "access_mcp_server_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Mcp Server Ids" }, "access_agent_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Agent Ids" }, "assigned_team_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Assigned Team Ids" }, "assigned_key_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Assigned Key Ids" } }, "type": "object", "required": [ "access_group_name" ], "title": "AccessGroupCreateRequest" }, "AccessGroupInfo": { "properties": { "access_group": { "type": "string", "title": "Access Group" }, "model_names": { "items": { "type": "string" }, "type": "array", "title": "Model Names" }, "deployment_count": { "type": "integer", "title": "Deployment Count" } }, "type": "object", "required": [ "access_group", "model_names", "deployment_count" ], "title": "AccessGroupInfo" }, "AccessGroupResponse": { "properties": { "access_group_id": { "type": "string", "title": "Access Group Id" }, "access_group_name": { "type": "string", "title": "Access Group Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "access_model_names": { "items": { "type": "string" }, "type": "array", "title": "Access Model Names" }, "access_mcp_server_ids": { "items": { "type": "string" }, "type": "array", "title": "Access Mcp Server Ids" }, "access_agent_ids": { "items": { "type": "string" }, "type": "array", "title": "Access Agent Ids" }, "assigned_team_ids": { "items": { "type": "string" }, "type": "array", "title": "Assigned Team Ids" }, "assigned_key_ids": { "items": { "type": "string" }, "type": "array", "title": "Assigned Key Ids" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" } }, "type": "object", "required": [ "access_group_id", "access_group_name", "access_model_names", "access_mcp_server_ids", "access_agent_ids", "assigned_team_ids", "assigned_key_ids", "created_at", "updated_at" ], "title": "AccessGroupResponse" }, "AccessGroupUpdateRequest": { "properties": { "access_group_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Access Group Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "access_model_names": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Model Names" }, "access_mcp_server_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Mcp Server Ids" }, "access_agent_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Agent Ids" }, "assigned_team_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Assigned Team Ids" }, "assigned_key_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Assigned Key Ids" } }, "type": "object", "title": "AccessGroupUpdateRequest" }, "ActiveUsersAnalyticsResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/TagActiveUsersResponse" }, "type": "array", "title": "Results" } }, "type": "object", "required": [ "results" ], "title": "ActiveUsersAnalyticsResponse", "description": "Response for active users analytics" }, "AddTeamCallback": { "properties": { "callback_name": { "type": "string", "title": "Callback Name" }, "callback_type": { "anyOf": [ { "type": "string", "enum": [ "success", "failure", "success_and_failure" ] }, { "type": "null" } ], "title": "Callback Type", "default": "success_and_failure" }, "callback_vars": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Callback Vars" } }, "type": "object", "required": [ "callback_name", "callback_vars" ], "title": "AddTeamCallback" }, "AgentCapabilities": { "properties": { "streaming": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Streaming" }, "pushNotifications": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Pushnotifications" }, "stateTransitionHistory": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Statetransitionhistory" }, "extensions": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AgentExtension" }, "type": "array" }, { "type": "null" } ], "title": "Extensions" } }, "type": "object", "title": "AgentCapabilities", "description": "Defines optional capabilities supported by an agent." }, "AgentCard-Input": { "properties": { "protocolVersion": { "type": "string", "title": "Protocolversion" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "url": { "type": "string", "title": "Url" }, "version": { "type": "string", "title": "Version" }, "capabilities": { "$ref": "#/components/schemas/AgentCapabilities" }, "defaultInputModes": { "items": { "type": "string" }, "type": "array", "title": "Defaultinputmodes" }, "defaultOutputModes": { "items": { "type": "string" }, "type": "array", "title": "Defaultoutputmodes" }, "skills": { "items": { "$ref": "#/components/schemas/AgentSkill" }, "type": "array", "title": "Skills" }, "preferredTransport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Preferredtransport" }, "additionalInterfaces": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AgentInterface" }, "type": "array" }, { "type": "null" } ], "title": "Additionalinterfaces" }, "iconUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Iconurl" }, "provider": { "anyOf": [ { "$ref": "#/components/schemas/AgentProvider" }, { "type": "null" } ] }, "documentationUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Documentationurl" }, "securitySchemes": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "$ref": "#/components/schemas/APIKeySecurityScheme" }, { "$ref": "#/components/schemas/HTTPAuthSecurityScheme" }, { "$ref": "#/components/schemas/OAuth2SecurityScheme" }, { "$ref": "#/components/schemas/OpenIdConnectSecurityScheme" }, { "$ref": "#/components/schemas/MutualTLSSecurityScheme" } ] }, "type": "object" }, { "type": "null" } ], "title": "Securityschemes" }, "security": { "anyOf": [ { "items": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Security" }, "supportsAuthenticatedExtendedCard": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Supportsauthenticatedextendedcard" }, "signatures": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AgentCardSignature" }, "type": "array" }, { "type": "null" } ], "title": "Signatures" } }, "type": "object", "title": "AgentCard", "description": "The AgentCard is a self-describing manifest for an agent.\nIt provides essential metadata including the agent's identity, capabilities,\nskills, supported communication methods, and security requirements." }, "AgentCard-Output": { "properties": { "protocolVersion": { "type": "string", "title": "Protocolversion" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "url": { "type": "string", "title": "Url" }, "version": { "type": "string", "title": "Version" }, "capabilities": { "$ref": "#/components/schemas/AgentCapabilities" }, "defaultInputModes": { "items": { "type": "string" }, "type": "array", "title": "Defaultinputmodes" }, "defaultOutputModes": { "items": { "type": "string" }, "type": "array", "title": "Defaultoutputmodes" }, "skills": { "items": { "$ref": "#/components/schemas/AgentSkill" }, "type": "array", "title": "Skills" }, "preferredTransport": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Preferredtransport" }, "additionalInterfaces": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AgentInterface" }, "type": "array" }, { "type": "null" } ], "title": "Additionalinterfaces" }, "iconUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Iconurl" }, "provider": { "anyOf": [ { "$ref": "#/components/schemas/AgentProvider" }, { "type": "null" } ] }, "documentationUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Documentationurl" }, "securitySchemes": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "$ref": "#/components/schemas/APIKeySecurityScheme" }, { "$ref": "#/components/schemas/HTTPAuthSecurityScheme" }, { "$ref": "#/components/schemas/OAuth2SecurityScheme" }, { "$ref": "#/components/schemas/OpenIdConnectSecurityScheme" }, { "$ref": "#/components/schemas/MutualTLSSecurityScheme" } ] }, "type": "object" }, { "type": "null" } ], "title": "Securityschemes" }, "security": { "anyOf": [ { "items": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Security" }, "supportsAuthenticatedExtendedCard": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Supportsauthenticatedextendedcard" }, "signatures": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AgentCardSignature" }, "type": "array" }, { "type": "null" } ], "title": "Signatures" } }, "type": "object", "title": "AgentCard", "description": "The AgentCard is a self-describing manifest for an agent.\nIt provides essential metadata including the agent's identity, capabilities,\nskills, supported communication methods, and security requirements." }, "AgentCardSignature": { "properties": { "protected": { "type": "string", "title": "Protected" }, "signature": { "type": "string", "title": "Signature" }, "header": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Header" } }, "type": "object", "title": "AgentCardSignature", "description": "Represents a JWS signature of an AgentCard." }, "AgentConfig": { "properties": { "agent_name": { "type": "string", "title": "Agent Name" }, "agent_card_params": { "$ref": "#/components/schemas/AgentCard-Input" }, "litellm_params": { "additionalProperties": true, "type": "object", "title": "Litellm Params" }, "object_permission": { "$ref": "#/components/schemas/AgentObjectPermission" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "session_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Session Tpm Limit" }, "session_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Session Rpm Limit" }, "static_headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Static Headers" }, "extra_headers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Extra Headers" } }, "type": "object", "required": [ "agent_name", "agent_card_params" ], "title": "AgentConfig" }, "AgentCreateInfo": { "properties": { "agent_type": { "type": "string", "title": "Agent Type" }, "agent_type_display_name": { "type": "string", "title": "Agent Type Display Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url" }, "credential_fields": { "items": { "$ref": "#/components/schemas/AgentCredentialField" }, "type": "array", "title": "Credential Fields" }, "litellm_params_template": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Litellm Params Template" }, "model_template": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Template" } }, "type": "object", "required": [ "agent_type", "agent_type_display_name", "credential_fields" ], "title": "AgentCreateInfo" }, "AgentCredentialField": { "properties": { "key": { "type": "string", "title": "Key" }, "label": { "type": "string", "title": "Label" }, "placeholder": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Placeholder" }, "tooltip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tooltip" }, "required": { "type": "boolean", "title": "Required", "default": false }, "field_type": { "type": "string", "enum": [ "text", "password", "select", "upload", "textarea" ], "title": "Field Type", "default": "text" }, "options": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Options" }, "default_value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Value" }, "include_in_litellm_params": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Include In Litellm Params" } }, "type": "object", "required": [ "key", "label" ], "title": "AgentCredentialField" }, "AgentExtension": { "properties": { "uri": { "type": "string", "title": "Uri" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "required": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Required" }, "params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Params" } }, "type": "object", "title": "AgentExtension", "description": "A declaration of a protocol extension supported by an Agent." }, "AgentInterface": { "properties": { "url": { "type": "string", "title": "Url" }, "transport": { "type": "string", "title": "Transport" } }, "type": "object", "title": "AgentInterface", "description": "Declares a combination of a target URL and a transport protocol." }, "AgentMakePublicResponse": { "properties": { "message": { "type": "string", "title": "Message" }, "public_agent_groups": { "items": { "type": "string" }, "type": "array", "title": "Public Agent Groups" }, "updated_by": { "type": "string", "title": "Updated By" } }, "type": "object", "required": [ "message", "public_agent_groups", "updated_by" ], "title": "AgentMakePublicResponse" }, "AgentObjectPermission": { "properties": { "mcp_servers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Mcp Servers" }, "mcp_access_groups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Mcp Access Groups" }, "mcp_tool_permissions": { "anyOf": [ { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, { "type": "null" } ], "title": "Mcp Tool Permissions" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models" }, "agents": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Agents" } }, "type": "object", "title": "AgentObjectPermission" }, "AgentProvider": { "properties": { "organization": { "type": "string", "title": "Organization" }, "url": { "type": "string", "title": "Url" } }, "type": "object", "title": "AgentProvider", "description": "Represents the service provider of an agent." }, "AgentResponse": { "properties": { "agent_id": { "type": "string", "title": "Agent Id" }, "agent_name": { "type": "string", "title": "Agent Name" }, "litellm_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Litellm Params" }, "agent_card_params": { "additionalProperties": true, "type": "object", "title": "Agent Card Params" }, "object_permission": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Object Permission" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "session_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Session Tpm Limit" }, "session_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Session Rpm Limit" }, "static_headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Static Headers" }, "extra_headers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Extra Headers" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" } }, "type": "object", "required": [ "agent_id", "agent_name", "agent_card_params" ], "title": "AgentResponse" }, "AgentSkill": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags" }, "examples": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Examples" }, "inputModes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Inputmodes" }, "outputModes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Outputmodes" }, "security": { "anyOf": [ { "items": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Security" } }, "type": "object", "title": "AgentSkill", "description": "Represents a distinct capability or function that an agent can perform." }, "AllowedVectorStoreIndexItem": { "properties": { "index_name": { "type": "string", "title": "Index Name" }, "index_permissions": { "items": { "type": "string", "enum": [ "read", "write" ] }, "type": "array", "title": "Index Permissions" } }, "type": "object", "required": [ "index_name", "index_permissions" ], "title": "AllowedVectorStoreIndexItem" }, "ApplyGuardrailRequest": { "properties": { "guardrail_name": { "type": "string", "title": "Guardrail Name" }, "text": { "type": "string", "title": "Text" }, "language": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Language" }, "entities": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PiiEntityType" }, "type": "array" }, { "type": "null" } ], "title": "Entities" } }, "type": "object", "required": [ "guardrail_name", "text" ], "title": "ApplyGuardrailRequest" }, "ApplyGuardrailResponse": { "properties": { "response_text": { "type": "string", "title": "Response Text" } }, "type": "object", "required": [ "response_text" ], "title": "ApplyGuardrailResponse" }, "AttachmentImpactResponse": { "properties": { "affected_keys_count": { "type": "integer", "title": "Affected Keys Count", "description": "Number of keys that would be affected (named + unnamed).", "default": 0 }, "affected_teams_count": { "type": "integer", "title": "Affected Teams Count", "description": "Number of teams that would be affected (named + unnamed).", "default": 0 }, "unnamed_keys_count": { "type": "integer", "title": "Unnamed Keys Count", "description": "Number of affected keys without an alias.", "default": 0 }, "unnamed_teams_count": { "type": "integer", "title": "Unnamed Teams Count", "description": "Number of affected teams without an alias.", "default": 0 }, "sample_keys": { "items": { "type": "string" }, "type": "array", "title": "Sample Keys", "description": "Sample of affected key aliases (up to 10)." }, "sample_teams": { "items": { "type": "string" }, "type": "array", "title": "Sample Teams", "description": "Sample of affected team aliases (up to 10)." } }, "type": "object", "title": "AttachmentImpactResponse", "description": "Response for estimating the impact of a policy attachment." }, "AuditLogResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "changed_by": { "type": "string", "title": "Changed By" }, "changed_by_api_key": { "type": "string", "title": "Changed By Api Key" }, "action": { "type": "string", "title": "Action" }, "table_name": { "type": "string", "title": "Table Name" }, "object_id": { "type": "string", "title": "Object Id" }, "before_value": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Before Value" }, "updated_values": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Updated Values" } }, "type": "object", "required": [ "id", "updated_at", "changed_by", "changed_by_api_key", "action", "table_name", "object_id" ], "title": "AuditLogResponse", "description": "Response model for a single audit log entry" }, "BaseLitellmParams-Input": { "properties": { "patterns": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ContentFilterPattern" }, "type": "array" }, { "type": "null" } ], "title": "Patterns", "description": "List of patterns (prebuilt or custom regex) to detect" }, "blocked_words": { "anyOf": [ { "items": { "$ref": "#/components/schemas/BlockedWord" }, "type": "array" }, { "type": "null" } ], "title": "Blocked Words", "description": "List of blocked words with individual actions" }, "blocked_words_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Blocked Words File", "description": "Path to YAML file containing blocked_words list" }, "categories": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ContentFilterCategoryConfig" }, "type": "array" }, { "type": "null" } ], "title": "Categories", "description": "List of prebuilt categories to enable (harmful_*, bias_*)" }, "severity_threshold": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Severity Threshold", "description": "Minimum severity to block (high, medium, low)" }, "pattern_redaction_format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pattern Redaction Format", "description": "Format string for pattern redaction (use {pattern_name} placeholder)" }, "keyword_redaction_tag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Keyword Redaction Tag", "description": "Tag to use for keyword redaction" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key", "description": "API key for the guardrail service" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Base", "description": "Base URL for the guardrail service API" }, "experimental_use_latest_role_message_only": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Experimental Use Latest Role Message Only", "description": "When True, guardrails only receive the latest message for the relevant role (e.g., newest user input pre-call, newest assistant output post-call)", "default": false }, "skip_system_message_in_guardrail": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Skip System Message In Guardrail", "description": "When True, unified guardrails skip system-role messages when building evaluation inputs (texts and structured_messages). When False, system messages are included even if litellm_settings sets a global skip. When None, use the global litellm.skip_system_message_in_guardrail setting." }, "category_thresholds": { "anyOf": [ { "$ref": "#/components/schemas/LakeraCategoryThresholds" }, { "type": "null" } ], "description": "Threshold configuration for Lakera guardrail categories" }, "detect_secrets_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Detect Secrets Config", "description": "Configuration for detect-secrets guardrail" }, "guard_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guard Name", "description": "Name of the guardrail in guardrails.ai" }, "default_on": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Default On", "description": "Whether the guardrail is enabled by default" }, "mask_request_content": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Mask Request Content", "description": "Will mask request content if guardrail makes any changes" }, "mask_response_content": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Mask Response Content", "description": "Will mask response content if guardrail makes any changes" }, "pangea_input_recipe": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pangea Input Recipe", "description": "Recipe for input (LLM request)" }, "pangea_output_recipe": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pangea Output Recipe", "description": "Recipe for output (LLM response)" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model", "description": "Optional field if guardrail requires a 'model' parameter" }, "violation_message_template": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Violation Message Template", "description": "Custom message when a guardrail blocks an action. Supports placeholders like {tool_name}, {rule_id}, and {default_message}." }, "end_session_after_n_fails": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "End Session After N Fails", "description": "For /v1/realtime sessions: automatically close the session after this many guardrail violations." }, "on_violation": { "anyOf": [ { "type": "string", "enum": [ "warn", "end_session" ] }, { "type": "null" } ], "title": "On Violation", "description": "For /v1/realtime sessions: 'warn' speaks the violation message and continues; 'end_session' speaks the message and closes the connection." }, "realtime_violation_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Realtime Violation Message", "description": "The message the bot speaks aloud when a /v1/realtime guardrail fires. Falls back to violation_message_template if not set." }, "template_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Template Id", "description": "The ID of your Model Armor template" }, "location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Location", "description": "Google Cloud location/region (e.g., us-central1)" }, "credentials": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Credentials", "description": "Path to Google Cloud credentials JSON file or JSON string" }, "api_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Endpoint", "description": "Optional custom API endpoint for Model Armor" }, "fail_on_error": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fail On Error", "description": "Whether to fail the request if Model Armor encounters an error", "default": true }, "additional_provider_specific_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Additional Provider Specific Params", "description": "Additional provider-specific parameters for generic guardrail APIs" }, "unreachable_fallback": { "type": "string", "enum": [ "fail_closed", "fail_open" ], "title": "Unreachable Fallback", "description": "Behavior when a guardrail endpoint is unreachable due to network errors. NOTE: This is currently only implemented by guardrail='generic_guardrail_api'. 'fail_closed' raises an error (default). 'fail_open' logs a critical error and allows the request to proceed.", "default": "fail_closed" }, "extra_headers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Extra Headers", "description": "Header names to forward from the client request to the guardrail (e.g. x-request-id). Only these headers' values are sent; others may be omitted or sent as [present]. Used by generic_guardrail_api (similar to MCP extra_headers)." }, "custom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Code", "description": "Python-like code containing the apply_guardrail function for custom guardrail logic" } }, "additionalProperties": true, "type": "object", "title": "BaseLitellmParams" }, "BaseLitellmParams-Output": { "properties": { "patterns": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ContentFilterPattern" }, "type": "array" }, { "type": "null" } ], "title": "Patterns", "description": "List of patterns (prebuilt or custom regex) to detect" }, "blocked_words": { "anyOf": [ { "items": { "$ref": "#/components/schemas/BlockedWord" }, "type": "array" }, { "type": "null" } ], "title": "Blocked Words", "description": "List of blocked words with individual actions" }, "blocked_words_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Blocked Words File", "description": "Path to YAML file containing blocked_words list" }, "categories": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ContentFilterCategoryConfig" }, "type": "array" }, { "type": "null" } ], "title": "Categories", "description": "List of prebuilt categories to enable (harmful_*, bias_*)" }, "severity_threshold": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Severity Threshold", "description": "Minimum severity to block (high, medium, low)" }, "pattern_redaction_format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pattern Redaction Format", "description": "Format string for pattern redaction (use {pattern_name} placeholder)" }, "keyword_redaction_tag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Keyword Redaction Tag", "description": "Tag to use for keyword redaction" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key", "description": "API key for the guardrail service" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Base", "description": "Base URL for the guardrail service API" }, "experimental_use_latest_role_message_only": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Experimental Use Latest Role Message Only", "description": "When True, guardrails only receive the latest message for the relevant role (e.g., newest user input pre-call, newest assistant output post-call)", "default": false }, "skip_system_message_in_guardrail": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Skip System Message In Guardrail", "description": "When True, unified guardrails skip system-role messages when building evaluation inputs (texts and structured_messages). When False, system messages are included even if litellm_settings sets a global skip. When None, use the global litellm.skip_system_message_in_guardrail setting." }, "category_thresholds": { "anyOf": [ { "$ref": "#/components/schemas/LakeraCategoryThresholds" }, { "type": "null" } ], "description": "Threshold configuration for Lakera guardrail categories" }, "detect_secrets_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Detect Secrets Config", "description": "Configuration for detect-secrets guardrail" }, "guard_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guard Name", "description": "Name of the guardrail in guardrails.ai" }, "default_on": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Default On", "description": "Whether the guardrail is enabled by default" }, "mask_request_content": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Mask Request Content", "description": "Will mask request content if guardrail makes any changes" }, "mask_response_content": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Mask Response Content", "description": "Will mask response content if guardrail makes any changes" }, "pangea_input_recipe": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pangea Input Recipe", "description": "Recipe for input (LLM request)" }, "pangea_output_recipe": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pangea Output Recipe", "description": "Recipe for output (LLM response)" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model", "description": "Optional field if guardrail requires a 'model' parameter" }, "violation_message_template": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Violation Message Template", "description": "Custom message when a guardrail blocks an action. Supports placeholders like {tool_name}, {rule_id}, and {default_message}." }, "end_session_after_n_fails": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "End Session After N Fails", "description": "For /v1/realtime sessions: automatically close the session after this many guardrail violations." }, "on_violation": { "anyOf": [ { "type": "string", "enum": [ "warn", "end_session" ] }, { "type": "null" } ], "title": "On Violation", "description": "For /v1/realtime sessions: 'warn' speaks the violation message and continues; 'end_session' speaks the message and closes the connection." }, "realtime_violation_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Realtime Violation Message", "description": "The message the bot speaks aloud when a /v1/realtime guardrail fires. Falls back to violation_message_template if not set." }, "template_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Template Id", "description": "The ID of your Model Armor template" }, "location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Location", "description": "Google Cloud location/region (e.g., us-central1)" }, "credentials": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Credentials", "description": "Path to Google Cloud credentials JSON file or JSON string" }, "api_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Endpoint", "description": "Optional custom API endpoint for Model Armor" }, "fail_on_error": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fail On Error", "description": "Whether to fail the request if Model Armor encounters an error", "default": true }, "additional_provider_specific_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Additional Provider Specific Params", "description": "Additional provider-specific parameters for generic guardrail APIs" }, "unreachable_fallback": { "type": "string", "enum": [ "fail_closed", "fail_open" ], "title": "Unreachable Fallback", "description": "Behavior when a guardrail endpoint is unreachable due to network errors. NOTE: This is currently only implemented by guardrail='generic_guardrail_api'. 'fail_closed' raises an error (default). 'fail_open' logs a critical error and allows the request to proceed.", "default": "fail_closed" }, "extra_headers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Extra Headers", "description": "Header names to forward from the client request to the guardrail (e.g. x-request-id). Only these headers' values are sent; others may be omitted or sent as [present]. Used by generic_guardrail_api (similar to MCP extra_headers)." }, "custom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Code", "description": "Python-like code containing the apply_guardrail function for custom guardrail logic" } }, "additionalProperties": true, "type": "object", "title": "BaseLitellmParams" }, "BaseModel": { "properties": {}, "type": "object", "title": "BaseModel" }, "BlockKeyRequest": { "properties": { "key": { "type": "string", "title": "Key" } }, "type": "object", "required": [ "key" ], "title": "BlockKeyRequest" }, "BlockTeamRequest": { "properties": { "team_id": { "type": "string", "title": "Team Id" } }, "type": "object", "required": [ "team_id" ], "title": "BlockTeamRequest" }, "BlockUsers": { "properties": { "user_ids": { "items": { "type": "string" }, "type": "array", "title": "User Ids" } }, "type": "object", "required": [ "user_ids" ], "title": "BlockUsers" }, "BlockedWord": { "properties": { "keyword": { "type": "string", "title": "Keyword", "description": "The keyword to block or mask" }, "action": { "$ref": "#/components/schemas/ContentFilterAction", "description": "Action to take when keyword is detected (BLOCK or MASK)" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Optional description explaining why this keyword is sensitive" } }, "type": "object", "required": [ "keyword", "action" ], "title": "BlockedWord", "description": "Represents a blocked word with its action and optional description" }, "BlogPost": { "properties": { "title": { "type": "string", "title": "Title" }, "description": { "type": "string", "title": "Description" }, "date": { "type": "string", "title": "Date" }, "url": { "type": "string", "title": "Url" } }, "type": "object", "required": [ "title", "description", "date", "url" ], "title": "BlogPost" }, "BlogPostsResponse": { "properties": { "posts": { "items": { "$ref": "#/components/schemas/BlogPost" }, "type": "array", "title": "Posts" } }, "type": "object", "required": [ "posts" ], "title": "BlogPostsResponse" }, "Body_audio_transcriptions_audio_transcriptions_post": { "properties": { "file": { "type": "string", "format": "binary", "title": "File" } }, "type": "object", "required": [ "file" ], "title": "Body_audio_transcriptions_audio_transcriptions_post" }, "Body_audio_transcriptions_v1_audio_transcriptions_post": { "properties": { "file": { "type": "string", "format": "binary", "title": "File" } }, "type": "object", "required": [ "file" ], "title": "Body_audio_transcriptions_v1_audio_transcriptions_post" }, "Body_convert_prompt_file_to_json_utils_dotprompt_json_converter_post": { "properties": { "file": { "type": "string", "format": "binary", "title": "File" } }, "type": "object", "required": [ "file" ], "title": "Body_convert_prompt_file_to_json_utils_dotprompt_json_converter_post" }, "Body_create_file__provider__v1_files_post": { "properties": { "purpose": { "type": "string", "title": "Purpose" }, "target_model_names": { "type": "string", "title": "Target Model Names", "default": "" }, "target_storage": { "type": "string", "title": "Target Storage", "default": "default" }, "custom_llm_provider": { "type": "string", "title": "Custom Llm Provider", "default": "openai" }, "file": { "type": "string", "format": "binary", "title": "File" }, "litellm_metadata": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Metadata" } }, "type": "object", "required": [ "purpose", "file" ], "title": "Body_create_file__provider__v1_files_post" }, "Body_create_file_files_post": { "properties": { "purpose": { "type": "string", "title": "Purpose" }, "target_model_names": { "type": "string", "title": "Target Model Names", "default": "" }, "target_storage": { "type": "string", "title": "Target Storage", "default": "default" }, "custom_llm_provider": { "type": "string", "title": "Custom Llm Provider", "default": "openai" }, "file": { "type": "string", "format": "binary", "title": "File" }, "litellm_metadata": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Metadata" } }, "type": "object", "required": [ "purpose", "file" ], "title": "Body_create_file_files_post" }, "Body_create_file_v1_files_post": { "properties": { "purpose": { "type": "string", "title": "Purpose" }, "target_model_names": { "type": "string", "title": "Target Model Names", "default": "" }, "target_storage": { "type": "string", "title": "Target Storage", "default": "default" }, "custom_llm_provider": { "type": "string", "title": "Custom Llm Provider", "default": "openai" }, "file": { "type": "string", "format": "binary", "title": "File" }, "litellm_metadata": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Metadata" } }, "type": "object", "required": [ "purpose", "file" ], "title": "Body_create_file_v1_files_post" }, "Body_image_edit_api_images_edits_post": { "properties": { "image": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Image" }, "image[]": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Image[]" }, "mask": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Mask" }, "mask[]": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Mask[]" } }, "type": "object", "title": "Body_image_edit_api_images_edits_post" }, "Body_image_edit_api_openai_deployments__model__images_edits_post": { "properties": { "image": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Image" }, "image[]": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Image[]" }, "mask": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Mask" }, "mask[]": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Mask[]" } }, "type": "object", "title": "Body_image_edit_api_openai_deployments__model__images_edits_post" }, "Body_image_edit_api_v1_images_edits_post": { "properties": { "image": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Image" }, "image[]": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Image[]" }, "mask": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Mask" }, "mask[]": { "anyOf": [ { "items": { "type": "string", "format": "binary" }, "type": "array" }, { "type": "null" } ], "title": "Mask[]" } }, "type": "object", "title": "Body_image_edit_api_v1_images_edits_post" }, "Body_test_model_connection_health_test_connection_post": { "properties": { "mode": { "anyOf": [ { "type": "string", "enum": [ "chat", "completion", "embedding", "audio_speech", "audio_transcription", "image_generation", "video_generation", "batch", "rerank", "realtime", "responses", "ocr" ] }, { "type": "null" } ], "title": "Mode", "description": "The mode to test the model with", "default": "chat" }, "litellm_params": { "additionalProperties": true, "type": "object", "title": "Litellm Params", "description": "Parameters for litellm.completion, litellm.embedding for the health check" }, "model_info": { "additionalProperties": true, "type": "object", "title": "Model Info", "description": "Model info for the health check" } }, "type": "object", "title": "Body_test_model_connection_health_test_connection_post" }, "Body_token_endpoint__mcp_server_name__token_post": { "properties": { "grant_type": { "type": "string", "title": "Grant Type" }, "code": { "type": "string", "title": "Code" }, "redirect_uri": { "type": "string", "title": "Redirect Uri" }, "client_id": { "type": "string", "title": "Client Id" }, "client_secret": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Secret" }, "code_verifier": { "type": "string", "title": "Code Verifier" }, "refresh_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Refresh Token" }, "scope": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scope" } }, "type": "object", "required": [ "grant_type", "client_id" ], "title": "Body_token_endpoint__mcp_server_name__token_post" }, "Body_token_endpoint_token_post": { "properties": { "grant_type": { "type": "string", "title": "Grant Type" }, "code": { "type": "string", "title": "Code" }, "redirect_uri": { "type": "string", "title": "Redirect Uri" }, "client_id": { "type": "string", "title": "Client Id" }, "client_secret": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Secret" }, "code_verifier": { "type": "string", "title": "Code Verifier" }, "refresh_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Refresh Token" }, "scope": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scope" } }, "type": "object", "required": [ "grant_type", "client_id" ], "title": "Body_token_endpoint_token_post" }, "Body_upload_logo_upload_logo_post": { "properties": { "file": { "type": "string", "format": "binary", "title": "File" } }, "type": "object", "required": [ "file" ], "title": "Body_upload_logo_upload_logo_post" }, "Body_video_create_character_v1_videos_characters_post": { "properties": { "video": { "type": "string", "format": "binary", "title": "Video" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "video", "name" ], "title": "Body_video_create_character_v1_videos_characters_post" }, "Body_video_create_character_videos_characters_post": { "properties": { "video": { "type": "string", "format": "binary", "title": "Video" }, "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "video", "name" ], "title": "Body_video_create_character_videos_characters_post" }, "Body_video_generation_v1_videos_post": { "properties": { "input_reference": { "anyOf": [ { "type": "string", "format": "binary" }, { "type": "null" } ], "title": "Input Reference" } }, "type": "object", "title": "Body_video_generation_v1_videos_post" }, "Body_video_generation_videos_post": { "properties": { "input_reference": { "anyOf": [ { "type": "string", "format": "binary" }, { "type": "null" } ], "title": "Input Reference" } }, "type": "object", "title": "Body_video_generation_videos_post" }, "BreakdownMetrics": { "properties": { "mcp_servers": { "additionalProperties": { "$ref": "#/components/schemas/MetricWithMetadata" }, "type": "object", "title": "Mcp Servers" }, "models": { "additionalProperties": { "$ref": "#/components/schemas/MetricWithMetadata" }, "type": "object", "title": "Models" }, "model_groups": { "additionalProperties": { "$ref": "#/components/schemas/MetricWithMetadata" }, "type": "object", "title": "Model Groups" }, "providers": { "additionalProperties": { "$ref": "#/components/schemas/MetricWithMetadata" }, "type": "object", "title": "Providers" }, "endpoints": { "additionalProperties": { "$ref": "#/components/schemas/MetricWithMetadata" }, "type": "object", "title": "Endpoints" }, "api_keys": { "additionalProperties": { "$ref": "#/components/schemas/KeyMetricWithMetadata" }, "type": "object", "title": "Api Keys" }, "entities": { "additionalProperties": { "$ref": "#/components/schemas/MetricWithMetadata" }, "type": "object", "title": "Entities" } }, "type": "object", "title": "BreakdownMetrics", "description": "Breakdown of spend by different dimensions" }, "BudgetConfig": { "properties": { "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" } }, "type": "object", "title": "BudgetConfig" }, "BudgetDeleteRequest": { "properties": { "id": { "type": "string", "title": "Id" } }, "type": "object", "required": [ "id" ], "title": "BudgetDeleteRequest" }, "BudgetNewRequest": { "properties": { "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id", "description": "The unique budget id." }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget", "description": "Requests will fail if this budget (in USD) is exceeded." }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget", "description": "Requests will NOT fail if this is exceeded. Will fire alerting though." }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests", "description": "Max concurrent requests allowed for this budget id." }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit", "description": "Max tokens per minute, allowed for this budget id." }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit", "description": "Max requests per minute, allowed for this budget id." }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration", "description": "Max duration budget should be set for (e.g. '1hr', '1d', '28d')" }, "model_max_budget": { "anyOf": [ { "additionalProperties": { "$ref": "#/components/schemas/BudgetConfig" }, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "description": "Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}})" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At", "description": "Datetime when the budget is reset" } }, "type": "object", "title": "BudgetNewRequest" }, "BudgetRequest": { "properties": { "budgets": { "items": { "type": "string" }, "type": "array", "title": "Budgets" } }, "type": "object", "required": [ "budgets" ], "title": "BudgetRequest" }, "BulkTeamMemberAddRequest": { "properties": { "team_id": { "type": "string", "title": "Team Id" }, "members": { "anyOf": [ { "items": { "$ref": "#/components/schemas/Member" }, "type": "array" }, { "type": "null" } ], "title": "Members" }, "all_users": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "All Users", "default": false }, "max_budget_in_team": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget In Team" } }, "type": "object", "required": [ "team_id" ], "title": "BulkTeamMemberAddRequest", "description": "Request for bulk team member addition" }, "BulkTeamMemberAddResponse": { "properties": { "team_id": { "type": "string", "title": "Team Id" }, "results": { "items": { "$ref": "#/components/schemas/TeamMemberAddResult" }, "type": "array", "title": "Results" }, "total_requested": { "type": "integer", "title": "Total Requested" }, "successful_additions": { "type": "integer", "title": "Successful Additions" }, "failed_additions": { "type": "integer", "title": "Failed Additions" }, "updated_team": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Updated Team" } }, "type": "object", "required": [ "team_id", "results", "total_requested", "successful_additions", "failed_additions" ], "title": "BulkTeamMemberAddResponse", "description": "Response for bulk team member add operations" }, "BulkUpdateKeyRequest": { "properties": { "keys": { "items": { "$ref": "#/components/schemas/BulkUpdateKeyRequestItem" }, "type": "array", "title": "Keys" } }, "type": "object", "required": [ "keys" ], "title": "BulkUpdateKeyRequest", "description": "Request for bulk key updates" }, "BulkUpdateKeyRequestItem": { "properties": { "key": { "type": "string", "title": "Key" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" } }, "type": "object", "required": [ "key" ], "title": "BulkUpdateKeyRequestItem", "description": "Individual key update request item" }, "BulkUpdateKeyResponse": { "properties": { "total_requested": { "type": "integer", "title": "Total Requested" }, "successful_updates": { "items": { "$ref": "#/components/schemas/SuccessfulKeyUpdate" }, "type": "array", "title": "Successful Updates" }, "failed_updates": { "items": { "$ref": "#/components/schemas/FailedKeyUpdate" }, "type": "array", "title": "Failed Updates" } }, "type": "object", "required": [ "total_requested", "successful_updates", "failed_updates" ], "title": "BulkUpdateKeyResponse", "description": "Response for bulk key update operations" }, "BulkUpdateTeamMemberPermissionsRequest": { "properties": { "permissions": { "items": { "$ref": "#/components/schemas/KeyManagementRoutes" }, "type": "array", "title": "Permissions" }, "team_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Team Ids" }, "apply_to_all_teams": { "type": "boolean", "title": "Apply To All Teams", "default": false } }, "type": "object", "required": [ "permissions" ], "title": "BulkUpdateTeamMemberPermissionsRequest", "description": "Request to bulk-update team member permissions across teams." }, "BulkUpdateTeamMemberPermissionsResponse": { "properties": { "message": { "type": "string", "title": "Message" }, "teams_updated": { "type": "integer", "title": "Teams Updated" }, "permissions_appended": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Permissions Appended" } }, "type": "object", "required": [ "message", "teams_updated" ], "title": "BulkUpdateTeamMemberPermissionsResponse", "description": "Response for bulk team member permissions update." }, "BulkUpdateUserRequest": { "properties": { "users": { "anyOf": [ { "items": { "$ref": "#/components/schemas/UpdateUserRequest" }, "type": "array" }, { "type": "null" } ], "title": "Users" }, "all_users": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "All Users", "default": false }, "user_updates": { "anyOf": [ { "$ref": "#/components/schemas/UpdateUserRequestNoUserIDorEmail" }, { "type": "null" } ] } }, "type": "object", "title": "BulkUpdateUserRequest", "description": "Request for bulk user updates" }, "BulkUpdateUserResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/UserUpdateResult" }, "type": "array", "title": "Results" }, "total_requested": { "type": "integer", "title": "Total Requested" }, "successful_updates": { "type": "integer", "title": "Successful Updates" }, "failed_updates": { "type": "integer", "title": "Failed Updates" } }, "type": "object", "required": [ "results", "total_requested", "successful_updates", "failed_updates" ], "title": "BulkUpdateUserResponse", "description": "Response for bulk user update operations" }, "CachePingResponse": { "properties": { "status": { "type": "string", "title": "Status" }, "cache_type": { "type": "string", "title": "Cache Type" }, "ping_response": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Ping Response" }, "set_cache_response": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Set Cache Response" }, "litellm_cache_params": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Cache Params" }, "health_check_cache_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Health Check Cache Params" } }, "type": "object", "required": [ "status", "cache_type" ], "title": "CachePingResponse" }, "CacheSettingsField": { "properties": { "field_name": { "type": "string", "title": "Field Name" }, "field_type": { "type": "string", "title": "Field Type" }, "field_value": { "title": "Field Value" }, "field_description": { "type": "string", "title": "Field Description" }, "field_default": { "title": "Field Default" }, "options": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Options" }, "ui_field_name": { "type": "string", "title": "Ui Field Name" }, "link": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Link" }, "redis_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Redis Type" } }, "type": "object", "required": [ "field_name", "field_type", "field_value", "field_description", "ui_field_name" ], "title": "CacheSettingsField" }, "CacheSettingsResponse": { "properties": { "fields": { "items": { "$ref": "#/components/schemas/CacheSettingsField" }, "type": "array", "title": "Fields", "description": "List of all configurable cache settings with metadata" }, "current_values": { "additionalProperties": true, "type": "object", "title": "Current Values", "description": "Current values of cache settings" }, "redis_type_descriptions": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Redis Type Descriptions", "description": "Descriptions for each Redis type option" } }, "type": "object", "required": [ "fields", "current_values", "redis_type_descriptions" ], "title": "CacheSettingsResponse" }, "CacheSettingsUpdateRequest": { "properties": { "cache_settings": { "additionalProperties": true, "type": "object", "title": "Cache Settings", "description": "Cache settings to save" } }, "type": "object", "required": [ "cache_settings" ], "title": "CacheSettingsUpdateRequest" }, "CacheTestRequest": { "properties": { "cache_settings": { "additionalProperties": true, "type": "object", "title": "Cache Settings", "description": "Cache settings to test connection with" } }, "type": "object", "required": [ "cache_settings" ], "title": "CacheTestRequest" }, "CacheTestResponse": { "properties": { "status": { "type": "string", "title": "Status", "description": "Connection status: 'success' or 'failed'" }, "message": { "type": "string", "title": "Message", "description": "Connection result message" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error", "description": "Error message if connection failed" } }, "type": "object", "required": [ "status", "message" ], "title": "CacheTestResponse" }, "CallTypes": { "type": "string", "enum": [ "embedding", "aembedding", "completion", "acompletion", "atext_completion", "text_completion", "image_generation", "aimage_generation", "image_edit", "aimage_edit", "moderation", "amoderation", "atranscription", "transcription", "aspeech", "speech", "rerank", "arerank", "search", "asearch", "_arealtime", "_aresponses_websocket", "create_batch", "acreate_batch", "aretrieve_batch", "retrieve_batch", "acancel_batch", "cancel_batch", "pass_through_endpoint", "anthropic_messages", "get_assistants", "aget_assistants", "create_assistants", "acreate_assistants", "delete_assistant", "adelete_assistant", "acreate_thread", "create_thread", "aget_thread", "get_thread", "a_add_message", "add_message", "aget_messages", "get_messages", "arun_thread", "run_thread", "arun_thread_stream", "run_thread_stream", "afile_retrieve", "file_retrieve", "afile_delete", "file_delete", "afile_list", "file_list", "acreate_file", "create_file", "afile_content", "file_content", "create_fine_tuning_job", "acreate_fine_tuning_job", "create_video", "acreate_video", "avideo_retrieve", "video_retrieve", "avideo_content", "video_content", "video_remix", "avideo_remix", "video_list", "avideo_list", "video_retrieve_job", "avideo_retrieve_job", "video_delete", "avideo_delete", "video_create_character", "avideo_create_character", "video_get_character", "avideo_get_character", "video_edit", "avideo_edit", "video_extension", "avideo_extension", "vector_store_file_create", "avector_store_file_create", "vector_store_file_list", "avector_store_file_list", "vector_store_file_retrieve", "avector_store_file_retrieve", "vector_store_file_content", "avector_store_file_content", "vector_store_file_update", "avector_store_file_update", "vector_store_file_delete", "avector_store_file_delete", "vector_store_create", "avector_store_create", "vector_store_search", "avector_store_search", "create_container", "acreate_container", "list_containers", "alist_containers", "retrieve_container", "aretrieve_container", "delete_container", "adelete_container", "list_container_files", "alist_container_files", "upload_container_file", "aupload_container_file", "acancel_fine_tuning_job", "cancel_fine_tuning_job", "alist_fine_tuning_jobs", "list_fine_tuning_jobs", "aretrieve_fine_tuning_job", "retrieve_fine_tuning_job", "responses", "aresponses", "alist_input_items", "llm_passthrough_route", "allm_passthrough_route", "generate_content", "agenerate_content", "generate_content_stream", "agenerate_content_stream", "ocr", "aocr", "call_mcp_tool", "list_mcp_tools", "asend_message", "send_message", "acreate_skill" ], "title": "CallTypes" }, "CallbacksByType": { "properties": { "success": { "items": { "type": "string" }, "type": "array", "title": "Success" }, "failure": { "items": { "type": "string" }, "type": "array", "title": "Failure" }, "success_and_failure": { "items": { "type": "string" }, "type": "array", "title": "Success And Failure" } }, "type": "object", "required": [ "success", "failure", "success_and_failure" ], "title": "CallbacksByType" }, "CancelEvalResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "object": { "type": "string", "title": "Object", "default": "eval" }, "status": { "type": "string", "const": "cancelled", "title": "Status" } }, "type": "object", "required": [ "id", "status" ], "title": "CancelEvalResponse", "description": "Response from cancelling an evaluation" }, "CancelRunResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "object": { "type": "string", "title": "Object", "default": "eval.run" }, "status": { "type": "string", "const": "cancelled", "title": "Status" } }, "type": "object", "required": [ "id", "status" ], "title": "CancelRunResponse", "description": "Response from cancelling a run" }, "ChatCompletionAnnotation": { "properties": { "type": { "type": "string", "const": "url_citation", "title": "Type" }, "url_citation": { "$ref": "#/components/schemas/ChatCompletionAnnotationURLCitation" } }, "additionalProperties": true, "type": "object", "title": "ChatCompletionAnnotation" }, "ChatCompletionAnnotationURLCitation": { "properties": { "end_index": { "type": "integer", "title": "End Index" }, "start_index": { "type": "integer", "title": "Start Index" }, "title": { "type": "string", "title": "Title" }, "url": { "type": "string", "title": "Url" } }, "additionalProperties": true, "type": "object", "title": "ChatCompletionAnnotationURLCitation" }, "ChatCompletionAssistantMessage": { "properties": { "role": { "const": "assistant", "title": "Role", "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionTextObject" }, { "$ref": "#/components/schemas/ChatCompletionThinkingBlock" }, { "$ref": "#/components/schemas/ChatCompletionRedactedThinkingBlock" }, { "$ref": "#/components/schemas/ChatCompletionImageObject" } ] }, "type": "array" }, { "type": "null" } ], "title": "Content" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "tool_calls": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ChatCompletionAssistantToolCall" }, "type": "array" }, { "type": "null" } ], "title": "Tool Calls" }, "function_call": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionToolCallFunctionChunk" }, { "type": "null" } ] }, "reasoning_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reasoning Content" }, "cache_control": { "$ref": "#/components/schemas/ChatCompletionCachedContent" }, "thinking_blocks": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionThinkingBlock" }, { "$ref": "#/components/schemas/ChatCompletionRedactedThinkingBlock" } ] }, "type": "array" }, { "type": "null" } ], "title": "Thinking Blocks" }, "reasoning_items": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ChatCompletionReasoningItem" }, "type": "array" }, { "type": "null" } ], "title": "Reasoning Items" } }, "required": [ "role" ], "title": "ChatCompletionAssistantMessage", "type": "object" }, "ChatCompletionAssistantToolCall": { "properties": { "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id" }, "type": { "const": "function", "title": "Type", "type": "string" }, "function": { "$ref": "#/components/schemas/ChatCompletionToolCallFunctionChunk" } }, "required": [ "id", "type", "function" ], "title": "ChatCompletionAssistantToolCall", "type": "object" }, "ChatCompletionAudioObject": { "properties": { "input_audio": { "$ref": "#/components/schemas/InputAudio" }, "type": { "const": "input_audio", "title": "Type", "type": "string" } }, "required": [ "input_audio", "type" ], "title": "ChatCompletionAudioObject", "type": "object" }, "ChatCompletionAudioResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "data": { "type": "string", "title": "Data" }, "expires_at": { "type": "integer", "title": "Expires At" }, "transcript": { "type": "string", "title": "Transcript" } }, "additionalProperties": true, "type": "object", "required": [ "id", "data", "expires_at", "transcript" ], "title": "ChatCompletionAudioResponse" }, "ChatCompletionCachedContent": { "properties": { "type": { "const": "ephemeral", "title": "Type", "type": "string" } }, "required": [ "type" ], "title": "ChatCompletionCachedContent", "type": "object" }, "ChatCompletionDeveloperMessage": { "properties": { "role": { "const": "developer", "title": "Role", "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "items": {}, "type": "array" } ], "title": "Content" }, "name": { "title": "Name", "type": "string" }, "cache_control": { "$ref": "#/components/schemas/ChatCompletionCachedContent" } }, "required": [ "role", "content" ], "title": "ChatCompletionDeveloperMessage", "type": "object" }, "ChatCompletionDocumentObject": { "properties": { "type": { "const": "document", "title": "Type", "type": "string" }, "source": { "$ref": "#/components/schemas/DocumentObject" }, "title": { "title": "Title", "type": "string" }, "context": { "title": "Context", "type": "string" }, "citations": { "anyOf": [ { "$ref": "#/components/schemas/CitationsObject" }, { "type": "null" } ] } }, "required": [ "type", "source", "title", "context", "citations" ], "title": "ChatCompletionDocumentObject", "type": "object" }, "ChatCompletionFileObject": { "properties": { "type": { "const": "file", "title": "Type", "type": "string" }, "file": { "$ref": "#/components/schemas/ChatCompletionFileObjectFile" } }, "required": [ "type", "file" ], "title": "ChatCompletionFileObject", "type": "object" }, "ChatCompletionFileObjectFile": { "properties": { "file_data": { "title": "File Data", "type": "string" }, "file_id": { "title": "File Id", "type": "string" }, "filename": { "title": "Filename", "type": "string" }, "format": { "title": "Format", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "video_metadata": { "additionalProperties": true, "title": "Video Metadata", "type": "object" } }, "title": "ChatCompletionFileObjectFile", "type": "object" }, "ChatCompletionFunctionMessage": { "properties": { "role": { "const": "function", "title": "Role", "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "items": { "$ref": "#/components/schemas/ChatCompletionTextObject" }, "type": "array" }, { "type": "null" } ], "title": "Content" }, "name": { "title": "Name", "type": "string" }, "tool_call_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tool Call Id" } }, "required": [ "role", "content", "name", "tool_call_id" ], "title": "ChatCompletionFunctionMessage", "type": "object" }, "ChatCompletionImageObject": { "properties": { "type": { "const": "image_url", "title": "Type", "type": "string" }, "image_url": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ChatCompletionImageUrlObject" } ], "title": "Image Url" } }, "required": [ "type", "image_url" ], "title": "ChatCompletionImageObject", "type": "object" }, "ChatCompletionImageUrlObject": { "properties": { "url": { "title": "Url", "type": "string" }, "detail": { "title": "Detail", "type": "string" }, "format": { "title": "Format", "type": "string" } }, "required": [ "url" ], "title": "ChatCompletionImageUrlObject", "type": "object" }, "ChatCompletionMessageToolCall": { "properties": {}, "additionalProperties": true, "type": "object", "title": "ChatCompletionMessageToolCall" }, "ChatCompletionReasoningItem": { "description": "Represents an OpenAI Responses API reasoning item for round-tripping in conversation history.", "properties": { "type": { "const": "reasoning", "title": "Type", "type": "string" }, "id": { "title": "Id", "type": "string" }, "encrypted_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Encrypted Content" }, "summary": { "items": { "$ref": "#/components/schemas/ChatCompletionReasoningSummaryTextBlock" }, "title": "Summary", "type": "array" } }, "required": [ "type" ], "title": "ChatCompletionReasoningItem", "type": "object" }, "ChatCompletionReasoningSummaryTextBlock": { "properties": { "type": { "const": "summary_text", "title": "Type", "type": "string" }, "text": { "title": "Text", "type": "string" } }, "required": [ "type" ], "title": "ChatCompletionReasoningSummaryTextBlock", "type": "object" }, "ChatCompletionRedactedThinkingBlock": { "properties": { "type": { "const": "redacted_thinking", "title": "Type", "type": "string" }, "data": { "title": "Data", "type": "string" }, "cache_control": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "$ref": "#/components/schemas/ChatCompletionCachedContent" }, { "type": "null" } ], "title": "Cache Control" } }, "required": [ "type" ], "title": "ChatCompletionRedactedThinkingBlock", "type": "object" }, "ChatCompletionSystemMessage": { "properties": { "role": { "const": "system", "title": "Role", "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "items": {}, "type": "array" } ], "title": "Content" }, "name": { "title": "Name", "type": "string" }, "cache_control": { "$ref": "#/components/schemas/ChatCompletionCachedContent" } }, "required": [ "role", "content" ], "title": "ChatCompletionSystemMessage", "type": "object" }, "ChatCompletionTextObject": { "properties": { "type": { "const": "text", "title": "Type", "type": "string" }, "text": { "title": "Text", "type": "string" }, "cache_control": { "$ref": "#/components/schemas/ChatCompletionCachedContent" } }, "required": [ "type", "text" ], "title": "ChatCompletionTextObject", "type": "object" }, "ChatCompletionThinkingBlock": { "properties": { "type": { "const": "thinking", "title": "Type", "type": "string" }, "thinking": { "title": "Thinking", "type": "string" }, "signature": { "title": "Signature", "type": "string" }, "cache_control": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "$ref": "#/components/schemas/ChatCompletionCachedContent" }, { "type": "null" } ], "title": "Cache Control" } }, "required": [ "type" ], "title": "ChatCompletionThinkingBlock", "type": "object" }, "ChatCompletionTokenLogprob": { "properties": { "token": { "type": "string", "title": "Token" }, "bytes": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "title": "Bytes" }, "logprob": { "type": "number", "title": "Logprob" }, "top_logprobs": { "items": { "$ref": "#/components/schemas/TopLogprob" }, "type": "array", "title": "Top Logprobs" } }, "additionalProperties": true, "type": "object", "required": [ "token", "logprob", "top_logprobs" ], "title": "ChatCompletionTokenLogprob" }, "ChatCompletionToolCallChunk": { "properties": { "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id" }, "type": { "type": "string", "const": "function", "title": "Type" }, "function": { "$ref": "#/components/schemas/ChatCompletionToolCallFunctionChunk" }, "index": { "type": "integer", "title": "Index" } }, "type": "object", "required": [ "id", "type", "function", "index" ], "title": "ChatCompletionToolCallChunk" }, "ChatCompletionToolCallFunctionChunk": { "properties": { "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "arguments": { "title": "Arguments", "type": "string" }, "provider_specific_fields": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Provider Specific Fields" } }, "title": "ChatCompletionToolCallFunctionChunk", "type": "object" }, "ChatCompletionToolMessage": { "properties": { "role": { "const": "tool", "title": "Role", "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "items": { "$ref": "#/components/schemas/ChatCompletionTextObject" }, "type": "array" } ], "title": "Content" }, "tool_call_id": { "title": "Tool Call Id", "type": "string" } }, "required": [ "role", "content", "tool_call_id" ], "title": "ChatCompletionToolMessage", "type": "object" }, "ChatCompletionToolParam": { "properties": { "type": { "anyOf": [ { "type": "string", "const": "function" }, { "type": "string" } ], "title": "Type" }, "function": { "$ref": "#/components/schemas/ChatCompletionToolParamFunctionChunk" }, "cache_control": { "$ref": "#/components/schemas/ChatCompletionCachedContent" } }, "type": "object", "required": [ "type", "function" ], "title": "ChatCompletionToolParam" }, "ChatCompletionToolParamFunctionChunk": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "type": "string", "title": "Description" }, "parameters": { "additionalProperties": true, "type": "object", "title": "Parameters" }, "strict": { "type": "boolean", "title": "Strict" } }, "type": "object", "required": [ "name" ], "title": "ChatCompletionToolParamFunctionChunk" }, "ChatCompletionUserMessage": { "properties": { "role": { "const": "user", "title": "Role", "type": "string" }, "content": { "anyOf": [ { "type": "string" }, { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionTextObject" }, { "$ref": "#/components/schemas/ChatCompletionImageObject" }, { "$ref": "#/components/schemas/ChatCompletionAudioObject" }, { "$ref": "#/components/schemas/ChatCompletionDocumentObject" }, { "$ref": "#/components/schemas/ChatCompletionVideoObject" }, { "$ref": "#/components/schemas/ChatCompletionFileObject" } ] }, "type": "array" } ], "title": "Content" }, "cache_control": { "$ref": "#/components/schemas/ChatCompletionCachedContent" } }, "required": [ "role", "content" ], "title": "ChatCompletionUserMessage", "type": "object" }, "ChatCompletionVideoObject": { "properties": { "type": { "const": "video_url", "title": "Type", "type": "string" }, "video_url": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ChatCompletionVideoUrlObject" } ], "title": "Video Url" } }, "required": [ "type", "video_url" ], "title": "ChatCompletionVideoObject", "type": "object" }, "ChatCompletionVideoUrlObject": { "properties": { "url": { "title": "Url", "type": "string" }, "detail": { "title": "Detail", "type": "string" } }, "required": [ "url" ], "title": "ChatCompletionVideoUrlObject", "type": "object" }, "ChatMessage": { "properties": { "role": { "type": "string", "enum": [ "user", "assistant" ], "title": "Role" }, "content": { "type": "string", "title": "Content" } }, "type": "object", "required": [ "role", "content" ], "title": "ChatMessage" }, "ChoiceLogprobs": { "properties": { "content": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ChatCompletionTokenLogprob" }, "type": "array" }, { "type": "null" } ], "title": "Content" } }, "additionalProperties": true, "type": "object", "title": "ChoiceLogprobs" }, "Choices": { "properties": { "finish_reason": { "type": "string", "enum": [ "stop", "content_filter", "function_call", "tool_calls", "length", "guardrail_intervened", "eos", "finish_reason_unspecified", "malformed_function_call" ], "title": "Finish Reason" }, "index": { "type": "integer", "title": "Index" }, "message": { "$ref": "#/components/schemas/Message" }, "logprobs": { "anyOf": [ { "$ref": "#/components/schemas/ChoiceLogprobs" }, {}, { "type": "null" } ], "title": "Logprobs" }, "provider_specific_fields": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Provider Specific Fields" } }, "additionalProperties": true, "type": "object", "required": [ "finish_reason", "index", "message" ], "title": "Choices" }, "CitationsObject": { "properties": { "enabled": { "title": "Enabled", "type": "boolean" } }, "required": [ "enabled" ], "title": "CitationsObject", "type": "object" }, "CloudZeroExportRequest": { "properties": { "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit", "description": "Optional limit on number of records to export" }, "operation": { "type": "string", "title": "Operation", "description": "CloudZero operation type (replace_hourly or sum)", "default": "replace_hourly" }, "start_time_utc": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Start Time Utc", "description": "Start time for data export in UTC" }, "end_time_utc": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "End Time Utc", "description": "End time for data export in UTC" } }, "type": "object", "title": "CloudZeroExportRequest", "description": "Request model for CloudZero export operations" }, "CloudZeroExportResponse": { "properties": { "message": { "type": "string", "title": "Message" }, "status": { "type": "string", "title": "Status" }, "records_exported": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Records Exported" }, "dry_run_data": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Dry Run Data", "description": "Dry run data including usage data and CBF transformed data" }, "summary": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Summary", "description": "Summary statistics for dry run" } }, "type": "object", "required": [ "message", "status" ], "title": "CloudZeroExportResponse", "description": "Response model for CloudZero export operations" }, "CloudZeroInitRequest": { "properties": { "api_key": { "type": "string", "title": "Api Key", "description": "CloudZero API key for authentication" }, "connection_id": { "type": "string", "title": "Connection Id", "description": "CloudZero connection ID for data submission" }, "timezone": { "type": "string", "title": "Timezone", "description": "Timezone for date handling (default: UTC)", "default": "UTC" } }, "type": "object", "required": [ "api_key", "connection_id" ], "title": "CloudZeroInitRequest", "description": "Request model for initializing CloudZero settings" }, "CloudZeroInitResponse": { "properties": { "message": { "type": "string", "title": "Message" }, "status": { "type": "string", "title": "Status" } }, "type": "object", "required": [ "message", "status" ], "title": "CloudZeroInitResponse", "description": "Response model for CloudZero initialization" }, "CloudZeroSettingsUpdate": { "properties": { "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key", "description": "New CloudZero API key for authentication" }, "connection_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Connection Id", "description": "New CloudZero connection ID for data submission" }, "timezone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timezone", "description": "New timezone for date handling" } }, "type": "object", "title": "CloudZeroSettingsUpdate", "description": "Request model for updating CloudZero settings" }, "CloudZeroSettingsView": { "properties": { "api_key_masked": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key Masked", "description": "Masked API key showing only first 4 and last 4 characters" }, "connection_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Connection Id", "description": "CloudZero connection ID for data submission" }, "timezone": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timezone", "description": "Timezone for date handling" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status", "description": "Configuration status" } }, "type": "object", "title": "CloudZeroSettingsView", "description": "Response model for viewing CloudZero settings with masked API key" }, "ComplianceCheckRequest": { "properties": { "request_id": { "type": "string", "title": "Request Id" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "timestamp": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Timestamp" }, "guardrail_information": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Guardrail Information" } }, "type": "object", "required": [ "request_id" ], "title": "ComplianceCheckRequest", "description": "Request payload for compliance check endpoints.\n\nMirrors the spend log fields needed for compliance evaluation." }, "ComplianceCheckResult": { "properties": { "check_name": { "type": "string", "title": "Check Name" }, "article": { "type": "string", "title": "Article" }, "passed": { "type": "boolean", "title": "Passed" }, "detail": { "type": "string", "title": "Detail" } }, "type": "object", "required": [ "check_name", "article", "passed", "detail" ], "title": "ComplianceCheckResult", "description": "Result of a single compliance check." }, "ComplianceResponse": { "properties": { "compliant": { "type": "boolean", "title": "Compliant" }, "regulation": { "type": "string", "title": "Regulation" }, "checks": { "items": { "$ref": "#/components/schemas/ComplianceCheckResult" }, "type": "array", "title": "Checks" } }, "type": "object", "required": [ "compliant", "regulation", "checks" ], "title": "ComplianceResponse", "description": "Response from a compliance check endpoint." }, "ConfigOverrideSettingsResponse": { "properties": { "config_type": { "type": "string", "title": "Config Type", "description": "The type of config override" }, "values": { "additionalProperties": true, "type": "object", "title": "Values", "description": "Current configuration values (sensitive fields decrypted)" }, "field_schema": { "additionalProperties": true, "type": "object", "title": "Field Schema", "description": "Schema information for UI rendering" } }, "type": "object", "required": [ "config_type", "values", "field_schema" ], "title": "ConfigOverrideSettingsResponse", "description": "Response model for config override settings GET endpoints." }, "ConfigurableClientsideParamsCustomAuth-Input": { "properties": { "api_base": { "type": "string", "title": "Api Base" } }, "additionalProperties": true, "type": "object", "required": [ "api_base" ], "title": "ConfigurableClientsideParamsCustomAuth" }, "ConfigurableClientsideParamsCustomAuth-Output": { "properties": { "api_base": { "type": "string", "title": "Api Base" } }, "type": "object", "required": [ "api_base" ], "title": "ConfigurableClientsideParamsCustomAuth" }, "ContentFilterAction": { "type": "string", "enum": [ "BLOCK", "MASK" ], "title": "ContentFilterAction", "description": "Action to take when content filter detects a match" }, "ContentFilterCategoryConfig": { "properties": { "category": { "type": "string", "title": "Category", "description": "The category to detect" }, "enabled": { "type": "boolean", "title": "Enabled", "description": "Whether the category is enabled", "default": true }, "action": { "type": "string", "enum": [ "BLOCK", "MASK" ], "title": "Action", "description": "The action to take when the category is detected" }, "severity_threshold": { "type": "string", "enum": [ "high", "medium", "low" ], "title": "Severity Threshold", "description": "The severity threshold to detect the category", "default": "medium" }, "category_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category File", "description": "Optional override. Use your own category file instead of the default one." } }, "additionalProperties": true, "type": "object", "required": [ "category", "action" ], "title": "ContentFilterCategoryConfig", "description": "category: \"harmful_self_harm\"\n enabled: true\n action: \"BLOCK\"\n severity_threshold: \"medium\"\n category_file: \"/path/to/custom_file.yaml\" # optional override" }, "ContentFilterPattern": { "properties": { "pattern_type": { "type": "string", "enum": [ "prebuilt", "regex" ], "title": "Pattern Type", "description": "Type of pattern: 'prebuilt' for predefined patterns or 'regex' for custom" }, "pattern_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pattern Name", "description": "Name of prebuilt pattern (e.g., 'us_ssn', 'credit_card'). Required if pattern_type is 'prebuilt'" }, "pattern": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pattern", "description": "Custom regex pattern. Required if pattern_type is 'regex'" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name", "description": "Name for this pattern (used in logging and error messages)" }, "action": { "$ref": "#/components/schemas/ContentFilterAction", "description": "Action to take when pattern matches (BLOCK or MASK)" } }, "type": "object", "required": [ "pattern_type", "action" ], "title": "ContentFilterPattern", "description": "Represents a content filter pattern (prebuilt or custom regex)" }, "CostEstimateRequest": { "properties": { "model": { "type": "string", "title": "Model", "description": "Model name (from /model_group/info)" }, "input_tokens": { "type": "integer", "minimum": 0.0, "title": "Input Tokens", "description": "Expected input tokens per request" }, "output_tokens": { "type": "integer", "minimum": 0.0, "title": "Output Tokens", "description": "Expected output tokens per request" }, "num_requests_per_day": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Num Requests Per Day", "description": "Number of requests per day" }, "num_requests_per_month": { "anyOf": [ { "type": "integer", "minimum": 0.0 }, { "type": "null" } ], "title": "Num Requests Per Month", "description": "Number of requests per month" } }, "type": "object", "required": [ "model", "input_tokens", "output_tokens" ], "title": "CostEstimateRequest", "description": "Request body for /cost/estimate endpoint." }, "CostEstimateResponse": { "properties": { "model": { "type": "string", "title": "Model" }, "input_tokens": { "type": "integer", "title": "Input Tokens" }, "output_tokens": { "type": "integer", "title": "Output Tokens" }, "num_requests_per_day": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Num Requests Per Day" }, "num_requests_per_month": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Num Requests Per Month" }, "cost_per_request": { "type": "number", "title": "Cost Per Request", "description": "Total cost per request (includes margin)" }, "input_cost_per_request": { "type": "number", "title": "Input Cost Per Request", "description": "Input token cost per request (before margin)" }, "output_cost_per_request": { "type": "number", "title": "Output Cost Per Request", "description": "Output token cost per request (before margin)" }, "margin_cost_per_request": { "type": "number", "title": "Margin Cost Per Request", "description": "Margin/fee added per request", "default": 0.0 }, "daily_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Daily Cost", "description": "Total daily cost (includes margin)" }, "daily_input_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Daily Input Cost", "description": "Daily input token cost" }, "daily_output_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Daily Output Cost", "description": "Daily output token cost" }, "daily_margin_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Daily Margin Cost", "description": "Daily margin/fee" }, "monthly_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Monthly Cost", "description": "Total monthly cost (includes margin)" }, "monthly_input_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Monthly Input Cost", "description": "Monthly input token cost" }, "monthly_output_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Monthly Output Cost", "description": "Monthly output token cost" }, "monthly_margin_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Monthly Margin Cost", "description": "Monthly margin/fee" }, "input_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "output_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Provider" } }, "type": "object", "required": [ "model", "input_tokens", "output_tokens", "cost_per_request", "input_cost_per_request", "output_cost_per_request" ], "title": "CostEstimateResponse", "description": "Response body for /cost/estimate endpoint." }, "CreateCredentialItem": { "properties": { "credential_name": { "type": "string", "title": "Credential Name" }, "credential_info": { "additionalProperties": true, "type": "object", "title": "Credential Info" }, "credential_values": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Credential Values" }, "model_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Id" } }, "type": "object", "required": [ "credential_name", "credential_info" ], "title": "CreateCredentialItem" }, "CreateGuardrailRequest": { "properties": { "guardrail": { "$ref": "#/components/schemas/Guardrail" } }, "type": "object", "required": [ "guardrail" ], "title": "CreateGuardrailRequest" }, "CreateJWTKeyMappingRequest": { "properties": { "jwt_claim_name": { "type": "string", "title": "Jwt Claim Name" }, "jwt_claim_value": { "type": "string", "title": "Jwt Claim Value" }, "key": { "type": "string", "title": "Key" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" } }, "type": "object", "required": [ "jwt_claim_name", "jwt_claim_value", "key" ], "title": "CreateJWTKeyMappingRequest" }, "CreateSearchToolRequest": { "properties": { "search_tool": { "$ref": "#/components/schemas/SearchTool" } }, "type": "object", "required": [ "search_tool" ], "title": "CreateSearchToolRequest" }, "CredentialItem": { "properties": { "credential_name": { "type": "string", "title": "Credential Name" }, "credential_info": { "additionalProperties": true, "type": "object", "title": "Credential Info" }, "credential_values": { "additionalProperties": true, "type": "object", "title": "Credential Values" } }, "type": "object", "required": [ "credential_name", "credential_info", "credential_values" ], "title": "CredentialItem" }, "DailySpendData": { "properties": { "date": { "type": "string", "format": "date", "title": "Date" }, "metrics": { "$ref": "#/components/schemas/SpendMetrics" }, "breakdown": { "$ref": "#/components/schemas/BreakdownMetrics" } }, "type": "object", "required": [ "date", "metrics" ], "title": "DailySpendData" }, "DailySpendMetadata": { "properties": { "total_spend": { "type": "number", "title": "Total Spend", "default": 0.0 }, "total_prompt_tokens": { "type": "integer", "title": "Total Prompt Tokens", "default": 0 }, "total_completion_tokens": { "type": "integer", "title": "Total Completion Tokens", "default": 0 }, "total_tokens": { "type": "integer", "title": "Total Tokens", "default": 0 }, "total_api_requests": { "type": "integer", "title": "Total Api Requests", "default": 0 }, "total_successful_requests": { "type": "integer", "title": "Total Successful Requests", "default": 0 }, "total_failed_requests": { "type": "integer", "title": "Total Failed Requests", "default": 0 }, "total_cache_read_input_tokens": { "type": "integer", "title": "Total Cache Read Input Tokens", "default": 0 }, "total_cache_creation_input_tokens": { "type": "integer", "title": "Total Cache Creation Input Tokens", "default": 0 }, "page": { "type": "integer", "title": "Page", "default": 1 }, "total_pages": { "type": "integer", "title": "Total Pages", "default": 1 }, "has_more": { "type": "boolean", "title": "Has More", "default": false } }, "type": "object", "title": "DailySpendMetadata" }, "DefaultInternalUserParams": { "properties": { "user_role": { "anyOf": [ { "type": "string", "enum": [ "internal_user", "internal_user_viewer", "proxy_admin", "proxy_admin_viewer" ] }, { "type": "null" } ], "title": "User Role", "description": "Default role assigned to new users created", "default": "internal_user_viewer" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget", "description": "Default maximum budget (in USD) for new users created" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration", "description": "Default budget duration for new users (e.g. 'daily', 'weekly', 'monthly')" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models", "description": "Default list of models that new users can access" }, "teams": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "items": { "$ref": "#/components/schemas/NewUserRequestTeam" }, "type": "array" }, { "type": "null" } ], "title": "Teams", "description": "Default teams for new users created" } }, "type": "object", "title": "DefaultInternalUserParams", "description": "Default parameters to apply when a new user signs in via SSO or is created on the /user/new API endpoint" }, "DefaultTeamSSOParams": { "properties": { "models": { "items": { "type": "string" }, "type": "array", "title": "Models", "description": "Default list of models that new automatically created teams can access", "default": [] }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget", "description": "Default maximum budget (in USD) for new automatically created teams" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration", "description": "Default budget duration for new automatically created teams (e.g. 'daily', 'weekly', 'monthly')" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit", "description": "Default tpm limit for new automatically created teams" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit", "description": "Default rpm limit for new automatically created teams" }, "team_member_permissions": { "anyOf": [ { "items": { "$ref": "#/components/schemas/KeyManagementRoutes" }, "type": "array" }, { "type": "null" } ], "title": "Team Member Permissions", "description": "Default permissions granted to members of newly created teams (e.g. /key/generate, /key/update, /key/delete). /key/info and /key/health are always included." } }, "type": "object", "title": "DefaultTeamSSOParams", "description": "Default parameters to apply when a new team is automatically created by LiteLLM via SSO Groups" }, "DefaultTeamSettingsResponse": { "properties": { "values": { "additionalProperties": true, "type": "object", "title": "Values" }, "field_schema": { "additionalProperties": true, "type": "object", "title": "Field Schema" } }, "type": "object", "required": [ "values", "field_schema" ], "title": "DefaultTeamSettingsResponse", "description": "Response model for default team settings" }, "DeleteCustomerRequest": { "properties": { "user_ids": { "items": { "type": "string" }, "type": "array", "title": "User Ids" } }, "type": "object", "required": [ "user_ids" ], "title": "DeleteCustomerRequest", "description": "Delete multiple Customers" }, "DeleteEvalResponse": { "properties": { "eval_id": { "type": "string", "title": "Eval Id" }, "object": { "type": "string", "title": "Object", "default": "eval.deleted" }, "deleted": { "type": "boolean", "title": "Deleted" } }, "type": "object", "required": [ "eval_id", "deleted" ], "title": "DeleteEvalResponse", "description": "Response from deleting an evaluation" }, "DeleteJWTKeyMappingRequest": { "properties": { "id": { "type": "string", "title": "Id" } }, "type": "object", "required": [ "id" ], "title": "DeleteJWTKeyMappingRequest" }, "DeleteModelGroupResponse": { "properties": { "access_group": { "type": "string", "title": "Access Group" }, "models_updated": { "type": "integer", "title": "Models Updated" }, "message": { "type": "string", "title": "Message" } }, "type": "object", "required": [ "access_group", "models_updated", "message" ], "title": "DeleteModelGroupResponse" }, "DeleteOrganizationRequest": { "properties": { "organization_ids": { "items": { "type": "string" }, "type": "array", "title": "Organization Ids" } }, "type": "object", "required": [ "organization_ids" ], "title": "DeleteOrganizationRequest" }, "DeleteProjectRequest": { "properties": { "project_ids": { "items": { "type": "string" }, "type": "array", "title": "Project Ids" } }, "type": "object", "required": [ "project_ids" ], "title": "DeleteProjectRequest", "description": "Request model for DELETE /project/delete" }, "DeleteSkillResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "type": { "type": "string", "title": "Type", "default": "skill_deleted" } }, "type": "object", "required": [ "id" ], "title": "DeleteSkillResponse", "description": "Response from deleting a skill" }, "DeleteTeamRequest": { "properties": { "team_ids": { "items": { "type": "string" }, "type": "array", "title": "Team Ids" } }, "type": "object", "required": [ "team_ids" ], "title": "DeleteTeamRequest" }, "DeleteUserRequest": { "properties": { "user_ids": { "items": { "type": "string" }, "type": "array", "title": "User Ids" } }, "type": "object", "required": [ "user_ids" ], "title": "DeleteUserRequest" }, "Deployment": { "properties": { "model_name": { "type": "string", "title": "Model Name" }, "litellm_params": { "$ref": "#/components/schemas/LiteLLM_Params" }, "model_info": { "$ref": "#/components/schemas/ModelInfo" } }, "additionalProperties": true, "type": "object", "required": [ "model_name", "litellm_params", "model_info" ], "title": "Deployment" }, "DistinctTagResponse": { "properties": { "tag": { "type": "string", "title": "Tag" } }, "type": "object", "required": [ "tag" ], "title": "DistinctTagResponse", "description": "Response for distinct user agent tags" }, "DistinctTagsResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/DistinctTagResponse" }, "type": "array", "title": "Results" } }, "type": "object", "required": [ "results" ], "title": "DistinctTagsResponse", "description": "Response for all distinct user agent tags" }, "DocumentObject": { "properties": { "type": { "const": "text", "title": "Type", "type": "string" }, "media_type": { "title": "Media Type", "type": "string" }, "data": { "title": "Data", "type": "string" } }, "required": [ "type", "media_type", "data" ], "title": "DocumentObject", "type": "object" }, "EmailEvent": { "type": "string", "enum": [ "Virtual Key Created", "New User Invitation", "Virtual Key Rotated", "Soft Budget Crossed", "Max Budget Alert" ], "title": "EmailEvent" }, "EmailEventSettings": { "properties": { "event": { "$ref": "#/components/schemas/EmailEvent" }, "enabled": { "type": "boolean", "title": "Enabled" } }, "type": "object", "required": [ "event", "enabled" ], "title": "EmailEventSettings" }, "EmailEventSettingsResponse": { "properties": { "settings": { "items": { "$ref": "#/components/schemas/EmailEventSettings" }, "type": "array", "title": "Settings" } }, "type": "object", "required": [ "settings" ], "title": "EmailEventSettingsResponse" }, "EmailEventSettingsUpdateRequest": { "properties": { "settings": { "items": { "$ref": "#/components/schemas/EmailEventSettings" }, "type": "array", "title": "Settings" } }, "type": "object", "required": [ "settings" ], "title": "EmailEventSettingsUpdateRequest" }, "EndpointProvider": { "properties": { "slug": { "type": "string", "title": "Slug" }, "display_name": { "type": "string", "title": "Display Name" } }, "type": "object", "required": [ "slug", "display_name" ], "title": "EndpointProvider" }, "EnrichTemplateRequest": { "properties": { "template_id": { "type": "string", "title": "Template Id" }, "parameters": { "additionalProperties": true, "type": "object", "title": "Parameters" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "competitors": { "anyOf": [ { "items": { "type": "string" }, "type": "array", "maxItems": 100 }, { "type": "null" } ], "title": "Competitors", "description": "Optional list of competitor names" }, "instruction": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Instruction", "description": "Refinement instruction for modifying the competitor list (e.g. 'add 10 more from Asia')" } }, "type": "object", "required": [ "template_id", "parameters" ], "title": "EnrichTemplateRequest" }, "ErrorResponse": { "properties": { "detail": { "additionalProperties": true, "type": "object", "title": "Detail", "example": { "error": { "code": "error_code", "message": "Error message", "param": "error_param", "type": "error_type" } } } }, "type": "object", "required": [ "detail" ], "title": "ErrorResponse" }, "Eval": { "properties": { "id": { "type": "string", "title": "Id" }, "object": { "type": "string", "title": "Object", "default": "eval" }, "created_at": { "type": "integer", "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Updated At" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "data_source_config": { "additionalProperties": true, "type": "object", "title": "Data Source Config" }, "testing_criteria": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Testing Criteria" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": [ "id", "created_at", "data_source_config", "testing_criteria" ], "title": "Eval", "description": "Represents an evaluation from the OpenAI Evals API" }, "FailedKeyUpdate": { "properties": { "key": { "type": "string", "title": "Key" }, "key_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Key Info" }, "failed_reason": { "type": "string", "title": "Failed Reason" } }, "type": "object", "required": [ "key", "failed_reason" ], "title": "FailedKeyUpdate", "description": "Failed key update with reason" }, "FallbackCreateRequest": { "properties": { "model": { "type": "string", "title": "Model", "description": "The model name to configure fallbacks for (e.g., 'gpt-3.5-turbo')" }, "fallback_models": { "items": { "type": "string" }, "type": "array", "minItems": 1, "title": "Fallback Models", "description": "List of fallback model names in order of priority" }, "fallback_type": { "type": "string", "enum": [ "general", "context_window", "content_policy" ], "title": "Fallback Type", "description": "Type of fallback: 'general' (default), 'context_window', or 'content_policy'", "default": "general" } }, "type": "object", "required": [ "model", "fallback_models" ], "title": "FallbackCreateRequest", "description": "Request model for creating/updating fallbacks" }, "FallbackDeleteResponse": { "properties": { "model": { "type": "string", "title": "Model", "description": "The model name" }, "fallback_type": { "type": "string", "title": "Fallback Type", "description": "Type of fallback" }, "message": { "type": "string", "title": "Message", "description": "Success message" } }, "type": "object", "required": [ "model", "fallback_type", "message" ], "title": "FallbackDeleteResponse", "description": "Response model for deleting fallbacks" }, "FallbackGetResponse": { "properties": { "model": { "type": "string", "title": "Model", "description": "The model name" }, "fallback_models": { "items": { "type": "string" }, "type": "array", "title": "Fallback Models", "description": "List of fallback model names" }, "fallback_type": { "type": "string", "title": "Fallback Type", "description": "Type of fallback" } }, "type": "object", "required": [ "model", "fallback_models", "fallback_type" ], "title": "FallbackGetResponse", "description": "Response model for getting fallbacks" }, "FallbackResponse": { "properties": { "model": { "type": "string", "title": "Model", "description": "The model name" }, "fallback_models": { "items": { "type": "string" }, "type": "array", "title": "Fallback Models", "description": "List of fallback model names" }, "fallback_type": { "type": "string", "title": "Fallback Type", "description": "Type of fallback" }, "message": { "type": "string", "title": "Message", "description": "Success message" } }, "type": "object", "required": [ "model", "fallback_models", "fallback_type", "message" ], "title": "FallbackResponse", "description": "Response model for fallback operations" }, "FunctionCall": { "properties": { "arguments": { "type": "string", "title": "Arguments" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" } }, "additionalProperties": true, "type": "object", "required": [ "arguments" ], "title": "FunctionCall" }, "GUARDRAIL_DEFINITION_LOCATION": { "type": "string", "enum": [ "db", "config" ], "title": "GUARDRAIL_DEFINITION_LOCATION" }, "GenerateKeyRequest": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duration" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models", "default": [] }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend", "default": 0 }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata", "default": {} }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "default": {} }, "permissions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Permissions", "default": {} }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Aliases", "default": {} }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "enforced_params": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enforced Params" }, "allowed_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Routes", "default": [] }, "allowed_passthrough_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Passthrough Routes" }, "allowed_vector_store_indexes": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AllowedVectorStoreIndexItem" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Vector Store Indexes" }, "rpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Rpm Limit Type" }, "tpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Tpm Limit Type" }, "router_settings": { "anyOf": [ { "$ref": "#/components/schemas/UpdateRouterConfig" }, { "type": "null" } ] }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "send_invite_email": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Send Invite Email" }, "key_type": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLMKeyType" }, { "type": "null" } ], "description": "Type of key that determines default allowed routes.", "default": "default" }, "auto_rotate": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Auto Rotate", "description": "Whether this key should be automatically rotated", "default": false }, "rotation_interval": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rotation Interval", "description": "How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" } }, "type": "object", "title": "GenerateKeyRequest" }, "GenerateKeyResponse": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duration" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models", "default": [] }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend", "default": 0 }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata", "default": {} }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "default": {} }, "permissions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Permissions", "default": {} }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Aliases", "default": {} }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "key": { "type": "string", "title": "Key" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "enforced_params": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enforced Params" }, "allowed_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Routes", "default": [] }, "allowed_passthrough_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Passthrough Routes" }, "allowed_vector_store_indexes": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AllowedVectorStoreIndexItem" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Vector Store Indexes" }, "rpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Rpm Limit Type" }, "tpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Tpm Limit Type" }, "router_settings": { "anyOf": [ { "$ref": "#/components/schemas/UpdateRouterConfig" }, { "type": "null" } ] }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "key_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Name" }, "expires": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expires" }, "token_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token Id" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "litellm_budget_table": { "anyOf": [ {}, { "type": "null" } ], "title": "Litellm Budget Table" }, "token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" } }, "type": "object", "required": [ "key" ], "title": "GenerateKeyResponse" }, "GenericGuardrailAPIInputs": { "properties": { "texts": { "items": { "type": "string" }, "type": "array", "title": "Texts" }, "images": { "items": { "type": "string" }, "type": "array", "title": "Images" }, "tools": { "items": { "$ref": "#/components/schemas/ChatCompletionToolParam" }, "type": "array", "title": "Tools" }, "tool_calls": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ChatCompletionToolCallChunk" }, "type": "array" }, { "items": { "$ref": "#/components/schemas/ChatCompletionMessageToolCall" }, "type": "array" } ], "title": "Tool Calls" }, "structured_messages": { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionUserMessage" }, { "$ref": "#/components/schemas/ChatCompletionAssistantMessage" }, { "$ref": "#/components/schemas/ChatCompletionToolMessage" }, { "$ref": "#/components/schemas/ChatCompletionSystemMessage" }, { "$ref": "#/components/schemas/ChatCompletionFunctionMessage" }, { "$ref": "#/components/schemas/ChatCompletionDeveloperMessage" } ] }, "type": "array", "title": "Structured Messages" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } }, "type": "object", "title": "GenericGuardrailAPIInputs" }, "GetTeamMemberPermissionsResponse": { "properties": { "team_id": { "type": "string", "title": "Team Id" }, "team_member_permissions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Team Member Permissions", "default": [] }, "all_available_permissions": { "items": { "type": "string" }, "type": "array", "title": "All Available Permissions" } }, "type": "object", "required": [ "team_id", "all_available_permissions" ], "title": "GetTeamMemberPermissionsResponse", "description": "Response to get the team member permissions for a team" }, "GraySwanGuardrailConfigModelOptionalParams": { "properties": { "on_flagged_action": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "On Flagged Action", "description": "Action when a violation is detected: 'block' rejects the call (400 error), 'monitor' logs only, 'passthrough' replaces response content with violation message (200 status).", "default": "passthrough" }, "violation_threshold": { "anyOf": [ { "type": "number", "maximum": 1.0, "minimum": 0.0 }, { "type": "null" } ], "title": "Violation Threshold", "description": "Threshold between 0 and 1 at which Gray Swan violations trigger the configured action.", "default": 0.5 }, "reasoning_mode": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reasoning Mode", "description": "Gray Swan reasoning mode override. Accepted values: 'off', 'hybrid', 'thinking'." }, "policy_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Policy Id", "description": "Gray Swan policy identifier to apply during monitoring." }, "categories": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Categories", "description": "Default Gray Swan category definitions to send with each request." }, "fail_open": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fail Open", "description": "If true (default), errors contacting Gray Swan are logged and the request proceeds. If false, errors propagate and block the request.", "default": true }, "guardrail_timeout": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Guardrail Timeout", "description": "Timeout in seconds for calling the Gray Swan guardrail service.", "default": 30.0 } }, "type": "object", "title": "GraySwanGuardrailConfigModelOptionalParams", "description": "Optional parameters for the Gray Swan guardrail." }, "Guardrail": { "properties": { "guardrail_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guardrail Id" }, "guardrail_name": { "type": "string", "title": "Guardrail Name" }, "litellm_params": { "$ref": "#/components/schemas/LitellmParams" }, "guardrail_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Guardrail Info" }, "policy_template": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Policy Template" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" } }, "type": "object", "required": [ "guardrail_name", "litellm_params" ], "title": "Guardrail" }, "GuardrailInfoResponse": { "properties": { "guardrail_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guardrail Id" }, "guardrail_name": { "type": "string", "title": "Guardrail Name" }, "litellm_params": { "anyOf": [ { "$ref": "#/components/schemas/BaseLitellmParams-Output" }, { "type": "null" } ] }, "guardrail_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Guardrail Info" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "guardrail_definition_location": { "$ref": "#/components/schemas/GUARDRAIL_DEFINITION_LOCATION", "default": "config" } }, "type": "object", "required": [ "guardrail_name" ], "title": "GuardrailInfoResponse" }, "GuardrailSubmissionItem": { "properties": { "guardrail_id": { "type": "string", "title": "Guardrail Id" }, "guardrail_name": { "type": "string", "title": "Guardrail Name" }, "status": { "type": "string", "title": "Status" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "team_guardrail": { "type": "boolean", "title": "Team Guardrail", "default": false }, "litellm_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Litellm Params" }, "guardrail_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Guardrail Info" }, "submitted_by_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Submitted By User Id" }, "submitted_by_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Submitted By Email" }, "submitted_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Submitted At" }, "reviewed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Reviewed At" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" } }, "type": "object", "required": [ "guardrail_id", "guardrail_name", "status" ], "title": "GuardrailSubmissionItem" }, "GuardrailSubmissionSummary": { "properties": { "total": { "type": "integer", "title": "Total" }, "pending_review": { "type": "integer", "title": "Pending Review" }, "active": { "type": "integer", "title": "Active" }, "rejected": { "type": "integer", "title": "Rejected" } }, "type": "object", "required": [ "total", "pending_review", "active", "rejected" ], "title": "GuardrailSubmissionSummary" }, "GuardrailTestResultEntry": { "properties": { "guardrail_name": { "type": "string", "title": "Guardrail Name" }, "action": { "type": "string", "title": "Action" }, "output_text": { "type": "string", "title": "Output Text" }, "details": { "type": "string", "title": "Details" } }, "type": "object", "required": [ "guardrail_name", "action", "output_text", "details" ], "title": "GuardrailTestResultEntry" }, "HTTPAuthSecurityScheme": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "type": { "type": "string", "const": "http", "title": "Type" }, "scheme": { "type": "string", "title": "Scheme" }, "bearerFormat": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Bearerformat" } }, "type": "object", "required": [ "type", "scheme", "bearerFormat" ], "title": "HTTPAuthSecurityScheme", "description": "Defines a security scheme using HTTP authentication." }, "HTTPValidationError": { "properties": { "detail": { "items": { "$ref": "#/components/schemas/ValidationError" }, "type": "array", "title": "Detail" } }, "type": "object", "title": "HTTPValidationError" }, "HashicorpVaultConfig": { "properties": { "vault_addr": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vault Addr", "description": "The address of the Vault server (e.g., https://vault.example.com:8200)" }, "vault_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vault Token", "description": "Token for Vault token-based authentication" }, "approle_role_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Approle Role Id", "description": "Role ID for Vault AppRole authentication" }, "approle_secret_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Approle Secret Id", "description": "Secret ID for Vault AppRole authentication" }, "approle_mount_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Approle Mount Path", "description": "Mount path for the AppRole auth method (default: approle)" }, "client_cert": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Cert", "description": "Path to the client TLS certificate for Vault" }, "client_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Key", "description": "Path to the client TLS private key for Vault" }, "vault_cert_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vault Cert Role", "description": "Certificate role name for TLS cert authentication" }, "vault_namespace": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vault Namespace", "description": "Vault namespace (for multi-tenant Vault, sent as X-Vault-Namespace header)" }, "vault_mount_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vault Mount Name", "description": "KV engine mount name (default: secret)" }, "vault_path_prefix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vault Path Prefix", "description": "Optional path prefix for secrets (e.g., myapp -> secret/data/myapp/{secret_name})" } }, "type": "object", "title": "HashicorpVaultConfig", "description": "Configuration for Hashicorp Vault secret manager integration." }, "Hyperparameters": { "properties": { "batch_size": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "null" } ], "title": "Batch Size" }, "learning_rate_multiplier": { "anyOf": [ { "type": "string" }, { "type": "number" }, { "type": "null" } ], "title": "Learning Rate Multiplier" }, "n_epochs": { "anyOf": [ { "type": "string" }, { "type": "integer" }, { "type": "null" } ], "title": "N Epochs" } }, "additionalProperties": true, "type": "object", "title": "Hyperparameters" }, "IPAddress": { "properties": { "ip": { "type": "string", "title": "Ip" } }, "type": "object", "required": [ "ip" ], "title": "IPAddress" }, "ImageURLListItem": { "properties": { "image_url": { "$ref": "#/components/schemas/ImageURLObject" }, "index": { "type": "integer", "title": "Index" }, "type": { "type": "string", "const": "image_url", "title": "Type" } }, "additionalProperties": true, "type": "object", "required": [ "image_url", "index", "type" ], "title": "ImageURLListItem" }, "ImageURLObject": { "properties": { "url": { "type": "string", "title": "Url" }, "detail": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Detail" } }, "additionalProperties": true, "type": "object", "required": [ "url" ], "title": "ImageURLObject" }, "InProductNudgeResponse": { "properties": { "is_claude_code_enabled": { "type": "boolean", "title": "Is Claude Code Enabled", "description": "Whether the Claude Code nudge should be shown.", "default": false } }, "type": "object", "title": "InProductNudgeResponse" }, "IndexCreateLiteLLMParams": { "properties": { "vector_store_index": { "type": "string", "title": "Vector Store Index" }, "vector_store_name": { "type": "string", "title": "Vector Store Name" } }, "type": "object", "required": [ "vector_store_index", "vector_store_name" ], "title": "IndexCreateLiteLLMParams" }, "IndexCreateRequest": { "properties": { "index_name": { "type": "string", "title": "Index Name" }, "litellm_params": { "$ref": "#/components/schemas/IndexCreateLiteLLMParams" }, "index_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Index Info" } }, "type": "object", "required": [ "index_name", "litellm_params" ], "title": "IndexCreateRequest" }, "InputAudio": { "properties": { "data": { "title": "Data", "type": "string" }, "format": { "enum": [ "wav", "mp3" ], "title": "Format", "type": "string" } }, "required": [ "data", "format" ], "title": "InputAudio", "type": "object" }, "InternalUserSettingsResponse": { "properties": { "values": { "additionalProperties": true, "type": "object", "title": "Values" }, "field_schema": { "additionalProperties": true, "type": "object", "title": "Field Schema" } }, "type": "object", "required": [ "values", "field_schema" ], "title": "InternalUserSettingsResponse", "description": "Response model for internal user settings" }, "JWTKeyMappingResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "jwt_claim_name": { "type": "string", "title": "Jwt Claim Name" }, "jwt_claim_value": { "type": "string", "title": "Jwt Claim Value" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "is_active": { "type": "boolean", "title": "Is Active" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" } }, "type": "object", "required": [ "id", "jwt_claim_name", "jwt_claim_value", "is_active", "created_at", "updated_at" ], "title": "JWTKeyMappingResponse" }, "KeyHealthResponse": { "properties": { "key": { "type": "string", "enum": [ "healthy", "unhealthy" ], "title": "Key" }, "logging_callbacks": { "anyOf": [ { "$ref": "#/components/schemas/LoggingCallbackStatus" }, { "type": "null" } ] } }, "type": "object", "title": "KeyHealthResponse" }, "KeyListResponseObject": { "properties": { "keys": { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/UserAPIKeyAuth" }, { "$ref": "#/components/schemas/LiteLLM_DeletedVerificationToken" } ] }, "type": "array", "title": "Keys" }, "total_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Count" }, "current_page": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Current Page" }, "total_pages": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Pages" } }, "type": "object", "title": "KeyListResponseObject" }, "KeyManagementRoutes": { "type": "string", "enum": [ "/key/generate", "/key/update", "/key/delete", "/key/regenerate", "/key/service-account/generate", "/key/{key_id}/regenerate", "/key/block", "/key/unblock", "/key/bulk_update", "/key/{key_id}/reset_spend", "/key/info", "/key/health", "/key/list", "/key/aliases", "/team/daily/activity", "/spend/logs" ], "title": "KeyManagementRoutes", "description": "Enum for key management routes" }, "KeyMetadata": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" } }, "type": "object", "title": "KeyMetadata", "description": "Metadata for a key" }, "KeyMetricWithMetadata": { "properties": { "metrics": { "$ref": "#/components/schemas/SpendMetrics" }, "metadata": { "$ref": "#/components/schemas/KeyMetadata" } }, "type": "object", "required": [ "metrics" ], "title": "KeyMetricWithMetadata", "description": "Base class for metrics with additional metadata" }, "KeyRequest": { "properties": { "keys": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Keys" }, "key_aliases": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Key Aliases" } }, "type": "object", "title": "KeyRequest" }, "LakeraCategoryThresholds": { "properties": { "prompt_injection": { "type": "number", "title": "Prompt Injection" }, "jailbreak": { "type": "number", "title": "Jailbreak" } }, "additionalProperties": true, "type": "object", "title": "LakeraCategoryThresholds" }, "ListAccessGroupsResponse": { "properties": { "access_groups": { "items": { "$ref": "#/components/schemas/AccessGroupInfo" }, "type": "array", "title": "Access Groups" } }, "type": "object", "required": [ "access_groups" ], "title": "ListAccessGroupsResponse" }, "ListEvalsResponse": { "properties": { "object": { "type": "string", "title": "Object", "default": "list" }, "data": { "items": { "$ref": "#/components/schemas/Eval" }, "type": "array", "title": "Data" }, "first_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "First Id" }, "last_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Id" }, "has_more": { "type": "boolean", "title": "Has More", "default": false } }, "type": "object", "required": [ "data" ], "title": "ListEvalsResponse", "description": "Response from listing evaluations" }, "ListGuardrailSubmissionsResponse": { "properties": { "submissions": { "items": { "$ref": "#/components/schemas/GuardrailSubmissionItem" }, "type": "array", "title": "Submissions" }, "summary": { "$ref": "#/components/schemas/GuardrailSubmissionSummary" } }, "type": "object", "required": [ "submissions", "summary" ], "title": "ListGuardrailSubmissionsResponse" }, "ListGuardrailsResponse": { "properties": { "guardrails": { "items": { "$ref": "#/components/schemas/GuardrailInfoResponse" }, "type": "array", "title": "Guardrails" } }, "type": "object", "required": [ "guardrails" ], "title": "ListGuardrailsResponse" }, "ListPluginsResponse": { "properties": { "plugins": { "items": { "$ref": "#/components/schemas/PluginListItem" }, "type": "array", "title": "Plugins" }, "count": { "type": "integer", "title": "Count" } }, "type": "object", "required": [ "plugins", "count" ], "title": "ListPluginsResponse", "description": "Response from listing plugins." }, "ListPromptsResponse": { "properties": { "prompts": { "items": { "$ref": "#/components/schemas/PromptSpec" }, "type": "array", "title": "Prompts" } }, "type": "object", "required": [ "prompts" ], "title": "ListPromptsResponse" }, "ListRunsResponse": { "properties": { "object": { "type": "string", "title": "Object", "default": "list" }, "data": { "items": { "$ref": "#/components/schemas/Run" }, "type": "array", "title": "Data" }, "first_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "First Id" }, "last_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Last Id" }, "has_more": { "type": "boolean", "title": "Has More", "default": false } }, "type": "object", "required": [ "data" ], "title": "ListRunsResponse", "description": "Response from listing runs" }, "ListSearchToolsResponse": { "properties": { "search_tools": { "items": { "$ref": "#/components/schemas/SearchToolInfoResponse" }, "type": "array", "title": "Search Tools" } }, "type": "object", "required": [ "search_tools" ], "title": "ListSearchToolsResponse", "description": "Response model for listing search tools." }, "ListSkillsResponse": { "properties": { "data": { "items": { "$ref": "#/components/schemas/Skill" }, "type": "array", "title": "Data" }, "next_page": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Next Page" }, "has_more": { "type": "boolean", "title": "Has More", "default": false } }, "type": "object", "required": [ "data" ], "title": "ListSkillsResponse", "description": "Response from listing skills" }, "LiteLLMFineTuningJobCreate": { "properties": { "model": { "type": "string", "title": "Model" }, "training_file": { "type": "string", "title": "Training File" }, "hyperparameters": { "anyOf": [ { "$ref": "#/components/schemas/Hyperparameters" }, { "type": "null" } ] }, "suffix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Suffix" }, "validation_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Validation File" }, "integrations": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Integrations" }, "seed": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Seed" }, "custom_llm_provider": { "anyOf": [ { "type": "string", "enum": [ "openai", "azure", "vertex_ai" ] }, { "type": "null" } ], "title": "Custom Llm Provider" } }, "additionalProperties": true, "type": "object", "required": [ "model", "training_file" ], "title": "LiteLLMFineTuningJobCreate" }, "LiteLLMKeyType": { "type": "string", "enum": [ "llm_api", "management", "read_only", "default" ], "title": "LiteLLMKeyType", "description": "Enum for key types that determine what routes a key can access" }, "LiteLLM_BudgetTable": { "properties": { "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" } }, "type": "object", "title": "LiteLLM_BudgetTable", "description": "Represents user-controllable params for a LiteLLM_BudgetTable record" }, "LiteLLM_DeletedTeamTable": { "properties": { "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias" }, "team_id": { "type": "string", "title": "Team Id" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "admins": { "items": {}, "type": "array", "title": "Admins", "default": [] }, "members": { "items": {}, "type": "array", "title": "Members", "default": [] }, "members_with_roles": { "items": { "$ref": "#/components/schemas/Member" }, "type": "array", "title": "Members With Roles", "default": [] }, "team_member_permissions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Team Member Permissions" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "model_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Model Id" }, "litellm_model_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ModelTable" }, { "type": "null" } ] }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id" }, "deleted_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Deleted At" }, "deleted_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deleted By" }, "deleted_by_api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deleted By Api Key" }, "litellm_changed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Changed By" } }, "type": "object", "required": [ "team_id" ], "title": "LiteLLM_DeletedTeamTable", "description": "Recording of deleted teams for audit purposes. Mirrors LiteLLM_TeamTable\nplus metadata captured at deletion time." }, "LiteLLM_DeletedVerificationToken": { "properties": { "token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token" }, "key_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Name" }, "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "expires": { "anyOf": [ { "type": "string" }, { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expires" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "aliases": { "additionalProperties": true, "type": "object", "title": "Aliases", "default": {} }, "config": { "additionalProperties": true, "type": "object", "title": "Config", "default": {} }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata", "default": {} }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "allowed_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Routes", "default": [] }, "permissions": { "additionalProperties": true, "type": "object", "title": "Permissions", "default": {} }, "model_spend": { "additionalProperties": true, "type": "object", "title": "Model Spend", "default": {} }, "model_max_budget": { "additionalProperties": true, "type": "object", "title": "Model Max Budget", "default": {} }, "soft_budget_cooldown": { "type": "boolean", "title": "Soft Budget Cooldown", "default": false }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "litellm_budget_table": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Litellm Budget Table" }, "org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Org Id" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" }, "last_active": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Active" }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "rotation_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rotation Count", "default": 0 }, "auto_rotate": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Auto Rotate", "default": false }, "rotation_interval": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rotation Interval" }, "last_rotation_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Rotation At" }, "key_rotation_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Key Rotation At" }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" }, "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id" }, "deleted_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Deleted At" }, "deleted_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deleted By" }, "deleted_by_api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deleted By Api Key" }, "litellm_changed_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Changed By" } }, "type": "object", "title": "LiteLLM_DeletedVerificationToken", "description": "Recording of deleted keys for audit purposes. Mirrors LiteLLM_VerificationToken\nplus metadata captured at deletion time." }, "LiteLLM_EndUserTable": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "blocked": { "type": "boolean", "title": "Blocked" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "allowed_model_region": { "anyOf": [ { "type": "string", "enum": [ "eu", "us" ] }, { "type": "null" } ], "title": "Allowed Model Region" }, "default_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Model" }, "litellm_budget_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_BudgetTable" }, { "type": "null" } ] }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] } }, "type": "object", "required": [ "user_id", "blocked" ], "title": "LiteLLM_EndUserTable" }, "LiteLLM_MCPServerTable": { "properties": { "server_id": { "type": "string", "title": "Server Id" }, "server_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Name" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "spec_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Spec Path" }, "transport": { "type": "string", "enum": [ "sse", "http", "stdio" ], "title": "Transport" }, "auth_type": { "anyOf": [ { "type": "string", "enum": [ "none", "api_key", "bearer_token", "basic", "authorization", "oauth2", "aws_sigv4", "token" ] }, { "type": "null" } ], "title": "Auth Type" }, "credentials": { "anyOf": [ { "$ref": "#/components/schemas/MCPCredentials" }, { "type": "null" } ] }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" }, "teams": { "items": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "type": "null" } ] }, "type": "object" }, "type": "array", "title": "Teams" }, "mcp_access_groups": { "items": { "type": "string" }, "type": "array", "title": "Mcp Access Groups" }, "allowed_tools": { "items": { "type": "string" }, "type": "array", "title": "Allowed Tools" }, "tool_name_to_display_name": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Tool Name To Display Name" }, "tool_name_to_description": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Tool Name To Description" }, "extra_headers": { "items": { "type": "string" }, "type": "array", "title": "Extra Headers" }, "mcp_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Mcp Info" }, "static_headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Static Headers" }, "status": { "anyOf": [ { "type": "string", "enum": [ "healthy", "unhealthy", "unknown" ] }, { "type": "null" } ], "title": "Status", "description": "Health status: 'healthy', 'unhealthy', 'unknown'", "default": "unknown" }, "last_health_check": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Health Check" }, "health_check_error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Health Check Error" }, "command": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Command" }, "args": { "items": { "type": "string" }, "type": "array", "title": "Args" }, "env": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Env" }, "authorization_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization Url" }, "token_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token Url" }, "registration_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registration Url" }, "allow_all_keys": { "type": "boolean", "title": "Allow All Keys", "default": false }, "available_on_public_internet": { "type": "boolean", "title": "Available On Public Internet", "default": true }, "is_byok": { "type": "boolean", "title": "Is Byok", "default": false }, "byok_description": { "items": { "type": "string" }, "type": "array", "title": "Byok Description" }, "byok_api_key_help_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Byok Api Key Help Url" }, "has_user_credential": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Has User Credential" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "approval_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Approval Status", "description": "Approval status: 'pending_review', 'active', 'rejected'", "default": "active" }, "submitted_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Submitted By" }, "submitted_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Submitted At" }, "reviewed_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Reviewed At" }, "review_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Review Notes" } }, "type": "object", "required": [ "server_id", "transport" ], "title": "LiteLLM_MCPServerTable", "description": "Represents a LiteLLM_MCPServerTable record" }, "LiteLLM_ManagedVectorStore": { "properties": { "vector_store_id": { "type": "string", "title": "Vector Store Id" }, "custom_llm_provider": { "type": "string", "title": "Custom Llm Provider" }, "vector_store_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vector Store Name" }, "vector_store_description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vector Store Description" }, "vector_store_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" }, { "type": "null" } ], "title": "Vector Store Metadata" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "litellm_credential_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Credential Name" }, "litellm_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Litellm Params" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" } }, "type": "object", "title": "LiteLLM_ManagedVectorStore", "description": "LiteLLM managed vector store object - this is is the object stored in the database" }, "LiteLLM_ManagedVectorStoreListResponse": { "properties": { "object": { "type": "string", "const": "list", "title": "Object" }, "data": { "items": { "$ref": "#/components/schemas/LiteLLM_ManagedVectorStore" }, "type": "array", "title": "Data" }, "total_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Count" }, "current_page": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Current Page" }, "total_pages": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Pages" } }, "type": "object", "title": "LiteLLM_ManagedVectorStoreListResponse", "description": "Response format for listing vector stores" }, "LiteLLM_ManagedVectorStoresTable": { "properties": { "vector_store_id": { "type": "string", "title": "Vector Store Id" }, "custom_llm_provider": { "type": "string", "title": "Custom Llm Provider" }, "vector_store_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vector Store Name" }, "vector_store_description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vector Store Description" }, "vector_store_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Vector Store Metadata" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "litellm_credential_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Credential Name" }, "litellm_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Litellm Params" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" } }, "type": "object", "required": [ "vector_store_id", "custom_llm_provider", "vector_store_name", "vector_store_description", "vector_store_metadata", "created_at", "updated_at", "litellm_credential_name", "litellm_params", "team_id", "user_id" ], "title": "LiteLLM_ManagedVectorStoresTable" }, "LiteLLM_ModelTable": { "properties": { "id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Id" }, "model_aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "string" }, { "type": "null" } ], "title": "Model Aliases" }, "created_by": { "type": "string", "title": "Created By" }, "updated_by": { "type": "string", "title": "Updated By" }, "team": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_TeamTable" }, { "type": "null" } ] } }, "type": "object", "required": [ "created_by", "updated_by" ], "title": "LiteLLM_ModelTable" }, "LiteLLM_ObjectPermissionBase": { "properties": { "mcp_servers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Mcp Servers" }, "mcp_access_groups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Mcp Access Groups" }, "mcp_tool_permissions": { "anyOf": [ { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, { "type": "null" } ], "title": "Mcp Tool Permissions" }, "mcp_toolsets": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Mcp Toolsets" }, "blocked_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Blocked Tools" }, "vector_stores": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Vector Stores" }, "agents": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Agents" }, "agent_access_groups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Agent Access Groups" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models" } }, "type": "object", "title": "LiteLLM_ObjectPermissionBase" }, "LiteLLM_ObjectPermissionTable": { "properties": { "object_permission_id": { "type": "string", "title": "Object Permission Id" }, "mcp_servers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Mcp Servers", "default": [] }, "mcp_access_groups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Mcp Access Groups", "default": [] }, "mcp_tool_permissions": { "anyOf": [ { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, { "type": "null" } ], "title": "Mcp Tool Permissions" }, "vector_stores": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Vector Stores", "default": [] }, "agents": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Agents", "default": [] }, "agent_access_groups": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Agent Access Groups", "default": [] }, "mcp_toolsets": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Mcp Toolsets" }, "blocked_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Blocked Tools", "default": [] } }, "type": "object", "required": [ "object_permission_id" ], "title": "LiteLLM_ObjectPermissionTable", "description": "Represents a LiteLLM_ObjectPermissionTable record" }, "LiteLLM_OrganizationMembershipTable": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "organization_id": { "type": "string", "title": "Organization Id" }, "user_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Role" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "user": { "anyOf": [ {}, { "type": "null" } ], "title": "User" }, "litellm_budget_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_BudgetTable" }, { "type": "null" } ] }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" } }, "type": "object", "required": [ "user_id", "organization_id", "created_at", "updated_at" ], "title": "LiteLLM_OrganizationMembershipTable", "description": "This is the table that track what organizations a user belongs to and users spend within the organization" }, "LiteLLM_OrganizationTableWithMembers": { "properties": { "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "organization_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Alias" }, "budget_id": { "type": "string", "title": "Budget Id" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models" }, "created_by": { "type": "string", "title": "Created By" }, "updated_by": { "type": "string", "title": "Updated By" }, "users": { "anyOf": [ { "items": { "$ref": "#/components/schemas/LiteLLM_UserTable" }, "type": "array" }, { "type": "null" } ], "title": "Users" }, "litellm_budget_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_BudgetTable" }, { "type": "null" } ] }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "members": { "items": { "$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable" }, "type": "array", "title": "Members", "default": [] }, "teams": { "items": { "$ref": "#/components/schemas/LiteLLM_TeamTable" }, "type": "array", "title": "Teams", "default": [] }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "budget_id", "models", "created_by", "updated_by", "created_at", "updated_at" ], "title": "LiteLLM_OrganizationTableWithMembers", "description": "Returned by the /organization/info endpoint and /organization/list endpoint" }, "LiteLLM_Params": { "properties": { "input_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "output_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "input_cost_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Second" }, "output_cost_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Second" }, "input_cost_per_pixel": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Pixel" }, "output_cost_per_pixel": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Pixel" }, "input_cost_per_token_flex": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Flex" }, "input_cost_per_token_priority": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Priority" }, "cache_creation_input_token_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Creation Input Token Cost" }, "cache_creation_input_token_cost_above_1hr": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Creation Input Token Cost Above 1Hr" }, "cache_creation_input_token_cost_above_200k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Creation Input Token Cost Above 200K Tokens" }, "cache_creation_input_audio_token_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Creation Input Audio Token Cost" }, "cache_read_input_token_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Token Cost" }, "cache_read_input_token_cost_flex": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Token Cost Flex" }, "cache_read_input_token_cost_priority": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Token Cost Priority" }, "cache_read_input_token_cost_above_200k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Token Cost Above 200K Tokens" }, "cache_read_input_audio_token_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Audio Token Cost" }, "input_cost_per_character": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Character" }, "input_cost_per_character_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Character Above 128K Tokens" }, "input_cost_per_audio_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Audio Token" }, "input_cost_per_token_cache_hit": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Cache Hit" }, "input_cost_per_token_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Above 128K Tokens" }, "input_cost_per_token_above_200k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Above 200K Tokens" }, "input_cost_per_query": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Query" }, "input_cost_per_image": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Image" }, "input_cost_per_image_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Image Above 128K Tokens" }, "input_cost_per_audio_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Audio Per Second" }, "input_cost_per_audio_per_second_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Audio Per Second Above 128K Tokens" }, "input_cost_per_video_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Video Per Second" }, "input_cost_per_video_per_second_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Video Per Second Above 128K Tokens" }, "input_cost_per_video_per_second_above_15s_interval": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Video Per Second Above 15S Interval" }, "input_cost_per_video_per_second_above_8s_interval": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Video Per Second Above 8S Interval" }, "input_cost_per_token_batches": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Batches" }, "output_cost_per_token_batches": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Batches" }, "output_cost_per_token_flex": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Flex" }, "output_cost_per_token_priority": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Priority" }, "output_cost_per_character": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Character" }, "output_cost_per_audio_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Audio Token" }, "output_cost_per_token_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Above 128K Tokens" }, "output_cost_per_token_above_200k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Above 200K Tokens" }, "output_cost_per_character_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Character Above 128K Tokens" }, "output_cost_per_image": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Image" }, "output_cost_per_image_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Image Token" }, "output_cost_per_reasoning_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Reasoning Token" }, "output_cost_per_video_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Video Per Second" }, "output_cost_per_audio_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Audio Per Second" }, "search_context_cost_per_query": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Search Context Cost Per Query" }, "citation_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Citation Cost Per Token" }, "tiered_pricing": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Tiered Pricing" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Base" }, "api_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Version" }, "vertex_project": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vertex Project" }, "vertex_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vertex Location" }, "vertex_credentials": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Vertex Credentials" }, "region_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Name" }, "aws_access_key_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Access Key Id" }, "aws_secret_access_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Secret Access Key" }, "aws_region_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Region Name" }, "aws_bedrock_runtime_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Bedrock Runtime Endpoint" }, "watsonx_region_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Watsonx Region Name" }, "custom_llm_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Llm Provider" }, "tpm": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm" }, "rpm": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm" }, "timeout": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "null" } ], "title": "Timeout" }, "stream_timeout": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "null" } ], "title": "Stream Timeout" }, "max_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Retries" }, "organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization" }, "configurable_clientside_auth_params": { "anyOf": [ { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ConfigurableClientsideParamsCustomAuth-Input" } ] }, "type": "array" }, { "type": "null" } ], "title": "Configurable Clientside Auth Params" }, "litellm_credential_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Credential Name" }, "litellm_trace_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Trace Id" }, "max_file_size_mb": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max File Size Mb" }, "default_api_key_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Default Api Key Tpm Limit" }, "default_api_key_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Default Api Key Rpm Limit" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "use_in_pass_through": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Use In Pass Through", "default": false }, "use_litellm_proxy": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Use Litellm Proxy", "default": false }, "merge_reasoning_content_in_choices": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Merge Reasoning Content In Choices", "default": false }, "model_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Info" }, "mock_response": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ModelResponse" }, {}, { "type": "null" } ], "title": "Mock Response" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "tag_regex": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tag Regex" }, "auto_router_config_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Router Config Path" }, "auto_router_config": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Router Config" }, "auto_router_default_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Router Default Model" }, "auto_router_embedding_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Router Embedding Model" }, "complexity_router_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Complexity Router Config" }, "complexity_router_default_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Complexity Router Default Model" }, "s3_bucket_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "S3 Bucket Name" }, "s3_encryption_key_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "S3 Encryption Key Id" }, "gcs_bucket_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Gcs Bucket Name" }, "vector_store_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vector Store Id" }, "milvus_text_field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Milvus Text Field" }, "model": { "type": "string", "title": "Model" } }, "additionalProperties": true, "type": "object", "required": [ "model" ], "title": "LiteLLM_Params", "description": "LiteLLM Params with 'model' requirement - used for completions" }, "LiteLLM_ProjectTable": { "properties": { "project_id": { "type": "string", "title": "Project Id" }, "project_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Alias" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models", "default": [] }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "model_spend": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Spend" }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "created_by": { "type": "string", "title": "Created By" }, "updated_by": { "type": "string", "title": "Updated By" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "litellm_budget_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_BudgetTable" }, { "type": "null" } ] }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] } }, "type": "object", "required": [ "project_id", "created_by", "updated_by" ], "title": "LiteLLM_ProjectTable", "description": "Database model representation for project" }, "LiteLLM_SpendLogs": { "properties": { "request_id": { "type": "string", "title": "Request Id" }, "api_key": { "type": "string", "title": "Api Key" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model", "default": "" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Base", "default": "" }, "call_type": { "type": "string", "title": "Call Type" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend", "default": 0.0 }, "total_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Tokens", "default": 0 }, "prompt_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Prompt Tokens", "default": 0 }, "completion_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Completion Tokens", "default": 0 }, "startTime": { "anyOf": [ { "type": "string" }, { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Starttime" }, "endTime": { "anyOf": [ { "type": "string" }, { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Endtime" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User", "default": "" }, "metadata": { "anyOf": [ {}, { "type": "null" } ], "title": "Metadata", "default": {} }, "cache_hit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cache Hit", "default": "False" }, "cache_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Cache Key" }, "request_tags": { "anyOf": [ {}, { "type": "null" } ], "title": "Request Tags" }, "requester_ip_address": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Requester Ip Address" }, "messages": { "anyOf": [ { "type": "string" }, { "items": {}, "type": "array" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Messages" }, "response": { "anyOf": [ { "type": "string" }, { "items": {}, "type": "array" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Response" } }, "type": "object", "required": [ "request_id", "api_key", "call_type", "startTime", "endTime", "messages", "response" ], "title": "LiteLLM_SpendLogs" }, "LiteLLM_TeamMembership": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "team_id": { "type": "string", "title": "Team Id" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend", "default": 0.0 }, "litellm_budget_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_BudgetTable" }, { "type": "null" } ] } }, "type": "object", "required": [ "user_id", "team_id", "litellm_budget_table" ], "title": "LiteLLM_TeamMembership" }, "LiteLLM_TeamTable": { "properties": { "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias" }, "team_id": { "type": "string", "title": "Team Id" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "admins": { "items": {}, "type": "array", "title": "Admins", "default": [] }, "members": { "items": {}, "type": "array", "title": "Members", "default": [] }, "members_with_roles": { "items": { "$ref": "#/components/schemas/Member" }, "type": "array", "title": "Members With Roles", "default": [] }, "team_member_permissions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Team Member Permissions" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "model_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Model Id" }, "litellm_model_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ModelTable" }, { "type": "null" } ] }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" } }, "type": "object", "required": [ "team_id" ], "title": "LiteLLM_TeamTable" }, "LiteLLM_ToolTableRow": { "properties": { "tool_id": { "type": "string", "title": "Tool Id" }, "tool_name": { "type": "string", "title": "Tool Name" }, "origin": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Origin" }, "input_policy": { "type": "string", "enum": [ "trusted", "untrusted", "blocked" ], "title": "Input Policy", "default": "untrusted" }, "output_policy": { "type": "string", "enum": [ "trusted", "untrusted" ], "title": "Output Policy", "default": "untrusted" }, "call_count": { "type": "integer", "title": "Call Count", "default": 0 }, "assignments": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Assignments" }, "key_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Hash" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "user_agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Agent" }, "last_used_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Used At" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" } }, "type": "object", "required": [ "tool_id", "tool_name" ], "title": "LiteLLM_ToolTableRow" }, "LiteLLM_UserTable": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_spend": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Spend", "default": {} }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "user_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Alias" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "user_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Role" }, "organization_memberships": { "anyOf": [ { "items": { "$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable" }, "type": "array" }, { "type": "null" } ], "title": "Organization Memberships" }, "teams": { "items": { "type": "string" }, "type": "array", "title": "Teams", "default": [] }, "sso_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sso User Id" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] } }, "type": "object", "required": [ "user_id" ], "title": "LiteLLM_UserTable" }, "LiteLLM_UserTableWithKeyCount": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_spend": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Spend", "default": {} }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "user_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Alias" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "user_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Role" }, "organization_memberships": { "anyOf": [ { "items": { "$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable" }, "type": "array" }, { "type": "null" } ], "title": "Organization Memberships" }, "teams": { "items": { "type": "string" }, "type": "array", "title": "Teams", "default": [] }, "sso_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sso User Id" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "key_count": { "type": "integer", "title": "Key Count", "default": 0 } }, "type": "object", "required": [ "user_id" ], "title": "LiteLLM_UserTableWithKeyCount" }, "LiteLLM_VerificationToken": { "properties": { "token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token" }, "key_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Name" }, "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "expires": { "anyOf": [ { "type": "string" }, { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expires" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "aliases": { "additionalProperties": true, "type": "object", "title": "Aliases", "default": {} }, "config": { "additionalProperties": true, "type": "object", "title": "Config", "default": {} }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata", "default": {} }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "allowed_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Routes", "default": [] }, "permissions": { "additionalProperties": true, "type": "object", "title": "Permissions", "default": {} }, "model_spend": { "additionalProperties": true, "type": "object", "title": "Model Spend", "default": {} }, "model_max_budget": { "additionalProperties": true, "type": "object", "title": "Model Max Budget", "default": {} }, "soft_budget_cooldown": { "type": "boolean", "title": "Soft Budget Cooldown", "default": false }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "litellm_budget_table": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Litellm Budget Table" }, "org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Org Id" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" }, "last_active": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Active" }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "rotation_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rotation Count", "default": 0 }, "auto_rotate": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Auto Rotate", "default": false }, "rotation_interval": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rotation Interval" }, "last_rotation_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Rotation At" }, "key_rotation_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Key Rotation At" }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" } }, "type": "object", "title": "LiteLLM_VerificationToken" }, "LitellmParams": { "properties": { "optional_params": { "anyOf": [ { "$ref": "#/components/schemas/GraySwanGuardrailConfigModelOptionalParams" }, { "type": "null" } ], "description": "Optional parameters for the guardrail" }, "blocked_languages": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Blocked Languages", "description": "Language tags to block (e.g. python, javascript, bash). Empty or None = block all fenced code blocks.", "options": [ "python", "javascript", "typescript", "bash", "ruby", "go", "java", "csharp", "php", "c", "cpp", "rust", "sql" ], "ui_type": "multiselect" }, "action": { "type": "string", "enum": [ "block", "mask" ], "title": "Action", "description": "'block' raises an error; 'mask' replaces the code block with a placeholder.", "default": "block" }, "confidence_threshold": { "type": "number", "maximum": 1.0, "minimum": 0.0, "title": "Confidence Threshold", "description": "Only block or mask when detection confidence >= this value; below threshold, allow or log_only.", "default": 0.5, "default_value": 0.5, "max": 1.0, "min": 0.0, "step": 0.1, "ui_type": "percentage" }, "detect_execution_intent": { "type": "boolean", "title": "Detect Execution Intent", "description": "When True, block only when user intent is to run/execute; allow when intent is explain/refactor/don't run. Also block text-only execution requests (e.g. 'run `ls`', 'read /etc/passwd').", "default": true }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key", "description": "API key for the Lakera AI service" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Base", "description": "Base URL for the Lakera AI API" }, "evaluation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Evaluation Id", "description": "Pre-configured evaluation ID from Qualifire dashboard. When provided, uses invoke_evaluation() instead of evaluate()." }, "prompt_injections": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Prompt Injections", "description": "Enable prompt injection detection. Default check if no evaluation_id and no other checks are specified." }, "hallucinations_check": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Hallucinations Check", "description": "Enable hallucination detection to detect factual inaccuracies." }, "grounding_check": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Grounding Check", "description": "Enable grounding verification to ensure output is grounded in provided context." }, "pii_check": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Pii Check", "description": "Enable PII (Personally Identifiable Information) detection." }, "content_moderation_check": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Content Moderation Check", "description": "Enable content moderation to check for harmful content (harassment, hate speech, etc.)." }, "tool_selection_quality_check": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Tool Selection Quality Check", "description": "Enable tool selection quality check to evaluate quality of tool/function calls." }, "assertions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Assertions", "description": "Custom assertions to validate against the output. Each assertion is a string describing a condition." }, "on_flagged": { "anyOf": [ { "type": "string", "enum": [ "block", "monitor" ] }, { "type": "null" } ], "title": "On Flagged", "description": "Action to take when content is flagged: 'block' (raise exception) or 'monitor' (log only)", "default": "block" }, "auth_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auth Token", "description": "Authorization bearer token for IBM Guardrails API. Reads from IBM_GUARDRAILS_AUTH_TOKEN env var if None." }, "base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base Url", "description": "Base URL for the IBM Guardrails server" }, "detector_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Detector Id", "description": "Name of the detector inside the server (e.g., 'jailbreak-detector')" }, "is_detector_server": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Detector Server", "description": "Boolean flag to determine if calling a detector server (True) or the FMS Orchestrator (False). Defaults to True.", "default": true }, "verify_ssl": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Verify Ssl", "description": "Whether to verify SSL certificates. Defaults to True.", "default": true }, "policy_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Policy Name", "description": "The EnkryptAI policy name to use. Sent via x-enkrypt-policy header." }, "deployment_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Deployment Name", "description": "The EnkryptAI deployment name to use. Sent via X-Enkrypt-Deployment header." }, "detectors": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Detectors", "description": "Dictionary of detector configurations (e.g., {'nsfw': {'enabled': True}, 'toxicity': {'enabled': True}})." }, "block_on_violation": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Block On Violation", "description": "Whether to block requests when violations are detected. Defaults to True.", "default": true }, "patterns": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ContentFilterPattern" }, "type": "array" }, { "type": "null" } ], "title": "Patterns", "description": "List of patterns (prebuilt or custom regex) to detect" }, "blocked_words": { "anyOf": [ { "items": { "$ref": "#/components/schemas/BlockedWord" }, "type": "array" }, { "type": "null" } ], "title": "Blocked Words", "description": "List of blocked words with individual actions" }, "blocked_words_file": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Blocked Words File", "description": "Path to YAML file containing blocked_words list" }, "categories": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ContentFilterCategoryConfig" }, "type": "array" }, { "type": "null" } ], "title": "Categories", "description": "List of prebuilt categories to enable (harmful_*, bias_*)" }, "severity_threshold": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Severity Threshold", "description": "Minimum severity to block (high, medium, low)" }, "pattern_redaction_format": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pattern Redaction Format", "description": "Format string for pattern redaction (use {pattern_name} placeholder)" }, "keyword_redaction_tag": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Keyword Redaction Tag", "description": "Tag to use for keyword redaction" }, "experimental_use_latest_role_message_only": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Experimental Use Latest Role Message Only", "description": "When True, guardrails only receive the latest message for the relevant role (e.g., newest user input pre-call, newest assistant output post-call)", "default": false }, "skip_system_message_in_guardrail": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Skip System Message In Guardrail", "description": "When True, unified guardrails skip system-role messages when building evaluation inputs (texts and structured_messages). When False, system messages are included even if litellm_settings sets a global skip. When None, use the global litellm.skip_system_message_in_guardrail setting." }, "category_thresholds": { "anyOf": [ { "$ref": "#/components/schemas/LakeraCategoryThresholds" }, { "type": "null" } ], "description": "Threshold configuration for Lakera guardrail categories" }, "detect_secrets_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Detect Secrets Config", "description": "Configuration for detect-secrets guardrail" }, "guard_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guard Name", "description": "Name of the Javelin guard to use" }, "default_on": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Default On", "description": "Whether the guardrail is enabled by default" }, "mask_request_content": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Mask Request Content", "description": "Will mask request content if guardrail makes any changes" }, "mask_response_content": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Mask Response Content", "description": "Will mask response content if guardrail makes any changes" }, "pangea_input_recipe": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pangea Input Recipe", "description": "Recipe for input (LLM request)" }, "pangea_output_recipe": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Pangea Output Recipe", "description": "Recipe for output (LLM response)" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model", "description": "Optional field if guardrail requires a 'model' parameter" }, "violation_message_template": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Violation Message Template", "description": "Custom message when a guardrail blocks an action. Supports placeholders like {tool_name}, {rule_id}, and {default_message}." }, "end_session_after_n_fails": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "End Session After N Fails", "description": "For /v1/realtime sessions: automatically close the session after this many guardrail violations." }, "on_violation": { "anyOf": [ { "type": "string", "enum": [ "warn", "end_session" ] }, { "type": "null" } ], "title": "On Violation", "description": "For /v1/realtime sessions: 'warn' speaks the violation message and continues; 'end_session' speaks the message and closes the connection." }, "realtime_violation_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Realtime Violation Message", "description": "The message the bot speaks aloud when a /v1/realtime guardrail fires. Falls back to violation_message_template if not set." }, "template_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Template Id", "description": "The ID of your Model Armor template" }, "location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Location", "description": "Google Cloud location/region (e.g., us-central1)" }, "credentials": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Credentials", "description": "Path to Google Cloud credentials JSON file or JSON string" }, "api_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Endpoint", "description": "Optional custom API endpoint for Model Armor" }, "fail_on_error": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Fail On Error", "description": "Whether to fail the request if Model Armor encounters an error", "default": true }, "additional_provider_specific_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Additional Provider Specific Params", "description": "Additional provider-specific parameters for generic guardrail APIs" }, "unreachable_fallback": { "type": "string", "enum": [ "fail_closed", "fail_open" ], "title": "Unreachable Fallback", "description": "What to do when Akto is unreachable. 'fail_open' = allow, 'fail_closed' = block.", "default": "fail_closed" }, "extra_headers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Extra Headers", "description": "Header names to forward from the client request to the guardrail (e.g. x-request-id). Only these headers' values are sent; others may be omitted or sent as [present]. Used by generic_guardrail_api (similar to MCP extra_headers)." }, "custom_code": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Code", "description": "Python-like code containing the apply_guardrail function for custom guardrail logic" }, "api_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Version", "description": "API version for Javelin service", "default": "v1" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata", "description": "Additional metadata to include in the request" }, "application": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Application", "description": "Application name for Javelin service" }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "description": "Additional configuration for the guardrail" }, "akto_base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Akto Base Url", "description": "Akto Guardrail API Base URL. Env: AKTO_GUARDRAIL_API_BASE.", "examples": [ "http://localhost:9090", "https://akto-ingestion.example.com" ] }, "akto_api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Akto Api Key", "description": "API key for Akto. Env: AKTO_API_KEY." }, "akto_account_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Akto Account Id", "description": "Akto account ID for multi-tenant deployments. Env: AKTO_ACCOUNT_ID. Default: '1000000'." }, "akto_vxlan_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Akto Vxlan Id", "description": "Akto VXLAN ID. Env: AKTO_VXLAN_ID. Default: '0'." }, "guardrail_timeout": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Guardrail Timeout", "description": "HTTP timeout in seconds. Default: 5." }, "policy_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Policy Id", "description": "Policy ID for Zscaler AI Guard. Can also be set via ZSCALER_AI_GUARD_POLICY_ID environment variable" }, "send_user_api_key_alias": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Send User Api Key Alias", "description": "Whether to send user_API_key_alias in headers", "default": false }, "send_user_api_key_user_id": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Send User Api Key User Id", "description": "Whether to send user_API_key_user_id in headers", "default": false }, "send_user_api_key_team_id": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Send User Api Key Team Id", "description": "Whether to send user_API_key_team_id in headers", "default": false }, "rules": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ToolPermissionRule" }, "type": "array" }, { "type": "null" } ], "title": "Rules", "description": "Ordered allow/deny rules. Patterns use regex for tool names/types and optional regex constraints on tool arguments." }, "default_action": { "type": "string", "enum": [ "allow", "deny" ], "title": "Default Action", "description": "Fallback decision when no rule matches", "default": "deny" }, "on_disallowed_action": { "type": "string", "enum": [ "block", "rewrite" ], "title": "On Disallowed Action", "description": "Choose whether disallowed tools block the request or get rewritten out of the payload", "default": "block" }, "use_v2": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Use V2", "description": "If True and guardrail='noma', route to the new Noma v2 implementation instead of the legacy implementation.", "default": false }, "application_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Application Id", "description": "Application ID for Noma Security. Defaults to 'litellm' if not provided" }, "monitor_mode": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Monitor Mode", "description": "If True, logs violations without blocking. Defaults to False if not provided" }, "block_failures": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Block Failures", "description": "If True, blocks requests on API failures. Defaults to True if not provided" }, "anonymize_input": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Anonymize Input", "description": "If True, replaces sensitive content with anonymized version when only PII/PCI/secrets are detected. Only applies in blocking mode. Defaults to False if not provided" }, "on_flagged_action": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "On Flagged Action", "description": "Action to take when content is flagged: 'block' (raise exception) or 'monitor' (log only)", "default": "monitor" }, "async_mode": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Async Mode", "description": "Set to True to request asynchronous analysis (sets `plr_async` header). Defaults to provider behaviour when omitted." }, "persist_session": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Persist Session", "description": "Controls Pillar session persistence (sets `plr_persist` header). Set to False to disable persistence." }, "include_scanners": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Include Scanners", "description": "Include scanner category summaries in responses (sets `plr_scanners` header).", "default": true }, "include_evidence": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Include Evidence", "description": "Include detailed evidence payloads in responses (sets `plr_evidence` header).", "default": true }, "lasso_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lasso User Id", "description": "User ID for the Lasso guardrail" }, "lasso_conversation_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Lasso Conversation Id", "description": "Conversation ID for the Lasso guardrail" }, "mask": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Mask", "description": "Enable content masking using Lasso classifix API", "default": false }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id", "description": "Project ID for the Lakera AI project" }, "payload": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Payload", "description": "Whether to include payload in the response", "default": true }, "breakdown": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Breakdown", "description": "Whether to include breakdown in the response", "default": true }, "dev_info": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Dev Info", "description": "Whether to include developer information in the response", "default": true }, "guardrailIdentifier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guardrailidentifier", "description": "The ID of your guardrail on Bedrock" }, "guardrailVersion": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guardrailversion", "description": "The version of your Bedrock guardrail (e.g., DRAFT or version number)" }, "disable_exception_on_block": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Disable Exception On Block", "description": "If True, will not raise an exception when the guardrail is blocked. Useful for OpenWebUI where exceptions can end the chat flow.", "default": false }, "aws_region_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Region Name", "description": "AWS region where your guardrail is deployed" }, "aws_access_key_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Access Key Id", "description": "AWS access key ID for authentication" }, "aws_secret_access_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Secret Access Key", "description": "AWS secret access key for authentication" }, "aws_session_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Session Token", "description": "AWS session token for temporary credentials" }, "aws_session_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Session Name", "description": "Name of the AWS session" }, "aws_profile_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Profile Name", "description": "AWS profile name for credential retrieval" }, "aws_role_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Role Name", "description": "AWS role name for assuming roles" }, "aws_web_identity_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Web Identity Token", "description": "Web identity token for AWS role assumption" }, "aws_sts_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Sts Endpoint", "description": "AWS STS endpoint URL" }, "aws_bedrock_runtime_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Bedrock Runtime Endpoint", "description": "AWS Bedrock runtime endpoint URL" }, "presidio_analyzer_api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Presidio Analyzer Api Base", "description": "Base URL for the Presidio analyzer API" }, "presidio_anonymizer_api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Presidio Anonymizer Api Base", "description": "Base URL for the Presidio anonymizer API" }, "presidio_filter_scope": { "anyOf": [ { "type": "string", "enum": [ "input", "output", "both" ] }, { "type": "null" } ], "title": "Presidio Filter Scope", "description": "Where to apply Presidio checks: 'input' (user -> model), 'output' (model -> user), or 'both' (default)." }, "output_parse_pii": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Output Parse Pii", "description": "When True, LiteLLM will replace the masked text with the original text in the response", "ui_type": "bool" }, "presidio_language": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Presidio Language", "description": "Language code for Presidio PII analysis (e.g., 'en', 'de', 'es', 'fr')", "default": "en" }, "presidio_run_on": { "anyOf": [ { "type": "string", "enum": [ "input", "output", "both" ] }, { "type": "null" } ], "title": "Presidio Run On", "description": "Where to apply Presidio checks: input, output, or both (default)." }, "pii_entities_config": { "anyOf": [ { "additionalProperties": { "$ref": "#/components/schemas/PiiAction" }, "type": "object" }, { "type": "null" } ], "title": "Pii Entities Config", "description": "Configuration for PII entity types and actions" }, "presidio_score_thresholds": { "anyOf": [ { "additionalProperties": { "type": "number" }, "type": "object" }, { "type": "null" } ], "title": "Presidio Score Thresholds", "description": "Optional per-entity minimum confidence scores for Presidio detections. Entities below the threshold are ignored." }, "presidio_entities_deny_list": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/components/schemas/PiiEntityType" }, { "type": "string" } ] }, "type": "array" }, { "type": "null" } ], "title": "Presidio Entities Deny List", "description": "List of entity types to exclude from Presidio detection results. Detections of these types will be silently dropped. Useful for suppressing false positives (e.g., US_DRIVER_LICENSE on coding routes)." }, "presidio_ad_hoc_recognizers": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Presidio Ad Hoc Recognizers", "description": "Path to a JSON file containing ad-hoc recognizers for Presidio" }, "mock_redacted_text": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Mock Redacted Text", "description": "Mock redacted text for testing" }, "guardrail": { "type": "string", "title": "Guardrail", "description": "The type of guardrail integration to use" }, "mode": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "$ref": "#/components/schemas/Mode" } ], "title": "Mode", "description": "When to apply the guardrail (pre_call, post_call, during_call, logging_only)" } }, "additionalProperties": true, "type": "object", "required": [ "guardrail", "mode" ], "title": "LitellmParams" }, "LitellmUserRoles": { "type": "string", "enum": [ "proxy_admin", "proxy_admin_viewer", "org_admin", "internal_user", "internal_user_viewer", "team", "customer" ], "title": "LitellmUserRoles", "description": "Admin Roles:\nPROXY_ADMIN: admin over the platform\nPROXY_ADMIN_VIEW_ONLY: can login, view all own keys, view all spend\nORG_ADMIN: admin over a specific organization, can create teams, users only within their organization\n\nInternal User Roles:\nINTERNAL_USER: can login, view/create/delete their own keys, view their spend\nINTERNAL_USER_VIEW_ONLY: can login, view their own keys, view their own spend\n\n\nTeam Roles:\nTEAM: used for JWT auth\n\n\nCustomer Roles:\nCUSTOMER: External users -> these are customers" }, "LoggingCallbackStatus": { "properties": { "callbacks": { "items": { "type": "string" }, "type": "array", "title": "Callbacks" }, "status": { "type": "string", "enum": [ "healthy", "unhealthy" ], "title": "Status" }, "details": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Details" } }, "type": "object", "title": "LoggingCallbackStatus" }, "MCPCredentials": { "properties": { "auth_value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auth Value" }, "client_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Id" }, "client_secret": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Client Secret" }, "scopes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Scopes" }, "aws_access_key_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Access Key Id" }, "aws_secret_access_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Secret Access Key" }, "aws_session_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Session Token" }, "aws_region_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Region Name" }, "aws_service_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Service Name" }, "aws_role_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Role Name" }, "aws_session_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Session Name" } }, "type": "object", "title": "MCPCredentials" }, "MCPOAuthUserCredentialRequest": { "properties": { "access_token": { "type": "string", "title": "Access Token" }, "refresh_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Refresh Token" }, "expires_in": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expires In" }, "scopes": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Scopes" } }, "type": "object", "required": [ "access_token" ], "title": "MCPOAuthUserCredentialRequest", "description": "Stores a user's OAuth2 token for an OpenAPI MCP server." }, "MCPOAuthUserCredentialStatus": { "properties": { "server_id": { "type": "string", "title": "Server Id" }, "has_credential": { "type": "boolean", "title": "Has Credential" }, "expires_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Expires At" }, "is_expired": { "type": "boolean", "title": "Is Expired", "default": false }, "connected_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Connected At" } }, "type": "object", "required": [ "server_id", "has_credential" ], "title": "MCPOAuthUserCredentialStatus", "description": "Describes whether the calling user has a stored OAuth credential." }, "MCPPublicServer": { "properties": { "server_id": { "type": "string", "title": "Server Id" }, "name": { "type": "string", "title": "Name" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "server_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Name" }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "transport": { "type": "string", "enum": [ "sse", "http", "stdio" ], "title": "Transport" }, "spec_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Spec Path" }, "auth_type": { "anyOf": [ { "type": "string", "enum": [ "none", "api_key", "bearer_token", "basic", "authorization", "oauth2", "aws_sigv4", "token" ] }, { "type": "null" } ], "title": "Auth Type" }, "mcp_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Mcp Info" } }, "type": "object", "required": [ "server_id", "name", "transport" ], "title": "MCPPublicServer", "description": "Safe params for public MCP servers" }, "MCPSemanticFilterSettings": { "properties": { "enabled": { "type": "boolean", "title": "Enabled", "description": "Enable semantic filtering of MCP tools based on query relevance", "default": false }, "embedding_model": { "type": "string", "title": "Embedding Model", "description": "Embedding model to use for semantic similarity (e.g., 'text-embedding-3-small', 'text-embedding-ada-002')", "default": "text-embedding-3-small" }, "top_k": { "type": "integer", "maximum": 100.0, "minimum": 1.0, "title": "Top K", "description": "Number of most relevant tools to return", "default": 10 }, "similarity_threshold": { "type": "number", "maximum": 1.0, "minimum": 0.0, "title": "Similarity Threshold", "description": "Minimum similarity score for tool inclusion (0.0 to 1.0, where 1.0 = exact match)", "default": 0.3 } }, "type": "object", "title": "MCPSemanticFilterSettings", "description": "Configuration for MCP Semantic Tool Filter" }, "MCPSemanticFilterSettingsResponse": { "properties": { "values": { "additionalProperties": true, "type": "object", "title": "Values" }, "field_schema": { "additionalProperties": true, "type": "object", "title": "Field Schema" } }, "type": "object", "required": [ "values", "field_schema" ], "title": "MCPSemanticFilterSettingsResponse", "description": "Response model for MCP semantic filter settings" }, "MCPSubmissionsSummary": { "properties": { "total": { "type": "integer", "title": "Total" }, "pending_review": { "type": "integer", "title": "Pending Review" }, "active": { "type": "integer", "title": "Active" }, "rejected": { "type": "integer", "title": "Rejected" }, "items": { "items": { "$ref": "#/components/schemas/LiteLLM_MCPServerTable" }, "type": "array", "title": "Items" } }, "type": "object", "required": [ "total", "pending_review", "active", "rejected", "items" ], "title": "MCPSubmissionsSummary" }, "MCPToolsetTool": { "properties": { "server_id": { "type": "string", "title": "Server Id" }, "tool_name": { "type": "string", "title": "Tool Name" } }, "type": "object", "required": [ "server_id", "tool_name" ], "title": "MCPToolsetTool" }, "MCPUserCredentialListItem": { "properties": { "server_id": { "type": "string", "title": "Server Id" }, "server_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Name" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "credential_type": { "type": "string", "title": "Credential Type" }, "has_credential": { "type": "boolean", "title": "Has Credential" }, "expires_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Expires At" }, "connected_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Connected At" } }, "type": "object", "required": [ "server_id", "credential_type", "has_credential" ], "title": "MCPUserCredentialListItem", "description": "One entry in the /user-credentials list." }, "MCPUserCredentialRequest": { "properties": { "credential": { "type": "string", "title": "Credential" }, "save": { "type": "boolean", "title": "Save", "default": true } }, "type": "object", "required": [ "credential" ], "title": "MCPUserCredentialRequest" }, "MCPUserCredentialResponse": { "properties": { "server_id": { "type": "string", "title": "Server Id" }, "has_credential": { "type": "boolean", "title": "Has Credential" } }, "type": "object", "required": [ "server_id", "has_credential" ], "title": "MCPUserCredentialResponse" }, "MakeAgentsPublicRequest": { "properties": { "agent_ids": { "items": { "type": "string" }, "type": "array", "title": "Agent Ids" } }, "type": "object", "required": [ "agent_ids" ], "title": "MakeAgentsPublicRequest" }, "MakeMCPServersPublicRequest": { "properties": { "mcp_server_ids": { "items": { "type": "string" }, "type": "array", "title": "Mcp Server Ids" } }, "type": "object", "required": [ "mcp_server_ids" ], "title": "MakeMCPServersPublicRequest" }, "Member": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id", "description": "The unique ID of the user to add. Either user_id or user_email must be provided" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email", "description": "The email address of the user to add. Either user_id or user_email must be provided" }, "role": { "type": "string", "enum": [ "admin", "user" ], "title": "Role", "description": "The role of the user within the team. 'admin' users can manage team settings and members, 'user' is a regular team member" } }, "type": "object", "required": [ "role" ], "title": "Member" }, "Message": { "properties": { "content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Content" }, "role": { "type": "string", "enum": [ "assistant", "user", "system", "tool", "function" ], "title": "Role" }, "tool_calls": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ChatCompletionMessageToolCall" }, "type": "array" }, { "type": "null" } ], "title": "Tool Calls" }, "function_call": { "anyOf": [ { "$ref": "#/components/schemas/FunctionCall" }, { "type": "null" } ] }, "audio": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionAudioResponse" }, { "type": "null" } ] }, "images": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ImageURLListItem" }, "type": "array" }, { "type": "null" } ], "title": "Images" }, "reasoning_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reasoning Content" }, "thinking_blocks": { "anyOf": [ { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionThinkingBlock" }, { "$ref": "#/components/schemas/ChatCompletionRedactedThinkingBlock" } ] }, "type": "array" }, { "type": "null" } ], "title": "Thinking Blocks" }, "reasoning_items": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ChatCompletionReasoningItem" }, "type": "array" }, { "type": "null" } ], "title": "Reasoning Items" }, "provider_specific_fields": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Provider Specific Fields" }, "annotations": { "anyOf": [ { "items": { "$ref": "#/components/schemas/ChatCompletionAnnotation" }, "type": "array" }, { "type": "null" } ], "title": "Annotations" } }, "additionalProperties": true, "type": "object", "required": [ "content", "role", "tool_calls", "function_call" ], "title": "Message" }, "MetricWithMetadata": { "properties": { "metrics": { "$ref": "#/components/schemas/SpendMetrics" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata" }, "api_key_breakdown": { "additionalProperties": { "$ref": "#/components/schemas/KeyMetricWithMetadata" }, "type": "object", "title": "Api Key Breakdown" } }, "type": "object", "required": [ "metrics" ], "title": "MetricWithMetadata" }, "Mode": { "properties": { "tags": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" } ] }, "type": "object", "title": "Tags", "description": "Tags for the guardrail mode" }, "default": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Default", "description": "Default mode when no tags match" } }, "type": "object", "required": [ "tags" ], "title": "Mode" }, "ModelGroupInfoProxy": { "properties": { "model_group": { "type": "string", "title": "Model Group" }, "providers": { "items": { "type": "string" }, "type": "array", "title": "Providers" }, "max_input_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Input Tokens" }, "max_output_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Output Tokens" }, "input_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "output_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "input_cost_per_pixel": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Pixel" }, "mode": { "anyOf": [ { "type": "string" }, { "type": "string", "enum": [ "chat", "embedding", "completion", "image_generation", "audio_transcription", "rerank", "moderations" ] }, { "type": "null" } ], "title": "Mode", "default": "chat" }, "tpm": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm" }, "rpm": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm" }, "supports_parallel_function_calling": { "type": "boolean", "title": "Supports Parallel Function Calling", "default": false }, "supports_vision": { "type": "boolean", "title": "Supports Vision", "default": false }, "supports_web_search": { "type": "boolean", "title": "Supports Web Search", "default": false }, "supports_url_context": { "type": "boolean", "title": "Supports Url Context", "default": false }, "supports_reasoning": { "type": "boolean", "title": "Supports Reasoning", "default": false }, "supports_function_calling": { "type": "boolean", "title": "Supports Function Calling", "default": false }, "supported_openai_params": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Supported Openai Params", "default": [] }, "configurable_clientside_auth_params": { "anyOf": [ { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ConfigurableClientsideParamsCustomAuth-Output" } ] }, "type": "array" }, { "type": "null" } ], "title": "Configurable Clientside Auth Params" }, "is_public_model_group": { "type": "boolean", "title": "Is Public Model Group", "default": false }, "health_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Health Status" }, "health_response_time": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Health Response Time" }, "health_checked_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Health Checked At" } }, "type": "object", "required": [ "model_group", "providers" ], "title": "ModelGroupInfoProxy" }, "ModelInfo": { "properties": { "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id" }, "db_model": { "type": "boolean", "title": "Db Model", "default": false }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "base_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base Model" }, "tier": { "anyOf": [ { "type": "string", "enum": [ "free", "paid" ] }, { "type": "null" } ], "title": "Tier" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "team_public_model_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Public Model Name" } }, "additionalProperties": true, "type": "object", "required": [ "id" ], "title": "ModelInfo" }, "ModelInfoDelete": { "properties": { "id": { "type": "string", "title": "Id" } }, "type": "object", "required": [ "id" ], "title": "ModelInfoDelete" }, "ModelResponse": { "properties": { "id": { "type": "string", "title": "Id" }, "created": { "type": "integer", "title": "Created" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "object": { "type": "string", "title": "Object" }, "system_fingerprint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "System Fingerprint" }, "choices": { "items": { "$ref": "#/components/schemas/Choices" }, "type": "array", "title": "Choices" } }, "additionalProperties": true, "type": "object", "required": [ "id", "created", "object", "choices" ], "title": "ModelResponse" }, "MutualTLSSecurityScheme": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "type": { "type": "string", "const": "mutualTLS", "title": "Type" } }, "type": "object", "required": [ "type" ], "title": "MutualTLSSecurityScheme", "description": "Defines a security scheme using mTLS authentication." }, "NewCustomerRequest": { "properties": { "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget", "description": "Requests will fail if this budget (in USD) is exceeded." }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget", "description": "Requests will NOT fail if this is exceeded. Will fire alerting though." }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests", "description": "Max concurrent requests allowed for this budget id." }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit", "description": "Max tokens per minute, allowed for this budget id." }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit", "description": "Max requests per minute, allowed for this budget id." }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration", "description": "Max duration budget should be set for (e.g. '1hr', '1d', '28d')" }, "model_max_budget": { "anyOf": [ { "additionalProperties": { "$ref": "#/components/schemas/BudgetConfig" }, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "description": "Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}})" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At", "description": "Datetime when the budget is reset" }, "user_id": { "type": "string", "title": "User Id" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "allowed_model_region": { "anyOf": [ { "type": "string", "enum": [ "eu", "us" ] }, { "type": "null" } ], "title": "Allowed Model Region" }, "default_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Model" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] } }, "type": "object", "required": [ "user_id" ], "title": "NewCustomerRequest", "description": "Create a new customer, allocate a budget to them" }, "NewMCPServerRequest": { "properties": { "server_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Id" }, "server_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Name" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "transport": { "type": "string", "enum": [ "sse", "http", "stdio" ], "title": "Transport", "default": "sse" }, "auth_type": { "anyOf": [ { "type": "string", "enum": [ "none", "api_key", "bearer_token", "basic", "authorization", "oauth2", "aws_sigv4", "token" ] }, { "type": "null" } ], "title": "Auth Type" }, "credentials": { "anyOf": [ { "$ref": "#/components/schemas/MCPCredentials" }, { "type": "null" } ] }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "spec_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Spec Path" }, "mcp_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Mcp Info" }, "mcp_access_groups": { "items": { "type": "string" }, "type": "array", "title": "Mcp Access Groups" }, "allowed_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Tools" }, "tool_name_to_display_name": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Tool Name To Display Name" }, "tool_name_to_description": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Tool Name To Description" }, "extra_headers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Extra Headers" }, "static_headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Static Headers" }, "command": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Command" }, "args": { "items": { "type": "string" }, "type": "array", "title": "Args" }, "env": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Env" }, "authorization_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization Url" }, "token_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token Url" }, "registration_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registration Url" }, "oauth2_flow": { "anyOf": [ { "type": "string", "enum": [ "client_credentials", "authorization_code" ] }, { "type": "null" } ], "title": "Oauth2 Flow" }, "allow_all_keys": { "type": "boolean", "title": "Allow All Keys", "default": false }, "available_on_public_internet": { "type": "boolean", "title": "Available On Public Internet", "default": true }, "is_byok": { "type": "boolean", "title": "Is Byok", "default": false }, "byok_description": { "items": { "type": "string" }, "type": "array", "title": "Byok Description" }, "byok_api_key_help_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Byok Api Key Help Url" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" }, "approval_status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Approval Status", "description": "Server-managed: set by the endpoint; caller values are overridden." }, "submitted_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Submitted By", "description": "Server-managed: set by the endpoint; caller values are overridden." }, "submitted_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Submitted At", "description": "Server-managed: set by the endpoint; caller values are overridden." } }, "type": "object", "title": "NewMCPServerRequest" }, "NewMCPToolsetRequest": { "properties": { "toolset_name": { "type": "string", "title": "Toolset Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "tools": { "items": { "$ref": "#/components/schemas/MCPToolsetTool" }, "type": "array", "title": "Tools", "default": [] } }, "type": "object", "required": [ "toolset_name" ], "title": "NewMCPToolsetRequest" }, "NewModelGroupRequest": { "properties": { "access_group": { "type": "string", "title": "Access Group" }, "model_names": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Model Names" }, "model_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Model Ids" } }, "type": "object", "required": [ "access_group" ], "title": "NewModelGroupRequest" }, "NewModelGroupResponse": { "properties": { "access_group": { "type": "string", "title": "Access Group" }, "model_names": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Model Names" }, "model_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Model Ids" }, "models_updated": { "type": "integer", "title": "Models Updated" } }, "type": "object", "required": [ "access_group", "models_updated" ], "title": "NewModelGroupResponse" }, "NewOrganizationRequest": { "properties": { "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "organization_alias": { "type": "string", "title": "Organization Alias" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] } }, "type": "object", "required": [ "organization_alias" ], "title": "NewOrganizationRequest" }, "NewOrganizationResponse": { "properties": { "organization_id": { "type": "string", "title": "Organization Id" }, "organization_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Alias" }, "budget_id": { "type": "string", "title": "Budget Id" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models" }, "created_by": { "type": "string", "title": "Created By" }, "updated_by": { "type": "string", "title": "Updated By" }, "users": { "anyOf": [ { "items": { "$ref": "#/components/schemas/LiteLLM_UserTable" }, "type": "array" }, { "type": "null" } ], "title": "Users" }, "litellm_budget_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_BudgetTable" }, { "type": "null" } ] }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" } }, "type": "object", "required": [ "organization_id", "budget_id", "models", "created_by", "updated_by", "created_at", "updated_at" ], "title": "NewOrganizationResponse" }, "NewProjectRequest": { "properties": { "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "project_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Alias" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "team_id": { "type": "string", "title": "Team Id" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models", "default": [] }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] } }, "type": "object", "required": [ "team_id" ], "title": "NewProjectRequest", "description": "Request model for POST /project/new" }, "NewProjectResponse": { "properties": { "project_id": { "type": "string", "title": "Project Id" }, "project_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Alias" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models", "default": [] }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "model_spend": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Spend" }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "created_by": { "type": "string", "title": "Created By" }, "updated_by": { "type": "string", "title": "Updated By" }, "created_at": { "type": "string", "format": "date-time", "title": "Created At" }, "updated_at": { "type": "string", "format": "date-time", "title": "Updated At" }, "litellm_budget_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_BudgetTable" }, { "type": "null" } ] }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] } }, "type": "object", "required": [ "project_id", "created_by", "updated_by", "created_at", "updated_at" ], "title": "NewProjectResponse", "description": "Response model for POST /project/new" }, "NewTeamRequest": { "properties": { "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "admins": { "items": {}, "type": "array", "title": "Admins", "default": [] }, "members": { "items": {}, "type": "array", "title": "Members", "default": [] }, "members_with_roles": { "items": { "$ref": "#/components/schemas/Member" }, "type": "array", "title": "Members With Roles", "default": [] }, "team_member_permissions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Team Member Permissions" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "model_aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Aliases" }, "tags": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "allowed_passthrough_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Passthrough Routes" }, "secret_manager_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Secret Manager Settings" }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "rpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput" ] }, { "type": "null" } ], "title": "Rpm Limit Type" }, "tpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput" ] }, { "type": "null" } ], "title": "Tpm Limit Type" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "team_member_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Team Member Budget" }, "team_member_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Member Rpm Limit" }, "team_member_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Member Tpm Limit" }, "team_member_key_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Member Key Duration" }, "team_member_budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Member Budget Duration" }, "allowed_vector_store_indexes": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AllowedVectorStoreIndexItem" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Vector Store Indexes" }, "enforced_batch_output_expires_after": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Enforced Batch Output Expires After" }, "enforced_file_expires_after": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Enforced File Expires After" } }, "type": "object", "title": "NewTeamRequest" }, "NewUserRequest": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duration" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models", "default": [] }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend", "default": 0 }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata", "default": {} }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "default": {} }, "permissions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Permissions", "default": {} }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Aliases", "default": {} }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "user_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Alias" }, "user_role": { "anyOf": [ { "type": "string", "enum": [ "proxy_admin", "proxy_admin_viewer", "internal_user", "internal_user_viewer" ] }, { "type": "null" } ], "title": "User Role" }, "teams": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "items": { "$ref": "#/components/schemas/NewUserRequestTeam" }, "type": "array" }, { "type": "null" } ], "title": "Teams" }, "auto_create_key": { "type": "boolean", "title": "Auto Create Key", "default": true }, "send_invite_email": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Send Invite Email" }, "sso_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sso User Id" }, "organizations": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Organizations" } }, "type": "object", "title": "NewUserRequest" }, "NewUserRequestTeam": { "properties": { "team_id": { "type": "string", "title": "Team Id" }, "max_budget_in_team": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget In Team" }, "user_role": { "type": "string", "enum": [ "user", "admin" ], "title": "User Role", "default": "user" } }, "type": "object", "required": [ "team_id" ], "title": "NewUserRequestTeam" }, "NewUserResponse": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duration" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models", "default": [] }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend", "default": 0 }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata", "default": {} }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "default": {} }, "permissions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Permissions", "default": {} }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget" }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Aliases", "default": {} }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "key": { "type": "string", "title": "Key" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "enforced_params": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enforced Params" }, "allowed_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Routes", "default": [] }, "allowed_passthrough_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Passthrough Routes" }, "allowed_vector_store_indexes": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AllowedVectorStoreIndexItem" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Vector Store Indexes" }, "rpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Rpm Limit Type" }, "tpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Tpm Limit Type" }, "router_settings": { "anyOf": [ { "$ref": "#/components/schemas/UpdateRouterConfig" }, { "type": "null" } ] }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "key_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Name" }, "expires": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expires" }, "token_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token Id" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "litellm_budget_table": { "anyOf": [ {}, { "type": "null" } ], "title": "Litellm Budget Table" }, "token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "user_role": { "anyOf": [ { "type": "string", "enum": [ "proxy_admin", "proxy_admin_viewer", "internal_user", "internal_user_viewer" ] }, { "type": "null" } ], "title": "User Role" }, "teams": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Teams" }, "user_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Alias" } }, "type": "object", "required": [ "key" ], "title": "NewUserResponse" }, "OAuth2SecurityScheme": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "type": { "type": "string", "const": "oauth2", "title": "Type" }, "flows": { "$ref": "#/components/schemas/OAuthFlows" }, "oauth2MetadataUrl": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Oauth2Metadataurl" } }, "type": "object", "required": [ "type", "flows", "oauth2MetadataUrl" ], "title": "OAuth2SecurityScheme", "description": "Defines a security scheme using OAuth 2.0." }, "OAuthFlows": { "properties": { "authorizationCode": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Authorizationcode" }, "clientCredentials": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Clientcredentials" }, "implicit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Implicit" }, "password": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Password" } }, "type": "object", "title": "OAuthFlows", "description": "Defines the configuration for the supported OAuth 2.0 flows." }, "OpenIdConnectSecurityScheme": { "properties": { "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "type": { "type": "string", "const": "openIdConnect", "title": "Type" }, "openIdConnectUrl": { "type": "string", "title": "Openidconnecturl" } }, "type": "object", "required": [ "type", "openIdConnectUrl" ], "title": "OpenIdConnectSecurityScheme", "description": "Defines a security scheme using OpenID Connect." }, "OrgMember": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id", "description": "The unique ID of the user to add. Either user_id or user_email must be provided" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email", "description": "The email address of the user to add. Either user_id or user_email must be provided" }, "role": { "type": "string", "enum": [ "org_admin", "internal_user", "internal_user_viewer" ], "title": "Role" } }, "type": "object", "required": [ "role" ], "title": "OrgMember" }, "OrganizationAddMemberResponse": { "properties": { "organization_id": { "type": "string", "title": "Organization Id" }, "updated_users": { "items": { "$ref": "#/components/schemas/LiteLLM_UserTable" }, "type": "array", "title": "Updated Users" }, "updated_organization_memberships": { "items": { "$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable" }, "type": "array", "title": "Updated Organization Memberships" } }, "type": "object", "required": [ "organization_id", "updated_users", "updated_organization_memberships" ], "title": "OrganizationAddMemberResponse" }, "OrganizationMemberAddRequest": { "properties": { "member": { "anyOf": [ { "items": { "$ref": "#/components/schemas/OrgMember" }, "type": "array" }, { "$ref": "#/components/schemas/OrgMember" } ], "title": "Member" }, "organization_id": { "type": "string", "title": "Organization Id" }, "max_budget_in_organization": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget In Organization" } }, "type": "object", "required": [ "member", "organization_id" ], "title": "OrganizationMemberAddRequest" }, "OrganizationMemberDeleteRequest": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "organization_id": { "type": "string", "title": "Organization Id" } }, "type": "object", "required": [ "organization_id" ], "title": "OrganizationMemberDeleteRequest" }, "OrganizationMemberUpdateRequest": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "organization_id": { "type": "string", "title": "Organization Id" }, "max_budget_in_organization": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget In Organization" }, "role": { "anyOf": [ { "$ref": "#/components/schemas/LitellmUserRoles" }, { "type": "null" } ] } }, "type": "object", "required": [ "organization_id" ], "title": "OrganizationMemberUpdateRequest" }, "OrganizationRequest": { "properties": { "organizations": { "items": { "type": "string" }, "type": "array", "title": "Organizations" } }, "type": "object", "required": [ "organizations" ], "title": "OrganizationRequest" }, "PaginatedAuditLogResponse": { "properties": { "audit_logs": { "items": { "$ref": "#/components/schemas/AuditLogResponse" }, "type": "array", "title": "Audit Logs" }, "total": { "type": "integer", "title": "Total", "description": "Total number of audit logs matching the filters" }, "page": { "type": "integer", "title": "Page", "description": "Current page number" }, "page_size": { "type": "integer", "title": "Page Size", "description": "Number of items per page" }, "total_pages": { "type": "integer", "title": "Total Pages", "description": "Total number of pages" } }, "type": "object", "required": [ "audit_logs", "total", "page", "page_size", "total_pages" ], "title": "PaginatedAuditLogResponse", "description": "Response model for paginated audit logs" }, "PassThroughEndpointResponse": { "properties": { "endpoints": { "items": { "$ref": "#/components/schemas/PassThroughGenericEndpoint" }, "type": "array", "title": "Endpoints" } }, "type": "object", "required": [ "endpoints" ], "title": "PassThroughEndpointResponse" }, "PassThroughGenericEndpoint": { "properties": { "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id", "description": "Optional unique identifier for the pass-through endpoint. If not provided, endpoints will be identified by path for backwards compatibility." }, "path": { "type": "string", "title": "Path", "description": "The route to be added to the LiteLLM Proxy Server." }, "target": { "type": "string", "title": "Target", "description": "The URL to which requests for this path should be forwarded." }, "headers": { "additionalProperties": true, "type": "object", "title": "Headers", "description": "Key-value pairs of headers to be forwarded with the request. You can set any key value pair here and it will be forwarded to your target endpoint", "default": {} }, "default_query_params": { "additionalProperties": true, "type": "object", "title": "Default Query Params", "description": "Key-value pairs of default query parameters to be sent with every request to this endpoint. These can be overridden by client-provided query parameters. For example: {'key': 'default_value', 'api_version': '2023-01'}", "default": {} }, "include_subpath": { "type": "boolean", "title": "Include Subpath", "description": "If True, requests to subpaths of the path will be forwarded to the target endpoint. For example, if the path is /bria and include_subpath is True, requests to /bria/v1/text-to-image/base/2.3 will be forwarded to the target endpoint.", "default": false }, "cost_per_request": { "type": "number", "title": "Cost Per Request", "description": "The USD cost per request to the target endpoint. This is used to calculate the cost of the request to the target endpoint.", "default": 0.0 }, "auth": { "type": "boolean", "title": "Auth", "description": "Whether authentication is required for the pass-through endpoint. If True, requests to the endpoint will require a valid LiteLLM API key.", "default": false }, "guardrails": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "$ref": "#/components/schemas/PassThroughGuardrailSettings" }, { "type": "null" } ] }, "type": "object" }, { "type": "null" } ], "title": "Guardrails", "description": "Guardrails configuration for this passthrough endpoint. Dict keys are guardrail names, values are optional settings for field targeting. When set, all org/team/key level guardrails will also execute. Defaults to None (no guardrails execute)." }, "is_from_config": { "type": "boolean", "title": "Is From Config", "description": "True if this endpoint is defined in the config file, False if from DB. Config-defined endpoints cannot be edited via the UI.", "default": false }, "methods": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Methods", "description": "List of HTTP methods this endpoint handles (e.g., ['GET', 'POST']). If None or empty, all methods (GET, POST, PUT, DELETE, PATCH) are supported for backward compatibility. This allows the same path to have different targets for different HTTP methods." } }, "type": "object", "required": [ "path", "target" ], "title": "PassThroughGenericEndpoint" }, "PassThroughGuardrailSettings": { "properties": { "request_fields": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Request Fields", "description": "JSONPath expressions for input field targeting (pre_call). Examples: 'query', 'documents[*].text', 'messages[*].content'. If not specified, guardrail runs on entire request payload." }, "response_fields": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Response Fields", "description": "JSONPath expressions for output field targeting (post_call). Examples: 'results[*].text', 'output'. If not specified, guardrail runs on entire response payload." } }, "type": "object", "title": "PassThroughGuardrailSettings", "description": "Settings for a specific guardrail on a passthrough endpoint.\n\nAllows field-level targeting for guardrail execution." }, "PatchAgentRequest": { "properties": { "agent_name": { "type": "string", "title": "Agent Name" }, "agent_card_params": { "$ref": "#/components/schemas/AgentCard-Input" }, "litellm_params": { "additionalProperties": true, "type": "object", "title": "Litellm Params" }, "object_permission": { "$ref": "#/components/schemas/AgentObjectPermission" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "session_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Session Tpm Limit" }, "session_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Session Rpm Limit" }, "static_headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Static Headers" }, "extra_headers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Extra Headers" } }, "type": "object", "title": "PatchAgentRequest" }, "PatchGuardrailRequest": { "properties": { "guardrail_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Guardrail Name" }, "litellm_params": { "anyOf": [ { "$ref": "#/components/schemas/BaseLitellmParams-Input" }, { "type": "null" } ] }, "guardrail_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Guardrail Info" } }, "type": "object", "title": "PatchGuardrailRequest" }, "PatchPromptRequest": { "properties": { "litellm_params": { "anyOf": [ { "$ref": "#/components/schemas/PromptLiteLLMParams" }, { "type": "null" } ] }, "prompt_info": { "anyOf": [ { "$ref": "#/components/schemas/PromptInfo" }, { "type": "null" } ] } }, "type": "object", "title": "PatchPromptRequest" }, "PerTestingCriteriaResult": { "properties": { "testing_criteria_index": { "type": "integer", "title": "Testing Criteria Index" }, "result_counts": { "$ref": "#/components/schemas/ResultCounts" }, "average_score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Average Score" } }, "type": "object", "required": [ "testing_criteria_index", "result_counts" ], "title": "PerTestingCriteriaResult", "description": "Results for a specific testing criteria" }, "PerUserAnalyticsResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/PerUserMetrics" }, "type": "array", "title": "Results" }, "total_count": { "type": "integer", "title": "Total Count" }, "page": { "type": "integer", "title": "Page" }, "page_size": { "type": "integer", "title": "Page Size" }, "total_pages": { "type": "integer", "title": "Total Pages" } }, "type": "object", "required": [ "results", "total_count", "page", "page_size", "total_pages" ], "title": "PerUserAnalyticsResponse", "description": "Response for per-user analytics" }, "PerUserMetrics": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "user_agent": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Agent" }, "successful_requests": { "type": "integer", "title": "Successful Requests", "default": 0 }, "failed_requests": { "type": "integer", "title": "Failed Requests", "default": 0 }, "total_requests": { "type": "integer", "title": "Total Requests", "default": 0 }, "total_tokens": { "type": "integer", "title": "Total Tokens", "default": 0 }, "spend": { "type": "number", "title": "Spend", "default": 0.0 } }, "type": "object", "required": [ "user_id" ], "title": "PerUserMetrics", "description": "Metrics for individual user" }, "PiiAction": { "type": "string", "enum": [ "BLOCK", "MASK" ], "title": "PiiAction" }, "PiiEntityType": { "type": "string", "enum": [ "CREDIT_CARD", "CRYPTO", "DATE_TIME", "EMAIL_ADDRESS", "IBAN_CODE", "IP_ADDRESS", "NRP", "LOCATION", "PERSON", "PHONE_NUMBER", "MEDICAL_LICENSE", "URL", "US_BANK_NUMBER", "US_DRIVER_LICENSE", "US_ITIN", "US_PASSPORT", "US_SSN", "UK_NHS", "UK_NINO", "ES_NIF", "ES_NIE", "IT_FISCAL_CODE", "IT_DRIVER_LICENSE", "IT_VAT_CODE", "IT_PASSPORT", "IT_IDENTITY_CARD", "PL_PESEL", "SG_NRIC_FIN", "SG_UEN", "AU_ABN", "AU_ACN", "AU_TFN", "AU_MEDICARE", "IN_PAN", "IN_AADHAAR", "IN_VEHICLE_REGISTRATION", "IN_VOTER", "IN_PASSPORT", "FI_PERSONAL_IDENTITY_CODE" ], "title": "PiiEntityType" }, "PipelineTestRequest": { "properties": { "pipeline": { "additionalProperties": true, "type": "object", "title": "Pipeline", "description": "Pipeline definition with 'mode' and 'steps'." }, "test_messages": { "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "array", "title": "Test Messages", "description": "Test messages to run through the pipeline, e.g. [{'role': 'user', 'content': '...'}]." } }, "type": "object", "required": [ "pipeline", "test_messages" ], "title": "PipelineTestRequest", "description": "Request body for testing a guardrail pipeline with sample messages." }, "PluginAuthor": { "properties": { "name": { "type": "string", "title": "Name", "description": "Author name" }, "email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Email", "description": "Author email" } }, "type": "object", "required": [ "name" ], "title": "PluginAuthor", "description": "Plugin author information." }, "PluginListItem": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "source": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Source" }, "author": { "anyOf": [ { "$ref": "#/components/schemas/PluginAuthor" }, { "type": "null" } ] }, "homepage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Homepage" }, "keywords": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Keywords" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category" }, "enabled": { "type": "boolean", "title": "Enabled" }, "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated At" } }, "type": "object", "required": [ "id", "name", "version", "description", "source", "enabled", "created_at", "updated_at" ], "title": "PluginListItem", "description": "Plugin item in list responses." }, "PolicyAttachmentCreateRequest": { "properties": { "policy_name": { "type": "string", "title": "Policy Name", "description": "Name of the policy to attach." }, "scope": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scope", "description": "Use '*' for global scope (applies to all requests)." }, "teams": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Teams", "description": "Team aliases or patterns this attachment applies to." }, "keys": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Keys", "description": "Key aliases or patterns this attachment applies to." }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models", "description": "Model names or patterns this attachment applies to." }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags", "description": "Tag patterns this attachment applies to. Supports wildcards (e.g., health-*)." } }, "type": "object", "required": [ "policy_name" ], "title": "PolicyAttachmentCreateRequest", "description": "Request body for creating a policy attachment." }, "PolicyAttachmentDBResponse": { "properties": { "attachment_id": { "type": "string", "title": "Attachment Id", "description": "Unique ID of the attachment." }, "policy_name": { "type": "string", "title": "Policy Name", "description": "Name of the attached policy." }, "scope": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Scope", "description": "Scope of the attachment." }, "teams": { "items": { "type": "string" }, "type": "array", "title": "Teams", "description": "Team patterns." }, "keys": { "items": { "type": "string" }, "type": "array", "title": "Keys", "description": "Key patterns." }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models", "description": "Model patterns." }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags", "description": "Tag patterns." }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At", "description": "When the attachment was created." }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At", "description": "When the attachment was last updated." }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By", "description": "Who created the attachment." }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By", "description": "Who last updated the attachment." } }, "type": "object", "required": [ "attachment_id", "policy_name" ], "title": "PolicyAttachmentDBResponse", "description": "Response for a policy attachment from the database." }, "PolicyAttachmentListResponse": { "properties": { "attachments": { "items": { "$ref": "#/components/schemas/PolicyAttachmentDBResponse" }, "type": "array", "title": "Attachments", "description": "List of policy attachments." }, "total_count": { "type": "integer", "title": "Total Count", "description": "Total number of attachments.", "default": 0 } }, "type": "object", "title": "PolicyAttachmentListResponse", "description": "Response for listing policy attachments." }, "PolicyConditionRequest": { "properties": { "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model", "description": "Model name pattern (exact match or regex) for when policy applies." } }, "type": "object", "title": "PolicyConditionRequest", "description": "Condition for when a policy applies." }, "PolicyCreateRequest": { "properties": { "policy_name": { "type": "string", "title": "Policy Name", "description": "Unique name for the policy." }, "inherit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Inherit", "description": "Name of parent policy to inherit from." }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Human-readable description of the policy." }, "guardrails_add": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails Add", "description": "List of guardrail names to add." }, "guardrails_remove": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails Remove", "description": "List of guardrail names to remove (from inherited)." }, "condition": { "anyOf": [ { "$ref": "#/components/schemas/PolicyConditionRequest" }, { "type": "null" } ], "description": "Condition for when this policy applies." }, "pipeline": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Pipeline", "description": "Optional guardrail pipeline for ordered execution. Contains 'mode' and 'steps'." } }, "type": "object", "required": [ "policy_name" ], "title": "PolicyCreateRequest", "description": "Request body for creating a new policy." }, "PolicyDBResponse": { "properties": { "policy_id": { "type": "string", "title": "Policy Id", "description": "Unique ID of the policy." }, "policy_name": { "type": "string", "title": "Policy Name", "description": "Name of the policy." }, "version_number": { "type": "integer", "title": "Version Number", "description": "Version number of this policy.", "default": 1 }, "version_status": { "type": "string", "title": "Version Status", "description": "One of: draft, published, production.", "default": "production" }, "parent_version_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Parent Version Id", "description": "Policy ID this version was cloned from." }, "is_latest": { "type": "boolean", "title": "Is Latest", "description": "True if this is the latest version by version_number.", "default": true }, "published_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Published At", "description": "When this version was published." }, "production_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Production At", "description": "When this version was promoted to production." }, "inherit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Inherit", "description": "Parent policy name." }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Policy description." }, "guardrails_add": { "items": { "type": "string" }, "type": "array", "title": "Guardrails Add", "description": "Guardrails to add." }, "guardrails_remove": { "items": { "type": "string" }, "type": "array", "title": "Guardrails Remove", "description": "Guardrails to remove." }, "condition": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Condition", "description": "Policy condition." }, "pipeline": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Pipeline", "description": "Optional guardrail pipeline." }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At", "description": "When the policy was created." }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At", "description": "When the policy was last updated." }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By", "description": "Who created the policy." }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By", "description": "Who last updated the policy." } }, "type": "object", "required": [ "policy_id", "policy_name" ], "title": "PolicyDBResponse", "description": "Response for a policy from the database." }, "PolicyGuardrailsResponse": { "properties": { "add": { "items": { "type": "string" }, "type": "array", "title": "Add" }, "remove": { "items": { "type": "string" }, "type": "array", "title": "Remove" } }, "type": "object", "title": "PolicyGuardrailsResponse", "description": "Guardrails configuration for a policy." }, "PolicyInfoResponse": { "properties": { "policy_name": { "type": "string", "title": "Policy Name" }, "inherit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Inherit" }, "scope": { "$ref": "#/components/schemas/PolicyScopeResponse" }, "guardrails": { "$ref": "#/components/schemas/PolicyGuardrailsResponse" }, "resolved_guardrails": { "items": { "type": "string" }, "type": "array", "title": "Resolved Guardrails" }, "inheritance_chain": { "items": { "type": "string" }, "type": "array", "title": "Inheritance Chain" } }, "type": "object", "required": [ "policy_name", "scope", "guardrails", "resolved_guardrails", "inheritance_chain" ], "title": "PolicyInfoResponse", "description": "Response for /policy/info/{policy_name} endpoint." }, "PolicyListDBResponse": { "properties": { "policies": { "items": { "$ref": "#/components/schemas/PolicyDBResponse" }, "type": "array", "title": "Policies", "description": "List of policies." }, "total_count": { "type": "integer", "title": "Total Count", "description": "Total number of policies.", "default": 0 } }, "type": "object", "title": "PolicyListDBResponse", "description": "Response for listing policies from the database." }, "PolicyListResponse": { "properties": { "policies": { "additionalProperties": { "$ref": "#/components/schemas/PolicySummaryItem" }, "type": "object", "title": "Policies" }, "total_count": { "type": "integer", "title": "Total Count" } }, "type": "object", "required": [ "policies", "total_count" ], "title": "PolicyListResponse", "description": "Response for /policy/list endpoint." }, "PolicyMatchContext": { "properties": { "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias", "description": "Team alias from the request." }, "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias", "description": "API key alias from the request." }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model", "description": "Model name from the request." }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags", "description": "Tags from key/team metadata." } }, "additionalProperties": false, "type": "object", "title": "PolicyMatchContext", "description": "Context used to match a request against policies.\n\nContains the team alias, key alias, and model from the incoming request." }, "PolicyMatchDetail": { "properties": { "policy_name": { "type": "string", "title": "Policy Name", "description": "Name of the matched policy." }, "matched_via": { "type": "string", "title": "Matched Via", "description": "How the policy was matched (e.g., 'tag:healthcare', 'team:health-team', 'scope:*')." }, "guardrails_added": { "items": { "type": "string" }, "type": "array", "title": "Guardrails Added", "description": "Guardrails this policy contributes." } }, "type": "object", "required": [ "policy_name", "matched_via" ], "title": "PolicyMatchDetail", "description": "Details about why a specific policy matched." }, "PolicyResolveRequest": { "properties": { "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias", "description": "Team alias to resolve for." }, "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias", "description": "Key alias to resolve for." }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model", "description": "Model name to resolve for." }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags", "description": "Tags to resolve for." } }, "type": "object", "title": "PolicyResolveRequest", "description": "Request body for resolving effective policies/guardrails for a context." }, "PolicyResolveResponse": { "properties": { "effective_guardrails": { "items": { "type": "string" }, "type": "array", "title": "Effective Guardrails", "description": "Final list of guardrails that would be applied." }, "matched_policies": { "items": { "$ref": "#/components/schemas/PolicyMatchDetail" }, "type": "array", "title": "Matched Policies", "description": "Details about each matched policy and why it matched." } }, "type": "object", "title": "PolicyResolveResponse", "description": "Response for resolving effective policies/guardrails for a context." }, "PolicyScopeResponse": { "properties": { "teams": { "items": { "type": "string" }, "type": "array", "title": "Teams" }, "keys": { "items": { "type": "string" }, "type": "array", "title": "Keys" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models" }, "tags": { "items": { "type": "string" }, "type": "array", "title": "Tags" } }, "type": "object", "title": "PolicyScopeResponse", "description": "Scope configuration for a policy." }, "PolicySummaryItem": { "properties": { "inherit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Inherit" }, "scope": { "$ref": "#/components/schemas/PolicyScopeResponse" }, "guardrails": { "$ref": "#/components/schemas/PolicyGuardrailsResponse" }, "resolved_guardrails": { "items": { "type": "string" }, "type": "array", "title": "Resolved Guardrails" }, "inheritance_chain": { "items": { "type": "string" }, "type": "array", "title": "Inheritance Chain" } }, "type": "object", "required": [ "scope", "guardrails", "resolved_guardrails", "inheritance_chain" ], "title": "PolicySummaryItem", "description": "Summary of a single policy for list endpoint." }, "PolicyTestResponse": { "properties": { "context": { "$ref": "#/components/schemas/PolicyMatchContext" }, "matching_policies": { "items": { "type": "string" }, "type": "array", "title": "Matching Policies" }, "resolved_guardrails": { "items": { "type": "string" }, "type": "array", "title": "Resolved Guardrails" }, "message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Message" } }, "type": "object", "required": [ "context", "matching_policies", "resolved_guardrails" ], "title": "PolicyTestResponse", "description": "Response for /policy/test endpoint." }, "PolicyUpdateRequest": { "properties": { "policy_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Policy Name", "description": "New name for the policy." }, "inherit": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Inherit", "description": "Name of parent policy to inherit from." }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Human-readable description of the policy." }, "guardrails_add": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails Add", "description": "List of guardrail names to add." }, "guardrails_remove": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails Remove", "description": "List of guardrail names to remove (from inherited)." }, "condition": { "anyOf": [ { "$ref": "#/components/schemas/PolicyConditionRequest" }, { "type": "null" } ], "description": "Condition for when this policy applies." }, "pipeline": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Pipeline", "description": "Optional guardrail pipeline for ordered execution. Contains 'mode' and 'steps'." } }, "type": "object", "title": "PolicyUpdateRequest", "description": "Request body for updating a policy." }, "PolicyValidateRequest": { "properties": { "policies": { "additionalProperties": true, "type": "object", "title": "Policies", "description": "Policy configuration to validate. Map of policy names to policy definitions." } }, "additionalProperties": false, "type": "object", "required": [ "policies" ], "title": "PolicyValidateRequest", "description": "Request body for the /policy/validate endpoint." }, "PolicyValidationError": { "properties": { "policy_name": { "type": "string", "title": "Policy Name", "description": "Name of the policy with the issue." }, "error_type": { "$ref": "#/components/schemas/PolicyValidationErrorType", "description": "Type of validation error." }, "message": { "type": "string", "title": "Message", "description": "Human-readable error message." }, "field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Field", "description": "Specific field that caused the error (e.g., 'guardrails.add', 'scope.teams')." }, "value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Value", "description": "The invalid value that caused the error." } }, "additionalProperties": false, "type": "object", "required": [ "policy_name", "error_type", "message" ], "title": "PolicyValidationError", "description": "Represents a validation error or warning for a policy." }, "PolicyValidationErrorType": { "type": "string", "enum": [ "invalid_guardrail", "invalid_team", "invalid_key", "invalid_model", "invalid_inheritance", "circular_inheritance", "invalid_scope", "invalid_syntax" ], "title": "PolicyValidationErrorType", "description": "Types of validation errors that can occur." }, "PolicyValidationResponse": { "properties": { "valid": { "type": "boolean", "title": "Valid", "description": "True if the policy configuration is valid." }, "errors": { "items": { "$ref": "#/components/schemas/PolicyValidationError" }, "type": "array", "title": "Errors", "description": "List of blocking validation errors." }, "warnings": { "items": { "$ref": "#/components/schemas/PolicyValidationError" }, "type": "array", "title": "Warnings", "description": "List of non-blocking validation warnings." } }, "additionalProperties": false, "type": "object", "required": [ "valid" ], "title": "PolicyValidationResponse", "description": "Response from policy validation.\n\n- `valid`: True if no blocking errors were found\n- `errors`: List of blocking errors (prevent policy from being applied)\n- `warnings`: List of non-blocking warnings (policy can still be applied)" }, "PolicyVersionCompareResponse": { "properties": { "version_a": { "$ref": "#/components/schemas/PolicyDBResponse", "description": "First version." }, "version_b": { "$ref": "#/components/schemas/PolicyDBResponse", "description": "Second version." }, "field_diffs": { "additionalProperties": { "additionalProperties": true, "type": "object" }, "type": "object", "title": "Field Diffs", "description": "Field name -> {version_a: val, version_b: val} for differing fields." } }, "type": "object", "required": [ "version_a", "version_b" ], "title": "PolicyVersionCompareResponse", "description": "Response for comparing two policy versions." }, "PolicyVersionCreateRequest": { "properties": { "source_policy_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Policy Id", "description": "Policy ID to clone from. If None, clone from current production version." } }, "type": "object", "title": "PolicyVersionCreateRequest", "description": "Request body for creating a new policy version (draft)." }, "PolicyVersionListResponse": { "properties": { "policy_name": { "type": "string", "title": "Policy Name", "description": "Name of the policy." }, "versions": { "items": { "$ref": "#/components/schemas/PolicyDBResponse" }, "type": "array", "title": "Versions", "description": "All versions ordered by version_number desc." }, "total_count": { "type": "integer", "title": "Total Count", "description": "Total number of versions.", "default": 0 } }, "type": "object", "required": [ "policy_name" ], "title": "PolicyVersionListResponse", "description": "Response for listing all versions of a policy." }, "PolicyVersionStatusUpdateRequest": { "properties": { "version_status": { "type": "string", "title": "Version Status", "description": "New status: 'published' or 'production'." } }, "type": "object", "required": [ "version_status" ], "title": "PolicyVersionStatusUpdateRequest", "description": "Request body for updating a policy version's status." }, "Prompt": { "properties": { "prompt_id": { "type": "string", "title": "Prompt Id" }, "litellm_params": { "$ref": "#/components/schemas/PromptLiteLLMParams" }, "prompt_info": { "anyOf": [ { "$ref": "#/components/schemas/PromptInfo" }, { "type": "null" } ] } }, "type": "object", "required": [ "prompt_id", "litellm_params" ], "title": "Prompt" }, "PromptInfo": { "properties": { "prompt_type": { "type": "string", "enum": [ "config", "db" ], "title": "Prompt Type" }, "environment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment", "default": "development" } }, "additionalProperties": true, "type": "object", "required": [ "prompt_type" ], "title": "PromptInfo" }, "PromptInfoResponse": { "properties": { "prompt_spec": { "$ref": "#/components/schemas/PromptSpec" }, "raw_prompt_template": { "anyOf": [ { "$ref": "#/components/schemas/PromptTemplateBase" }, { "type": "null" } ] }, "environments": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Environments" } }, "type": "object", "required": [ "prompt_spec" ], "title": "PromptInfoResponse" }, "PromptLiteLLMParams": { "properties": { "prompt_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prompt Id" }, "prompt_integration": { "type": "string", "title": "Prompt Integration" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Base" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" }, "provider_specific_query_params": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Provider Specific Query Params" }, "ignore_prompt_manager_model": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Ignore Prompt Manager Model", "default": false }, "ignore_prompt_manager_optional_params": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Ignore Prompt Manager Optional Params", "default": false }, "dotprompt_content": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Dotprompt Content" } }, "additionalProperties": true, "type": "object", "required": [ "prompt_integration" ], "title": "PromptLiteLLMParams" }, "PromptSpec": { "properties": { "prompt_id": { "type": "string", "title": "Prompt Id" }, "litellm_params": { "$ref": "#/components/schemas/PromptLiteLLMParams" }, "prompt_info": { "$ref": "#/components/schemas/PromptInfo" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "version": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Version" }, "environment": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Environment", "default": "development" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" } }, "type": "object", "required": [ "prompt_id", "litellm_params", "prompt_info" ], "title": "PromptSpec" }, "PromptTemplateBase": { "properties": { "litellm_prompt_id": { "type": "string", "title": "Litellm Prompt Id" }, "content": { "type": "string", "title": "Content" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" } }, "type": "object", "required": [ "litellm_prompt_id", "content" ], "title": "PromptTemplateBase" }, "PromptTokensDetails": { "properties": { "modality": { "type": "string", "enum": [ "TEXT", "AUDIO", "IMAGE", "VIDEO" ], "title": "Modality" }, "tokenCount": { "type": "integer", "title": "Tokencount" } }, "type": "object", "required": [ "modality", "tokenCount" ], "title": "PromptTokensDetails" }, "ProviderBudgetResponse": { "properties": { "providers": { "additionalProperties": { "$ref": "#/components/schemas/ProviderBudgetResponseObject" }, "type": "object", "title": "Providers", "default": {} } }, "type": "object", "title": "ProviderBudgetResponse", "description": "Complete provider budget configuration and status.\nMaps provider names to their budget configs." }, "ProviderBudgetResponseObject": { "properties": { "budget_limit": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Budget Limit" }, "time_period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Time Period" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend", "default": 0.0 }, "budget_reset_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Reset At" } }, "type": "object", "required": [ "budget_limit", "time_period" ], "title": "ProviderBudgetResponseObject", "description": "Configuration for a single provider's budget settings" }, "ProviderCreateInfo": { "properties": { "provider": { "type": "string", "title": "Provider" }, "provider_display_name": { "type": "string", "title": "Provider Display Name" }, "litellm_provider": { "type": "string", "title": "Litellm Provider" }, "credential_fields": { "items": { "$ref": "#/components/schemas/ProviderCredentialField" }, "type": "array", "title": "Credential Fields" }, "default_model_placeholder": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Model Placeholder" } }, "type": "object", "required": [ "provider", "provider_display_name", "litellm_provider", "credential_fields" ], "title": "ProviderCreateInfo" }, "ProviderCredentialField": { "properties": { "key": { "type": "string", "title": "Key" }, "label": { "type": "string", "title": "Label" }, "placeholder": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Placeholder" }, "tooltip": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tooltip" }, "required": { "type": "boolean", "title": "Required", "default": false }, "field_type": { "type": "string", "enum": [ "text", "password", "select", "upload", "textarea" ], "title": "Field Type", "default": "text" }, "options": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Options" }, "default_value": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Value" } }, "type": "object", "required": [ "key", "label" ], "title": "ProviderCredentialField" }, "PublicModelHubInfo": { "properties": { "docs_title": { "type": "string", "title": "Docs Title" }, "custom_docs_description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Docs Description" }, "litellm_version": { "type": "string", "title": "Litellm Version" }, "useful_links": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" } ] }, "type": "object" }, { "type": "null" } ], "title": "Useful Links" } }, "type": "object", "required": [ "docs_title", "custom_docs_description", "litellm_version", "useful_links" ], "title": "PublicModelHubInfo" }, "RawRequestTypedDict": { "properties": { "raw_request_api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Raw Request Api Base" }, "raw_request_body": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Raw Request Body" }, "raw_request_headers": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Raw Request Headers" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" } }, "type": "object", "title": "RawRequestTypedDict" }, "RealtimeClientSecretResponse": { "properties": { "expires_at": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Expires At" }, "value": { "type": "string", "title": "Value" }, "session": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Session" } }, "type": "object", "required": [ "value" ], "title": "RealtimeClientSecretResponse", "description": "Response from POST /v1/realtime/client_secrets.\n\nBoth the top-level `value` and `session.client_secret.value`\nwill contain the encrypted token instead of the raw ephemeral key.\nThe `session` field is kept as a raw dict so unknown fields pass through." }, "RegenerateKeyRequest": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duration" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models", "default": [] }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "default": {} }, "permissions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Permissions", "default": {} }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Aliases", "default": {} }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "enforced_params": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enforced Params" }, "allowed_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Routes", "default": [] }, "allowed_passthrough_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Passthrough Routes" }, "allowed_vector_store_indexes": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AllowedVectorStoreIndexItem" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Vector Store Indexes" }, "rpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Rpm Limit Type" }, "tpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Tpm Limit Type" }, "router_settings": { "anyOf": [ { "$ref": "#/components/schemas/UpdateRouterConfig" }, { "type": "null" } ] }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "send_invite_email": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Send Invite Email" }, "key_type": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLMKeyType" }, { "type": "null" } ], "description": "Type of key that determines default allowed routes.", "default": "default" }, "auto_rotate": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Auto Rotate", "description": "Whether this key should be automatically rotated", "default": false }, "rotation_interval": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rotation Interval", "description": "How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "new_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "New Key" }, "new_master_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "New Master Key" }, "grace_period": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Grace Period" } }, "type": "object", "title": "RegenerateKeyRequest" }, "RegisterGuardrailRequest": { "properties": { "guardrail_name": { "type": "string", "title": "Guardrail Name" }, "litellm_params": { "additionalProperties": true, "type": "object", "title": "Litellm Params" }, "guardrail_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Guardrail Info" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" } }, "type": "object", "required": [ "guardrail_name", "litellm_params" ], "title": "RegisterGuardrailRequest", "description": "Request body for POST /guardrails/register. Follows Generic Guardrail API config." }, "RegisterGuardrailResponse": { "properties": { "guardrail_id": { "type": "string", "title": "Guardrail Id" }, "guardrail_name": { "type": "string", "title": "Guardrail Name" }, "status": { "type": "string", "title": "Status" }, "submitted_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Submitted At" } }, "type": "object", "required": [ "guardrail_id", "guardrail_name", "status" ], "title": "RegisterGuardrailResponse" }, "RegisterPluginRequest": { "properties": { "name": { "type": "string", "pattern": "^[a-z0-9-]+$", "title": "Name", "description": "Plugin name (kebab-case, e.g., 'my-plugin')" }, "source": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Source", "description": "Git source reference. Supported formats:\n- GitHub: {'source': 'github', 'repo': 'org/repo'}\n- Git URL: {'source': 'url', 'url': 'https://github.com/org/repo.git'}\n- Git Subdir: {'source': 'git-subdir', 'url': 'https://github.com/org/repo.git', 'path': 'plugins/plugin-name'}" }, "version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Version", "description": "Semantic version", "default": "1.0.0" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description", "description": "Plugin description" }, "author": { "anyOf": [ { "$ref": "#/components/schemas/PluginAuthor" }, { "type": "null" } ], "description": "Plugin author" }, "homepage": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Homepage", "description": "Plugin homepage URL" }, "keywords": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Keywords", "description": "Search keywords" }, "category": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Category", "description": "Plugin category" } }, "type": "object", "required": [ "name", "source" ], "title": "RegisterPluginRequest", "description": "Request body for registering a plugin in the marketplace.\n\nLiteLLM acts as a registry/discovery layer. Plugins are hosted on\nGitHub/GitLab/Bitbucket and referenced by their git source." }, "RejectMCPServerRequest": { "properties": { "review_notes": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Review Notes" } }, "type": "object", "title": "RejectMCPServerRequest" }, "ResetSpendRequest": { "properties": { "reset_to": { "type": "number", "title": "Reset To" } }, "type": "object", "required": [ "reset_to" ], "title": "ResetSpendRequest" }, "ResponseLiteLLM_ManagedVectorStore": { "properties": { "vector_store": { "$ref": "#/components/schemas/LiteLLM_ManagedVectorStoresTable" } }, "type": "object", "title": "ResponseLiteLLM_ManagedVectorStore" }, "ResultCounts": { "properties": { "total": { "type": "integer", "title": "Total" }, "passed": { "type": "integer", "title": "Passed", "default": 0 }, "failed": { "type": "integer", "title": "Failed", "default": 0 }, "error": { "type": "integer", "title": "Error", "default": 0 } }, "type": "object", "required": [ "total" ], "title": "ResultCounts", "description": "Result counts for a run" }, "RoleMappings": { "properties": { "provider": { "type": "string", "title": "Provider", "description": "SSO Provider name (e.g., 'google', 'microsoft', 'generic')" }, "group_claim": { "type": "string", "title": "Group Claim", "description": "The field name in the SSO token that contains the groups array (e.g., 'groups', 'roles')" }, "default_role": { "anyOf": [ { "$ref": "#/components/schemas/LitellmUserRoles" }, { "type": "null" } ], "description": "Default role to assign if user's groups don't match any role mappings. Must be a valid LitellmUserRoles value (e.g., 'proxy_admin', 'internal_user', 'proxy_admin_viewer')" }, "roles": { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "propertyNames": { "$ref": "#/components/schemas/LitellmUserRoles" }, "type": "object", "title": "Roles", "description": "Mapping of LiteLLM role names to arrays of SSO group names. Example: {'proxy_admin': ['group-1', 'group-2'], 'proxy_admin_viewer': ['group-3']}" } }, "type": "object", "required": [ "provider", "group_claim" ], "title": "RoleMappings", "description": "Configuration for mapping SSO groups to LiteLLM roles.\n\nThe system will look at the group_claim field in the SSO token to determine\nwhich role to assign the user based on the roles mapping." }, "RouterFieldsResponse": { "properties": { "fields": { "items": { "$ref": "#/components/schemas/RouterSettingsField" }, "type": "array", "title": "Fields", "description": "List of all configurable router settings with metadata (without field values)" }, "routing_strategy_descriptions": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Routing Strategy Descriptions", "description": "Descriptions for each routing strategy option" } }, "type": "object", "required": [ "fields", "routing_strategy_descriptions" ], "title": "RouterFieldsResponse" }, "RouterSettingsField": { "properties": { "field_name": { "type": "string", "title": "Field Name" }, "field_type": { "type": "string", "title": "Field Type" }, "field_value": { "title": "Field Value" }, "field_description": { "type": "string", "title": "Field Description" }, "field_default": { "title": "Field Default" }, "options": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Options" }, "ui_field_name": { "type": "string", "title": "Ui Field Name" }, "link": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Link" } }, "type": "object", "required": [ "field_name", "field_type", "field_value", "field_description", "ui_field_name" ], "title": "RouterSettingsField" }, "RouterSettingsResponse": { "properties": { "fields": { "items": { "$ref": "#/components/schemas/RouterSettingsField" }, "type": "array", "title": "Fields", "description": "List of all configurable router settings with metadata" }, "current_values": { "additionalProperties": true, "type": "object", "title": "Current Values", "description": "Current values of router settings" }, "routing_strategy_descriptions": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Routing Strategy Descriptions", "description": "Descriptions for each routing strategy option" } }, "type": "object", "required": [ "fields", "current_values", "routing_strategy_descriptions" ], "title": "RouterSettingsResponse" }, "Run": { "properties": { "id": { "type": "string", "title": "Id" }, "object": { "type": "string", "title": "Object", "default": "eval.run" }, "created_at": { "type": "integer", "title": "Created At" }, "status": { "type": "string", "enum": [ "queued", "running", "completed", "failed", "cancelled" ], "title": "Status" }, "data_source": { "additionalProperties": true, "type": "object", "title": "Data Source" }, "eval_id": { "type": "string", "title": "Eval Id" }, "name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Name" }, "started_at": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Started At" }, "completed_at": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Completed At" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "per_model_usage": { "anyOf": [ {}, { "type": "null" } ], "title": "Per Model Usage" }, "per_testing_criteria_results": { "anyOf": [ { "items": { "$ref": "#/components/schemas/PerTestingCriteriaResult" }, "type": "array" }, { "type": "null" } ], "title": "Per Testing Criteria Results" }, "report_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Report Url" }, "result_counts": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Result Counts" }, "shared_with_openai": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Shared With Openai" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "error": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Error" } }, "type": "object", "required": [ "id", "created_at", "status", "data_source", "eval_id" ], "title": "Run", "description": "Represents a run from the OpenAI Evals API" }, "RunDeleteResponse": { "properties": { "run_id": { "type": "string", "title": "Run Id" }, "object": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object", "default": "eval.run.deleted" }, "deleted": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Deleted", "default": true } }, "type": "object", "required": [ "run_id" ], "title": "RunDeleteResponse", "description": "Response from deleting a run" }, "SCIMFeature": { "properties": { "supported": { "type": "boolean", "title": "Supported" }, "maxOperations": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Maxoperations" }, "maxPayloadSize": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Maxpayloadsize" }, "maxResults": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Maxresults" } }, "type": "object", "required": [ "supported" ], "title": "SCIMFeature" }, "SCIMGroup": { "properties": { "schemas": { "items": { "type": "string" }, "type": "array", "title": "Schemas" }, "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id" }, "externalId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Externalid" }, "meta": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Meta" }, "displayName": { "type": "string", "title": "Displayname" }, "members": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SCIMMember" }, "type": "array" }, { "type": "null" } ], "title": "Members" } }, "type": "object", "required": [ "schemas", "displayName" ], "title": "SCIMGroup" }, "SCIMListResponse": { "properties": { "schemas": { "items": { "type": "string" }, "type": "array", "title": "Schemas", "default": [ "urn:ietf:params:scim:api:messages:2.0:ListResponse" ] }, "totalResults": { "type": "integer", "title": "Totalresults" }, "startIndex": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Startindex", "default": 1 }, "itemsPerPage": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Itemsperpage", "default": 10 }, "Resources": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SCIMUser" }, "type": "array" }, { "items": { "$ref": "#/components/schemas/SCIMGroup" }, "type": "array" } ], "title": "Resources" } }, "type": "object", "required": [ "totalResults", "Resources" ], "title": "SCIMListResponse" }, "SCIMMember": { "properties": { "value": { "type": "string", "title": "Value" }, "display": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display" } }, "type": "object", "required": [ "value" ], "title": "SCIMMember" }, "SCIMPatchOp": { "properties": { "schemas": { "items": { "type": "string" }, "type": "array", "title": "Schemas", "default": [ "urn:ietf:params:scim:api:messages:2.0:PatchOp" ] }, "Operations": { "items": { "$ref": "#/components/schemas/SCIMPatchOperation" }, "type": "array", "title": "Operations" } }, "type": "object", "required": [ "Operations" ], "title": "SCIMPatchOp" }, "SCIMPatchOperation": { "properties": { "op": { "type": "string", "title": "Op" }, "path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Path" }, "value": { "anyOf": [ {}, { "type": "null" } ], "title": "Value" } }, "type": "object", "required": [ "op" ], "title": "SCIMPatchOperation" }, "SCIMServiceProviderConfig": { "properties": { "schemas": { "items": { "type": "string" }, "type": "array", "title": "Schemas", "default": [ "urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig" ] }, "patch": { "$ref": "#/components/schemas/SCIMFeature", "default": { "supported": true } }, "bulk": { "$ref": "#/components/schemas/SCIMFeature", "default": { "supported": false } }, "filter": { "$ref": "#/components/schemas/SCIMFeature", "default": { "supported": false } }, "changePassword": { "$ref": "#/components/schemas/SCIMFeature", "default": { "supported": false } }, "sort": { "$ref": "#/components/schemas/SCIMFeature", "default": { "supported": false } }, "etag": { "$ref": "#/components/schemas/SCIMFeature", "default": { "supported": false } }, "authenticationSchemes": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Authenticationschemes" }, "meta": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Meta" } }, "type": "object", "title": "SCIMServiceProviderConfig" }, "SCIMUser": { "properties": { "schemas": { "items": { "type": "string" }, "type": "array", "title": "Schemas" }, "id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Id" }, "externalId": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Externalid" }, "meta": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Meta" }, "userName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Username" }, "name": { "anyOf": [ { "$ref": "#/components/schemas/SCIMUserName" }, { "type": "null" } ] }, "displayName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Displayname" }, "active": { "type": "boolean", "title": "Active", "default": true }, "emails": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SCIMUserEmail" }, "type": "array" }, { "type": "null" } ], "title": "Emails" }, "groups": { "anyOf": [ { "items": { "$ref": "#/components/schemas/SCIMUserGroup" }, "type": "array" }, { "type": "null" } ], "title": "Groups" } }, "type": "object", "required": [ "schemas" ], "title": "SCIMUser" }, "SCIMUserEmail": { "properties": { "value": { "type": "string", "format": "email", "title": "Value" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type" }, "primary": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Primary" } }, "type": "object", "required": [ "value" ], "title": "SCIMUserEmail" }, "SCIMUserGroup": { "properties": { "value": { "type": "string", "title": "Value" }, "display": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display" }, "type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Type", "default": "direct" } }, "type": "object", "required": [ "value" ], "title": "SCIMUserGroup" }, "SCIMUserName": { "properties": { "familyName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Familyname" }, "givenName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Givenname" }, "formatted": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Formatted" }, "middleName": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Middlename" }, "honorificPrefix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Honorificprefix" }, "honorificSuffix": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Honorificsuffix" } }, "type": "object", "title": "SCIMUserName" }, "SSOConfig": { "properties": { "google_client_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Google Client Id", "description": "Google OAuth Client ID for SSO authentication" }, "google_client_secret": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Google Client Secret", "description": "Google OAuth Client Secret for SSO authentication" }, "microsoft_client_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Microsoft Client Id", "description": "Microsoft OAuth Client ID for SSO authentication" }, "microsoft_client_secret": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Microsoft Client Secret", "description": "Microsoft OAuth Client Secret for SSO authentication" }, "microsoft_tenant": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Microsoft Tenant", "description": "Microsoft Azure Tenant ID for SSO authentication" }, "generic_client_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Generic Client Id", "description": "Generic OAuth Client ID for SSO authentication (used for Okta and other providers)" }, "generic_client_secret": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Generic Client Secret", "description": "Generic OAuth Client Secret for SSO authentication" }, "generic_authorization_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Generic Authorization Endpoint", "description": "Authorization endpoint URL for generic OAuth provider" }, "generic_token_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Generic Token Endpoint", "description": "Token endpoint URL for generic OAuth provider" }, "generic_userinfo_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Generic Userinfo Endpoint", "description": "User info endpoint URL for generic OAuth provider" }, "proxy_base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Proxy Base Url", "description": "Base URL of the proxy server for SSO redirects" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email", "description": "Email of the proxy admin user" }, "ui_access_mode": { "anyOf": [ { "$ref": "#/components/schemas/AccessControl_UI_AccessMode" }, { "type": "string" }, { "type": "null" } ], "title": "Ui Access Mode", "description": "Access mode for the UI" }, "role_mappings": { "anyOf": [ { "$ref": "#/components/schemas/RoleMappings" }, { "type": "null" } ], "description": "Configuration for mapping SSO groups to LiteLLM roles based on group claims in the SSO token" }, "team_mappings": { "anyOf": [ { "$ref": "#/components/schemas/TeamMappings" }, { "type": "null" } ], "description": "Configuration for mapping SSO JWT fields to team IDs. Takes precedence over config file settings." } }, "type": "object", "title": "SSOConfig", "description": "Configuration for SSO environment variables and settings" }, "SSOSettingsResponse": { "properties": { "values": { "additionalProperties": true, "type": "object", "title": "Values" }, "field_schema": { "additionalProperties": true, "type": "object", "title": "Field Schema" } }, "type": "object", "required": [ "values", "field_schema" ], "title": "SSOSettingsResponse", "description": "Response model for SSO settings" }, "SearchTool": { "properties": { "search_tool_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search Tool Id" }, "search_tool_name": { "type": "string", "title": "Search Tool Name" }, "litellm_params": { "$ref": "#/components/schemas/SearchToolLiteLLMParams" }, "search_tool_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Search Tool Info" }, "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated At" } }, "type": "object", "required": [ "search_tool_name", "litellm_params" ], "title": "SearchTool", "description": "Search tool configuration.\n\nExample:\n {\n \"search_tool_id\": \"123e4567-e89b-12d3-a456-426614174000\",\n \"search_tool_name\": \"litellm-search\",\n \"litellm_params\": {\n \"search_provider\": \"perplexity\",\n \"api_key\": \"sk-...\"\n },\n \"search_tool_info\": {\n \"description\": \"Perplexity search tool\"\n }\n }" }, "SearchToolInfoResponse": { "properties": { "search_tool_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Search Tool Id" }, "search_tool_name": { "type": "string", "title": "Search Tool Name" }, "litellm_params": { "additionalProperties": true, "type": "object", "title": "Litellm Params" }, "search_tool_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Search Tool Info" }, "created_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated At" }, "is_from_config": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is From Config" } }, "type": "object", "title": "SearchToolInfoResponse", "description": "Response model for search tool information." }, "SearchToolLiteLLMParams": { "properties": { "search_provider": { "type": "string", "title": "Search Provider" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Base" }, "timeout": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Timeout" }, "max_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Retries" } }, "type": "object", "required": [ "search_provider" ], "title": "SearchToolLiteLLMParams", "description": "LiteLLM params for search tools configuration." }, "Skill": { "properties": { "id": { "type": "string", "title": "Id" }, "created_at": { "type": "string", "title": "Created At" }, "display_title": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Display Title" }, "latest_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Latest Version" }, "source": { "type": "string", "title": "Source" }, "type": { "type": "string", "title": "Type", "default": "skill" }, "updated_at": { "type": "string", "title": "Updated At" } }, "type": "object", "required": [ "id", "created_at", "source", "updated_at" ], "title": "Skill", "description": "Represents a skill from the Anthropic Skills API" }, "SpendAnalyticsPaginatedResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/DailySpendData" }, "type": "array", "title": "Results" }, "metadata": { "$ref": "#/components/schemas/DailySpendMetadata" } }, "type": "object", "required": [ "results" ], "title": "SpendAnalyticsPaginatedResponse" }, "SpendCalculateRequest": { "properties": { "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "messages": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Messages" }, "completion_response": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Completion Response" } }, "type": "object", "title": "SpendCalculateRequest" }, "SpendMetrics": { "properties": { "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "prompt_tokens": { "type": "integer", "title": "Prompt Tokens", "default": 0 }, "completion_tokens": { "type": "integer", "title": "Completion Tokens", "default": 0 }, "cache_read_input_tokens": { "type": "integer", "title": "Cache Read Input Tokens", "default": 0 }, "cache_creation_input_tokens": { "type": "integer", "title": "Cache Creation Input Tokens", "default": 0 }, "total_tokens": { "type": "integer", "title": "Total Tokens", "default": 0 }, "successful_requests": { "type": "integer", "title": "Successful Requests", "default": 0 }, "failed_requests": { "type": "integer", "title": "Failed Requests", "default": 0 }, "api_requests": { "type": "integer", "title": "Api Requests", "default": 0 } }, "type": "object", "title": "SpendMetrics" }, "SuccessfulKeyUpdate": { "properties": { "key": { "type": "string", "title": "Key" }, "key_info": { "additionalProperties": true, "type": "object", "title": "Key Info" } }, "type": "object", "required": [ "key", "key_info" ], "title": "SuccessfulKeyUpdate", "description": "Successfully updated key with its updated information" }, "SuggestTemplatesRequest": { "properties": { "attack_examples": { "items": { "type": "string" }, "type": "array", "title": "Attack Examples" }, "description": { "type": "string", "title": "Description", "default": "" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } }, "type": "object", "title": "SuggestTemplatesRequest" }, "SupportedEndpoint": { "properties": { "key": { "type": "string", "title": "Key" }, "label": { "type": "string", "title": "Label" }, "endpoint": { "type": "string", "title": "Endpoint" }, "providers": { "items": { "$ref": "#/components/schemas/EndpointProvider" }, "type": "array", "title": "Providers" } }, "type": "object", "required": [ "key", "label", "endpoint", "providers" ], "title": "SupportedEndpoint" }, "SupportedEndpointsResponse": { "properties": { "endpoints": { "items": { "$ref": "#/components/schemas/SupportedEndpoint" }, "type": "array", "title": "Endpoints" } }, "type": "object", "required": [ "endpoints" ], "title": "SupportedEndpointsResponse" }, "TagActiveUsersResponse": { "properties": { "tag": { "type": "string", "title": "Tag" }, "active_users": { "type": "integer", "title": "Active Users" }, "date": { "type": "string", "title": "Date" }, "period_start": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Period Start" }, "period_end": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Period End" } }, "type": "object", "required": [ "tag", "active_users", "date" ], "title": "TagActiveUsersResponse", "description": "Response for tag active users metrics" }, "TagDeleteRequest": { "properties": { "name": { "type": "string", "title": "Name" } }, "type": "object", "required": [ "name" ], "title": "TagDeleteRequest" }, "TagInfoRequest": { "properties": { "names": { "items": { "type": "string" }, "type": "array", "title": "Names" } }, "type": "object", "required": [ "names" ], "title": "TagInfoRequest" }, "TagNewRequest": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models" }, "model_info": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Model Info" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" } }, "type": "object", "required": [ "name" ], "title": "TagNewRequest" }, "TagSummaryMetrics": { "properties": { "tag": { "type": "string", "title": "Tag" }, "unique_users": { "type": "integer", "title": "Unique Users" }, "total_requests": { "type": "integer", "title": "Total Requests" }, "successful_requests": { "type": "integer", "title": "Successful Requests" }, "failed_requests": { "type": "integer", "title": "Failed Requests" }, "total_tokens": { "type": "integer", "title": "Total Tokens" }, "total_spend": { "type": "number", "title": "Total Spend" } }, "type": "object", "required": [ "tag", "unique_users", "total_requests", "successful_requests", "failed_requests", "total_tokens", "total_spend" ], "title": "TagSummaryMetrics", "description": "Summary metrics for a tag" }, "TagSummaryResponse": { "properties": { "results": { "items": { "$ref": "#/components/schemas/TagSummaryMetrics" }, "type": "array", "title": "Results" } }, "type": "object", "required": [ "results" ], "title": "TagSummaryResponse", "description": "Response for tag summary analytics" }, "TagUpdateRequest": { "properties": { "name": { "type": "string", "title": "Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models" }, "model_info": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Model Info" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" } }, "type": "object", "required": [ "name" ], "title": "TagUpdateRequest" }, "TeamAddMemberResponse": { "properties": { "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias" }, "team_id": { "type": "string", "title": "Team Id" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "admins": { "items": {}, "type": "array", "title": "Admins", "default": [] }, "members": { "items": {}, "type": "array", "title": "Members", "default": [] }, "members_with_roles": { "items": { "$ref": "#/components/schemas/Member" }, "type": "array", "title": "Members With Roles", "default": [] }, "team_member_permissions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Team Member Permissions" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "model_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Model Id" }, "litellm_model_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ModelTable" }, { "type": "null" } ] }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "updated_users": { "items": { "$ref": "#/components/schemas/LiteLLM_UserTable" }, "type": "array", "title": "Updated Users" }, "updated_team_memberships": { "items": { "$ref": "#/components/schemas/LiteLLM_TeamMembership" }, "type": "array", "title": "Updated Team Memberships" } }, "type": "object", "required": [ "team_id", "updated_users", "updated_team_memberships" ], "title": "TeamAddMemberResponse" }, "TeamListItem": { "properties": { "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias" }, "team_id": { "type": "string", "title": "Team Id" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "admins": { "items": {}, "type": "array", "title": "Admins", "default": [] }, "members": { "items": {}, "type": "array", "title": "Members", "default": [] }, "members_with_roles": { "items": { "$ref": "#/components/schemas/Member" }, "type": "array", "title": "Members With Roles", "default": [] }, "team_member_permissions": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Team Member Permissions" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "model_id": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Model Id" }, "litellm_model_table": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ModelTable" }, { "type": "null" } ] }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "members_count": { "type": "integer", "title": "Members Count", "default": 0 }, "access_group_models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Models" }, "access_group_mcp_server_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Mcp Server Ids" }, "access_group_agent_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Agent Ids" } }, "type": "object", "required": [ "team_id" ], "title": "TeamListItem", "description": "A team item in the paginated list response, enriched with computed fields." }, "TeamListResponse": { "properties": { "teams": { "items": { "anyOf": [ { "$ref": "#/components/schemas/TeamListItem" }, { "$ref": "#/components/schemas/LiteLLM_TeamTable" }, { "$ref": "#/components/schemas/LiteLLM_DeletedTeamTable" } ] }, "type": "array", "title": "Teams" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "page_size": { "type": "integer", "title": "Page Size" }, "total_pages": { "type": "integer", "title": "Total Pages" } }, "type": "object", "required": [ "teams", "total", "page", "page_size", "total_pages" ], "title": "TeamListResponse", "description": "Response to get the list of teams" }, "TeamMappings": { "properties": { "team_ids_jwt_field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Ids Jwt Field", "description": "The field name in the SSO/JWT token that contains the team IDs array (e.g., 'groups', 'teams'). Supports dot notation for nested fields." } }, "type": "object", "title": "TeamMappings", "description": "Configuration for mapping SSO JWT fields to team IDs.\n\nThis allows configuring team_ids_jwt_field via the database instead of\nrequiring config file changes and restarts." }, "TeamMemberAddRequest": { "properties": { "member": { "anyOf": [ { "items": { "$ref": "#/components/schemas/Member" }, "type": "array" }, { "$ref": "#/components/schemas/Member" } ], "title": "Member", "description": "Member object or list of member objects to add. Each member must include either user_id or user_email, and a role" }, "team_id": { "type": "string", "title": "Team Id", "description": "The ID of the team to add the member to" }, "max_budget_in_team": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget In Team", "description": "Maximum budget allocated to this user within the team. If not set, user has unlimited budget within team limits" } }, "type": "object", "required": [ "member", "team_id" ], "title": "TeamMemberAddRequest", "description": "Request body for adding members to a team.\n\nExample:\n```json\n{\n \"team_id\": \"45e3e396-ee08-4a61-a88e-16b3ce7e0849\",\n \"member\": {\n \"role\": \"user\",\n \"user_id\": \"user123\"\n },\n \"max_budget_in_team\": 100.0\n}\n```" }, "TeamMemberAddResult": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "success": { "type": "boolean", "title": "Success" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "updated_user": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Updated User" }, "updated_team_membership": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Updated Team Membership" } }, "type": "object", "required": [ "success" ], "title": "TeamMemberAddResult", "description": "Result of a single team member add operation" }, "TeamMemberDeleteRequest": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "team_id": { "type": "string", "title": "Team Id" } }, "type": "object", "required": [ "team_id" ], "title": "TeamMemberDeleteRequest" }, "TeamMemberUpdateRequest": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "team_id": { "type": "string", "title": "Team Id" }, "max_budget_in_team": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget In Team" }, "role": { "anyOf": [ { "type": "string", "enum": [ "admin", "user" ] }, { "type": "null" } ], "title": "Role" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit", "description": "Tokens per minute limit for this team member" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit", "description": "Requests per minute limit for this team member" } }, "type": "object", "required": [ "team_id" ], "title": "TeamMemberUpdateRequest" }, "TeamMemberUpdateResponse": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "team_id": { "type": "string", "title": "Team Id" }, "max_budget_in_team": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget In Team" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" } }, "type": "object", "required": [ "user_id", "team_id" ], "title": "TeamMemberUpdateResponse" }, "TeamModelAddRequest": { "properties": { "team_id": { "type": "string", "title": "Team Id" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models" } }, "type": "object", "required": [ "team_id", "models" ], "title": "TeamModelAddRequest", "description": "Request to add models to a team" }, "TeamModelDeleteRequest": { "properties": { "team_id": { "type": "string", "title": "Team Id" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models" } }, "type": "object", "required": [ "team_id", "models" ], "title": "TeamModelDeleteRequest", "description": "Request to delete models from a team" }, "TestCustomCodeGuardrailRequest": { "properties": { "custom_code": { "type": "string", "title": "Custom Code" }, "test_input": { "additionalProperties": true, "type": "object", "title": "Test Input" }, "input_type": { "type": "string", "title": "Input Type", "default": "request" }, "request_data": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Request Data" } }, "type": "object", "required": [ "custom_code", "test_input" ], "title": "TestCustomCodeGuardrailRequest", "description": "Request model for testing custom code guardrails." }, "TestCustomCodeGuardrailResponse": { "properties": { "success": { "type": "boolean", "title": "Success" }, "result": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Result" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "error_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Type" } }, "type": "object", "required": [ "success" ], "title": "TestCustomCodeGuardrailResponse", "description": "Response model for testing custom code guardrails." }, "TestPoliciesAndGuardrailsRequest": { "properties": { "policy_names": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policy Names", "description": "Policy names to resolve guardrails from" }, "guardrail_names": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrail Names", "description": "Guardrail names to apply directly" }, "inputs_list": { "items": { "$ref": "#/components/schemas/GenericGuardrailAPIInputs" }, "type": "array", "title": "Inputs List", "description": "List of GenericGuardrailAPIInputs; each item processed separately (for batch compliance testing).", "default": [] }, "request_data": { "additionalProperties": true, "type": "object", "title": "Request Data", "description": "Request context (model, user_id, etc.)" }, "input_type": { "type": "string", "enum": [ "request", "response" ], "title": "Input Type", "description": "Whether inputs are request or response", "default": "request" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id", "description": "When set, call chat completion with this model/agent for each input and include the response in the result." } }, "type": "object", "title": "TestPoliciesAndGuardrailsRequest", "description": "Request body for POST /utils/test_policies_and_guardrails." }, "TestPolicyTemplateRequest": { "properties": { "guardrail_definitions": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Guardrail Definitions", "description": "All guardrailDefinitions from the policy template" }, "text": { "type": "string", "title": "Text", "description": "Test input text to run guardrails against" } }, "type": "object", "required": [ "guardrail_definitions", "text" ], "title": "TestPolicyTemplateRequest" }, "TestPolicyTemplateResponse": { "properties": { "overall_action": { "type": "string", "title": "Overall Action" }, "results": { "items": { "$ref": "#/components/schemas/GuardrailTestResultEntry" }, "type": "array", "title": "Results" } }, "type": "object", "required": [ "overall_action", "results" ], "title": "TestPolicyTemplateResponse" }, "TestPromptRequest": { "properties": { "dotprompt_content": { "type": "string", "title": "Dotprompt Content" }, "prompt_variables": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Prompt Variables" }, "conversation_history": { "anyOf": [ { "items": { "additionalProperties": { "type": "string" }, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Conversation History" } }, "type": "object", "required": [ "dotprompt_content" ], "title": "TestPromptRequest" }, "TestSearchToolConnectionRequest": { "properties": { "litellm_params": { "additionalProperties": true, "type": "object", "title": "Litellm Params" } }, "type": "object", "required": [ "litellm_params" ], "title": "TestSearchToolConnectionRequest" }, "TokenCountDetailsResponse": { "properties": { "totalTokens": { "type": "integer", "title": "Totaltokens" }, "promptTokensDetails": { "items": { "$ref": "#/components/schemas/PromptTokensDetails" }, "type": "array", "title": "Prompttokensdetails" } }, "type": "object", "required": [ "totalTokens", "promptTokensDetails" ], "title": "TokenCountDetailsResponse", "description": "Response structure for token count details with modality breakdown.\n\nExample:\n {'totalTokens': 12, 'promptTokensDetails': [{'modality': 'TEXT', 'tokenCount': 12}]}" }, "TokenCountRequest": { "properties": { "model": { "type": "string", "title": "Model" }, "prompt": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Prompt" }, "messages": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Messages" }, "contents": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Contents" }, "tools": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Tools" }, "system": { "anyOf": [ {}, { "type": "null" } ], "title": "System" } }, "type": "object", "required": [ "model" ], "title": "TokenCountRequest" }, "TokenCountResponse": { "properties": { "total_tokens": { "type": "integer", "title": "Total Tokens" }, "request_model": { "type": "string", "title": "Request Model" }, "model_used": { "type": "string", "title": "Model Used" }, "tokenizer_type": { "type": "string", "title": "Tokenizer Type" }, "original_response": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Original Response" }, "error": { "type": "boolean", "title": "Error", "default": false }, "error_message": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error Message" }, "status_code": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Status Code" } }, "type": "object", "required": [ "total_tokens", "request_model", "model_used", "tokenizer_type" ], "title": "TokenCountResponse" }, "ToolDetailResponse": { "properties": { "tool": { "$ref": "#/components/schemas/LiteLLM_ToolTableRow" }, "overrides": { "items": { "$ref": "#/components/schemas/ToolPolicyOverrideRow" }, "type": "array", "title": "Overrides" } }, "type": "object", "required": [ "tool" ], "title": "ToolDetailResponse" }, "ToolListResponse": { "properties": { "tools": { "items": { "$ref": "#/components/schemas/LiteLLM_ToolTableRow" }, "type": "array", "title": "Tools" }, "total": { "type": "integer", "title": "Total" } }, "type": "object", "required": [ "tools", "total" ], "title": "ToolListResponse" }, "ToolPermissionRule": { "properties": { "id": { "type": "string", "title": "Id", "description": "Unique identifier for the rule" }, "tool_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tool Name", "description": "Regex pattern applied to the tool's function name" }, "tool_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Tool Type", "description": "Regex pattern applied to the tool type (e.g., function)" }, "decision": { "type": "string", "enum": [ "allow", "deny" ], "title": "Decision", "description": "Whether to allow or deny this tool usage" }, "allowed_param_patterns": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Allowed Param Patterns", "description": "Optional regex map enforcing nested parameter values using dot/[] paths" } }, "type": "object", "required": [ "id", "decision" ], "title": "ToolPermissionRule", "description": "A rule defining permission for a specific tool or tool pattern" }, "ToolPolicyOption": { "properties": { "value": { "type": "string", "title": "Value" }, "label": { "type": "string", "title": "Label" }, "description": { "type": "string", "title": "Description" } }, "type": "object", "required": [ "value", "label", "description" ], "title": "ToolPolicyOption" }, "ToolPolicyOptionsResponse": { "properties": { "input_policies": { "items": { "$ref": "#/components/schemas/ToolPolicyOption" }, "type": "array", "title": "Input Policies" }, "output_policies": { "items": { "$ref": "#/components/schemas/ToolPolicyOption" }, "type": "array", "title": "Output Policies" } }, "type": "object", "required": [ "input_policies", "output_policies" ], "title": "ToolPolicyOptionsResponse" }, "ToolPolicyOverrideRow": { "properties": { "override_id": { "type": "string", "title": "Override Id" }, "tool_name": { "type": "string", "title": "Tool Name" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "key_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Hash" }, "input_policy": { "type": "string", "enum": [ "trusted", "untrusted", "blocked" ], "title": "Input Policy", "default": "blocked" }, "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" } }, "type": "object", "required": [ "override_id", "tool_name" ], "title": "ToolPolicyOverrideRow" }, "ToolPolicyUpdateRequest": { "properties": { "tool_name": { "type": "string", "title": "Tool Name" }, "input_policy": { "anyOf": [ { "type": "string", "enum": [ "trusted", "untrusted", "blocked" ] }, { "type": "null" } ], "title": "Input Policy" }, "output_policy": { "anyOf": [ { "type": "string", "enum": [ "trusted", "untrusted" ] }, { "type": "null" } ], "title": "Output Policy" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "key_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Hash" }, "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" } }, "type": "object", "required": [ "tool_name" ], "title": "ToolPolicyUpdateRequest" }, "ToolPolicyUpdateResponse": { "properties": { "tool_name": { "type": "string", "title": "Tool Name" }, "input_policy": { "anyOf": [ { "type": "string", "enum": [ "trusted", "untrusted", "blocked" ] }, { "type": "null" } ], "title": "Input Policy" }, "output_policy": { "anyOf": [ { "type": "string", "enum": [ "trusted", "untrusted" ] }, { "type": "null" } ], "title": "Output Policy" }, "updated": { "type": "boolean", "title": "Updated" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "key_hash": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Hash" } }, "type": "object", "required": [ "tool_name", "updated" ], "title": "ToolPolicyUpdateResponse" }, "ToolUsageLogEntry": { "properties": { "id": { "type": "string", "title": "Id" }, "timestamp": { "type": "string", "title": "Timestamp" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "total_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Total Tokens" }, "input_snippet": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Input Snippet" } }, "type": "object", "required": [ "id", "timestamp" ], "title": "ToolUsageLogEntry", "description": "One spend log row for a tool call (for UI \"recent logs\" table)." }, "ToolUsageLogsResponse": { "properties": { "logs": { "items": { "$ref": "#/components/schemas/ToolUsageLogEntry" }, "type": "array", "title": "Logs" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "page_size": { "type": "integer", "title": "Page Size" } }, "type": "object", "required": [ "logs", "total", "page", "page_size" ], "title": "ToolUsageLogsResponse" }, "TopLogprob": { "properties": { "token": { "type": "string", "title": "Token" }, "bytes": { "anyOf": [ { "items": { "type": "integer" }, "type": "array" }, { "type": "null" } ], "title": "Bytes" }, "logprob": { "type": "number", "title": "Logprob" } }, "additionalProperties": true, "type": "object", "required": [ "token", "logprob" ], "title": "TopLogprob" }, "TransformRequestBody": { "properties": { "call_type": { "$ref": "#/components/schemas/CallTypes" }, "request_body": { "additionalProperties": true, "type": "object", "title": "Request Body" } }, "type": "object", "required": [ "call_type", "request_body" ], "title": "TransformRequestBody" }, "UISettings": { "properties": { "disable_model_add_for_internal_users": { "type": "boolean", "title": "Disable Model Add For Internal Users", "description": "If true, internal users cannot add models from the UI", "default": false }, "disable_team_admin_delete_team_user": { "type": "boolean", "title": "Disable Team Admin Delete Team User", "description": "Prevents Team Admins from deleting users from the teams they manage. Useful for SCIM provisioning where team membership is defined externally.", "default": false }, "enabled_ui_pages_internal_users": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enabled Ui Pages Internal Users", "description": "List of page keys that internal users (non-admins) can see in the UI sidebar. If not set, all pages are visible based on role permissions." }, "require_auth_for_public_ai_hub": { "type": "boolean", "title": "Require Auth For Public Ai Hub", "description": "If true, requires authentication for accessing the public AI Hub.", "default": false }, "forward_client_headers_to_llm_api": { "type": "boolean", "title": "Forward Client Headers To Llm Api", "description": "If enabled, forwards client headers (e.g. Authorization) to the LLM API. Required for Claude Code with Max subscription.", "default": false }, "enable_projects_ui": { "type": "boolean", "title": "Enable Projects Ui", "description": "If enabled, shows the Projects feature in the UI sidebar and the project field in key management.", "default": false }, "disable_agents_for_internal_users": { "type": "boolean", "title": "Disable Agents For Internal Users", "description": "If true, internal users cannot access agent management endpoints or the Agents page in the UI.", "default": false }, "allow_agents_for_team_admins": { "type": "boolean", "title": "Allow Agents For Team Admins", "description": "If true, team admins are exempt from the agents disable restriction (only takes effect when disable_agents_for_internal_users is true).", "default": false }, "disable_vector_stores_for_internal_users": { "type": "boolean", "title": "Disable Vector Stores For Internal Users", "description": "If true, internal users cannot access vector store management endpoints or the Vector Stores page in the UI.", "default": false }, "allow_vector_stores_for_team_admins": { "type": "boolean", "title": "Allow Vector Stores For Team Admins", "description": "If true, team admins are exempt from the vector stores disable restriction (only takes effect when disable_vector_stores_for_internal_users is true).", "default": false }, "scope_user_search_to_org": { "type": "boolean", "title": "Scope User Search To Org", "description": "If enabled, the user search endpoint (/user/filter/ui) restricts results by organization. When off, any authenticated user can search all users.", "default": false }, "disable_custom_api_keys": { "type": "boolean", "title": "Disable Custom Api Keys", "description": "If true, users cannot specify custom key values. All keys must be auto-generated.", "default": false } }, "type": "object", "title": "UISettings", "description": "Configuration for UI-specific flags" }, "UISettingsResponse": { "properties": { "values": { "additionalProperties": true, "type": "object", "title": "Values" }, "field_schema": { "additionalProperties": true, "type": "object", "title": "Field Schema" } }, "type": "object", "required": [ "values", "field_schema" ], "title": "UISettingsResponse", "description": "Response model for UI settings" }, "UIThemeConfig": { "properties": { "logo_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Logo Url", "description": "URL or path to custom logo image. Can be a local file path or HTTP/HTTPS URL" }, "favicon_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Favicon Url", "description": "URL to custom favicon image. Must be an HTTP/HTTPS URL to a .ico, .png, or .svg file" } }, "type": "object", "title": "UIThemeConfig", "description": "Configuration for UI theme customization" }, "UIThemeSettingsResponse": { "properties": { "values": { "additionalProperties": true, "type": "object", "title": "Values" }, "field_schema": { "additionalProperties": true, "type": "object", "title": "Field Schema" } }, "type": "object", "required": [ "values", "field_schema" ], "title": "UIThemeSettingsResponse", "description": "Response model for UI theme settings" }, "UiDiscoveryEndpoints": { "properties": { "server_root_path": { "type": "string", "title": "Server Root Path" }, "proxy_base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Proxy Base Url" }, "auto_redirect_to_sso": { "type": "boolean", "title": "Auto Redirect To Sso" }, "admin_ui_disabled": { "type": "boolean", "title": "Admin Ui Disabled" }, "sso_configured": { "type": "boolean", "title": "Sso Configured" }, "is_control_plane": { "type": "boolean", "title": "Is Control Plane", "default": false }, "workers": { "items": { "$ref": "#/components/schemas/WorkerRegistryEntry" }, "type": "array", "title": "Workers", "default": [] } }, "type": "object", "required": [ "server_root_path", "proxy_base_url", "auto_redirect_to_sso", "admin_ui_disabled", "sso_configured" ], "title": "UiDiscoveryEndpoints" }, "UpdateCustomerRequest": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "blocked": { "type": "boolean", "title": "Blocked", "default": false }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "allowed_model_region": { "anyOf": [ { "type": "string", "enum": [ "eu", "us" ] }, { "type": "null" } ], "title": "Allowed Model Region" }, "default_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Default Model" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] } }, "type": "object", "required": [ "user_id" ], "title": "UpdateCustomerRequest", "description": "Update a Customer, use this to update customer budgets etc" }, "UpdateGuardrailRequest": { "properties": { "guardrail": { "$ref": "#/components/schemas/Guardrail" } }, "type": "object", "required": [ "guardrail" ], "title": "UpdateGuardrailRequest" }, "UpdateJWTKeyMappingRequest": { "properties": { "id": { "type": "string", "title": "Id" }, "key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "is_active": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Is Active" } }, "type": "object", "required": [ "id" ], "title": "UpdateJWTKeyMappingRequest" }, "UpdateKeyRequest": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duration" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models", "default": [] }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "default": {} }, "permissions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Permissions", "default": {} }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Aliases", "default": {} }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "key": { "type": "string", "title": "Key" }, "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "enforced_params": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Enforced Params" }, "allowed_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Routes", "default": [] }, "allowed_passthrough_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Passthrough Routes" }, "allowed_vector_store_indexes": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AllowedVectorStoreIndexItem" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Vector Store Indexes" }, "rpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Rpm Limit Type" }, "tpm_limit_type": { "anyOf": [ { "type": "string", "enum": [ "guaranteed_throughput", "best_effort_throughput", "dynamic" ] }, { "type": "null" } ], "title": "Tpm Limit Type" }, "router_settings": { "anyOf": [ { "$ref": "#/components/schemas/UpdateRouterConfig" }, { "type": "null" } ] }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "temp_budget_increase": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Temp Budget Increase" }, "temp_budget_expiry": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Temp Budget Expiry" }, "auto_rotate": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Auto Rotate" }, "rotation_interval": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rotation Interval" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" } }, "type": "object", "required": [ "key" ], "title": "UpdateKeyRequest" }, "UpdateMCPServerRequest": { "properties": { "server_id": { "type": "string", "title": "Server Id" }, "server_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Server Name" }, "alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Alias" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "transport": { "type": "string", "enum": [ "sse", "http", "stdio" ], "title": "Transport", "default": "sse" }, "auth_type": { "anyOf": [ { "type": "string", "enum": [ "none", "api_key", "bearer_token", "basic", "authorization", "oauth2", "aws_sigv4", "token" ] }, { "type": "null" } ], "title": "Auth Type" }, "credentials": { "anyOf": [ { "$ref": "#/components/schemas/MCPCredentials" }, { "type": "null" } ] }, "url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Url" }, "spec_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Spec Path" }, "mcp_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Mcp Info" }, "mcp_access_groups": { "items": { "type": "string" }, "type": "array", "title": "Mcp Access Groups" }, "allowed_tools": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Tools" }, "tool_name_to_display_name": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Tool Name To Display Name" }, "tool_name_to_description": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Tool Name To Description" }, "extra_headers": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Extra Headers" }, "static_headers": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "title": "Static Headers" }, "command": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Command" }, "args": { "items": { "type": "string" }, "type": "array", "title": "Args" }, "env": { "additionalProperties": { "type": "string" }, "type": "object", "title": "Env" }, "authorization_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Authorization Url" }, "token_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token Url" }, "registration_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Registration Url" }, "allow_all_keys": { "type": "boolean", "title": "Allow All Keys", "default": false }, "available_on_public_internet": { "type": "boolean", "title": "Available On Public Internet", "default": true }, "is_byok": { "type": "boolean", "title": "Is Byok", "default": false }, "byok_description": { "items": { "type": "string" }, "type": "array", "title": "Byok Description" }, "byok_api_key_help_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Byok Api Key Help Url" }, "source_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Source Url" } }, "type": "object", "required": [ "server_id" ], "title": "UpdateMCPServerRequest" }, "UpdateMCPToolsetRequest": { "properties": { "toolset_id": { "type": "string", "title": "Toolset Id" }, "toolset_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Toolset Name" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "tools": { "anyOf": [ { "items": { "$ref": "#/components/schemas/MCPToolsetTool" }, "type": "array" }, { "type": "null" } ], "title": "Tools" } }, "type": "object", "required": [ "toolset_id" ], "title": "UpdateMCPToolsetRequest" }, "UpdateModelGroupRequest": { "properties": { "model_names": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Model Names" }, "model_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Model Ids" } }, "type": "object", "title": "UpdateModelGroupRequest" }, "UpdateProjectRequest": { "properties": { "budget_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Id" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "project_id": { "type": "string", "title": "Project Id" }, "project_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Alias" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "models": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Models" }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] } }, "type": "object", "required": [ "project_id" ], "title": "UpdateProjectRequest", "description": "Request model for POST /project/update" }, "UpdatePublicModelGroupsRequest": { "properties": { "model_groups": { "items": { "type": "string" }, "type": "array", "title": "Model Groups", "description": "List of model group names to make public" } }, "additionalProperties": false, "type": "object", "required": [ "model_groups" ], "title": "UpdatePublicModelGroupsRequest", "description": "Request model for updating public model groups" }, "UpdateRouterConfig": { "properties": { "routing_strategy_args": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Routing Strategy Args" }, "routing_strategy": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Routing Strategy" }, "model_group_retry_policy": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Group Retry Policy" }, "model_group_affinity_config": { "anyOf": [ { "additionalProperties": { "items": { "type": "string" }, "type": "array" }, "type": "object" }, { "type": "null" } ], "title": "Model Group Affinity Config" }, "allowed_fails": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Allowed Fails" }, "cooldown_time": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cooldown Time" }, "num_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Num Retries" }, "timeout": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Timeout" }, "max_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Retries" }, "retry_after": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Retry After" }, "fallbacks": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Fallbacks" }, "context_window_fallbacks": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Context Window Fallbacks" }, "model_group_alias": { "anyOf": [ { "additionalProperties": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" } ] }, "type": "object" }, { "type": "null" } ], "title": "Model Group Alias", "default": {} } }, "type": "object", "title": "UpdateRouterConfig", "description": "Set of params that you can modify via `router.update_settings()`." }, "UpdateSearchToolRequest": { "properties": { "search_tool": { "$ref": "#/components/schemas/SearchTool" } }, "type": "object", "required": [ "search_tool" ], "title": "UpdateSearchToolRequest" }, "UpdateTeamMemberPermissionsRequest": { "properties": { "team_id": { "type": "string", "title": "Team Id" }, "team_member_permissions": { "items": { "type": "string" }, "type": "array", "title": "Team Member Permissions" } }, "type": "object", "required": [ "team_id", "team_member_permissions" ], "title": "UpdateTeamMemberPermissionsRequest", "description": "Request to update the team member permissions for a team" }, "UpdateTeamRequest": { "properties": { "team_id": { "type": "string", "title": "Team Id" }, "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias" }, "organization_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Id" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "tags": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "model_aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Aliases" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "team_member_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Team Member Budget" }, "team_member_budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Member Budget Duration" }, "team_member_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Member Rpm Limit" }, "team_member_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Member Tpm Limit" }, "team_member_key_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Member Key Duration" }, "allowed_passthrough_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Passthrough Routes" }, "secret_manager_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Secret Manager Settings" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "allowed_vector_store_indexes": { "anyOf": [ { "items": { "$ref": "#/components/schemas/AllowedVectorStoreIndexItem" }, "type": "array" }, { "type": "null" } ], "title": "Allowed Vector Store Indexes" }, "enforced_batch_output_expires_after": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Enforced Batch Output Expires After" }, "enforced_file_expires_after": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Enforced File Expires After" }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" } }, "type": "object", "required": [ "team_id" ], "title": "UpdateTeamRequest", "description": "UpdateTeamRequest, used by /team/update when you need to update a team\n\nteam_id: str\nteam_alias: Optional[str] = None\norganization_id: Optional[str] = None\nmetadata: Optional[dict] = None\ntpm_limit: Optional[int] = None\nrpm_limit: Optional[int] = None\nmax_budget: Optional[float] = None\nmodels: Optional[list] = None\nblocked: Optional[bool] = None\nbudget_duration: Optional[str] = None\nguardrails: Optional[List[str]] = None\npolicies: Optional[List[str]] = None" }, "UpdateUsefulLinksRequest": { "properties": { "useful_links": { "additionalProperties": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" } ] }, "type": "object", "title": "Useful Links" } }, "type": "object", "required": [ "useful_links" ], "title": "UpdateUsefulLinksRequest" }, "UpdateUserRequest": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duration" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models", "default": [] }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "default": {} }, "permissions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Permissions", "default": {} }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Aliases", "default": {} }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Password" }, "user_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Alias" }, "user_role": { "anyOf": [ { "type": "string", "enum": [ "proxy_admin", "proxy_admin_viewer", "internal_user", "internal_user_viewer" ] }, { "type": "null" } ], "title": "User Role" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" } }, "type": "object", "title": "UpdateUserRequest" }, "UpdateUserRequestNoUserIDorEmail": { "properties": { "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Duration" }, "models": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Models", "default": [] }, "spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Spend" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Config", "default": {} }, "permissions": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Permissions", "default": {} }, "model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Max Budget", "default": {} }, "model_rpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Rpm Limit" }, "model_tpm_limit": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Tpm Limit" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Guardrails" }, "policies": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Policies" }, "prompts": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Prompts" }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Aliases", "default": {} }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase" }, { "type": "null" } ] }, "password": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Password" }, "user_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Alias" }, "user_role": { "anyOf": [ { "type": "string", "enum": [ "proxy_admin", "proxy_admin_viewer", "internal_user", "internal_user_viewer" ] }, { "type": "null" } ], "title": "User Role" } }, "type": "object", "title": "UpdateUserRequestNoUserIDorEmail" }, "UsageAIChatRequest": { "properties": { "messages": { "items": { "$ref": "#/components/schemas/ChatMessage" }, "type": "array", "title": "Messages", "description": "Chat messages (user/assistant history)" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model", "description": "Model to use for AI chat" } }, "type": "object", "required": [ "messages" ], "title": "UsageAIChatRequest" }, "UsageDetailResponse": { "properties": { "guardrail_id": { "type": "string", "title": "Guardrail Id" }, "guardrail_name": { "type": "string", "title": "Guardrail Name" }, "type": { "type": "string", "title": "Type" }, "provider": { "type": "string", "title": "Provider" }, "requestsEvaluated": { "type": "integer", "title": "Requestsevaluated" }, "failRate": { "type": "number", "title": "Failrate" }, "avgScore": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Avgscore" }, "avgLatency": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Avglatency" }, "status": { "type": "string", "title": "Status" }, "trend": { "type": "string", "title": "Trend" }, "description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Description" }, "time_series": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Time Series" } }, "type": "object", "required": [ "guardrail_id", "guardrail_name", "type", "provider", "requestsEvaluated", "failRate", "avgScore", "avgLatency", "status", "trend", "description", "time_series" ], "title": "UsageDetailResponse" }, "UsageLogEntry": { "properties": { "id": { "type": "string", "title": "Id" }, "timestamp": { "type": "string", "title": "Timestamp" }, "action": { "type": "string", "title": "Action" }, "score": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Score" }, "latency_ms": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Latency Ms" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" }, "input_snippet": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Input Snippet" }, "output_snippet": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Output Snippet" }, "reason": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Reason" } }, "type": "object", "required": [ "id", "timestamp", "action", "score", "latency_ms", "model", "input_snippet", "output_snippet", "reason" ], "title": "UsageLogEntry" }, "UsageLogsResponse": { "properties": { "logs": { "items": { "$ref": "#/components/schemas/UsageLogEntry" }, "type": "array", "title": "Logs" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "page_size": { "type": "integer", "title": "Page Size" } }, "type": "object", "required": [ "logs", "total", "page", "page_size" ], "title": "UsageLogsResponse" }, "UsageOverviewResponse": { "properties": { "rows": { "items": { "$ref": "#/components/schemas/UsageOverviewRow" }, "type": "array", "title": "Rows" }, "chart": { "items": { "additionalProperties": true, "type": "object" }, "type": "array", "title": "Chart" }, "totalRequests": { "type": "integer", "title": "Totalrequests" }, "totalBlocked": { "type": "integer", "title": "Totalblocked" }, "passRate": { "type": "number", "title": "Passrate" } }, "type": "object", "required": [ "rows", "chart", "totalRequests", "totalBlocked", "passRate" ], "title": "UsageOverviewResponse" }, "UsageOverviewRow": { "properties": { "id": { "type": "string", "title": "Id" }, "name": { "type": "string", "title": "Name" }, "type": { "type": "string", "title": "Type" }, "provider": { "type": "string", "title": "Provider" }, "requestsEvaluated": { "type": "integer", "title": "Requestsevaluated" }, "failRate": { "type": "number", "title": "Failrate" }, "avgScore": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Avgscore" }, "avgLatency": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Avglatency" }, "status": { "type": "string", "title": "Status" }, "trend": { "type": "string", "title": "Trend" } }, "type": "object", "required": [ "id", "name", "type", "provider", "requestsEvaluated", "failRate", "avgScore", "avgLatency", "status", "trend" ], "title": "UsageOverviewRow" }, "UserAPIKeyAuth": { "properties": { "token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Token" }, "key_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Name" }, "key_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Key Alias" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "expires": { "anyOf": [ { "type": "string" }, { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Expires" }, "models": { "items": {}, "type": "array", "title": "Models", "default": [] }, "aliases": { "additionalProperties": true, "type": "object", "title": "Aliases", "default": {} }, "config": { "additionalProperties": true, "type": "object", "title": "Config", "default": {} }, "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "team_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Id" }, "agent_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Agent Id" }, "project_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Id" }, "max_parallel_requests": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Parallel Requests" }, "metadata": { "additionalProperties": true, "type": "object", "title": "Metadata", "default": {} }, "tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm Limit" }, "rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm Limit" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "allowed_cache_controls": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Cache Controls", "default": [] }, "allowed_routes": { "anyOf": [ { "items": {}, "type": "array" }, { "type": "null" } ], "title": "Allowed Routes", "default": [] }, "permissions": { "additionalProperties": true, "type": "object", "title": "Permissions", "default": {} }, "model_spend": { "additionalProperties": true, "type": "object", "title": "Model Spend", "default": {} }, "model_max_budget": { "additionalProperties": true, "type": "object", "title": "Model Max Budget", "default": {} }, "soft_budget_cooldown": { "type": "boolean", "title": "Soft Budget Cooldown", "default": false }, "blocked": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Blocked" }, "litellm_budget_table": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Litellm Budget Table" }, "org_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Org Id" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "created_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Created By" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "updated_by": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Updated By" }, "last_active": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Active" }, "object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Object Permission Id" }, "object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "access_group_ids": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Access Group Ids" }, "rotation_count": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rotation Count", "default": 0 }, "auto_rotate": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Auto Rotate", "default": false }, "rotation_interval": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Rotation Interval" }, "last_rotation_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Last Rotation At" }, "key_rotation_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Key Rotation At" }, "router_settings": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Router Settings" }, "team_spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Team Spend" }, "team_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Alias" }, "team_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Tpm Limit" }, "team_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Rpm Limit" }, "team_max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Team Max Budget" }, "team_soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Team Soft Budget" }, "team_models": { "items": {}, "type": "array", "title": "Team Models", "default": [] }, "team_blocked": { "type": "boolean", "title": "Team Blocked", "default": false }, "soft_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Soft Budget" }, "team_model_aliases": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Team Model Aliases" }, "team_member": { "anyOf": [ { "$ref": "#/components/schemas/Member" }, { "type": "null" } ] }, "team_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Team Metadata" }, "team_object_permission_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Team Object Permission Id" }, "team_member_spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Team Member Spend" }, "team_member_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Member Tpm Limit" }, "team_member_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Team Member Rpm Limit" }, "end_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "End User Id" }, "end_user_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "End User Tpm Limit" }, "end_user_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "End User Rpm Limit" }, "end_user_max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "End User Max Budget" }, "end_user_model_max_budget": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "End User Model Max Budget" }, "organization_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization Alias" }, "organization_max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Organization Max Budget" }, "organization_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Organization Tpm Limit" }, "organization_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Organization Rpm Limit" }, "organization_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Organization Metadata" }, "project_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Project Alias" }, "project_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Project Metadata" }, "last_refreshed_at": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Last Refreshed At" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" }, "user_role": { "anyOf": [ { "$ref": "#/components/schemas/LitellmUserRoles" }, { "type": "null" } ] }, "allowed_model_region": { "anyOf": [ { "type": "string", "enum": [ "eu", "us" ] }, { "type": "null" } ], "title": "Allowed Model Region" }, "parent_otel_span": { "anyOf": [ {}, { "type": "null" } ], "title": "Parent Otel Span" }, "rpm_limit_per_model": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Rpm Limit Per Model" }, "tpm_limit_per_model": { "anyOf": [ { "additionalProperties": { "type": "integer" }, "type": "object" }, { "type": "null" } ], "title": "Tpm Limit Per Model" }, "user_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "User Tpm Limit" }, "user_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "User Rpm Limit" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "user_spend": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "User Spend" }, "user_max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "User Max Budget" }, "request_route": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Request Route" }, "user": { "anyOf": [ {}, { "type": "null" } ], "title": "User" }, "created_by_user": { "anyOf": [ {}, { "type": "null" } ], "title": "Created By User" }, "end_user_object_permission": { "anyOf": [ { "$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable" }, { "type": "null" } ] }, "jwt_claims": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Jwt Claims" } }, "type": "object", "title": "UserAPIKeyAuth", "description": "Return the row in the db" }, "UserInfoResponse": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "user_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "$ref": "#/components/schemas/BaseModel" }, { "type": "null" } ], "title": "User Info" }, "keys": { "items": {}, "type": "array", "title": "Keys" }, "teams": { "items": {}, "type": "array", "title": "Teams" } }, "type": "object", "required": [ "user_id", "user_info", "keys", "teams" ], "title": "UserInfoResponse" }, "UserInfoV2Response": { "properties": { "user_id": { "type": "string", "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "user_alias": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Alias" }, "user_role": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Role" }, "spend": { "type": "number", "title": "Spend", "default": 0.0 }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "models": { "items": { "type": "string" }, "type": "array", "title": "Models", "default": [] }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "budget_reset_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Budget Reset At" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Metadata" }, "created_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Created At" }, "updated_at": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Updated At" }, "sso_user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Sso User Id" }, "teams": { "items": { "type": "string" }, "type": "array", "title": "Teams", "default": [] } }, "type": "object", "required": [ "user_id" ], "title": "UserInfoV2Response", "description": "Response model for GET /v2/user/info\n\nReturns ONLY the user object - no keys, no teams objects.\nThis is a lightweight alternative to UserInfoResponse." }, "UserListResponse": { "properties": { "users": { "items": { "$ref": "#/components/schemas/LiteLLM_UserTableWithKeyCount" }, "type": "array", "title": "Users" }, "total": { "type": "integer", "title": "Total" }, "page": { "type": "integer", "title": "Page" }, "page_size": { "type": "integer", "title": "Page Size" }, "total_pages": { "type": "integer", "title": "Total Pages" } }, "type": "object", "required": [ "users", "total", "page", "page_size", "total_pages" ], "title": "UserListResponse", "description": "Response model for the user list endpoint" }, "UserUpdateResult": { "properties": { "user_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Id" }, "user_email": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "User Email" }, "success": { "type": "boolean", "title": "Success" }, "error": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Error" }, "updated_user": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Updated User" } }, "type": "object", "required": [ "success" ], "title": "UserUpdateResult", "description": "Result of a single user update operation" }, "ValidationError": { "properties": { "loc": { "items": { "anyOf": [ { "type": "string" }, { "type": "integer" } ] }, "type": "array", "title": "Location" }, "msg": { "type": "string", "title": "Message" }, "type": { "type": "string", "title": "Error Type" } }, "type": "object", "required": [ "loc", "msg", "type" ], "title": "ValidationError" }, "VantageDryRunRequest": { "properties": { "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit", "description": "Limit on number of records to preview (default: 500)", "default": 500 } }, "type": "object", "title": "VantageDryRunRequest", "description": "Request model for Vantage dry-run operations (capped for preview)" }, "VantageExportRequest": { "properties": { "limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Limit", "description": "Optional limit on number of records to export (default: no limit)" }, "start_time_utc": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "Start Time Utc", "description": "Start time for data export in UTC" }, "end_time_utc": { "anyOf": [ { "type": "string", "format": "date-time" }, { "type": "null" } ], "title": "End Time Utc", "description": "End time for data export in UTC" } }, "type": "object", "title": "VantageExportRequest", "description": "Request model for Vantage export operations (actual export, no default limit)" }, "VantageExportResponse": { "properties": { "message": { "type": "string", "title": "Message" }, "status": { "type": "string", "title": "Status" }, "dry_run_data": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Dry Run Data", "description": "Dry run data including usage data and FOCUS transformed data" }, "summary": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Summary", "description": "Summary statistics for dry run" } }, "type": "object", "required": [ "message", "status" ], "title": "VantageExportResponse", "description": "Response model for Vantage export operations" }, "VantageInitRequest": { "properties": { "api_key": { "type": "string", "title": "Api Key", "description": "Vantage API key for authentication" }, "integration_token": { "type": "string", "title": "Integration Token", "description": "Vantage integration token for the cost-import endpoint" }, "base_url": { "type": "string", "title": "Base Url", "description": "Vantage API base URL (default: https://api.vantage.sh)", "default": "https://api.vantage.sh" } }, "type": "object", "required": [ "api_key", "integration_token" ], "title": "VantageInitRequest", "description": "Request model for initializing Vantage settings" }, "VantageInitResponse": { "properties": { "message": { "type": "string", "title": "Message" }, "status": { "type": "string", "title": "Status" } }, "type": "object", "required": [ "message", "status" ], "title": "VantageInitResponse", "description": "Response model for Vantage initialization" }, "VantageSettingsUpdate": { "properties": { "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key", "description": "New Vantage API key for authentication" }, "integration_token": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Integration Token", "description": "New Vantage integration token" }, "base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base Url", "description": "New Vantage API base URL" } }, "type": "object", "title": "VantageSettingsUpdate", "description": "Request model for updating Vantage settings" }, "VantageSettingsView": { "properties": { "api_key_masked": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key Masked", "description": "Masked API key showing only first 4 and last 4 characters" }, "integration_token_masked": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Integration Token Masked", "description": "Masked integration token showing only first 4 and last 4 characters" }, "base_url": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Base Url", "description": "Vantage API base URL" }, "status": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Status", "description": "Configuration status" } }, "type": "object", "title": "VantageSettingsView", "description": "Response model for viewing Vantage settings with masked API key" }, "VectorStoreDeleteRequest": { "properties": { "vector_store_id": { "type": "string", "title": "Vector Store Id" } }, "type": "object", "required": [ "vector_store_id" ], "title": "VectorStoreDeleteRequest" }, "VectorStoreInfoRequest": { "properties": { "vector_store_id": { "type": "string", "title": "Vector Store Id" } }, "type": "object", "required": [ "vector_store_id" ], "title": "VectorStoreInfoRequest" }, "VectorStoreUpdateRequest": { "properties": { "vector_store_id": { "type": "string", "title": "Vector Store Id" }, "custom_llm_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Llm Provider" }, "vector_store_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vector Store Name" }, "vector_store_description": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vector Store Description" }, "vector_store_metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Vector Store Metadata" } }, "type": "object", "required": [ "vector_store_id" ], "title": "VectorStoreUpdateRequest" }, "WorkerRegistryEntry": { "properties": { "worker_id": { "type": "string", "title": "Worker Id" }, "name": { "type": "string", "title": "Name" }, "url": { "type": "string", "title": "Url" } }, "type": "object", "required": [ "worker_id", "name", "url" ], "title": "WorkerRegistryEntry" }, "updateDeployment": { "properties": { "model_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model Name" }, "litellm_params": { "anyOf": [ { "$ref": "#/components/schemas/updateLiteLLMParams" }, { "type": "null" } ] }, "model_info": { "anyOf": [ { "$ref": "#/components/schemas/ModelInfo" }, { "type": "null" } ] } }, "type": "object", "title": "updateDeployment" }, "updateLiteLLMParams": { "properties": { "input_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token" }, "output_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token" }, "input_cost_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Second" }, "output_cost_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Second" }, "input_cost_per_pixel": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Pixel" }, "output_cost_per_pixel": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Pixel" }, "input_cost_per_token_flex": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Flex" }, "input_cost_per_token_priority": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Priority" }, "cache_creation_input_token_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Creation Input Token Cost" }, "cache_creation_input_token_cost_above_1hr": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Creation Input Token Cost Above 1Hr" }, "cache_creation_input_token_cost_above_200k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Creation Input Token Cost Above 200K Tokens" }, "cache_creation_input_audio_token_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Creation Input Audio Token Cost" }, "cache_read_input_token_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Token Cost" }, "cache_read_input_token_cost_flex": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Token Cost Flex" }, "cache_read_input_token_cost_priority": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Token Cost Priority" }, "cache_read_input_token_cost_above_200k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Token Cost Above 200K Tokens" }, "cache_read_input_audio_token_cost": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Cache Read Input Audio Token Cost" }, "input_cost_per_character": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Character" }, "input_cost_per_character_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Character Above 128K Tokens" }, "input_cost_per_audio_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Audio Token" }, "input_cost_per_token_cache_hit": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Cache Hit" }, "input_cost_per_token_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Above 128K Tokens" }, "input_cost_per_token_above_200k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Above 200K Tokens" }, "input_cost_per_query": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Query" }, "input_cost_per_image": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Image" }, "input_cost_per_image_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Image Above 128K Tokens" }, "input_cost_per_audio_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Audio Per Second" }, "input_cost_per_audio_per_second_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Audio Per Second Above 128K Tokens" }, "input_cost_per_video_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Video Per Second" }, "input_cost_per_video_per_second_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Video Per Second Above 128K Tokens" }, "input_cost_per_video_per_second_above_15s_interval": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Video Per Second Above 15S Interval" }, "input_cost_per_video_per_second_above_8s_interval": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Video Per Second Above 8S Interval" }, "input_cost_per_token_batches": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Input Cost Per Token Batches" }, "output_cost_per_token_batches": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Batches" }, "output_cost_per_token_flex": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Flex" }, "output_cost_per_token_priority": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Priority" }, "output_cost_per_character": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Character" }, "output_cost_per_audio_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Audio Token" }, "output_cost_per_token_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Above 128K Tokens" }, "output_cost_per_token_above_200k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Token Above 200K Tokens" }, "output_cost_per_character_above_128k_tokens": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Character Above 128K Tokens" }, "output_cost_per_image": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Image" }, "output_cost_per_image_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Image Token" }, "output_cost_per_reasoning_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Reasoning Token" }, "output_cost_per_video_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Video Per Second" }, "output_cost_per_audio_per_second": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Output Cost Per Audio Per Second" }, "search_context_cost_per_query": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Search Context Cost Per Query" }, "citation_cost_per_token": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Citation Cost Per Token" }, "tiered_pricing": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "title": "Tiered Pricing" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Key" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Base" }, "api_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Api Version" }, "vertex_project": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vertex Project" }, "vertex_location": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vertex Location" }, "vertex_credentials": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Vertex Credentials" }, "region_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Region Name" }, "aws_access_key_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Access Key Id" }, "aws_secret_access_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Secret Access Key" }, "aws_region_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Region Name" }, "aws_bedrock_runtime_endpoint": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Aws Bedrock Runtime Endpoint" }, "watsonx_region_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Watsonx Region Name" }, "custom_llm_provider": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Custom Llm Provider" }, "tpm": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Tpm" }, "rpm": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Rpm" }, "timeout": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "null" } ], "title": "Timeout" }, "stream_timeout": { "anyOf": [ { "type": "number" }, { "type": "string" }, { "type": "null" } ], "title": "Stream Timeout" }, "max_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Max Retries" }, "organization": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Organization" }, "configurable_clientside_auth_params": { "anyOf": [ { "items": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ConfigurableClientsideParamsCustomAuth-Input" } ] }, "type": "array" }, { "type": "null" } ], "title": "Configurable Clientside Auth Params" }, "litellm_credential_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Credential Name" }, "litellm_trace_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Litellm Trace Id" }, "max_file_size_mb": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max File Size Mb" }, "default_api_key_tpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Default Api Key Tpm Limit" }, "default_api_key_rpm_limit": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "title": "Default Api Key Rpm Limit" }, "max_budget": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "title": "Max Budget" }, "budget_duration": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Budget Duration" }, "use_in_pass_through": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Use In Pass Through", "default": false }, "use_litellm_proxy": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Use Litellm Proxy", "default": false }, "merge_reasoning_content_in_choices": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "title": "Merge Reasoning Content In Choices", "default": false }, "model_info": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Model Info" }, "mock_response": { "anyOf": [ { "type": "string" }, { "$ref": "#/components/schemas/ModelResponse" }, {}, { "type": "null" } ], "title": "Mock Response" }, "tags": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tags" }, "tag_regex": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "title": "Tag Regex" }, "auto_router_config_path": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Router Config Path" }, "auto_router_config": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Router Config" }, "auto_router_default_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Router Default Model" }, "auto_router_embedding_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Auto Router Embedding Model" }, "complexity_router_config": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "title": "Complexity Router Config" }, "complexity_router_default_model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Complexity Router Default Model" }, "s3_bucket_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "S3 Bucket Name" }, "s3_encryption_key_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "S3 Encryption Key Id" }, "gcs_bucket_name": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Gcs Bucket Name" }, "vector_store_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Vector Store Id" }, "milvus_text_field": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Milvus Text Field" }, "model": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "title": "Model" } }, "additionalProperties": true, "type": "object", "title": "updateLiteLLMParams" }, "ProxyChatCompletionRequest": { "description": "Pydantic model for chat completion requests that includes both OpenAI standard fields\nand LiteLLM-specific parameters. This replaces the previous TypedDict version.", "properties": { "model": { "title": "Model", "type": "string" }, "messages": { "items": { "anyOf": [ { "$ref": "#/components/schemas/ChatCompletionUserMessage" }, { "$ref": "#/components/schemas/ChatCompletionAssistantMessage" }, { "$ref": "#/components/schemas/ChatCompletionToolMessage" }, { "$ref": "#/components/schemas/ChatCompletionSystemMessage" }, { "$ref": "#/components/schemas/ChatCompletionFunctionMessage" }, { "$ref": "#/components/schemas/ChatCompletionDeveloperMessage" } ] }, "title": "Messages", "type": "array" }, "frequency_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Frequency Penalty" }, "logit_bias": { "anyOf": [ { "additionalProperties": { "type": "number" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Logit Bias" }, "logprobs": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Logprobs" }, "top_logprobs": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Top Logprobs" }, "max_tokens": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Max Tokens" }, "n": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "N" }, "presence_penalty": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Presence Penalty" }, "response_format": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Response Format" }, "seed": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Seed" }, "service_tier": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Service Tier" }, "stop": { "anyOf": [ { "type": "string" }, { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Stop" }, "stream_options": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Stream Options" }, "temperature": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Temperature" }, "top_p": { "anyOf": [ { "type": "number" }, { "type": "null" } ], "default": null, "title": "Top P" }, "tools": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Tools" }, "tool_choice": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Tool Choice" }, "parallel_tool_calls": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Parallel Tool Calls" }, "function_call": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Function Call" }, "functions": { "anyOf": [ { "items": { "additionalProperties": true, "type": "object" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Functions" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "stream": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Stream" }, "metadata": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Metadata" }, "guardrails": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Guardrails" }, "caching": { "anyOf": [ { "type": "boolean" }, { "type": "null" } ], "default": null, "title": "Caching" }, "num_retries": { "anyOf": [ { "type": "integer" }, { "type": "null" } ], "default": null, "title": "Num Retries" }, "context_window_fallback_dict": { "anyOf": [ { "additionalProperties": { "type": "string" }, "type": "object" }, { "type": "null" } ], "default": null, "title": "Context Window Fallback Dict" }, "fallbacks": { "anyOf": [ { "items": { "type": "string" }, "type": "array" }, { "type": "null" } ], "default": null, "title": "Fallbacks" } }, "required": [ "model", "messages" ], "title": "ProxyChatCompletionRequest", "type": "object" }, "EmbeddingRequest": { "additionalProperties": true, "properties": { "model": { "title": "Model", "type": "string" }, "input": { "default": [], "items": { "type": "string" }, "title": "Input", "type": "array" }, "timeout": { "default": 600, "title": "Timeout", "type": "integer" }, "api_base": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Base" }, "api_version": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Version" }, "api_key": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Key" }, "api_type": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Api Type" }, "caching": { "default": false, "title": "Caching", "type": "boolean" }, "user": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "User" }, "custom_llm_provider": { "anyOf": [ { "type": "string" }, { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Custom Llm Provider" }, "litellm_call_id": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Litellm Call Id" }, "litellm_logging_obj": { "anyOf": [ { "additionalProperties": true, "type": "object" }, { "type": "null" } ], "default": null, "title": "Litellm Logging Obj" }, "logger_fn": { "anyOf": [ { "type": "string" }, { "type": "null" } ], "default": null, "title": "Logger Fn" } }, "required": [ "model" ], "title": "EmbeddingRequest", "type": "object" } }, "securitySchemes": { "APIKeyHeader": { "type": "apiKey", "description": "Bearer token", "in": "header", "name": "x-litellm-api-key" } } } }