mirror of
https://github.com/BerriAI/litellm.git
synced 2026-09-13 23:11:40 +00:00
Adds the proxy's OpenAPI spec to the repo as openapi.json so diff tooling has a committed baseline, and replaces the inline drift check with the update/verify script pair Kubernetes uses so the same command runs locally and in CI. - scripts/update-codegen.sh is the single writer for generated artifacts - scripts/verify-codegen.sh runs it and fails on any git status change - the sync job now runs on every PR instead of a path filter, so routes defined outside litellm/proxy (enterprise/**) can no longer land a stale spec - git status --porcelain replaces git diff, which was blind to untracked files
89686 lines
2.5 MiB
Generated
89686 lines
2.5 MiB
Generated
{
|
|
"components": {
|
|
"schemas": {
|
|
"APIKeySecurityScheme": {
|
|
"description": "Defines a security scheme using an API key.",
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"in_": {
|
|
"enum": [
|
|
"query",
|
|
"header",
|
|
"cookie"
|
|
],
|
|
"title": "In",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "apiKey",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"in_",
|
|
"name"
|
|
],
|
|
"title": "APIKeySecurityScheme",
|
|
"type": "object"
|
|
},
|
|
"AccessControl_UI_AccessMode": {
|
|
"description": "Model for Controlling UI Access Mode via SSO Groups",
|
|
"properties": {
|
|
"restricted_sso_group": {
|
|
"title": "Restricted Sso Group",
|
|
"type": "string"
|
|
},
|
|
"sso_group_jwt_field": {
|
|
"title": "Sso Group Jwt Field",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "restricted_sso_group",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"restricted_sso_group",
|
|
"sso_group_jwt_field"
|
|
],
|
|
"title": "AccessControl_UI_AccessMode",
|
|
"type": "object"
|
|
},
|
|
"AccessGroupCreateRequest": {
|
|
"properties": {
|
|
"access_agent_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Agent Ids"
|
|
},
|
|
"access_group_name": {
|
|
"title": "Access Group Name",
|
|
"type": "string"
|
|
},
|
|
"access_mcp_server_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Mcp Server Ids"
|
|
},
|
|
"access_model_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Model Names"
|
|
},
|
|
"assigned_key_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Assigned Key Ids"
|
|
},
|
|
"assigned_team_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Assigned Team Ids"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
}
|
|
},
|
|
"required": [
|
|
"access_group_name"
|
|
],
|
|
"title": "AccessGroupCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"AccessGroupInfo": {
|
|
"properties": {
|
|
"access_group": {
|
|
"title": "Access Group",
|
|
"type": "string"
|
|
},
|
|
"deployment_count": {
|
|
"title": "Deployment Count",
|
|
"type": "integer"
|
|
},
|
|
"model_names": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Model Names",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"access_group",
|
|
"model_names",
|
|
"deployment_count"
|
|
],
|
|
"title": "AccessGroupInfo",
|
|
"type": "object"
|
|
},
|
|
"AccessGroupResponse": {
|
|
"properties": {
|
|
"access_agent_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Access Agent Ids",
|
|
"type": "array"
|
|
},
|
|
"access_group_id": {
|
|
"title": "Access Group Id",
|
|
"type": "string"
|
|
},
|
|
"access_group_name": {
|
|
"title": "Access Group Name",
|
|
"type": "string"
|
|
},
|
|
"access_mcp_server_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Access Mcp Server Ids",
|
|
"type": "array"
|
|
},
|
|
"access_model_names": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Access Model Names",
|
|
"type": "array"
|
|
},
|
|
"assigned_key_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Assigned Key Ids",
|
|
"type": "array"
|
|
},
|
|
"assigned_team_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Assigned Team Ids",
|
|
"type": "array"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
}
|
|
},
|
|
"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",
|
|
"type": "object"
|
|
},
|
|
"AccessGroupUpdateRequest": {
|
|
"properties": {
|
|
"access_agent_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Agent Ids"
|
|
},
|
|
"access_group_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Name"
|
|
},
|
|
"access_mcp_server_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Mcp Server Ids"
|
|
},
|
|
"access_model_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Model Names"
|
|
},
|
|
"assigned_key_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Assigned Key Ids"
|
|
},
|
|
"assigned_team_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Assigned Team Ids"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
}
|
|
},
|
|
"title": "AccessGroupUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"ActiveUsersAnalyticsResponse": {
|
|
"description": "Response for active users analytics",
|
|
"properties": {
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagActiveUsersResponse"
|
|
},
|
|
"title": "Results",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"results"
|
|
],
|
|
"title": "ActiveUsersAnalyticsResponse",
|
|
"type": "object"
|
|
},
|
|
"AdaptiveRouterWeights": {
|
|
"properties": {
|
|
"cost": {
|
|
"default": 0.3,
|
|
"maximum": 1.0,
|
|
"minimum": 0.0,
|
|
"title": "Cost",
|
|
"type": "number"
|
|
},
|
|
"quality": {
|
|
"default": 0.7,
|
|
"maximum": 1.0,
|
|
"minimum": 0.0,
|
|
"title": "Quality",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"title": "AdaptiveRouterWeights",
|
|
"type": "object"
|
|
},
|
|
"AddTeamCallback": {
|
|
"properties": {
|
|
"callback_name": {
|
|
"title": "Callback Name",
|
|
"type": "string"
|
|
},
|
|
"callback_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"success",
|
|
"failure",
|
|
"success_and_failure"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "success_and_failure",
|
|
"title": "Callback Type"
|
|
},
|
|
"callback_vars": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"title": "Callback Vars",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"callback_name",
|
|
"callback_vars"
|
|
],
|
|
"title": "AddTeamCallback",
|
|
"type": "object"
|
|
},
|
|
"AgentCapabilities": {
|
|
"description": "Defines optional capabilities supported by an agent.",
|
|
"properties": {
|
|
"extensions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentExtension"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Extensions"
|
|
},
|
|
"pushNotifications": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Pushnotifications"
|
|
},
|
|
"stateTransitionHistory": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Statetransitionhistory"
|
|
},
|
|
"streaming": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Streaming"
|
|
}
|
|
},
|
|
"title": "AgentCapabilities",
|
|
"type": "object"
|
|
},
|
|
"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.",
|
|
"properties": {
|
|
"additionalInterfaces": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentInterface"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Additionalinterfaces"
|
|
},
|
|
"capabilities": {
|
|
"$ref": "#/components/schemas/AgentCapabilities"
|
|
},
|
|
"defaultInputModes": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Defaultinputmodes",
|
|
"type": "array"
|
|
},
|
|
"defaultOutputModes": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Defaultoutputmodes",
|
|
"type": "array"
|
|
},
|
|
"description": {
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"documentationUrl": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Documentationurl"
|
|
},
|
|
"iconUrl": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Iconurl"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"preferredTransport": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Preferredtransport"
|
|
},
|
|
"protocolVersion": {
|
|
"title": "Protocolversion",
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AgentProvider"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"security": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Security"
|
|
},
|
|
"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"
|
|
},
|
|
"signatures": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentCardSignature"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Signatures"
|
|
},
|
|
"skills": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentSkill"
|
|
},
|
|
"title": "Skills",
|
|
"type": "array"
|
|
},
|
|
"supportsAuthenticatedExtendedCard": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Supportsauthenticatedextendedcard"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
},
|
|
"version": {
|
|
"title": "Version",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "AgentCard",
|
|
"type": "object"
|
|
},
|
|
"AgentCardSignature": {
|
|
"description": "Represents a JWS signature of an AgentCard.",
|
|
"properties": {
|
|
"header": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Header"
|
|
},
|
|
"protected": {
|
|
"title": "Protected",
|
|
"type": "string"
|
|
},
|
|
"signature": {
|
|
"title": "Signature",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "AgentCardSignature",
|
|
"type": "object"
|
|
},
|
|
"AgentConfig": {
|
|
"properties": {
|
|
"agent_card_params": {
|
|
"$ref": "#/components/schemas/AgentCard"
|
|
},
|
|
"agent_name": {
|
|
"title": "Agent Name",
|
|
"type": "string"
|
|
},
|
|
"extra_headers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Extra Headers"
|
|
},
|
|
"litellm_params": {
|
|
"additionalProperties": true,
|
|
"title": "Litellm Params",
|
|
"type": "object"
|
|
},
|
|
"object_permission": {
|
|
"$ref": "#/components/schemas/AgentObjectPermission"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"session_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Session Rpm Limit"
|
|
},
|
|
"session_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Session Tpm Limit"
|
|
},
|
|
"static_headers": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Static Headers"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"required": [
|
|
"agent_name",
|
|
"agent_card_params"
|
|
],
|
|
"title": "AgentConfig",
|
|
"type": "object"
|
|
},
|
|
"AgentCreateInfo": {
|
|
"properties": {
|
|
"agent_type": {
|
|
"title": "Agent Type",
|
|
"type": "string"
|
|
},
|
|
"agent_type_display_name": {
|
|
"title": "Agent Type Display Name",
|
|
"type": "string"
|
|
},
|
|
"credential_fields": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentCredentialField"
|
|
},
|
|
"title": "Credential Fields",
|
|
"type": "array"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"litellm_params_template": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Params Template"
|
|
},
|
|
"logo_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Logo Url"
|
|
},
|
|
"model_template": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Template"
|
|
}
|
|
},
|
|
"required": [
|
|
"agent_type",
|
|
"agent_type_display_name",
|
|
"credential_fields"
|
|
],
|
|
"title": "AgentCreateInfo",
|
|
"type": "object"
|
|
},
|
|
"AgentCredentialField": {
|
|
"properties": {
|
|
"default_value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Value"
|
|
},
|
|
"field_type": {
|
|
"default": "text",
|
|
"enum": [
|
|
"text",
|
|
"password",
|
|
"select",
|
|
"upload",
|
|
"textarea"
|
|
],
|
|
"title": "Field Type",
|
|
"type": "string"
|
|
},
|
|
"include_in_litellm_params": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Include In Litellm Params"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"title": "Label",
|
|
"type": "string"
|
|
},
|
|
"options": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Options"
|
|
},
|
|
"placeholder": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Placeholder"
|
|
},
|
|
"required": {
|
|
"default": false,
|
|
"title": "Required",
|
|
"type": "boolean"
|
|
},
|
|
"tooltip": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tooltip"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"label"
|
|
],
|
|
"title": "AgentCredentialField",
|
|
"type": "object"
|
|
},
|
|
"AgentExtension": {
|
|
"description": "A declaration of a protocol extension supported by an Agent.",
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Params"
|
|
},
|
|
"required": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Required"
|
|
},
|
|
"uri": {
|
|
"title": "Uri",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "AgentExtension",
|
|
"type": "object"
|
|
},
|
|
"AgentInterface": {
|
|
"description": "Declares a combination of a target URL and a transport protocol.",
|
|
"properties": {
|
|
"transport": {
|
|
"title": "Transport",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "AgentInterface",
|
|
"type": "object"
|
|
},
|
|
"AgentMakePublicResponse": {
|
|
"properties": {
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"public_agent_groups": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Public Agent Groups",
|
|
"type": "array"
|
|
},
|
|
"updated_by": {
|
|
"title": "Updated By",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"public_agent_groups",
|
|
"updated_by"
|
|
],
|
|
"title": "AgentMakePublicResponse",
|
|
"type": "object"
|
|
},
|
|
"AgentObjectPermission": {
|
|
"properties": {
|
|
"agents": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agents"
|
|
},
|
|
"mcp_access_groups": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Access Groups"
|
|
},
|
|
"mcp_servers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Servers"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"title": "AgentObjectPermission",
|
|
"type": "object"
|
|
},
|
|
"AgentProvider": {
|
|
"description": "Represents the service provider of an agent.",
|
|
"properties": {
|
|
"organization": {
|
|
"title": "Organization",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "AgentProvider",
|
|
"type": "object"
|
|
},
|
|
"AgentResponse": {
|
|
"properties": {
|
|
"agent_card_params": {
|
|
"additionalProperties": true,
|
|
"title": "Agent Card Params",
|
|
"type": "object"
|
|
},
|
|
"agent_id": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
},
|
|
"agent_name": {
|
|
"title": "Agent Name",
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"extra_headers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Extra Headers"
|
|
},
|
|
"litellm_params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Params"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"session_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Session Rpm Limit"
|
|
},
|
|
"session_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Session Tpm Limit"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"static_headers": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Static Headers"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
}
|
|
},
|
|
"required": [
|
|
"agent_id",
|
|
"agent_name",
|
|
"agent_card_params"
|
|
],
|
|
"title": "AgentResponse",
|
|
"type": "object"
|
|
},
|
|
"AgentSkill": {
|
|
"description": "Represents a distinct capability or function that an agent can perform.",
|
|
"properties": {
|
|
"description": {
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"examples": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Examples"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"inputModes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Inputmodes"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"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"
|
|
},
|
|
"tags": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Tags",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"title": "AgentSkill",
|
|
"type": "object"
|
|
},
|
|
"AlertType": {
|
|
"description": "Enum for alert types and management event types",
|
|
"enum": [
|
|
"llm_exceptions",
|
|
"llm_too_slow",
|
|
"llm_requests_hanging",
|
|
"budget_alerts",
|
|
"spend_reports",
|
|
"failed_tracking_spend",
|
|
"db_exceptions",
|
|
"daily_reports",
|
|
"cooldown_deployment",
|
|
"new_model_added",
|
|
"outage_alerts",
|
|
"region_outage_alerts",
|
|
"fallback_reports",
|
|
"new_virtual_key_created",
|
|
"virtual_key_updated",
|
|
"virtual_key_deleted",
|
|
"new_team_created",
|
|
"team_updated",
|
|
"team_deleted",
|
|
"new_internal_user_created",
|
|
"internal_user_updated",
|
|
"internal_user_deleted"
|
|
],
|
|
"title": "AlertType",
|
|
"type": "string"
|
|
},
|
|
"AllowedVectorStoreIndexItem": {
|
|
"properties": {
|
|
"index_name": {
|
|
"title": "Index Name",
|
|
"type": "string"
|
|
},
|
|
"index_permissions": {
|
|
"items": {
|
|
"enum": [
|
|
"read",
|
|
"write"
|
|
],
|
|
"type": "string"
|
|
},
|
|
"title": "Index Permissions",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"index_name",
|
|
"index_permissions"
|
|
],
|
|
"title": "AllowedVectorStoreIndexItem",
|
|
"type": "object"
|
|
},
|
|
"ApplyGuardrailRequest": {
|
|
"properties": {
|
|
"entities": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/PiiEntityType"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Entities"
|
|
},
|
|
"guardrail_name": {
|
|
"title": "Guardrail Name",
|
|
"type": "string"
|
|
},
|
|
"input_type": {
|
|
"default": "request",
|
|
"title": "Input Type",
|
|
"type": "string"
|
|
},
|
|
"language": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Language"
|
|
},
|
|
"messages": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Messages"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"text": {
|
|
"title": "Text",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_name",
|
|
"text"
|
|
],
|
|
"title": "ApplyGuardrailRequest",
|
|
"type": "object"
|
|
},
|
|
"ApplyGuardrailResponse": {
|
|
"properties": {
|
|
"response_text": {
|
|
"title": "Response Text",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"response_text"
|
|
],
|
|
"title": "ApplyGuardrailResponse",
|
|
"type": "object"
|
|
},
|
|
"AttachmentImpactResponse": {
|
|
"description": "Response for estimating the impact of a policy attachment.",
|
|
"properties": {
|
|
"affected_keys_count": {
|
|
"default": 0,
|
|
"description": "Number of keys that would be affected (named + unnamed).",
|
|
"title": "Affected Keys Count",
|
|
"type": "integer"
|
|
},
|
|
"affected_teams_count": {
|
|
"default": 0,
|
|
"description": "Number of teams that would be affected (named + unnamed).",
|
|
"title": "Affected Teams Count",
|
|
"type": "integer"
|
|
},
|
|
"sample_keys": {
|
|
"description": "Sample of affected key aliases (up to 10).",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Sample Keys",
|
|
"type": "array"
|
|
},
|
|
"sample_teams": {
|
|
"description": "Sample of affected team aliases (up to 10).",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Sample Teams",
|
|
"type": "array"
|
|
},
|
|
"unnamed_keys_count": {
|
|
"default": 0,
|
|
"description": "Number of affected keys without an alias.",
|
|
"title": "Unnamed Keys Count",
|
|
"type": "integer"
|
|
},
|
|
"unnamed_teams_count": {
|
|
"default": 0,
|
|
"description": "Number of affected teams without an alias.",
|
|
"title": "Unnamed Teams Count",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"title": "AttachmentImpactResponse",
|
|
"type": "object"
|
|
},
|
|
"AuditLogResponse": {
|
|
"description": "Response model for a single audit log entry",
|
|
"properties": {
|
|
"action": {
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"before_value": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before Value"
|
|
},
|
|
"changed_by": {
|
|
"title": "Changed By",
|
|
"type": "string"
|
|
},
|
|
"changed_by_api_key": {
|
|
"title": "Changed By Api Key",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"object_id": {
|
|
"title": "Object Id",
|
|
"type": "string"
|
|
},
|
|
"table_name": {
|
|
"title": "Table Name",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
},
|
|
"updated_values": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated Values"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"updated_at",
|
|
"changed_by",
|
|
"changed_by_api_key",
|
|
"action",
|
|
"table_name",
|
|
"object_id"
|
|
],
|
|
"title": "AuditLogResponse",
|
|
"type": "object"
|
|
},
|
|
"AutoRouterBenchmarkGroup": {
|
|
"description": "One auto-router's slice of the benchmarks.",
|
|
"properties": {
|
|
"avg_session_seconds": {
|
|
"title": "Avg Session Seconds",
|
|
"type": "number"
|
|
},
|
|
"avg_tokens_per_session": {
|
|
"title": "Avg Tokens Per Session",
|
|
"type": "number"
|
|
},
|
|
"avg_turns_per_session": {
|
|
"title": "Avg Turns Per Session",
|
|
"type": "number"
|
|
},
|
|
"baseline_spend": {
|
|
"description": "spend plus saved_spend: the estimated single-model cost",
|
|
"title": "Baseline Spend",
|
|
"type": "number"
|
|
},
|
|
"cache": {
|
|
"$ref": "#/components/schemas/AutoRouterCacheStats"
|
|
},
|
|
"router_name": {
|
|
"description": "The auto-router alias requests were sent to",
|
|
"title": "Router Name",
|
|
"type": "string"
|
|
},
|
|
"router_type": {
|
|
"description": "complexity, adaptive or quality",
|
|
"title": "Router Type",
|
|
"type": "string"
|
|
},
|
|
"saved_pct": {
|
|
"description": "saved_spend over baseline_spend, as a percentage",
|
|
"title": "Saved Pct",
|
|
"type": "number"
|
|
},
|
|
"saved_per_session": {
|
|
"title": "Saved Per Session",
|
|
"type": "number"
|
|
},
|
|
"saved_spend": {
|
|
"description": "Signed dollars saved versus each router's savings baseline (derived from its hardest tier, or the configured override), from the same per-request savings record the usage tab reads",
|
|
"title": "Saved Spend",
|
|
"type": "number"
|
|
},
|
|
"sessions": {
|
|
"title": "Sessions",
|
|
"type": "integer"
|
|
},
|
|
"spend": {
|
|
"description": "What the routed traffic actually cost",
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"turns": {
|
|
"title": "Turns",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"sessions",
|
|
"turns",
|
|
"avg_turns_per_session",
|
|
"avg_session_seconds",
|
|
"avg_tokens_per_session",
|
|
"spend",
|
|
"saved_spend",
|
|
"baseline_spend",
|
|
"saved_pct",
|
|
"saved_per_session",
|
|
"cache",
|
|
"router_name",
|
|
"router_type"
|
|
],
|
|
"title": "AutoRouterBenchmarkGroup",
|
|
"type": "object"
|
|
},
|
|
"AutoRouterBenchmarkTotals": {
|
|
"description": "Session-shape and savings aggregates over auto-routed traffic in the window.",
|
|
"properties": {
|
|
"avg_session_seconds": {
|
|
"title": "Avg Session Seconds",
|
|
"type": "number"
|
|
},
|
|
"avg_tokens_per_session": {
|
|
"title": "Avg Tokens Per Session",
|
|
"type": "number"
|
|
},
|
|
"avg_turns_per_session": {
|
|
"title": "Avg Turns Per Session",
|
|
"type": "number"
|
|
},
|
|
"baseline_spend": {
|
|
"description": "spend plus saved_spend: the estimated single-model cost",
|
|
"title": "Baseline Spend",
|
|
"type": "number"
|
|
},
|
|
"cache": {
|
|
"$ref": "#/components/schemas/AutoRouterCacheStats"
|
|
},
|
|
"saved_pct": {
|
|
"description": "saved_spend over baseline_spend, as a percentage",
|
|
"title": "Saved Pct",
|
|
"type": "number"
|
|
},
|
|
"saved_per_session": {
|
|
"title": "Saved Per Session",
|
|
"type": "number"
|
|
},
|
|
"saved_spend": {
|
|
"description": "Signed dollars saved versus each router's savings baseline (derived from its hardest tier, or the configured override), from the same per-request savings record the usage tab reads",
|
|
"title": "Saved Spend",
|
|
"type": "number"
|
|
},
|
|
"sessions": {
|
|
"title": "Sessions",
|
|
"type": "integer"
|
|
},
|
|
"spend": {
|
|
"description": "What the routed traffic actually cost",
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"turns": {
|
|
"title": "Turns",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"sessions",
|
|
"turns",
|
|
"avg_turns_per_session",
|
|
"avg_session_seconds",
|
|
"avg_tokens_per_session",
|
|
"spend",
|
|
"saved_spend",
|
|
"baseline_spend",
|
|
"saved_pct",
|
|
"saved_per_session",
|
|
"cache"
|
|
],
|
|
"title": "AutoRouterBenchmarkTotals",
|
|
"type": "object"
|
|
},
|
|
"AutoRouterBenchmarksResponse": {
|
|
"description": "Benchmarks for the auto-router dashboard, aggregated from the per-session rollup.",
|
|
"properties": {
|
|
"end_date": {
|
|
"description": "Window end day, YYYY-MM-DD UTC, inclusive",
|
|
"title": "End Date",
|
|
"type": "string"
|
|
},
|
|
"groups": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AutoRouterBenchmarkGroup"
|
|
},
|
|
"title": "Groups",
|
|
"type": "array"
|
|
},
|
|
"routers_in_scope": {
|
|
"title": "Routers In Scope",
|
|
"type": "integer"
|
|
},
|
|
"start_date": {
|
|
"description": "Window start day, YYYY-MM-DD UTC, inclusive",
|
|
"title": "Start Date",
|
|
"type": "string"
|
|
},
|
|
"totals": {
|
|
"$ref": "#/components/schemas/AutoRouterBenchmarkTotals"
|
|
}
|
|
},
|
|
"required": [
|
|
"start_date",
|
|
"end_date",
|
|
"routers_in_scope",
|
|
"totals",
|
|
"groups"
|
|
],
|
|
"title": "AutoRouterBenchmarksResponse",
|
|
"type": "object"
|
|
},
|
|
"AutoRouterCacheBucket": {
|
|
"description": "One prompt-caching bucket of turns, with how often those turns hit the cache.",
|
|
"properties": {
|
|
"hit_rate_pct": {
|
|
"description": "hits over this bucket's turns, as a percentage",
|
|
"title": "Hit Rate Pct",
|
|
"type": "number"
|
|
},
|
|
"hits": {
|
|
"description": "Turns in this bucket whose response reported cache-read tokens",
|
|
"title": "Hits",
|
|
"type": "integer"
|
|
},
|
|
"turns": {
|
|
"description": "Turns classified into this bucket",
|
|
"title": "Turns",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"turns",
|
|
"hits",
|
|
"hit_rate_pct"
|
|
],
|
|
"title": "AutoRouterCacheBucket",
|
|
"type": "object"
|
|
},
|
|
"AutoRouterCacheStats": {
|
|
"description": "Prompt-caching behaviour of auto-routed turns, bucketed by what the router did.\n\nEvery in-order turn falls in exactly one bucket: the session stayed on the same model,\nvisited a model for the first time (cold by design), or returned to a model it had\nalready used. Out-of-order turns (cross-pod flush races) are counted but not bucketed.",
|
|
"properties": {
|
|
"coverage_pct": {
|
|
"description": "Share of turns that carried cache telemetry",
|
|
"title": "Coverage Pct",
|
|
"type": "number"
|
|
},
|
|
"first_visit": {
|
|
"$ref": "#/components/schemas/AutoRouterCacheBucket"
|
|
},
|
|
"hit_rate_pct": {
|
|
"description": "All cache hits over telemetry-bearing turns",
|
|
"title": "Hit Rate Pct",
|
|
"type": "number"
|
|
},
|
|
"return_misses_expired": {
|
|
"description": "Return-to-tier misses where the model's recorded cache TTL had lapsed",
|
|
"title": "Return Misses Expired",
|
|
"type": "integer"
|
|
},
|
|
"return_misses_unknown": {
|
|
"description": "Return-to-tier misses with no recorded TTL to attribute against",
|
|
"title": "Return Misses Unknown",
|
|
"type": "integer"
|
|
},
|
|
"return_misses_within_ttl": {
|
|
"description": "Return-to-tier misses inside the recorded TTL: the prefix changed or the provider evicted the entry early; billing telemetry cannot distinguish the two",
|
|
"title": "Return Misses Within Ttl",
|
|
"type": "integer"
|
|
},
|
|
"return_to_tier": {
|
|
"$ref": "#/components/schemas/AutoRouterCacheBucket"
|
|
},
|
|
"same_model": {
|
|
"$ref": "#/components/schemas/AutoRouterCacheBucket"
|
|
},
|
|
"ttl_1h_turns": {
|
|
"description": "Turns whose cache write used the one-hour TTL",
|
|
"title": "Ttl 1H Turns",
|
|
"type": "integer"
|
|
},
|
|
"ttl_5m_turns": {
|
|
"description": "Turns whose cache write used the five-minute TTL",
|
|
"title": "Ttl 5M Turns",
|
|
"type": "integer"
|
|
},
|
|
"unordered_turns": {
|
|
"description": "Turns that arrived out of order and were not bucketed",
|
|
"title": "Unordered Turns",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"coverage_pct",
|
|
"hit_rate_pct",
|
|
"same_model",
|
|
"first_visit",
|
|
"return_to_tier",
|
|
"unordered_turns",
|
|
"return_misses_expired",
|
|
"return_misses_within_ttl",
|
|
"return_misses_unknown",
|
|
"ttl_5m_turns",
|
|
"ttl_1h_turns"
|
|
],
|
|
"title": "AutoRouterCacheStats",
|
|
"type": "object"
|
|
},
|
|
"AutoRouterClassifierDefaultPromptResponse": {
|
|
"description": "The built-in system prompt an auto-router's LLM classifier uses when none is configured.\n\nServed so the dashboard's prompt editor prefills the rubric the proxy actually sends, rather than\na copy in the frontend that drifts the moment the rubric is edited.",
|
|
"properties": {
|
|
"system_prompt": {
|
|
"title": "System Prompt",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"system_prompt"
|
|
],
|
|
"title": "AutoRouterClassifierDefaultPromptResponse",
|
|
"type": "object"
|
|
},
|
|
"AutoRouterRoutingTestRequest": {
|
|
"description": "A single prompt to classify against a complexity-router config that need not be saved yet.",
|
|
"properties": {
|
|
"complexity_router_config": {
|
|
"$ref": "#/components/schemas/RequestComplexityRouterConfig",
|
|
"description": "The complexity router config to route against, in the shape /model/new accepts"
|
|
},
|
|
"default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Model to route to when no tier resolves, i.e. complexity_router_default_model",
|
|
"title": "Default Model"
|
|
},
|
|
"prompt": {
|
|
"description": "The prompt to route, as an end user would send it",
|
|
"title": "Prompt",
|
|
"type": "string"
|
|
},
|
|
"router_name": {
|
|
"default": "auto_router_routing_test",
|
|
"description": "Name reported as the router in the routing decision. Display only",
|
|
"title": "Router Name",
|
|
"type": "string"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Team the router is being created for. Required for a team admin, who may only test their own team's routers",
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"prompt",
|
|
"complexity_router_config"
|
|
],
|
|
"title": "AutoRouterRoutingTestRequest",
|
|
"type": "object"
|
|
},
|
|
"AutoRouterRoutingTestResponse": {
|
|
"description": "Where one prompt would have been routed, and why.",
|
|
"properties": {
|
|
"routed_model": {
|
|
"description": "The model group the router picked",
|
|
"title": "Routed Model",
|
|
"type": "string"
|
|
},
|
|
"routed_model_configured": {
|
|
"description": "Whether routed_model is a model group this proxy actually serves",
|
|
"title": "Routed Model Configured",
|
|
"type": "boolean"
|
|
},
|
|
"routing_decision": {
|
|
"$ref": "#/components/schemas/StandardLoggingRoutingDecision",
|
|
"description": "The decision record this request would have written to its log row"
|
|
}
|
|
},
|
|
"required": [
|
|
"routed_model",
|
|
"routed_model_configured",
|
|
"routing_decision"
|
|
],
|
|
"title": "AutoRouterRoutingTestResponse",
|
|
"type": "object"
|
|
},
|
|
"BaseLitellmParams-Input": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"additional_provider_specific_params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Additional provider-specific parameters for generic guardrail APIs",
|
|
"title": "Additional Provider Specific Params"
|
|
},
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Base URL for the guardrail service API",
|
|
"title": "Api Base"
|
|
},
|
|
"api_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional custom API endpoint for Model Armor",
|
|
"title": "Api Endpoint"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "API key for the guardrail service",
|
|
"title": "Api Key"
|
|
},
|
|
"blocked_words": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BlockedWord"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of blocked words with individual actions",
|
|
"title": "Blocked Words"
|
|
},
|
|
"blocked_words_file": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to YAML file containing blocked_words list",
|
|
"title": "Blocked Words File"
|
|
},
|
|
"categories": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentFilterCategoryConfig"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of prebuilt categories to enable (harmful_*, bias_*)",
|
|
"title": "Categories"
|
|
},
|
|
"category_thresholds": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LakeraCategoryThresholds"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Threshold configuration for Lakera guardrail categories"
|
|
},
|
|
"credentials": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to Google Cloud credentials JSON file or JSON string",
|
|
"title": "Credentials"
|
|
},
|
|
"custom_code": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Python-like code containing the apply_guardrail function for custom guardrail logic",
|
|
"title": "Custom Code"
|
|
},
|
|
"default_on": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Whether the guardrail is enabled by default",
|
|
"title": "Default On"
|
|
},
|
|
"detect_secrets_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Configuration for detect-secrets guardrail",
|
|
"title": "Detect Secrets Config"
|
|
},
|
|
"end_session_after_n_fails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "For /v1/realtime sessions: automatically close the session after this many guardrail violations.",
|
|
"title": "End Session After N Fails"
|
|
},
|
|
"experimental_use_latest_role_message_only": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"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)",
|
|
"title": "Experimental Use Latest Role Message Only"
|
|
},
|
|
"extra_headers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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).",
|
|
"title": "Extra Headers"
|
|
},
|
|
"fail_on_error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Whether to fail the request if Model Armor encounters an error",
|
|
"title": "Fail On Error"
|
|
},
|
|
"guard_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name of the guardrail in guardrails.ai",
|
|
"title": "Guard Name"
|
|
},
|
|
"keyword_redaction_tag": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Tag to use for keyword redaction",
|
|
"title": "Keyword Redaction Tag"
|
|
},
|
|
"location": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Google Cloud location/region (e.g., us-central1)",
|
|
"title": "Location"
|
|
},
|
|
"mask_request_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Will mask request content if guardrail makes any changes",
|
|
"title": "Mask Request Content"
|
|
},
|
|
"mask_response_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Will mask response content if guardrail makes any changes",
|
|
"title": "Mask Response Content"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional field if guardrail requires a 'model' parameter",
|
|
"title": "Model"
|
|
},
|
|
"on_violation": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"warn",
|
|
"end_session"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "For /v1/realtime sessions: 'warn' speaks the violation message and continues; 'end_session' speaks the message and closes the connection.",
|
|
"title": "On Violation"
|
|
},
|
|
"pangea_input_recipe": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Recipe for input (LLM request)",
|
|
"title": "Pangea Input Recipe"
|
|
},
|
|
"pangea_output_recipe": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Recipe for output (LLM response)",
|
|
"title": "Pangea Output Recipe"
|
|
},
|
|
"pattern_redaction_format": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Format string for pattern redaction (use {pattern_name} placeholder)",
|
|
"title": "Pattern Redaction Format"
|
|
},
|
|
"patterns": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentFilterPattern"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of patterns (prebuilt or custom regex) to detect",
|
|
"title": "Patterns"
|
|
},
|
|
"realtime_violation_message": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The message the bot speaks aloud when a /v1/realtime guardrail fires. Falls back to violation_message_template if not set.",
|
|
"title": "Realtime Violation Message"
|
|
},
|
|
"severity_threshold": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Minimum severity to block (high, medium, low)",
|
|
"title": "Severity Threshold"
|
|
},
|
|
"skip_system_message_in_guardrail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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.",
|
|
"title": "Skip System Message In Guardrail"
|
|
},
|
|
"template_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The ID of your Model Armor template",
|
|
"title": "Template Id"
|
|
},
|
|
"unreachable_fallback": {
|
|
"default": "fail_closed",
|
|
"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.",
|
|
"enum": [
|
|
"fail_closed",
|
|
"fail_open"
|
|
],
|
|
"title": "Unreachable Fallback",
|
|
"type": "string"
|
|
},
|
|
"violation_message_template": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Custom message when a guardrail blocks an action. Supports placeholders like {tool_name}, {rule_id}, and {default_message}.",
|
|
"title": "Violation Message Template"
|
|
}
|
|
},
|
|
"title": "BaseLitellmParams",
|
|
"type": "object"
|
|
},
|
|
"BaseLitellmParams-Output": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"additional_provider_specific_params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Additional provider-specific parameters for generic guardrail APIs",
|
|
"title": "Additional Provider Specific Params"
|
|
},
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Base URL for the guardrail service API",
|
|
"title": "Api Base"
|
|
},
|
|
"api_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional custom API endpoint for Model Armor",
|
|
"title": "Api Endpoint"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "API key for the guardrail service",
|
|
"title": "Api Key"
|
|
},
|
|
"blocked_words": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BlockedWord"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of blocked words with individual actions",
|
|
"title": "Blocked Words"
|
|
},
|
|
"blocked_words_file": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to YAML file containing blocked_words list",
|
|
"title": "Blocked Words File"
|
|
},
|
|
"categories": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentFilterCategoryConfig"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of prebuilt categories to enable (harmful_*, bias_*)",
|
|
"title": "Categories"
|
|
},
|
|
"category_thresholds": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LakeraCategoryThresholds"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Threshold configuration for Lakera guardrail categories"
|
|
},
|
|
"credentials": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to Google Cloud credentials JSON file or JSON string",
|
|
"title": "Credentials"
|
|
},
|
|
"custom_code": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Python-like code containing the apply_guardrail function for custom guardrail logic",
|
|
"title": "Custom Code"
|
|
},
|
|
"default_on": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Whether the guardrail is enabled by default",
|
|
"title": "Default On"
|
|
},
|
|
"detect_secrets_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Configuration for detect-secrets guardrail",
|
|
"title": "Detect Secrets Config"
|
|
},
|
|
"end_session_after_n_fails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "For /v1/realtime sessions: automatically close the session after this many guardrail violations.",
|
|
"title": "End Session After N Fails"
|
|
},
|
|
"experimental_use_latest_role_message_only": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"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)",
|
|
"title": "Experimental Use Latest Role Message Only"
|
|
},
|
|
"extra_headers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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).",
|
|
"title": "Extra Headers"
|
|
},
|
|
"fail_on_error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Whether to fail the request if Model Armor encounters an error",
|
|
"title": "Fail On Error"
|
|
},
|
|
"guard_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name of the guardrail in guardrails.ai",
|
|
"title": "Guard Name"
|
|
},
|
|
"keyword_redaction_tag": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Tag to use for keyword redaction",
|
|
"title": "Keyword Redaction Tag"
|
|
},
|
|
"location": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Google Cloud location/region (e.g., us-central1)",
|
|
"title": "Location"
|
|
},
|
|
"mask_request_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Will mask request content if guardrail makes any changes",
|
|
"title": "Mask Request Content"
|
|
},
|
|
"mask_response_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Will mask response content if guardrail makes any changes",
|
|
"title": "Mask Response Content"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional field if guardrail requires a 'model' parameter",
|
|
"title": "Model"
|
|
},
|
|
"on_violation": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"warn",
|
|
"end_session"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "For /v1/realtime sessions: 'warn' speaks the violation message and continues; 'end_session' speaks the message and closes the connection.",
|
|
"title": "On Violation"
|
|
},
|
|
"pangea_input_recipe": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Recipe for input (LLM request)",
|
|
"title": "Pangea Input Recipe"
|
|
},
|
|
"pangea_output_recipe": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Recipe for output (LLM response)",
|
|
"title": "Pangea Output Recipe"
|
|
},
|
|
"pattern_redaction_format": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Format string for pattern redaction (use {pattern_name} placeholder)",
|
|
"title": "Pattern Redaction Format"
|
|
},
|
|
"patterns": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentFilterPattern"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of patterns (prebuilt or custom regex) to detect",
|
|
"title": "Patterns"
|
|
},
|
|
"realtime_violation_message": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The message the bot speaks aloud when a /v1/realtime guardrail fires. Falls back to violation_message_template if not set.",
|
|
"title": "Realtime Violation Message"
|
|
},
|
|
"severity_threshold": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Minimum severity to block (high, medium, low)",
|
|
"title": "Severity Threshold"
|
|
},
|
|
"skip_system_message_in_guardrail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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.",
|
|
"title": "Skip System Message In Guardrail"
|
|
},
|
|
"template_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The ID of your Model Armor template",
|
|
"title": "Template Id"
|
|
},
|
|
"unreachable_fallback": {
|
|
"default": "fail_closed",
|
|
"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.",
|
|
"enum": [
|
|
"fail_closed",
|
|
"fail_open"
|
|
],
|
|
"title": "Unreachable Fallback",
|
|
"type": "string"
|
|
},
|
|
"violation_message_template": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Custom message when a guardrail blocks an action. Supports placeholders like {tool_name}, {rule_id}, and {default_message}.",
|
|
"title": "Violation Message Template"
|
|
}
|
|
},
|
|
"title": "BaseLitellmParams",
|
|
"type": "object"
|
|
},
|
|
"BaseModel": {
|
|
"properties": {},
|
|
"title": "BaseModel",
|
|
"type": "object"
|
|
},
|
|
"BlockKeyRequest": {
|
|
"properties": {
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"title": "BlockKeyRequest",
|
|
"type": "object"
|
|
},
|
|
"BlockModelRequest": {
|
|
"properties": {
|
|
"model_id": {
|
|
"title": "Model Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"model_id"
|
|
],
|
|
"title": "BlockModelRequest",
|
|
"type": "object"
|
|
},
|
|
"BlockTeamRequest": {
|
|
"properties": {
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "BlockTeamRequest",
|
|
"type": "object"
|
|
},
|
|
"BlockUsers": {
|
|
"properties": {
|
|
"user_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "User Ids",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_ids"
|
|
],
|
|
"title": "BlockUsers",
|
|
"type": "object"
|
|
},
|
|
"BlockUsersResponse": {
|
|
"properties": {
|
|
"blocked_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_EndUserTable"
|
|
},
|
|
"title": "Blocked Users",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"blocked_users"
|
|
],
|
|
"title": "BlockUsersResponse",
|
|
"type": "object"
|
|
},
|
|
"BlockedWord": {
|
|
"description": "Represents a blocked word with its action and optional description",
|
|
"properties": {
|
|
"action": {
|
|
"$ref": "#/components/schemas/ContentFilterAction",
|
|
"description": "Action to take when keyword is detected (BLOCK or MASK)"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional description explaining why this keyword is sensitive",
|
|
"title": "Description"
|
|
},
|
|
"keyword": {
|
|
"description": "The keyword to block or mask",
|
|
"title": "Keyword",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"keyword",
|
|
"action"
|
|
],
|
|
"title": "BlockedWord",
|
|
"type": "object"
|
|
},
|
|
"BlogPost": {
|
|
"properties": {
|
|
"date": {
|
|
"title": "Date",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"title": {
|
|
"title": "Title",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"title",
|
|
"description",
|
|
"date",
|
|
"url"
|
|
],
|
|
"title": "BlogPost",
|
|
"type": "object"
|
|
},
|
|
"BlogPostsResponse": {
|
|
"properties": {
|
|
"posts": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BlogPost"
|
|
},
|
|
"title": "Posts",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"posts"
|
|
],
|
|
"title": "BlogPostsResponse",
|
|
"type": "object"
|
|
},
|
|
"Body_audio_transcriptions_audio_transcriptions_post": {
|
|
"properties": {
|
|
"file": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_audio_transcriptions_audio_transcriptions_post",
|
|
"type": "object"
|
|
},
|
|
"Body_audio_transcriptions_v1_audio_transcriptions_post": {
|
|
"properties": {
|
|
"file": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_audio_transcriptions_v1_audio_transcriptions_post",
|
|
"type": "object"
|
|
},
|
|
"Body_convert_prompt_file_to_json_utils_dotprompt_json_converter_post": {
|
|
"properties": {
|
|
"file": {
|
|
"format": "binary",
|
|
"title": "File",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_convert_prompt_file_to_json_utils_dotprompt_json_converter_post",
|
|
"type": "object"
|
|
},
|
|
"Body_create_file__provider__v1_files_post": {
|
|
"properties": {
|
|
"custom_llm_provider": {
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider",
|
|
"type": "string"
|
|
},
|
|
"file": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File",
|
|
"type": "string"
|
|
},
|
|
"litellm_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Metadata"
|
|
},
|
|
"purpose": {
|
|
"title": "Purpose",
|
|
"type": "string"
|
|
},
|
|
"target_model_names": {
|
|
"default": "",
|
|
"title": "Target Model Names",
|
|
"type": "string"
|
|
},
|
|
"target_storage": {
|
|
"default": "default",
|
|
"title": "Target Storage",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"purpose",
|
|
"file"
|
|
],
|
|
"title": "Body_create_file__provider__v1_files_post",
|
|
"type": "object"
|
|
},
|
|
"Body_create_file_files_post": {
|
|
"properties": {
|
|
"custom_llm_provider": {
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider",
|
|
"type": "string"
|
|
},
|
|
"file": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File",
|
|
"type": "string"
|
|
},
|
|
"litellm_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Metadata"
|
|
},
|
|
"purpose": {
|
|
"title": "Purpose",
|
|
"type": "string"
|
|
},
|
|
"target_model_names": {
|
|
"default": "",
|
|
"title": "Target Model Names",
|
|
"type": "string"
|
|
},
|
|
"target_storage": {
|
|
"default": "default",
|
|
"title": "Target Storage",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"purpose",
|
|
"file"
|
|
],
|
|
"title": "Body_create_file_files_post",
|
|
"type": "object"
|
|
},
|
|
"Body_create_file_v1_files_post": {
|
|
"properties": {
|
|
"custom_llm_provider": {
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider",
|
|
"type": "string"
|
|
},
|
|
"file": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File",
|
|
"type": "string"
|
|
},
|
|
"litellm_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Metadata"
|
|
},
|
|
"purpose": {
|
|
"title": "Purpose",
|
|
"type": "string"
|
|
},
|
|
"target_model_names": {
|
|
"default": "",
|
|
"title": "Target Model Names",
|
|
"type": "string"
|
|
},
|
|
"target_storage": {
|
|
"default": "default",
|
|
"title": "Target Storage",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"purpose",
|
|
"file"
|
|
],
|
|
"title": "Body_create_file_v1_files_post",
|
|
"type": "object"
|
|
},
|
|
"Body_image_edit_api_images_edits_post": {
|
|
"properties": {
|
|
"image": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image"
|
|
},
|
|
"image[]": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image[]"
|
|
},
|
|
"mask": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mask"
|
|
},
|
|
"mask[]": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mask[]"
|
|
}
|
|
},
|
|
"title": "Body_image_edit_api_images_edits_post",
|
|
"type": "object"
|
|
},
|
|
"Body_image_edit_api_openai_deployments__model__images_edits_post": {
|
|
"properties": {
|
|
"image": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image"
|
|
},
|
|
"image[]": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image[]"
|
|
},
|
|
"mask": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mask"
|
|
},
|
|
"mask[]": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mask[]"
|
|
}
|
|
},
|
|
"title": "Body_image_edit_api_openai_deployments__model__images_edits_post",
|
|
"type": "object"
|
|
},
|
|
"Body_image_edit_api_v1_images_edits_post": {
|
|
"properties": {
|
|
"image": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image"
|
|
},
|
|
"image[]": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Image[]"
|
|
},
|
|
"mask": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mask"
|
|
},
|
|
"mask[]": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mask[]"
|
|
}
|
|
},
|
|
"title": "Body_image_edit_api_v1_images_edits_post",
|
|
"type": "object"
|
|
},
|
|
"Body_test_model_connection_health_test_connection_post": {
|
|
"properties": {
|
|
"litellm_params": {
|
|
"additionalProperties": true,
|
|
"description": "Parameters for litellm.completion, litellm.embedding for the health check",
|
|
"title": "Litellm Params",
|
|
"type": "object"
|
|
},
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"chat",
|
|
"completion",
|
|
"embedding",
|
|
"audio_speech",
|
|
"audio_transcription",
|
|
"image_generation",
|
|
"video_generation",
|
|
"batch",
|
|
"rerank",
|
|
"realtime",
|
|
"responses",
|
|
"ocr"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The mode to test the model with. If not provided, auto-detected from model capabilities.",
|
|
"title": "Mode"
|
|
},
|
|
"model_info": {
|
|
"additionalProperties": true,
|
|
"description": "Model info for the health check",
|
|
"title": "Model Info",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"title": "Body_test_model_connection_health_test_connection_post",
|
|
"type": "object"
|
|
},
|
|
"Body_upload_logo_upload_logo_post": {
|
|
"properties": {
|
|
"file": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "File",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"file"
|
|
],
|
|
"title": "Body_upload_logo_upload_logo_post",
|
|
"type": "object"
|
|
},
|
|
"Body_video_create_character_v1_videos_characters_post": {
|
|
"properties": {
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"video": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "Video",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"video",
|
|
"name"
|
|
],
|
|
"title": "Body_video_create_character_v1_videos_characters_post",
|
|
"type": "object"
|
|
},
|
|
"Body_video_create_character_videos_characters_post": {
|
|
"properties": {
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"video": {
|
|
"contentMediaType": "application/octet-stream",
|
|
"title": "Video",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"video",
|
|
"name"
|
|
],
|
|
"title": "Body_video_create_character_videos_characters_post",
|
|
"type": "object"
|
|
},
|
|
"Body_video_generation_v1_videos_post": {
|
|
"properties": {
|
|
"input_reference": {
|
|
"anyOf": [
|
|
{
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Reference"
|
|
}
|
|
},
|
|
"title": "Body_video_generation_v1_videos_post",
|
|
"type": "object"
|
|
},
|
|
"Body_video_generation_videos_post": {
|
|
"properties": {
|
|
"input_reference": {
|
|
"anyOf": [
|
|
{
|
|
"contentMediaType": "application/octet-stream",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Reference"
|
|
}
|
|
},
|
|
"title": "Body_video_generation_videos_post",
|
|
"type": "object"
|
|
},
|
|
"BreakdownMetrics": {
|
|
"description": "Breakdown of spend by different dimensions",
|
|
"properties": {
|
|
"api_keys": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/KeyMetricWithMetadata"
|
|
},
|
|
"title": "Api Keys",
|
|
"type": "object"
|
|
},
|
|
"endpoints": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/MetricWithMetadata"
|
|
},
|
|
"title": "Endpoints",
|
|
"type": "object"
|
|
},
|
|
"entities": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/MetricWithMetadata"
|
|
},
|
|
"title": "Entities",
|
|
"type": "object"
|
|
},
|
|
"mcp_servers": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/MetricWithMetadata"
|
|
},
|
|
"title": "Mcp Servers",
|
|
"type": "object"
|
|
},
|
|
"model_groups": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/MetricWithMetadata"
|
|
},
|
|
"title": "Model Groups",
|
|
"type": "object"
|
|
},
|
|
"models": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/MetricWithMetadata"
|
|
},
|
|
"title": "Models",
|
|
"type": "object"
|
|
},
|
|
"providers": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/MetricWithMetadata"
|
|
},
|
|
"title": "Providers",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"title": "BreakdownMetrics",
|
|
"type": "object"
|
|
},
|
|
"BudgetConfig": {
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"title": "BudgetConfig",
|
|
"type": "object"
|
|
},
|
|
"BudgetDeleteRequest": {
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "BudgetDeleteRequest",
|
|
"type": "object"
|
|
},
|
|
"BudgetLimitEntry": {
|
|
"description": "A single budget window with its own limit and independent reset schedule.",
|
|
"properties": {
|
|
"budget_duration": {
|
|
"title": "Budget Duration",
|
|
"type": "string"
|
|
},
|
|
"max_budget": {
|
|
"title": "Max Budget",
|
|
"type": "number"
|
|
},
|
|
"reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reset At"
|
|
}
|
|
},
|
|
"required": [
|
|
"budget_duration",
|
|
"max_budget"
|
|
],
|
|
"title": "BudgetLimitEntry",
|
|
"type": "object"
|
|
},
|
|
"BudgetListItem": {
|
|
"description": "One budget as the Budgets page reads it, and as it comes back off the table.\n\nValidating the raw row through here is what makes `tpm_limit` / `rpm_limit`\nnumbers: they are `BigInt?` in the schema, which the query engine hands back as\ndecimal strings, and a quoted \"60000\" breaks arithmetic in the dashboard.",
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"title": "Budget Id",
|
|
"type": "string"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"budget_id",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "BudgetListItem",
|
|
"type": "object"
|
|
},
|
|
"BudgetNewRequest": {
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max duration budget should be set for (e.g. '1hr', '1d', '28d')",
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The unique budget id.",
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Datetime when the budget is reset",
|
|
"title": "Budget Reset At"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Requests will fail if this budget (in USD) is exceeded.",
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max concurrent requests allowed for this budget id.",
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/BudgetConfig"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}})",
|
|
"title": "Model Max Budget"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max requests per minute, allowed for this budget id.",
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Requests will NOT fail if this is exceeded. Will fire alerting though.",
|
|
"title": "Soft Budget"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max tokens per minute, allowed for this budget id.",
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"title": "BudgetNewRequest",
|
|
"type": "object"
|
|
},
|
|
"BudgetRequest": {
|
|
"properties": {
|
|
"budgets": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Budgets",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"budgets"
|
|
],
|
|
"title": "BudgetRequest",
|
|
"type": "object"
|
|
},
|
|
"BulkTeamMemberAddRequest": {
|
|
"description": "Request for bulk team member addition",
|
|
"properties": {
|
|
"all_users": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "All Users"
|
|
},
|
|
"max_budget_in_team": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget In Team"
|
|
},
|
|
"members": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/Member"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Members"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "BulkTeamMemberAddRequest",
|
|
"type": "object"
|
|
},
|
|
"BulkTeamMemberAddResponse": {
|
|
"description": "Response for bulk team member add operations",
|
|
"properties": {
|
|
"failed_additions": {
|
|
"title": "Failed Additions",
|
|
"type": "integer"
|
|
},
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TeamMemberAddResult"
|
|
},
|
|
"title": "Results",
|
|
"type": "array"
|
|
},
|
|
"successful_additions": {
|
|
"title": "Successful Additions",
|
|
"type": "integer"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"total_requested": {
|
|
"title": "Total Requested",
|
|
"type": "integer"
|
|
},
|
|
"updated_team": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated Team"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id",
|
|
"results",
|
|
"total_requested",
|
|
"successful_additions",
|
|
"failed_additions"
|
|
],
|
|
"title": "BulkTeamMemberAddResponse",
|
|
"type": "object"
|
|
},
|
|
"BulkUpdateKeyRequest": {
|
|
"description": "Request for bulk key updates",
|
|
"properties": {
|
|
"keys": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BulkUpdateKeyRequestItem"
|
|
},
|
|
"title": "Keys",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"keys"
|
|
],
|
|
"title": "BulkUpdateKeyRequest",
|
|
"type": "object"
|
|
},
|
|
"BulkUpdateKeyRequestItem": {
|
|
"description": "Individual key update request item",
|
|
"properties": {
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"title": "BulkUpdateKeyRequestItem",
|
|
"type": "object"
|
|
},
|
|
"BulkUpdateKeyResponse": {
|
|
"description": "Response for bulk key update operations",
|
|
"properties": {
|
|
"failed_updates": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/FailedKeyUpdate"
|
|
},
|
|
"title": "Failed Updates",
|
|
"type": "array"
|
|
},
|
|
"successful_updates": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SuccessfulKeyUpdate"
|
|
},
|
|
"title": "Successful Updates",
|
|
"type": "array"
|
|
},
|
|
"total_requested": {
|
|
"title": "Total Requested",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"total_requested",
|
|
"successful_updates",
|
|
"failed_updates"
|
|
],
|
|
"title": "BulkUpdateKeyResponse",
|
|
"type": "object"
|
|
},
|
|
"BulkUpdateTeamKeysRequest": {
|
|
"description": "Apply one update payload to many keys inside a team; provide either `key_ids` or `all_keys_in_team=True`.",
|
|
"properties": {
|
|
"all_keys_in_team": {
|
|
"default": false,
|
|
"title": "All Keys In Team",
|
|
"type": "boolean"
|
|
},
|
|
"key_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Ids"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"update_fields": {
|
|
"$ref": "#/components/schemas/KeyUpdateFields"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id",
|
|
"update_fields"
|
|
],
|
|
"title": "BulkUpdateTeamKeysRequest",
|
|
"type": "object"
|
|
},
|
|
"BulkUpdateTeamMemberPermissionsRequest": {
|
|
"description": "Request to bulk-update team member permissions across teams.",
|
|
"properties": {
|
|
"apply_to_all_teams": {
|
|
"default": false,
|
|
"title": "Apply To All Teams",
|
|
"type": "boolean"
|
|
},
|
|
"permissions": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyManagementRoutes"
|
|
},
|
|
"title": "Permissions",
|
|
"type": "array"
|
|
},
|
|
"team_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Ids"
|
|
}
|
|
},
|
|
"required": [
|
|
"permissions"
|
|
],
|
|
"title": "BulkUpdateTeamMemberPermissionsRequest",
|
|
"type": "object"
|
|
},
|
|
"BulkUpdateTeamMemberPermissionsResponse": {
|
|
"description": "Response for bulk team member permissions update.",
|
|
"properties": {
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"permissions_appended": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Permissions Appended"
|
|
},
|
|
"teams_updated": {
|
|
"title": "Teams Updated",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"teams_updated"
|
|
],
|
|
"title": "BulkUpdateTeamMemberPermissionsResponse",
|
|
"type": "object"
|
|
},
|
|
"BulkUpdateUserRequest": {
|
|
"description": "Request for bulk user updates",
|
|
"properties": {
|
|
"all_users": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "All Users"
|
|
},
|
|
"user_updates": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UpdateUserRequestNoUserIDorEmail"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"users": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/UpdateUserRequest"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Users"
|
|
}
|
|
},
|
|
"title": "BulkUpdateUserRequest",
|
|
"type": "object"
|
|
},
|
|
"BulkUpdateUserResponse": {
|
|
"description": "Response for bulk user update operations",
|
|
"properties": {
|
|
"failed_updates": {
|
|
"title": "Failed Updates",
|
|
"type": "integer"
|
|
},
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserUpdateResult"
|
|
},
|
|
"title": "Results",
|
|
"type": "array"
|
|
},
|
|
"successful_updates": {
|
|
"title": "Successful Updates",
|
|
"type": "integer"
|
|
},
|
|
"total_requested": {
|
|
"title": "Total Requested",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"results",
|
|
"total_requested",
|
|
"successful_updates",
|
|
"failed_updates"
|
|
],
|
|
"title": "BulkUpdateUserResponse",
|
|
"type": "object"
|
|
},
|
|
"CacheActivityFilterOptions": {
|
|
"properties": {
|
|
"key_aliases": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Key Aliases",
|
|
"type": "array"
|
|
},
|
|
"models": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"key_aliases",
|
|
"models"
|
|
],
|
|
"title": "CacheActivityFilterOptions",
|
|
"type": "object"
|
|
},
|
|
"CacheActivityGroup": {
|
|
"properties": {
|
|
"api_requests": {
|
|
"title": "Api Requests",
|
|
"type": "integer"
|
|
},
|
|
"cache_hits": {
|
|
"title": "Cache Hits",
|
|
"type": "integer"
|
|
},
|
|
"cached_completion_tokens": {
|
|
"title": "Cached Completion Tokens",
|
|
"type": "integer"
|
|
},
|
|
"call_type": {
|
|
"title": "Call Type",
|
|
"type": "string"
|
|
},
|
|
"failed_requests": {
|
|
"title": "Failed Requests",
|
|
"type": "integer"
|
|
},
|
|
"generated_completion_tokens": {
|
|
"title": "Generated Completion Tokens",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"call_type",
|
|
"api_requests",
|
|
"cache_hits",
|
|
"failed_requests",
|
|
"cached_completion_tokens",
|
|
"generated_completion_tokens"
|
|
],
|
|
"title": "CacheActivityGroup",
|
|
"type": "object"
|
|
},
|
|
"CacheActivityResponse": {
|
|
"properties": {
|
|
"filter_options": {
|
|
"$ref": "#/components/schemas/CacheActivityFilterOptions"
|
|
},
|
|
"groups": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CacheActivityGroup"
|
|
},
|
|
"title": "Groups",
|
|
"type": "array"
|
|
},
|
|
"totals": {
|
|
"$ref": "#/components/schemas/CacheActivityTotals"
|
|
}
|
|
},
|
|
"required": [
|
|
"groups",
|
|
"totals",
|
|
"filter_options"
|
|
],
|
|
"title": "CacheActivityResponse",
|
|
"type": "object"
|
|
},
|
|
"CacheActivityTotals": {
|
|
"properties": {
|
|
"api_requests": {
|
|
"title": "Api Requests",
|
|
"type": "integer"
|
|
},
|
|
"cache_hit_ratio": {
|
|
"title": "Cache Hit Ratio",
|
|
"type": "number"
|
|
},
|
|
"cache_hits": {
|
|
"title": "Cache Hits",
|
|
"type": "integer"
|
|
},
|
|
"cached_completion_tokens": {
|
|
"title": "Cached Completion Tokens",
|
|
"type": "integer"
|
|
},
|
|
"failed_requests": {
|
|
"title": "Failed Requests",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"api_requests",
|
|
"cache_hits",
|
|
"failed_requests",
|
|
"cached_completion_tokens",
|
|
"cache_hit_ratio"
|
|
],
|
|
"title": "CacheActivityTotals",
|
|
"type": "object"
|
|
},
|
|
"CachePingResponse": {
|
|
"properties": {
|
|
"cache_type": {
|
|
"title": "Cache Type",
|
|
"type": "string"
|
|
},
|
|
"health_check_cache_params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Health Check Cache Params"
|
|
},
|
|
"litellm_cache_params": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Cache Params"
|
|
},
|
|
"ping_response": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ping Response"
|
|
},
|
|
"set_cache_response": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Set Cache Response"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"cache_type"
|
|
],
|
|
"title": "CachePingResponse",
|
|
"type": "object"
|
|
},
|
|
"CacheSettingsField": {
|
|
"properties": {
|
|
"field_default": {
|
|
"title": "Field Default"
|
|
},
|
|
"field_description": {
|
|
"title": "Field Description",
|
|
"type": "string"
|
|
},
|
|
"field_name": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
},
|
|
"field_type": {
|
|
"title": "Field Type",
|
|
"type": "string"
|
|
},
|
|
"field_value": {
|
|
"title": "Field Value"
|
|
},
|
|
"link": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Link"
|
|
},
|
|
"options": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Options"
|
|
},
|
|
"redis_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Redis Type"
|
|
},
|
|
"ui_field_name": {
|
|
"title": "Ui Field Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"field_name",
|
|
"field_type",
|
|
"field_value",
|
|
"field_description",
|
|
"ui_field_name"
|
|
],
|
|
"title": "CacheSettingsField",
|
|
"type": "object"
|
|
},
|
|
"CacheSettingsResponse": {
|
|
"properties": {
|
|
"current_values": {
|
|
"additionalProperties": true,
|
|
"description": "Current values of cache settings",
|
|
"title": "Current Values",
|
|
"type": "object"
|
|
},
|
|
"fields": {
|
|
"description": "List of all configurable cache settings with metadata",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CacheSettingsField"
|
|
},
|
|
"title": "Fields",
|
|
"type": "array"
|
|
},
|
|
"redis_type_descriptions": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "Descriptions for each Redis type option",
|
|
"title": "Redis Type Descriptions",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"fields",
|
|
"current_values",
|
|
"redis_type_descriptions"
|
|
],
|
|
"title": "CacheSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"CacheSettingsUpdateRequest": {
|
|
"properties": {
|
|
"cache_settings": {
|
|
"additionalProperties": true,
|
|
"description": "Cache settings to save",
|
|
"title": "Cache Settings",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"cache_settings"
|
|
],
|
|
"title": "CacheSettingsUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"CacheTestRequest": {
|
|
"properties": {
|
|
"cache_settings": {
|
|
"additionalProperties": true,
|
|
"description": "Cache settings to test connection with",
|
|
"title": "Cache Settings",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"cache_settings"
|
|
],
|
|
"title": "CacheTestRequest",
|
|
"type": "object"
|
|
},
|
|
"CacheTestResponse": {
|
|
"properties": {
|
|
"error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Error message if connection failed",
|
|
"title": "Error"
|
|
},
|
|
"message": {
|
|
"description": "Connection result message",
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"description": "Connection status: 'success' or 'failed'",
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"message"
|
|
],
|
|
"title": "CacheTestResponse",
|
|
"type": "object"
|
|
},
|
|
"CallTypes": {
|
|
"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",
|
|
"aanthropic_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",
|
|
"ingest",
|
|
"aingest",
|
|
"query",
|
|
"aquery",
|
|
"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",
|
|
"create_sandbox",
|
|
"acreate_sandbox",
|
|
"delete_sandbox",
|
|
"adelete_sandbox",
|
|
"run_code",
|
|
"arun_code",
|
|
"code_interpreter_tool",
|
|
"acode_interpreter_tool",
|
|
"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",
|
|
"type": "string"
|
|
},
|
|
"CallbackDelete": {
|
|
"properties": {
|
|
"callback_name": {
|
|
"title": "Callback Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"callback_name"
|
|
],
|
|
"title": "CallbackDelete",
|
|
"type": "object"
|
|
},
|
|
"CallbackLogFailure": {
|
|
"description": "A record that failed to replay, identified by its index in the batch.",
|
|
"properties": {
|
|
"error": {
|
|
"title": "Error",
|
|
"type": "string"
|
|
},
|
|
"index": {
|
|
"title": "Index",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"index",
|
|
"error"
|
|
],
|
|
"title": "CallbackLogFailure",
|
|
"type": "object"
|
|
},
|
|
"CallbackLogRecord": {
|
|
"description": "A single finished logging event to replay through the callbacks.",
|
|
"properties": {
|
|
"error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error"
|
|
},
|
|
"standard_logging_payload": {
|
|
"additionalProperties": true,
|
|
"title": "Standard Logging Payload",
|
|
"type": "object"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"success",
|
|
"failure"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"standard_logging_payload"
|
|
],
|
|
"title": "CallbackLogRecord",
|
|
"type": "object"
|
|
},
|
|
"CallbackLogsRequest": {
|
|
"description": "A batch of logging events posted by an external producer.",
|
|
"properties": {
|
|
"records": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CallbackLogRecord"
|
|
},
|
|
"maxItems": 1000,
|
|
"title": "Records",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"records"
|
|
],
|
|
"title": "CallbackLogsRequest",
|
|
"type": "object"
|
|
},
|
|
"CallbackLogsResponse": {
|
|
"description": "Per-batch result: counts plus per-record failure detail so the caller can\ndistinguish a transient callback error from a structurally bad payload.",
|
|
"properties": {
|
|
"failed": {
|
|
"title": "Failed",
|
|
"type": "integer"
|
|
},
|
|
"failures": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CallbackLogFailure"
|
|
},
|
|
"title": "Failures",
|
|
"type": "array"
|
|
},
|
|
"processed": {
|
|
"title": "Processed",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"processed",
|
|
"failed"
|
|
],
|
|
"title": "CallbackLogsResponse",
|
|
"type": "object"
|
|
},
|
|
"CallbacksByType": {
|
|
"properties": {
|
|
"failure": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Failure",
|
|
"type": "array"
|
|
},
|
|
"success": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Success",
|
|
"type": "array"
|
|
},
|
|
"success_and_failure": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Success And Failure",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"success",
|
|
"failure",
|
|
"success_and_failure"
|
|
],
|
|
"title": "CallbacksByType",
|
|
"type": "object"
|
|
},
|
|
"CancelEvalResponse": {
|
|
"description": "Response from cancelling an evaluation",
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"object": {
|
|
"default": "eval",
|
|
"title": "Object",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"const": "cancelled",
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"status"
|
|
],
|
|
"title": "CancelEvalResponse",
|
|
"type": "object"
|
|
},
|
|
"CancelRunResponse": {
|
|
"description": "Response from cancelling a run",
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"object": {
|
|
"default": "eval.run",
|
|
"title": "Object",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"const": "cancelled",
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"status"
|
|
],
|
|
"title": "CancelRunResponse",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionAnnotation": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"type": {
|
|
"const": "url_citation",
|
|
"title": "Type",
|
|
"type": "string"
|
|
},
|
|
"url_citation": {
|
|
"$ref": "#/components/schemas/ChatCompletionAnnotationURLCitation"
|
|
}
|
|
},
|
|
"title": "ChatCompletionAnnotation",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionAnnotationURLCitation": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"end_index": {
|
|
"title": "End Index",
|
|
"type": "integer"
|
|
},
|
|
"start_index": {
|
|
"title": "Start Index",
|
|
"type": "integer"
|
|
},
|
|
"title": {
|
|
"title": "Title",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "ChatCompletionAnnotationURLCitation",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionAssistantMessage": {
|
|
"properties": {
|
|
"cache_control": {
|
|
"$ref": "#/components/schemas/ChatCompletionCachedContent"
|
|
},
|
|
"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"
|
|
},
|
|
"function_call": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionToolCallFunctionChunk"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"reasoning_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reasoning Content"
|
|
},
|
|
"reasoning_items": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionReasoningItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reasoning Items"
|
|
},
|
|
"role": {
|
|
"const": "assistant",
|
|
"title": "Role",
|
|
"type": "string"
|
|
},
|
|
"thinking_blocks": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionThinkingBlock"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionRedactedThinkingBlock"
|
|
}
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thinking Blocks"
|
|
},
|
|
"tool_calls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionAssistantToolCall"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tool Calls"
|
|
}
|
|
},
|
|
"required": [
|
|
"role"
|
|
],
|
|
"title": "ChatCompletionAssistantMessage",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionAssistantToolCall": {
|
|
"properties": {
|
|
"function": {
|
|
"$ref": "#/components/schemas/ChatCompletionToolCallFunctionChunk"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"type": {
|
|
"const": "function",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"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": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"data": {
|
|
"title": "Data",
|
|
"type": "string"
|
|
},
|
|
"expires_at": {
|
|
"title": "Expires At",
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"transcript": {
|
|
"title": "Transcript",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"data",
|
|
"expires_at",
|
|
"transcript"
|
|
],
|
|
"title": "ChatCompletionAudioResponse",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionCachedContent": {
|
|
"properties": {
|
|
"ttl": {
|
|
"enum": [
|
|
"5m",
|
|
"1h"
|
|
],
|
|
"title": "Ttl",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "ephemeral",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "ChatCompletionCachedContent",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionCustomToolCallPayload": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"input": {
|
|
"title": "Input",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"input"
|
|
],
|
|
"title": "ChatCompletionCustomToolCallPayload",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionDeveloperMessage": {
|
|
"properties": {
|
|
"cache_control": {
|
|
"$ref": "#/components/schemas/ChatCompletionCachedContent"
|
|
},
|
|
"content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
}
|
|
],
|
|
"title": "Content"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"const": "developer",
|
|
"title": "Role",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"role",
|
|
"content"
|
|
],
|
|
"title": "ChatCompletionDeveloperMessage",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionDocumentObject": {
|
|
"properties": {
|
|
"citations": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CitationsObject"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"context": {
|
|
"title": "Context",
|
|
"type": "string"
|
|
},
|
|
"source": {
|
|
"$ref": "#/components/schemas/DocumentObject"
|
|
},
|
|
"title": {
|
|
"title": "Title",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "document",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"source",
|
|
"title",
|
|
"context",
|
|
"citations"
|
|
],
|
|
"title": "ChatCompletionDocumentObject",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionFileObject": {
|
|
"properties": {
|
|
"file": {
|
|
"$ref": "#/components/schemas/ChatCompletionFileObjectFile"
|
|
},
|
|
"type": {
|
|
"const": "file",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"file"
|
|
],
|
|
"title": "ChatCompletionFileObject",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionFileObjectFile": {
|
|
"properties": {
|
|
"detail": {
|
|
"title": "Detail",
|
|
"type": "string"
|
|
},
|
|
"file_data": {
|
|
"title": "File Data",
|
|
"type": "string"
|
|
},
|
|
"file_id": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
},
|
|
"filename": {
|
|
"title": "Filename",
|
|
"type": "string"
|
|
},
|
|
"format": {
|
|
"title": "Format",
|
|
"type": "string"
|
|
},
|
|
"video_metadata": {
|
|
"additionalProperties": true,
|
|
"title": "Video Metadata",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"title": "ChatCompletionFileObjectFile",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionFunctionMessage": {
|
|
"properties": {
|
|
"content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionTextObject"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Content"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"const": "function",
|
|
"title": "Role",
|
|
"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": {
|
|
"image_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionImageUrlObject"
|
|
}
|
|
],
|
|
"title": "Image Url"
|
|
},
|
|
"type": {
|
|
"const": "image_url",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"image_url"
|
|
],
|
|
"title": "ChatCompletionImageObject",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionImageUrlObject": {
|
|
"properties": {
|
|
"detail": {
|
|
"title": "Detail",
|
|
"type": "string"
|
|
},
|
|
"format": {
|
|
"title": "Format",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"url"
|
|
],
|
|
"title": "ChatCompletionImageUrlObject",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionMessageCustomToolCall": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"custom": {
|
|
"$ref": "#/components/schemas/ChatCompletionCustomToolCallPayload"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "custom",
|
|
"default": "custom",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"custom"
|
|
],
|
|
"title": "ChatCompletionMessageCustomToolCall",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionMessageToolCall": {
|
|
"additionalProperties": true,
|
|
"properties": {},
|
|
"title": "ChatCompletionMessageToolCall",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionReasoningItem": {
|
|
"description": "Represents an OpenAI Responses API reasoning item for round-tripping in conversation history.",
|
|
"properties": {
|
|
"encrypted_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Encrypted Content"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"summary": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionReasoningSummaryTextBlock"
|
|
},
|
|
"title": "Summary",
|
|
"type": "array"
|
|
},
|
|
"type": {
|
|
"const": "reasoning",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "ChatCompletionReasoningItem",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionReasoningSummaryTextBlock": {
|
|
"properties": {
|
|
"text": {
|
|
"title": "Text",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "summary_text",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "ChatCompletionReasoningSummaryTextBlock",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionRedactedThinkingBlock": {
|
|
"properties": {
|
|
"cache_control": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionCachedContent"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Control"
|
|
},
|
|
"data": {
|
|
"title": "Data",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "redacted_thinking",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "ChatCompletionRedactedThinkingBlock",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionSystemMessage": {
|
|
"properties": {
|
|
"cache_control": {
|
|
"$ref": "#/components/schemas/ChatCompletionCachedContent"
|
|
},
|
|
"content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
}
|
|
],
|
|
"title": "Content"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"const": "system",
|
|
"title": "Role",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"role",
|
|
"content"
|
|
],
|
|
"title": "ChatCompletionSystemMessage",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionTextObject": {
|
|
"properties": {
|
|
"cache_control": {
|
|
"$ref": "#/components/schemas/ChatCompletionCachedContent"
|
|
},
|
|
"text": {
|
|
"title": "Text",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "text",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"text"
|
|
],
|
|
"title": "ChatCompletionTextObject",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionThinkingBlock": {
|
|
"properties": {
|
|
"cache_control": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionCachedContent"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Control"
|
|
},
|
|
"signature": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Signature"
|
|
},
|
|
"thinking": {
|
|
"title": "Thinking",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "thinking",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "ChatCompletionThinkingBlock",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionTokenLogprob": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"bytes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "integer"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bytes"
|
|
},
|
|
"logprob": {
|
|
"title": "Logprob",
|
|
"type": "number"
|
|
},
|
|
"token": {
|
|
"title": "Token",
|
|
"type": "string"
|
|
},
|
|
"top_logprobs": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TopLogprob"
|
|
},
|
|
"title": "Top Logprobs",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"token",
|
|
"logprob",
|
|
"top_logprobs"
|
|
],
|
|
"title": "ChatCompletionTokenLogprob",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionToolCallChunk": {
|
|
"properties": {
|
|
"function": {
|
|
"$ref": "#/components/schemas/ChatCompletionToolCallFunctionChunk"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"index": {
|
|
"title": "Index",
|
|
"type": "integer"
|
|
},
|
|
"type": {
|
|
"const": "function",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"type",
|
|
"function",
|
|
"index"
|
|
],
|
|
"title": "ChatCompletionToolCallChunk",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionToolCallFunctionChunk": {
|
|
"properties": {
|
|
"arguments": {
|
|
"title": "Arguments",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"provider_specific_fields": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider Specific Fields"
|
|
}
|
|
},
|
|
"title": "ChatCompletionToolCallFunctionChunk",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionToolMessage": {
|
|
"properties": {
|
|
"content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionTextObject"
|
|
},
|
|
"type": "array"
|
|
}
|
|
],
|
|
"title": "Content"
|
|
},
|
|
"role": {
|
|
"const": "tool",
|
|
"title": "Role",
|
|
"type": "string"
|
|
},
|
|
"tool_call_id": {
|
|
"title": "Tool Call Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"role",
|
|
"content",
|
|
"tool_call_id"
|
|
],
|
|
"title": "ChatCompletionToolMessage",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionToolParam": {
|
|
"properties": {
|
|
"cache_control": {
|
|
"$ref": "#/components/schemas/ChatCompletionCachedContent"
|
|
},
|
|
"function": {
|
|
"$ref": "#/components/schemas/ChatCompletionToolParamFunctionChunk"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"const": "function",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"title": "Type"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"function"
|
|
],
|
|
"title": "ChatCompletionToolParam",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionToolParamFunctionChunk": {
|
|
"properties": {
|
|
"description": {
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"parameters": {
|
|
"additionalProperties": true,
|
|
"title": "Parameters",
|
|
"type": "object"
|
|
},
|
|
"strict": {
|
|
"title": "Strict",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "ChatCompletionToolParamFunctionChunk",
|
|
"type": "object"
|
|
},
|
|
"ChatCompletionUserMessage": {
|
|
"properties": {
|
|
"cache_control": {
|
|
"$ref": "#/components/schemas/ChatCompletionCachedContent"
|
|
},
|
|
"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"
|
|
},
|
|
"role": {
|
|
"const": "user",
|
|
"title": "Role",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"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": {
|
|
"detail": {
|
|
"title": "Detail",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"url"
|
|
],
|
|
"title": "ChatCompletionVideoUrlObject",
|
|
"type": "object"
|
|
},
|
|
"ChatMessage": {
|
|
"properties": {
|
|
"content": {
|
|
"title": "Content",
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"enum": [
|
|
"user",
|
|
"assistant"
|
|
],
|
|
"title": "Role",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"role",
|
|
"content"
|
|
],
|
|
"title": "ChatMessage",
|
|
"type": "object"
|
|
},
|
|
"ChoiceLogprobs": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"content": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionTokenLogprob"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Content"
|
|
}
|
|
},
|
|
"title": "ChoiceLogprobs",
|
|
"type": "object"
|
|
},
|
|
"Choices": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"finish_reason": {
|
|
"enum": [
|
|
"stop",
|
|
"content_filter",
|
|
"function_call",
|
|
"tool_calls",
|
|
"length",
|
|
"guardrail_intervened",
|
|
"eos",
|
|
"finish_reason_unspecified",
|
|
"malformed_function_call"
|
|
],
|
|
"title": "Finish Reason",
|
|
"type": "string"
|
|
},
|
|
"index": {
|
|
"title": "Index",
|
|
"type": "integer"
|
|
},
|
|
"logprobs": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ChoiceLogprobs"
|
|
},
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Logprobs"
|
|
},
|
|
"message": {
|
|
"$ref": "#/components/schemas/Message"
|
|
},
|
|
"provider_specific_fields": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider Specific Fields"
|
|
}
|
|
},
|
|
"required": [
|
|
"finish_reason",
|
|
"index",
|
|
"message"
|
|
],
|
|
"title": "Choices",
|
|
"type": "object"
|
|
},
|
|
"CitationsObject": {
|
|
"properties": {
|
|
"enabled": {
|
|
"title": "Enabled",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"enabled"
|
|
],
|
|
"title": "CitationsObject",
|
|
"type": "object"
|
|
},
|
|
"ClassifierLLMConfig": {
|
|
"description": "Configuration for the LLM-based complexity classifier.",
|
|
"properties": {
|
|
"model": {
|
|
"description": "Model name (from the router's model_list) to call for classification",
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"system_prompt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Replaces the built-in complexity rubric as the classifier's entire system role. When set, neither the default rubric nor the context-window closing line is appended, so the prompt owns the whole taxonomy and the tier names SIMPLE/MEDIUM/COMPLEX/REASONING become whatever buckets it defines: a prompt that classifies data sensitivity routes on that instead of on difficulty. Two consequences of full replacement. The default rubric's closing paragraph is the classifier's prompt-injection defense, telling it that the caller's quoted system prompt and prior turns are material to judge and never instructions; a replacement that omits it lets a caller ask for a tier and get it. And the heuristic fallback still scores complexity, so a router on some other taxonomy wants classifier_fallback='default_model'. Leave unset for the built-in rubric. Only applies when classifier_type is 'llm'.",
|
|
"title": "System Prompt"
|
|
},
|
|
"timeout_ms": {
|
|
"default": 3000,
|
|
"description": "Timeout budget for the classification call, in milliseconds",
|
|
"title": "Timeout Ms",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"title": "ClassifierLLMConfig",
|
|
"type": "object"
|
|
},
|
|
"CloudZeroExportRequest": {
|
|
"description": "Request model for CloudZero export operations",
|
|
"properties": {
|
|
"end_time_utc": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "End time for data export in UTC",
|
|
"title": "End Time Utc"
|
|
},
|
|
"limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional limit on number of records to export",
|
|
"title": "Limit"
|
|
},
|
|
"operation": {
|
|
"default": "replace_hourly",
|
|
"description": "CloudZero operation type (replace_hourly or sum)",
|
|
"title": "Operation",
|
|
"type": "string"
|
|
},
|
|
"start_time_utc": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Start time for data export in UTC",
|
|
"title": "Start Time Utc"
|
|
}
|
|
},
|
|
"title": "CloudZeroExportRequest",
|
|
"type": "object"
|
|
},
|
|
"CloudZeroExportResponse": {
|
|
"description": "Response model for CloudZero export operations",
|
|
"properties": {
|
|
"dry_run_data": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Dry run data including usage data and CBF transformed data",
|
|
"title": "Dry Run Data"
|
|
},
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"records_exported": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Records Exported"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"summary": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Summary statistics for dry run",
|
|
"title": "Summary"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"status"
|
|
],
|
|
"title": "CloudZeroExportResponse",
|
|
"type": "object"
|
|
},
|
|
"CloudZeroInitRequest": {
|
|
"description": "Request model for initializing CloudZero settings",
|
|
"properties": {
|
|
"api_key": {
|
|
"description": "CloudZero API key for authentication",
|
|
"title": "Api Key",
|
|
"type": "string"
|
|
},
|
|
"connection_id": {
|
|
"description": "CloudZero connection ID for data submission",
|
|
"title": "Connection Id",
|
|
"type": "string"
|
|
},
|
|
"timezone": {
|
|
"default": "UTC",
|
|
"description": "Timezone for date handling (default: UTC)",
|
|
"title": "Timezone",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"api_key",
|
|
"connection_id"
|
|
],
|
|
"title": "CloudZeroInitRequest",
|
|
"type": "object"
|
|
},
|
|
"CloudZeroInitResponse": {
|
|
"description": "Response model for CloudZero initialization",
|
|
"properties": {
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"status"
|
|
],
|
|
"title": "CloudZeroInitResponse",
|
|
"type": "object"
|
|
},
|
|
"CloudZeroSettingsUpdate": {
|
|
"description": "Request model for updating CloudZero settings",
|
|
"properties": {
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "New CloudZero API key for authentication",
|
|
"title": "Api Key"
|
|
},
|
|
"connection_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "New CloudZero connection ID for data submission",
|
|
"title": "Connection Id"
|
|
},
|
|
"timezone": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "New timezone for date handling",
|
|
"title": "Timezone"
|
|
}
|
|
},
|
|
"title": "CloudZeroSettingsUpdate",
|
|
"type": "object"
|
|
},
|
|
"CloudZeroSettingsView": {
|
|
"description": "Response model for viewing CloudZero settings with masked API key",
|
|
"properties": {
|
|
"api_key_masked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Masked API key showing only first 4 and last 4 characters",
|
|
"title": "Api Key Masked"
|
|
},
|
|
"connection_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "CloudZero connection ID for data submission",
|
|
"title": "Connection Id"
|
|
},
|
|
"status": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Configuration status",
|
|
"title": "Status"
|
|
},
|
|
"timezone": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Timezone for date handling",
|
|
"title": "Timezone"
|
|
}
|
|
},
|
|
"title": "CloudZeroSettingsView",
|
|
"type": "object"
|
|
},
|
|
"ComplexityTier": {
|
|
"description": "Complexity tiers for routing decisions.",
|
|
"enum": [
|
|
"SIMPLE",
|
|
"MEDIUM",
|
|
"COMPLEX",
|
|
"REASONING"
|
|
],
|
|
"title": "ComplexityTier",
|
|
"type": "string"
|
|
},
|
|
"ComplianceCheckRequest": {
|
|
"description": "Request payload for compliance check endpoints.\n\nMirrors the spend log fields needed for compliance evaluation.",
|
|
"properties": {
|
|
"guardrail_information": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Information"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"request_id": {
|
|
"title": "Request Id",
|
|
"type": "string"
|
|
},
|
|
"timestamp": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Timestamp"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"request_id"
|
|
],
|
|
"title": "ComplianceCheckRequest",
|
|
"type": "object"
|
|
},
|
|
"ComplianceCheckResult": {
|
|
"description": "Result of a single compliance check.",
|
|
"properties": {
|
|
"article": {
|
|
"title": "Article",
|
|
"type": "string"
|
|
},
|
|
"check_name": {
|
|
"title": "Check Name",
|
|
"type": "string"
|
|
},
|
|
"detail": {
|
|
"title": "Detail",
|
|
"type": "string"
|
|
},
|
|
"passed": {
|
|
"title": "Passed",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"check_name",
|
|
"article",
|
|
"passed",
|
|
"detail"
|
|
],
|
|
"title": "ComplianceCheckResult",
|
|
"type": "object"
|
|
},
|
|
"ComplianceResponse": {
|
|
"description": "Response from a compliance check endpoint.",
|
|
"properties": {
|
|
"checks": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ComplianceCheckResult"
|
|
},
|
|
"title": "Checks",
|
|
"type": "array"
|
|
},
|
|
"compliant": {
|
|
"title": "Compliant",
|
|
"type": "boolean"
|
|
},
|
|
"regulation": {
|
|
"title": "Regulation",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"compliant",
|
|
"regulation",
|
|
"checks"
|
|
],
|
|
"title": "ComplianceResponse",
|
|
"type": "object"
|
|
},
|
|
"ConfigFieldDelete": {
|
|
"properties": {
|
|
"config_type": {
|
|
"const": "general_settings",
|
|
"title": "Config Type",
|
|
"type": "string"
|
|
},
|
|
"field_name": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"config_type",
|
|
"field_name"
|
|
],
|
|
"title": "ConfigFieldDelete",
|
|
"type": "object"
|
|
},
|
|
"ConfigFieldInfo": {
|
|
"properties": {
|
|
"field_name": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
},
|
|
"field_value": {
|
|
"title": "Field Value"
|
|
}
|
|
},
|
|
"required": [
|
|
"field_name",
|
|
"field_value"
|
|
],
|
|
"title": "ConfigFieldInfo",
|
|
"type": "object"
|
|
},
|
|
"ConfigFieldUpdate": {
|
|
"properties": {
|
|
"config_type": {
|
|
"const": "general_settings",
|
|
"title": "Config Type",
|
|
"type": "string"
|
|
},
|
|
"field_name": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
},
|
|
"field_value": {
|
|
"title": "Field Value"
|
|
}
|
|
},
|
|
"required": [
|
|
"field_name",
|
|
"field_value",
|
|
"config_type"
|
|
],
|
|
"title": "ConfigFieldUpdate",
|
|
"type": "object"
|
|
},
|
|
"ConfigGeneralSettings": {
|
|
"description": "Documents all the fields supported by `general_settings` in config.yaml",
|
|
"properties": {
|
|
"alert_to_webhook_url": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Mapping of alert type to webhook url. e.g. `alert_to_webhook_url: {'budget_alerts': 'https://nothooks.slack.com/services/T00000000/B00000000/XXXXXXXXXXXXXXXXXXXXXXXX'}`",
|
|
"title": "Alert To Webhook Url"
|
|
},
|
|
"alert_types": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AlertType"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of alerting types. By default it is all alerts",
|
|
"title": "Alert Types"
|
|
},
|
|
"alerting": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of alerting integrations. Today, just slack - `alerting: ['slack']`",
|
|
"title": "Alerting"
|
|
},
|
|
"alerting_args": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Controllable params for slack alerting - e.g. ttl in cache.",
|
|
"title": "Alerting Args"
|
|
},
|
|
"alerting_threshold": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "sends alerts if requests hang for 5min+",
|
|
"title": "Alerting Threshold"
|
|
},
|
|
"allow_cli_sso_verification_uri_complete": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "opt-in to RFC 8628 verification_uri_complete for the CLI SSO device flow, pre-filling the user_code in the browser. Off by default; intended for same-host clients where the device that starts the flow and the browser run on the same machine",
|
|
"title": "Allow Cli Sso Verification Uri Complete"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Proxy API Endpoints you want users to be able to access",
|
|
"title": "Allowed Routes"
|
|
},
|
|
"background_health_checks": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "run health checks in background",
|
|
"title": "Background Health Checks"
|
|
},
|
|
"cancel_on_disconnect": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "cancel the in-flight upstream LLM request (non-streaming) when the client disconnects, freeing backend capacity (e.g. a vLLM GPU slot); the request is logged as a 499 failure",
|
|
"title": "Cancel On Disconnect"
|
|
},
|
|
"completion_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "proxy level default model for all chat completion calls",
|
|
"title": "Completion Model"
|
|
},
|
|
"coordination_redis": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/CoordinationRedisParams"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "standalone Redis for cross-pod coordination (tpm/rpm rate limits, spend tracking, pod lock manager, shared health checks), configured independently of the response-cache backend; takes precedence over borrowing the `cache_params` Redis and over the REDIS_* env fallback"
|
|
},
|
|
"custom_auth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "override user_api_key_auth with your own auth script - https://docs.litellm.ai/docs/proxy/virtual_keys#custom-auth",
|
|
"title": "Custom Auth"
|
|
},
|
|
"database_args": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/DynamoDBArgs"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "custom args for instantiating dynamodb client - e.g. billing provision"
|
|
},
|
|
"database_connect_timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Prisma `connect_timeout` URL param (seconds). Bounds how long the engine waits to establish a new connection before failing. Defaults to Prisma's built-in value when unset.",
|
|
"title": "Database Connect Timeout"
|
|
},
|
|
"database_connection_pool_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 10,
|
|
"description": "default connection pool for prisma client connecting to postgres db",
|
|
"title": "Database Connection Pool Limit"
|
|
},
|
|
"database_connection_timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 60,
|
|
"description": "default timeout for a connection to the database",
|
|
"title": "Database Connection Timeout"
|
|
},
|
|
"database_disable_prepared_statements": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Disable server-side prepared statements by setting Prisma's `pgbouncer=true` URL param. Use this for pgbouncer transaction-pooling deployments, or to prevent the 'cached plan must not change result type' error that pooled connections hit during rolling schema migrations. An explicit `pgbouncer` in `database_extra_connection_params` takes precedence.",
|
|
"title": "Database Disable Prepared Statements"
|
|
},
|
|
"database_extra_connection_params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Escape hatch: extra key/value pairs appended verbatim to the Prisma DATABASE_URL / DIRECT_URL query string (e.g. `sslmode`, `pgbouncer`, `statement_cache_size`). Keys here override any default LiteLLM sets.",
|
|
"title": "Database Extra Connection Params"
|
|
},
|
|
"database_socket_timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Prisma `socket_timeout` URL param (seconds). When set, an idle/slow connection that has not produced data within this window is closed. This is the main knob for capping idle DB connections from LiteLLM.",
|
|
"title": "Database Socket Timeout"
|
|
},
|
|
"database_type": {
|
|
"anyOf": [
|
|
{
|
|
"const": "dynamo_db",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "to use dynamodb instead of postgres db",
|
|
"title": "Database Type"
|
|
},
|
|
"database_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "connect to a postgres db - needed for generating temporary keys + tracking spend / key",
|
|
"title": "Database Url"
|
|
},
|
|
"disable_auto_add_proxy_admin_to_teams": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "By default, the user calling /team/new is automatically added to the new team as a team admin. If True, proxy admins are no longer auto-added; members explicitly listed in members_with_roles are unaffected. Default is False.",
|
|
"title": "Disable Auto Add Proxy Admin To Teams"
|
|
},
|
|
"disable_budget_reservation": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "If True, disables the optimistic per-request budget reservation introduced in v1.84.0. WARNING: This weakens hard budget enforcement. Without the reservation, a burst of concurrent requests from a single key can each pass the read-time spend check before any of them is charged, allowing a configured budget to be exceeded under high concurrency. Budgets are still evaluated on every request at read time, so an already-exhausted budget is still rejected. Enable only if your deployment is experiencing phantom BudgetExceededError responses caused by leaked reservations (see GitHub issue #27639). A proxy-level WARNING is logged on every request while this flag is active as a reminder that hard enforcement is relaxed.",
|
|
"title": "Disable Budget Reservation"
|
|
},
|
|
"enable_public_model_hub": {
|
|
"default": false,
|
|
"description": "Public model hub for users to see what models they have access to, supported openai params, etc.",
|
|
"title": "Enable Public Model Hub",
|
|
"type": "boolean"
|
|
},
|
|
"forward_client_headers_to_llm_api": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "If True, forwards client headers (e.g. Authorization) to the LLM API. Required for Claude Code with Max subscription.",
|
|
"title": "Forward Client Headers To Llm Api"
|
|
},
|
|
"global_max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "global max parallel requests to allow for a proxy instance.",
|
|
"title": "Global Max Parallel Requests"
|
|
},
|
|
"health_check_concurrency": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "limit concurrent health checks per cycle; when unset, health checks run without a concurrency cap",
|
|
"title": "Health Check Concurrency"
|
|
},
|
|
"health_check_interval": {
|
|
"default": 300,
|
|
"description": "background health check interval in seconds",
|
|
"title": "Health Check Interval",
|
|
"type": "integer"
|
|
},
|
|
"health_check_skip_disabled_background_models": {
|
|
"default": false,
|
|
"description": "When true, deployments with model_info.disable_background_health_check are skipped for on-demand GET /health as well as the background health loop.",
|
|
"title": "Health Check Skip Disabled Background Models",
|
|
"type": "boolean"
|
|
},
|
|
"infer_model_from_keys": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "for `/models` endpoint, infers available model based on environment keys (e.g. OPENAI_API_KEY)",
|
|
"title": "Infer Model From Keys"
|
|
},
|
|
"key_management_system": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/KeyManagementSystem"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "key manager to load keys from / decrypt keys with"
|
|
},
|
|
"master_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "require a key for all calls to proxy",
|
|
"title": "Master Key"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "maximum parallel requests for each api key",
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"max_request_size_mb": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "max request size in MB, if a request is larger than this size it will be rejected",
|
|
"title": "Max Request Size Mb"
|
|
},
|
|
"max_response_size_mb": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "max response size in MB, if a response is larger than this size it will be rejected",
|
|
"title": "Max Response Size Mb"
|
|
},
|
|
"maximum_autorouter_session_retention_period": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Maximum retention period for auto-router benchmark session rollup rows (e.g., '365d'). Rows whose last turn is older than this are deleted by the spend log cleanup job, on that job's schedule. Unset means rollup rows are never deleted.",
|
|
"title": "Maximum Autorouter Session Retention Period"
|
|
},
|
|
"maximum_spend_logs_retention_period": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Maximum retention period for spend logs (e.g., '7d' for 7 days). Logs older than this will be deleted.",
|
|
"title": "Maximum Spend Logs Retention Period"
|
|
},
|
|
"mcp_internal_ip_ranges": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Custom CIDR ranges that define internal/private networks for MCP access control. When set, only these ranges are treated as internal. Defaults to RFC 1918 private ranges (10.0.0.0/8, 172.16.0.0/12, 192.168.0.0/16, 127.0.0.0/8).",
|
|
"title": "Mcp Internal Ip Ranges"
|
|
},
|
|
"mcp_required_fields": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of MCP server fields that must be filled in for a submission to pass standards checks (e.g. ['description', 'source_url', 'alias']).",
|
|
"title": "Mcp Required Fields"
|
|
},
|
|
"mcp_trusted_proxy_ranges": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "CIDR ranges of trusted reverse proxies. When set, X-Forwarded-For and X-Forwarded-* origin headers are only trusted from these IPs.",
|
|
"title": "Mcp Trusted Proxy Ranges"
|
|
},
|
|
"mcp_xff_num_trusted_hops": {
|
|
"anyOf": [
|
|
{
|
|
"minimum": 1.0,
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Number of trusted reverse proxies/load balancers in front of the gateway that append to X-Forwarded-For. When set (and mcp_trusted_proxy_ranges validates the direct peer), the client IP for MCP access control is read this many entries from the right of the chain instead of the spoofable leftmost value, defeating append-style X-Forwarded-For forgery.",
|
|
"title": "Mcp Xff Num Trusted Hops"
|
|
},
|
|
"otel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "[BETA] OpenTelemetry support - this might change, use with caution.",
|
|
"title": "Otel"
|
|
},
|
|
"pass_through_endpoints": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/PassThroughGenericEndpoint"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Set-up pass-through endpoints for provider-specific endpoints. Docs - https://docs.litellm.ai/docs/proxy/pass_through",
|
|
"title": "Pass Through Endpoints"
|
|
},
|
|
"pass_through_request_timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default upstream request timeout in seconds for native and custom pass-through endpoints that use pass_through_request. Defaults to 600 when unset.",
|
|
"title": "Pass Through Request Timeout"
|
|
},
|
|
"plugins": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginConfig"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "external services registered as embeddable UI plugins",
|
|
"title": "Plugins"
|
|
},
|
|
"provider_url_destination_allowed_hosts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Allowlist of hosts a request may redirect a provider call's destination URL to.",
|
|
"title": "Provider Url Destination Allowed Hosts"
|
|
},
|
|
"proxy_config_reload_interval_seconds": {
|
|
"default": 30,
|
|
"description": "how often (in seconds) each pod reloads config-in-DB objects (models, credentials, guardrails, etc.) when store_model_in_db is enabled; lower values speed up multi-pod convergence at the cost of more DB load. Applied on proxy startup",
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Proxy Config Reload Interval Seconds",
|
|
"type": "integer"
|
|
},
|
|
"reject_clientside_metadata_tags": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When set to True, rejects requests that contain client-side 'metadata.tags' to prevent users from influencing budgets by sending different tags. Tags can only be inherited from the API key metadata.",
|
|
"title": "Reject Clientside Metadata Tags"
|
|
},
|
|
"store_model_in_db": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "If True, models and config are stored in and loaded from the database. Default is False.",
|
|
"title": "Store Model In Db"
|
|
},
|
|
"store_prompts_in_spend_logs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "If True, stores request messages and responses in spend logs. Default is False.",
|
|
"title": "Store Prompts In Spend Logs"
|
|
},
|
|
"supported_db_objects": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/SupportedDBObjectType"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Fine-grained control over which object types to load from the database when store_model_in_db is True. Available types: 'models', 'mcp', 'guardrails', 'vector_stores', 'pass_through_endpoints', 'prompts', 'model_cost_map', 'tools', 'config_overrides'. If not set, all objects are loaded (default behavior).",
|
|
"title": "Supported Db Objects"
|
|
},
|
|
"trusted_proxy_ranges": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "CIDR ranges of trusted reverse proxies allowed to provide identity headers for header-based auth paths such as enable_oauth2_proxy_auth and custom_ui_sso_sign_in_handler.",
|
|
"title": "Trusted Proxy Ranges"
|
|
},
|
|
"ui_access_mode": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"admin_only",
|
|
"all"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "all",
|
|
"description": "Control access to the Proxy UI",
|
|
"title": "Ui Access Mode"
|
|
},
|
|
"use_azure_key_vault": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "load keys from azure key vault",
|
|
"title": "Use Azure Key Vault"
|
|
},
|
|
"use_google_kms": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "decrypt keys with google kms",
|
|
"title": "Use Google Kms"
|
|
},
|
|
"use_spend_logs_partitioning": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "If True and LiteLLM_SpendLogs has been converted to a range-partitioned table (db_scripts/partition_spend_logs.sql), retention cleanup drops expired partitions instead of deleting rows, and pre-creates upcoming partitions. Default is False.",
|
|
"title": "Use Spend Logs Partitioning"
|
|
},
|
|
"user_header_mappings": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/UserHeaderMapping"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Header Mappings"
|
|
},
|
|
"user_header_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "[DEPRECATED] Use 'user_header_mappings' instead. When set, the header value is treated as the end user id unless overridden by user_header_mappings.",
|
|
"title": "User Header Name"
|
|
},
|
|
"user_mcp_management_mode": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"restricted",
|
|
"view_all"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Controls how non-admin users interact with MCP servers in the dashboard. 'restricted' shows only accessible servers, 'view_all' lists every server in read-only mode.",
|
|
"title": "User Mcp Management Mode"
|
|
},
|
|
"user_url_allowed_hosts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "SSRF allowlist for user-supplied URLs. Entries are `hostname` or `hostname:port` (bracketed for IPv6, e.g. `[::1]:8080`). Allowlisted hosts skip the blocked-network check in validate_url() but still resolve DNS. Use this to permit legitimate internal targets, e.g. an internal OpenAPI/MCP server.",
|
|
"title": "User Url Allowed Hosts"
|
|
},
|
|
"user_url_validation": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Master switch for the SSRF guard applied to user-supplied URLs (image_url, file_url, MCP/OpenAPI spec URLs, etc). Defaults to True. Set to False to disable DNS/IP validation entirely (not recommended).",
|
|
"title": "User Url Validation"
|
|
}
|
|
},
|
|
"title": "ConfigGeneralSettings",
|
|
"type": "object"
|
|
},
|
|
"ConfigList": {
|
|
"properties": {
|
|
"field_default_value": {
|
|
"title": "Field Default Value"
|
|
},
|
|
"field_description": {
|
|
"title": "Field Description",
|
|
"type": "string"
|
|
},
|
|
"field_name": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
},
|
|
"field_options": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Field Options"
|
|
},
|
|
"field_tab": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Field Tab"
|
|
},
|
|
"field_type": {
|
|
"title": "Field Type",
|
|
"type": "string"
|
|
},
|
|
"field_value": {
|
|
"title": "Field Value"
|
|
},
|
|
"nested_fields": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/FieldDetail"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Nested Fields"
|
|
},
|
|
"premium_field": {
|
|
"default": false,
|
|
"title": "Premium Field",
|
|
"type": "boolean"
|
|
},
|
|
"stored_in_db": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Stored In Db"
|
|
}
|
|
},
|
|
"required": [
|
|
"field_name",
|
|
"field_type",
|
|
"field_description",
|
|
"field_value",
|
|
"stored_in_db",
|
|
"field_default_value"
|
|
],
|
|
"title": "ConfigList",
|
|
"type": "object"
|
|
},
|
|
"ConfigOverrideSettingsResponse": {
|
|
"description": "Response model for config override settings GET endpoints.",
|
|
"properties": {
|
|
"config_type": {
|
|
"description": "The type of config override",
|
|
"title": "Config Type",
|
|
"type": "string"
|
|
},
|
|
"field_schema": {
|
|
"additionalProperties": true,
|
|
"description": "Schema information for UI rendering",
|
|
"title": "Field Schema",
|
|
"type": "object"
|
|
},
|
|
"values": {
|
|
"additionalProperties": true,
|
|
"description": "Current configuration values (sensitive fields decrypted)",
|
|
"title": "Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"config_type",
|
|
"values",
|
|
"field_schema"
|
|
],
|
|
"title": "ConfigOverrideSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"ConfigYAML": {
|
|
"description": "Documents all the fields supported by the config.yaml",
|
|
"properties": {
|
|
"environment_variables": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Object to pass in additional environment variables via POST request",
|
|
"title": "Environment Variables"
|
|
},
|
|
"general_settings": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ConfigGeneralSettings"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"litellm_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "litellm Module settings. See __init__.py for all, example litellm.drop_params=True, litellm.set_verbose=True, litellm.api_base, litellm.cache",
|
|
"title": "Litellm Settings"
|
|
},
|
|
"model_list": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ModelParams"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of supported models on the server, with model-specific configs",
|
|
"title": "Model List"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UpdateRouterConfig"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "litellm router object settings. See router.py __init__ for all, example router.num_retries=5, router.timeout=5, router.max_retries=5, router.retry_after=5"
|
|
}
|
|
},
|
|
"title": "ConfigYAML",
|
|
"type": "object"
|
|
},
|
|
"ConfigurableClientsideParamsCustomAuth-Input": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"api_base": {
|
|
"title": "Api Base",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"api_base"
|
|
],
|
|
"title": "ConfigurableClientsideParamsCustomAuth",
|
|
"type": "object"
|
|
},
|
|
"ConfigurableClientsideParamsCustomAuth-Output": {
|
|
"properties": {
|
|
"api_base": {
|
|
"title": "Api Base",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"api_base"
|
|
],
|
|
"title": "ConfigurableClientsideParamsCustomAuth",
|
|
"type": "object"
|
|
},
|
|
"ContentFilterAction": {
|
|
"description": "Action to take when content filter detects a match",
|
|
"enum": [
|
|
"BLOCK",
|
|
"MASK"
|
|
],
|
|
"title": "ContentFilterAction",
|
|
"type": "string"
|
|
},
|
|
"ContentFilterCategoryConfig": {
|
|
"additionalProperties": true,
|
|
"description": "category: \"harmful_self_harm\"\nenabled: true\naction: \"BLOCK\"\nseverity_threshold: \"medium\"\ncategory_file: \"/path/to/custom_file.yaml\" # optional override",
|
|
"properties": {
|
|
"action": {
|
|
"description": "The action to take when the category is detected",
|
|
"enum": [
|
|
"BLOCK",
|
|
"MASK"
|
|
],
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"category": {
|
|
"description": "The category to detect",
|
|
"title": "Category",
|
|
"type": "string"
|
|
},
|
|
"category_file": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional override. Use your own category file instead of the default one.",
|
|
"title": "Category File"
|
|
},
|
|
"enabled": {
|
|
"default": true,
|
|
"description": "Whether the category is enabled",
|
|
"title": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"severity_threshold": {
|
|
"default": "medium",
|
|
"description": "The severity threshold to detect the category",
|
|
"enum": [
|
|
"high",
|
|
"medium",
|
|
"low"
|
|
],
|
|
"title": "Severity Threshold",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"category",
|
|
"action"
|
|
],
|
|
"title": "ContentFilterCategoryConfig",
|
|
"type": "object"
|
|
},
|
|
"ContentFilterPattern": {
|
|
"description": "Represents a content filter pattern (prebuilt or custom regex)",
|
|
"properties": {
|
|
"action": {
|
|
"$ref": "#/components/schemas/ContentFilterAction",
|
|
"description": "Action to take when pattern matches (BLOCK or MASK)"
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name for this pattern (used in logging and error messages)",
|
|
"title": "Name"
|
|
},
|
|
"pattern": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Custom regex pattern. Required if pattern_type is 'regex'",
|
|
"title": "Pattern"
|
|
},
|
|
"pattern_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name of prebuilt pattern (e.g., 'us_ssn', 'credit_card'). Required if pattern_type is 'prebuilt'",
|
|
"title": "Pattern Name"
|
|
},
|
|
"pattern_type": {
|
|
"description": "Type of pattern: 'prebuilt' for predefined patterns or 'regex' for custom",
|
|
"enum": [
|
|
"prebuilt",
|
|
"regex"
|
|
],
|
|
"title": "Pattern Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"pattern_type",
|
|
"action"
|
|
],
|
|
"title": "ContentFilterPattern",
|
|
"type": "object"
|
|
},
|
|
"CoordinationRedisNode": {
|
|
"description": "A single startup node of a cluster-mode Redis used for proxy coordination.",
|
|
"properties": {
|
|
"host": {
|
|
"description": "hostname of the cluster node",
|
|
"title": "Host",
|
|
"type": "string"
|
|
},
|
|
"port": {
|
|
"description": "port of the cluster node",
|
|
"title": "Port",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"host",
|
|
"port"
|
|
],
|
|
"title": "CoordinationRedisNode",
|
|
"type": "object"
|
|
},
|
|
"CoordinationRedisParams": {
|
|
"additionalProperties": true,
|
|
"description": "Connection params for the proxy's coordination Redis (cross-pod tpm/rpm rate\nlimits, spend tracking, pod lock manager, shared health checks), configured\nindependently of the response-cache backend in `litellm_settings.cache_params`.",
|
|
"properties": {
|
|
"host": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Redis hostname",
|
|
"title": "Host"
|
|
},
|
|
"password": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Redis password",
|
|
"title": "Password"
|
|
},
|
|
"port": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Redis port",
|
|
"title": "Port"
|
|
},
|
|
"sentinel_nodes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "sentinel [host, port] pairs; when set a sentinel-managed client is used",
|
|
"title": "Sentinel Nodes"
|
|
},
|
|
"sentinel_password": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "password for the sentinel nodes",
|
|
"title": "Sentinel Password"
|
|
},
|
|
"service_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "sentinel service name",
|
|
"title": "Service Name"
|
|
},
|
|
"ssl": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "connect over TLS",
|
|
"title": "Ssl"
|
|
},
|
|
"startup_nodes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/CoordinationRedisNode"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "cluster-mode startup nodes; when set a cluster client is used",
|
|
"title": "Startup Nodes"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "full Redis connection url, e.g. redis://:pass@host:6379",
|
|
"title": "Url"
|
|
},
|
|
"username": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Redis username",
|
|
"title": "Username"
|
|
}
|
|
},
|
|
"title": "CoordinationRedisParams",
|
|
"type": "object"
|
|
},
|
|
"CoordinationRedisSettingsField": {
|
|
"properties": {
|
|
"field_default": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Field Default"
|
|
},
|
|
"field_description": {
|
|
"title": "Field Description",
|
|
"type": "string"
|
|
},
|
|
"field_name": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
},
|
|
"field_type": {
|
|
"title": "Field Type",
|
|
"type": "string"
|
|
},
|
|
"field_value": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Field Value"
|
|
},
|
|
"section": {
|
|
"enum": [
|
|
"connection",
|
|
"cluster",
|
|
"sentinel"
|
|
],
|
|
"title": "Section",
|
|
"type": "string"
|
|
},
|
|
"ui_field_name": {
|
|
"title": "Ui Field Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"field_name",
|
|
"field_type",
|
|
"field_description",
|
|
"ui_field_name",
|
|
"section"
|
|
],
|
|
"title": "CoordinationRedisSettingsField",
|
|
"type": "object"
|
|
},
|
|
"CoordinationRedisSettingsRequest": {
|
|
"properties": {
|
|
"settings": {
|
|
"additionalProperties": true,
|
|
"description": "Coordination Redis connection params",
|
|
"title": "Settings",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"settings"
|
|
],
|
|
"title": "CoordinationRedisSettingsRequest",
|
|
"type": "object"
|
|
},
|
|
"CoordinationRedisSettingsResponse": {
|
|
"properties": {
|
|
"fields": {
|
|
"description": "List of all configurable coordination Redis settings with metadata",
|
|
"items": {
|
|
"$ref": "#/components/schemas/CoordinationRedisSettingsField"
|
|
},
|
|
"title": "Fields",
|
|
"type": "array"
|
|
},
|
|
"source": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"coordination_redis",
|
|
"cache_backend",
|
|
"environment"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Where the proxy's coordination Redis comes from; null when it has none",
|
|
"title": "Source"
|
|
},
|
|
"values": {
|
|
"additionalProperties": true,
|
|
"description": "Current coordination Redis settings, with credentials redacted",
|
|
"title": "Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"values",
|
|
"fields",
|
|
"source"
|
|
],
|
|
"title": "CoordinationRedisSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"CoordinationRedisTestResponse": {
|
|
"properties": {
|
|
"error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Error message if the connection failed",
|
|
"title": "Error"
|
|
},
|
|
"status": {
|
|
"description": "Connection status: 'healthy' or 'unhealthy'",
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"status"
|
|
],
|
|
"title": "CoordinationRedisTestResponse",
|
|
"type": "object"
|
|
},
|
|
"CostEstimateRequest": {
|
|
"description": "Request body for /cost/estimate endpoint.",
|
|
"properties": {
|
|
"input_tokens": {
|
|
"description": "Expected input tokens per request",
|
|
"minimum": 0.0,
|
|
"title": "Input Tokens",
|
|
"type": "integer"
|
|
},
|
|
"model": {
|
|
"description": "Model name (from /model_group/info)",
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"num_requests_per_day": {
|
|
"anyOf": [
|
|
{
|
|
"minimum": 0.0,
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Number of requests per day",
|
|
"title": "Num Requests Per Day"
|
|
},
|
|
"num_requests_per_month": {
|
|
"anyOf": [
|
|
{
|
|
"minimum": 0.0,
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Number of requests per month",
|
|
"title": "Num Requests Per Month"
|
|
},
|
|
"output_tokens": {
|
|
"description": "Expected output tokens per request",
|
|
"minimum": 0.0,
|
|
"title": "Output Tokens",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"input_tokens",
|
|
"output_tokens"
|
|
],
|
|
"title": "CostEstimateRequest",
|
|
"type": "object"
|
|
},
|
|
"CostEstimateResponse": {
|
|
"description": "Response body for /cost/estimate endpoint.",
|
|
"properties": {
|
|
"cost_per_request": {
|
|
"description": "Total cost per request (includes margin)",
|
|
"title": "Cost Per Request",
|
|
"type": "number"
|
|
},
|
|
"daily_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Total daily cost (includes margin)",
|
|
"title": "Daily Cost"
|
|
},
|
|
"daily_input_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Daily input token cost",
|
|
"title": "Daily Input Cost"
|
|
},
|
|
"daily_margin_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Daily margin/fee",
|
|
"title": "Daily Margin Cost"
|
|
},
|
|
"daily_output_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Daily output token cost",
|
|
"title": "Daily Output Cost"
|
|
},
|
|
"input_cost_per_request": {
|
|
"description": "Input token cost per request (before margin)",
|
|
"title": "Input Cost Per Request",
|
|
"type": "number"
|
|
},
|
|
"input_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token"
|
|
},
|
|
"input_tokens": {
|
|
"title": "Input Tokens",
|
|
"type": "integer"
|
|
},
|
|
"margin_cost_per_request": {
|
|
"default": 0.0,
|
|
"description": "Margin/fee added per request",
|
|
"title": "Margin Cost Per Request",
|
|
"type": "number"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"monthly_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Total monthly cost (includes margin)",
|
|
"title": "Monthly Cost"
|
|
},
|
|
"monthly_input_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Monthly input token cost",
|
|
"title": "Monthly Input Cost"
|
|
},
|
|
"monthly_margin_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Monthly margin/fee",
|
|
"title": "Monthly Margin Cost"
|
|
},
|
|
"monthly_output_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Monthly output token cost",
|
|
"title": "Monthly Output Cost"
|
|
},
|
|
"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"
|
|
},
|
|
"output_cost_per_request": {
|
|
"description": "Output token cost per request (before margin)",
|
|
"title": "Output Cost Per Request",
|
|
"type": "number"
|
|
},
|
|
"output_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token"
|
|
},
|
|
"output_tokens": {
|
|
"title": "Output Tokens",
|
|
"type": "integer"
|
|
},
|
|
"provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"input_tokens",
|
|
"output_tokens",
|
|
"cost_per_request",
|
|
"input_cost_per_request",
|
|
"output_cost_per_request"
|
|
],
|
|
"title": "CostEstimateResponse",
|
|
"type": "object"
|
|
},
|
|
"CreateCredentialItem": {
|
|
"properties": {
|
|
"credential_info": {
|
|
"additionalProperties": true,
|
|
"title": "Credential Info",
|
|
"type": "object"
|
|
},
|
|
"credential_name": {
|
|
"title": "Credential Name",
|
|
"type": "string"
|
|
},
|
|
"credential_values": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Credential Values"
|
|
},
|
|
"model_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"credential_name",
|
|
"credential_info"
|
|
],
|
|
"title": "CreateCredentialItem",
|
|
"type": "object"
|
|
},
|
|
"CreateGuardrailRequest": {
|
|
"properties": {
|
|
"guardrail": {
|
|
"$ref": "#/components/schemas/Guardrail"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail"
|
|
],
|
|
"title": "CreateGuardrailRequest",
|
|
"type": "object"
|
|
},
|
|
"CreateJWTKeyMappingRequest": {
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"jwt_claim_name": {
|
|
"title": "Jwt Claim Name",
|
|
"type": "string"
|
|
},
|
|
"jwt_claim_value": {
|
|
"title": "Jwt Claim Value",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"jwt_claim_name",
|
|
"jwt_claim_value",
|
|
"key"
|
|
],
|
|
"title": "CreateJWTKeyMappingRequest",
|
|
"type": "object"
|
|
},
|
|
"CreateSearchToolRequest": {
|
|
"properties": {
|
|
"search_tool": {
|
|
"$ref": "#/components/schemas/SearchTool"
|
|
}
|
|
},
|
|
"required": [
|
|
"search_tool"
|
|
],
|
|
"title": "CreateSearchToolRequest",
|
|
"type": "object"
|
|
},
|
|
"CredentialItem": {
|
|
"properties": {
|
|
"credential_info": {
|
|
"additionalProperties": true,
|
|
"title": "Credential Info",
|
|
"type": "object"
|
|
},
|
|
"credential_name": {
|
|
"title": "Credential Name",
|
|
"type": "string"
|
|
},
|
|
"credential_values": {
|
|
"additionalProperties": true,
|
|
"title": "Credential Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"credential_name",
|
|
"credential_info",
|
|
"credential_values"
|
|
],
|
|
"title": "CredentialItem",
|
|
"type": "object"
|
|
},
|
|
"CustomerResponse": {
|
|
"description": "Customer object returned by the /customer read+write endpoints.\n\nNests the full budget response model so server-managed budget fields\n(budget_reset_at, created_at) survive response_model filtering, rather than\nthe narrow write-allowlist shape LiteLLM_EndUserTable carries for internal use.",
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"allowed_model_region": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"eu",
|
|
"us"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Model Region"
|
|
},
|
|
"blocked": {
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Model"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTableFull"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id",
|
|
"blocked"
|
|
],
|
|
"title": "CustomerResponse",
|
|
"type": "object"
|
|
},
|
|
"DailySpendData": {
|
|
"properties": {
|
|
"breakdown": {
|
|
"$ref": "#/components/schemas/BreakdownMetrics"
|
|
},
|
|
"date": {
|
|
"format": "date",
|
|
"title": "Date",
|
|
"type": "string"
|
|
},
|
|
"metrics": {
|
|
"$ref": "#/components/schemas/SpendMetrics"
|
|
}
|
|
},
|
|
"required": [
|
|
"date",
|
|
"metrics"
|
|
],
|
|
"title": "DailySpendData",
|
|
"type": "object"
|
|
},
|
|
"DailySpendMetadata": {
|
|
"properties": {
|
|
"has_more": {
|
|
"default": false,
|
|
"title": "Has More",
|
|
"type": "boolean"
|
|
},
|
|
"page": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"total_api_requests": {
|
|
"default": 0,
|
|
"title": "Total Api Requests",
|
|
"type": "integer"
|
|
},
|
|
"total_autorouter_savings_spend": {
|
|
"default": 0.0,
|
|
"title": "Total Autorouter Savings Spend",
|
|
"type": "number"
|
|
},
|
|
"total_cache_creation_input_tokens": {
|
|
"default": 0,
|
|
"title": "Total Cache Creation Input Tokens",
|
|
"type": "integer"
|
|
},
|
|
"total_cache_read_input_tokens": {
|
|
"default": 0,
|
|
"title": "Total Cache Read Input Tokens",
|
|
"type": "integer"
|
|
},
|
|
"total_completion_tokens": {
|
|
"default": 0,
|
|
"title": "Total Completion Tokens",
|
|
"type": "integer"
|
|
},
|
|
"total_compression_saved_tokens": {
|
|
"default": 0,
|
|
"title": "Total Compression Saved Tokens",
|
|
"type": "integer"
|
|
},
|
|
"total_compression_savings_spend": {
|
|
"default": 0.0,
|
|
"title": "Total Compression Savings Spend",
|
|
"type": "number"
|
|
},
|
|
"total_failed_requests": {
|
|
"default": 0,
|
|
"title": "Total Failed Requests",
|
|
"type": "integer"
|
|
},
|
|
"total_pages": {
|
|
"default": 1,
|
|
"title": "Total Pages",
|
|
"type": "integer"
|
|
},
|
|
"total_prompt_caching_savings_spend": {
|
|
"default": 0.0,
|
|
"title": "Total Prompt Caching Savings Spend",
|
|
"type": "number"
|
|
},
|
|
"total_prompt_tokens": {
|
|
"default": 0,
|
|
"title": "Total Prompt Tokens",
|
|
"type": "integer"
|
|
},
|
|
"total_spend": {
|
|
"default": 0.0,
|
|
"title": "Total Spend",
|
|
"type": "number"
|
|
},
|
|
"total_successful_requests": {
|
|
"default": 0,
|
|
"title": "Total Successful Requests",
|
|
"type": "integer"
|
|
},
|
|
"total_tokens": {
|
|
"default": 0,
|
|
"title": "Total Tokens",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"title": "DailySpendMetadata",
|
|
"type": "object"
|
|
},
|
|
"DefaultInternalUserParams": {
|
|
"description": "Default parameters to apply when a new user signs in via SSO or is created on the /user/new API endpoint",
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default budget duration for new users (e.g. 'daily', 'weekly', 'monthly')",
|
|
"title": "Budget Duration"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default maximum budget (in USD) for new users created",
|
|
"title": "Max Budget"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default list of models that new users can access",
|
|
"title": "Models"
|
|
},
|
|
"teams": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/NewUserRequestTeam"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default teams for new users created",
|
|
"title": "Teams"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"proxy_admin",
|
|
"proxy_admin_viewer",
|
|
"internal_user",
|
|
"internal_user_viewer"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "internal_user_viewer",
|
|
"description": "Default role assigned to new users created",
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"title": "DefaultInternalUserParams",
|
|
"type": "object"
|
|
},
|
|
"DefaultTeamSSOParams": {
|
|
"description": "Default parameters to apply when a new team is automatically created by LiteLLM via SSO Groups",
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default budget duration for new automatically created teams (e.g. 'daily', 'weekly', 'monthly')",
|
|
"title": "Budget Duration"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default maximum budget (in USD) for new automatically created teams",
|
|
"title": "Max Budget"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"description": "Default list of models that new automatically created teams can access",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default organization for new teams created without an explicit organization",
|
|
"title": "Organization Id"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default rpm limit for new automatically created teams",
|
|
"title": "Rpm Limit"
|
|
},
|
|
"team_member_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeyManagementRoutes"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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.",
|
|
"title": "Team Member Permissions"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default tpm limit for new automatically created teams",
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"title": "DefaultTeamSSOParams",
|
|
"type": "object"
|
|
},
|
|
"DefaultTeamSettingsResponse": {
|
|
"description": "Response model for default team settings",
|
|
"properties": {
|
|
"field_schema": {
|
|
"additionalProperties": true,
|
|
"title": "Field Schema",
|
|
"type": "object"
|
|
},
|
|
"values": {
|
|
"additionalProperties": true,
|
|
"title": "Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"values",
|
|
"field_schema"
|
|
],
|
|
"title": "DefaultTeamSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"DeleteCustomerRequest": {
|
|
"description": "Delete multiple Customers",
|
|
"properties": {
|
|
"user_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "User Ids",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_ids"
|
|
],
|
|
"title": "DeleteCustomerRequest",
|
|
"type": "object"
|
|
},
|
|
"DeleteCustomersResponse": {
|
|
"properties": {
|
|
"deleted_customers": {
|
|
"title": "Deleted Customers",
|
|
"type": "integer"
|
|
},
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"deleted_customers",
|
|
"message"
|
|
],
|
|
"title": "DeleteCustomersResponse",
|
|
"type": "object"
|
|
},
|
|
"DeleteEvalResponse": {
|
|
"description": "Response from deleting an evaluation",
|
|
"properties": {
|
|
"deleted": {
|
|
"title": "Deleted",
|
|
"type": "boolean"
|
|
},
|
|
"eval_id": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
},
|
|
"object": {
|
|
"default": "eval.deleted",
|
|
"title": "Object",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"eval_id",
|
|
"deleted"
|
|
],
|
|
"title": "DeleteEvalResponse",
|
|
"type": "object"
|
|
},
|
|
"DeleteJWTKeyMappingRequest": {
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "DeleteJWTKeyMappingRequest",
|
|
"type": "object"
|
|
},
|
|
"DeleteModelGroupResponse": {
|
|
"properties": {
|
|
"access_group": {
|
|
"title": "Access Group",
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"models_updated": {
|
|
"title": "Models Updated",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"access_group",
|
|
"models_updated",
|
|
"message"
|
|
],
|
|
"title": "DeleteModelGroupResponse",
|
|
"type": "object"
|
|
},
|
|
"DeleteOrganizationRequest": {
|
|
"properties": {
|
|
"organization_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Organization Ids",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"organization_ids"
|
|
],
|
|
"title": "DeleteOrganizationRequest",
|
|
"type": "object"
|
|
},
|
|
"DeleteProjectRequest": {
|
|
"description": "Request model for DELETE /project/delete",
|
|
"properties": {
|
|
"project_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Project Ids",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"project_ids"
|
|
],
|
|
"title": "DeleteProjectRequest",
|
|
"type": "object"
|
|
},
|
|
"DeleteSkillResponse": {
|
|
"description": "Response from deleting a skill",
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"default": "skill_deleted",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "DeleteSkillResponse",
|
|
"type": "object"
|
|
},
|
|
"DeleteTeamRequest": {
|
|
"properties": {
|
|
"team_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Team Ids",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_ids"
|
|
],
|
|
"title": "DeleteTeamRequest",
|
|
"type": "object"
|
|
},
|
|
"DeleteUserRequest": {
|
|
"properties": {
|
|
"user_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "User Ids",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_ids"
|
|
],
|
|
"title": "DeleteUserRequest",
|
|
"type": "object"
|
|
},
|
|
"Deployment": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"litellm_params": {
|
|
"$ref": "#/components/schemas/LiteLLM_Params"
|
|
},
|
|
"model_info": {
|
|
"$ref": "#/components/schemas/litellm__types__router__ModelInfo"
|
|
},
|
|
"model_name": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"model_name",
|
|
"litellm_params",
|
|
"model_info"
|
|
],
|
|
"title": "Deployment",
|
|
"type": "object"
|
|
},
|
|
"DistinctTagResponse": {
|
|
"description": "Response for distinct user agent tags",
|
|
"properties": {
|
|
"tag": {
|
|
"title": "Tag",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"tag"
|
|
],
|
|
"title": "DistinctTagResponse",
|
|
"type": "object"
|
|
},
|
|
"DistinctTagsResponse": {
|
|
"description": "Response for all distinct user agent tags",
|
|
"properties": {
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DistinctTagResponse"
|
|
},
|
|
"title": "Results",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"results"
|
|
],
|
|
"title": "DistinctTagsResponse",
|
|
"type": "object"
|
|
},
|
|
"DocumentObject": {
|
|
"properties": {
|
|
"data": {
|
|
"title": "Data",
|
|
"type": "string"
|
|
},
|
|
"media_type": {
|
|
"title": "Media Type",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "text",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"media_type",
|
|
"data"
|
|
],
|
|
"title": "DocumentObject",
|
|
"type": "object"
|
|
},
|
|
"DynamoDBArgs": {
|
|
"properties": {
|
|
"assume_role_aws_role_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Assume Role Aws Role Name"
|
|
},
|
|
"assume_role_aws_session_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Assume Role Aws Session Name"
|
|
},
|
|
"aws_duration_seconds": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Duration Seconds"
|
|
},
|
|
"aws_policy": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Policy"
|
|
},
|
|
"aws_policy_arns": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Policy Arns"
|
|
},
|
|
"aws_provider_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Provider Id"
|
|
},
|
|
"aws_role_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Role Name"
|
|
},
|
|
"aws_session_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Session Name"
|
|
},
|
|
"aws_web_identity_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Web Identity Token"
|
|
},
|
|
"billing_mode": {
|
|
"enum": [
|
|
"PROVISIONED_THROUGHPUT",
|
|
"PAY_PER_REQUEST"
|
|
],
|
|
"title": "Billing Mode",
|
|
"type": "string"
|
|
},
|
|
"config_table_name": {
|
|
"default": "LiteLLM_Config",
|
|
"title": "Config Table Name",
|
|
"type": "string"
|
|
},
|
|
"key_table_name": {
|
|
"default": "LiteLLM_VerificationToken",
|
|
"title": "Key Table Name",
|
|
"type": "string"
|
|
},
|
|
"read_capacity_units": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Read Capacity Units"
|
|
},
|
|
"region_name": {
|
|
"title": "Region Name",
|
|
"type": "string"
|
|
},
|
|
"spend_table_name": {
|
|
"default": "LiteLLM_SpendLogs",
|
|
"title": "Spend Table Name",
|
|
"type": "string"
|
|
},
|
|
"ssl_verify": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ssl Verify"
|
|
},
|
|
"user_table_name": {
|
|
"default": "LiteLLM_UserTable",
|
|
"title": "User Table Name",
|
|
"type": "string"
|
|
},
|
|
"write_capacity_units": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Write Capacity Units"
|
|
}
|
|
},
|
|
"required": [
|
|
"billing_mode",
|
|
"region_name"
|
|
],
|
|
"title": "DynamoDBArgs",
|
|
"type": "object"
|
|
},
|
|
"EmailEvent": {
|
|
"enum": [
|
|
"Virtual Key Created",
|
|
"New User Invitation",
|
|
"Virtual Key Rotated",
|
|
"Soft Budget Crossed",
|
|
"Max Budget Alert"
|
|
],
|
|
"title": "EmailEvent",
|
|
"type": "string"
|
|
},
|
|
"EmailEventSettings": {
|
|
"properties": {
|
|
"enabled": {
|
|
"title": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"event": {
|
|
"$ref": "#/components/schemas/EmailEvent"
|
|
}
|
|
},
|
|
"required": [
|
|
"event",
|
|
"enabled"
|
|
],
|
|
"title": "EmailEventSettings",
|
|
"type": "object"
|
|
},
|
|
"EmailEventSettingsResponse": {
|
|
"properties": {
|
|
"settings": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/EmailEventSettings"
|
|
},
|
|
"title": "Settings",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"settings"
|
|
],
|
|
"title": "EmailEventSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"EmailEventSettingsUpdateRequest": {
|
|
"properties": {
|
|
"settings": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/EmailEventSettings"
|
|
},
|
|
"title": "Settings",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"settings"
|
|
],
|
|
"title": "EmailEventSettingsUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"EmbeddingRequest": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Key"
|
|
},
|
|
"api_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Type"
|
|
},
|
|
"api_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Version"
|
|
},
|
|
"caching": {
|
|
"default": false,
|
|
"title": "Caching",
|
|
"type": "boolean"
|
|
},
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"input": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Input",
|
|
"type": "array"
|
|
},
|
|
"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"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"timeout": {
|
|
"default": 600,
|
|
"title": "Timeout",
|
|
"type": "integer"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"title": "EmbeddingRequest",
|
|
"type": "object"
|
|
},
|
|
"EndpointProvider": {
|
|
"properties": {
|
|
"display_name": {
|
|
"title": "Display Name",
|
|
"type": "string"
|
|
},
|
|
"slug": {
|
|
"title": "Slug",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"slug",
|
|
"display_name"
|
|
],
|
|
"title": "EndpointProvider",
|
|
"type": "object"
|
|
},
|
|
"EnrichTemplateRequest": {
|
|
"properties": {
|
|
"competitors": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"maxItems": 100,
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional list of competitor names",
|
|
"title": "Competitors"
|
|
},
|
|
"instruction": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Refinement instruction for modifying the competitor list (e.g. 'add 10 more from Asia')",
|
|
"title": "Instruction"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"parameters": {
|
|
"additionalProperties": true,
|
|
"title": "Parameters",
|
|
"type": "object"
|
|
},
|
|
"template_id": {
|
|
"title": "Template Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"template_id",
|
|
"parameters"
|
|
],
|
|
"title": "EnrichTemplateRequest",
|
|
"type": "object"
|
|
},
|
|
"ErrorResponse": {
|
|
"properties": {
|
|
"detail": {
|
|
"additionalProperties": true,
|
|
"example": {
|
|
"error": {
|
|
"code": "error_code",
|
|
"message": "Error message",
|
|
"param": "error_param",
|
|
"type": "error_type"
|
|
}
|
|
},
|
|
"title": "Detail",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"detail"
|
|
],
|
|
"title": "ErrorResponse",
|
|
"type": "object"
|
|
},
|
|
"Eval": {
|
|
"description": "Represents an evaluation from the OpenAI Evals API",
|
|
"properties": {
|
|
"created_at": {
|
|
"title": "Created At",
|
|
"type": "integer"
|
|
},
|
|
"data_source_config": {
|
|
"additionalProperties": true,
|
|
"title": "Data Source Config",
|
|
"type": "object"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"object": {
|
|
"default": "eval",
|
|
"title": "Object",
|
|
"type": "string"
|
|
},
|
|
"testing_criteria": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Testing Criteria",
|
|
"type": "array"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"created_at",
|
|
"data_source_config",
|
|
"testing_criteria"
|
|
],
|
|
"title": "Eval",
|
|
"type": "object"
|
|
},
|
|
"FacetListResponse": {
|
|
"description": "The distinct values one column takes over a filtered query. `data` holds bare values, not entity rows.",
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Data",
|
|
"type": "array"
|
|
},
|
|
"links": {
|
|
"$ref": "#/components/schemas/PageLinks"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/PageMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta",
|
|
"links"
|
|
],
|
|
"title": "FacetListResponse",
|
|
"type": "object"
|
|
},
|
|
"FailedKeyUpdate": {
|
|
"description": "Failed key update with reason",
|
|
"properties": {
|
|
"failed_reason": {
|
|
"title": "Failed Reason",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"key_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Info"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"failed_reason"
|
|
],
|
|
"title": "FailedKeyUpdate",
|
|
"type": "object"
|
|
},
|
|
"FallbackCreateRequest": {
|
|
"description": "Request model for creating/updating fallbacks",
|
|
"properties": {
|
|
"fallback_models": {
|
|
"description": "List of fallback model names in order of priority",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"title": "Fallback Models",
|
|
"type": "array"
|
|
},
|
|
"fallback_type": {
|
|
"default": "general",
|
|
"description": "Type of fallback: 'general' (default), 'context_window', or 'content_policy'",
|
|
"enum": [
|
|
"general",
|
|
"context_window",
|
|
"content_policy"
|
|
],
|
|
"title": "Fallback Type",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "The model name to configure fallbacks for (e.g., 'gpt-3.5-turbo')",
|
|
"title": "Model",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"fallback_models"
|
|
],
|
|
"title": "FallbackCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"FallbackDeleteResponse": {
|
|
"description": "Response model for deleting fallbacks",
|
|
"properties": {
|
|
"fallback_type": {
|
|
"description": "Type of fallback",
|
|
"title": "Fallback Type",
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"description": "Success message",
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "The model name",
|
|
"title": "Model",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"fallback_type",
|
|
"message"
|
|
],
|
|
"title": "FallbackDeleteResponse",
|
|
"type": "object"
|
|
},
|
|
"FallbackGetResponse": {
|
|
"description": "Response model for getting fallbacks",
|
|
"properties": {
|
|
"fallback_models": {
|
|
"description": "List of fallback model names",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Fallback Models",
|
|
"type": "array"
|
|
},
|
|
"fallback_type": {
|
|
"description": "Type of fallback",
|
|
"title": "Fallback Type",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "The model name",
|
|
"title": "Model",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"fallback_models",
|
|
"fallback_type"
|
|
],
|
|
"title": "FallbackGetResponse",
|
|
"type": "object"
|
|
},
|
|
"FallbackResponse": {
|
|
"description": "Response model for fallback operations",
|
|
"properties": {
|
|
"fallback_models": {
|
|
"description": "List of fallback model names",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Fallback Models",
|
|
"type": "array"
|
|
},
|
|
"fallback_type": {
|
|
"description": "Type of fallback",
|
|
"title": "Fallback Type",
|
|
"type": "string"
|
|
},
|
|
"message": {
|
|
"description": "Success message",
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"description": "The model name",
|
|
"title": "Model",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"fallback_models",
|
|
"fallback_type",
|
|
"message"
|
|
],
|
|
"title": "FallbackResponse",
|
|
"type": "object"
|
|
},
|
|
"FieldDetail": {
|
|
"properties": {
|
|
"field_default_value": {
|
|
"title": "Field Default Value"
|
|
},
|
|
"field_description": {
|
|
"title": "Field Description",
|
|
"type": "string"
|
|
},
|
|
"field_name": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
},
|
|
"field_type": {
|
|
"title": "Field Type",
|
|
"type": "string"
|
|
},
|
|
"stored_in_db": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Stored In Db"
|
|
}
|
|
},
|
|
"required": [
|
|
"field_name",
|
|
"field_type",
|
|
"field_description",
|
|
"stored_in_db"
|
|
],
|
|
"title": "FieldDetail",
|
|
"type": "object"
|
|
},
|
|
"FunctionCall": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"arguments": {
|
|
"title": "Arguments",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
}
|
|
},
|
|
"required": [
|
|
"arguments"
|
|
],
|
|
"title": "FunctionCall",
|
|
"type": "object"
|
|
},
|
|
"GUARDRAIL_DEFINITION_LOCATION": {
|
|
"enum": [
|
|
"db",
|
|
"config"
|
|
],
|
|
"title": "GUARDRAIL_DEFINITION_LOCATION",
|
|
"type": "string"
|
|
},
|
|
"GatewayRequestActivityResponse": {
|
|
"description": "Response for GET /gateway/daily/activity.",
|
|
"properties": {
|
|
"by_date": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/GatewayRequestDailyEntry"
|
|
},
|
|
"title": "By Date",
|
|
"type": "array"
|
|
},
|
|
"by_route": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/GatewayRequestBreakdownEntry"
|
|
},
|
|
"title": "By Route",
|
|
"type": "array"
|
|
},
|
|
"total_failed_requests": {
|
|
"default": 0,
|
|
"title": "Total Failed Requests",
|
|
"type": "integer"
|
|
},
|
|
"total_successful_requests": {
|
|
"default": 0,
|
|
"title": "Total Successful Requests",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"title": "GatewayRequestActivityResponse",
|
|
"type": "object"
|
|
},
|
|
"GatewayRequestBreakdownEntry": {
|
|
"properties": {
|
|
"category": {
|
|
"title": "Category",
|
|
"type": "string"
|
|
},
|
|
"failed_requests": {
|
|
"default": 0,
|
|
"title": "Failed Requests",
|
|
"type": "integer"
|
|
},
|
|
"route": {
|
|
"title": "Route",
|
|
"type": "string"
|
|
},
|
|
"successful_requests": {
|
|
"default": 0,
|
|
"title": "Successful Requests",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"category",
|
|
"route"
|
|
],
|
|
"title": "GatewayRequestBreakdownEntry",
|
|
"type": "object"
|
|
},
|
|
"GatewayRequestDailyEntry": {
|
|
"properties": {
|
|
"date": {
|
|
"title": "Date",
|
|
"type": "string"
|
|
},
|
|
"failed_requests": {
|
|
"default": 0,
|
|
"title": "Failed Requests",
|
|
"type": "integer"
|
|
},
|
|
"successful_requests": {
|
|
"default": 0,
|
|
"title": "Successful Requests",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"date"
|
|
],
|
|
"title": "GatewayRequestDailyEntry",
|
|
"type": "object"
|
|
},
|
|
"GenerateKeyRequest": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Aliases"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"allowed_passthrough_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Passthrough Routes"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Routes"
|
|
},
|
|
"allowed_vector_store_indexes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AllowedVectorStoreIndexItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Vector Store Indexes"
|
|
},
|
|
"auto_rotate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Whether this key should be automatically rotated",
|
|
"title": "Auto Rotate"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Fallbacks"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Config"
|
|
},
|
|
"disable_global_guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Disable Global Guardrails"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"enforced_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Enforced Params"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLMKeyType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "default",
|
|
"description": "Type of key that determines default allowed routes."
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Permissions"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Id"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"rotation_interval": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True",
|
|
"title": "Rotation Interval"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UpdateRouterConfig"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"rpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit Type"
|
|
},
|
|
"send_invite_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Send Invite Email"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Spend"
|
|
},
|
|
"tag_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Rpm Limit"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"throttle_on_budget_exceeded": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Throttle On Budget Exceeded"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"tpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit Type"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"title": "GenerateKeyRequest",
|
|
"type": "object"
|
|
},
|
|
"GenerateKeyResponse": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Aliases"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"allowed_passthrough_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Passthrough Routes"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Routes"
|
|
},
|
|
"allowed_vector_store_indexes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AllowedVectorStoreIndexItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Vector Store Indexes"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Fallbacks"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Config"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"disable_global_guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Disable Global Guardrails"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"enforced_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Enforced Params"
|
|
},
|
|
"expires": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Name"
|
|
},
|
|
"key_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Type"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Budget Table"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Permissions"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Id"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UpdateRouterConfig"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"rpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit Type"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Spend"
|
|
},
|
|
"tag_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Rpm Limit"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"throttle_on_budget_exceeded": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Throttle On Budget Exceeded"
|
|
},
|
|
"token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token"
|
|
},
|
|
"token_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token Id"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"tpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit Type"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"title": "GenerateKeyResponse",
|
|
"type": "object"
|
|
},
|
|
"GenericGuardrailAPIInputs": {
|
|
"properties": {
|
|
"images": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Images",
|
|
"type": "array"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
"title": "Structured Messages",
|
|
"type": "array"
|
|
},
|
|
"texts": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Texts",
|
|
"type": "array"
|
|
},
|
|
"tool_calls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionToolCallChunk"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionMessageToolCall"
|
|
},
|
|
"type": "array"
|
|
}
|
|
],
|
|
"title": "Tool Calls"
|
|
},
|
|
"tools": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionToolParam"
|
|
},
|
|
"title": "Tools",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"title": "GenericGuardrailAPIInputs",
|
|
"type": "object"
|
|
},
|
|
"GetTeamMemberPermissionsResponse": {
|
|
"description": "Response to get the team member permissions for a team",
|
|
"properties": {
|
|
"all_available_permissions": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "All Available Permissions",
|
|
"type": "array"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"team_member_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Team Member Permissions"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id",
|
|
"all_available_permissions"
|
|
],
|
|
"title": "GetTeamMemberPermissionsResponse",
|
|
"type": "object"
|
|
},
|
|
"GlobalEndUsersSpend": {
|
|
"properties": {
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
},
|
|
"endTime": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endtime"
|
|
},
|
|
"startTime": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Starttime"
|
|
}
|
|
},
|
|
"title": "GlobalEndUsersSpend",
|
|
"type": "object"
|
|
},
|
|
"GraySwanGuardrailConfigModelOptionalParams": {
|
|
"description": "Optional parameters for the Gray Swan guardrail.",
|
|
"properties": {
|
|
"categories": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default Gray Swan category definitions to send with each request.",
|
|
"title": "Categories"
|
|
},
|
|
"fail_open": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "If true (default), errors contacting Gray Swan are logged and the request proceeds. If false, errors propagate and block the request.",
|
|
"title": "Fail Open"
|
|
},
|
|
"guardrail_timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 30.0,
|
|
"description": "Timeout in seconds for calling the Gray Swan guardrail service.",
|
|
"title": "Guardrail Timeout"
|
|
},
|
|
"on_flagged_action": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "passthrough",
|
|
"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).",
|
|
"title": "On Flagged Action"
|
|
},
|
|
"policy_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Gray Swan policy identifier to apply during monitoring.",
|
|
"title": "Policy Id"
|
|
},
|
|
"reasoning_mode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Gray Swan reasoning mode override. Accepted values: 'off', 'hybrid', 'thinking'.",
|
|
"title": "Reasoning Mode"
|
|
},
|
|
"violation_threshold": {
|
|
"anyOf": [
|
|
{
|
|
"maximum": 1.0,
|
|
"minimum": 0.0,
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.5,
|
|
"description": "Threshold between 0 and 1 at which Gray Swan violations trigger the configured action.",
|
|
"title": "Violation Threshold"
|
|
}
|
|
},
|
|
"title": "GraySwanGuardrailConfigModelOptionalParams",
|
|
"type": "object"
|
|
},
|
|
"Guardrail": {
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"guardrail_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Id"
|
|
},
|
|
"guardrail_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Info"
|
|
},
|
|
"guardrail_name": {
|
|
"title": "Guardrail Name",
|
|
"type": "string"
|
|
},
|
|
"litellm_params": {
|
|
"$ref": "#/components/schemas/LitellmParams"
|
|
},
|
|
"policy_template": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policy Template"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_name",
|
|
"litellm_params"
|
|
],
|
|
"title": "Guardrail",
|
|
"type": "object"
|
|
},
|
|
"GuardrailInfoResponse": {
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"guardrail_definition_location": {
|
|
"$ref": "#/components/schemas/GUARDRAIL_DEFINITION_LOCATION",
|
|
"default": "config"
|
|
},
|
|
"guardrail_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Id"
|
|
},
|
|
"guardrail_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Info"
|
|
},
|
|
"guardrail_name": {
|
|
"title": "Guardrail Name",
|
|
"type": "string"
|
|
},
|
|
"litellm_params": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/BaseLitellmParams-Output"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_name"
|
|
],
|
|
"title": "GuardrailInfoResponse",
|
|
"type": "object"
|
|
},
|
|
"GuardrailSubmissionItem": {
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"guardrail_id": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
},
|
|
"guardrail_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Info"
|
|
},
|
|
"guardrail_name": {
|
|
"title": "Guardrail Name",
|
|
"type": "string"
|
|
},
|
|
"litellm_params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Params"
|
|
},
|
|
"reviewed_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reviewed At"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"submitted_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Submitted At"
|
|
},
|
|
"submitted_by_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Submitted By Email"
|
|
},
|
|
"submitted_by_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Submitted By User Id"
|
|
},
|
|
"team_guardrail": {
|
|
"default": false,
|
|
"title": "Team Guardrail",
|
|
"type": "boolean"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_id",
|
|
"guardrail_name",
|
|
"status"
|
|
],
|
|
"title": "GuardrailSubmissionItem",
|
|
"type": "object"
|
|
},
|
|
"GuardrailSubmissionSummary": {
|
|
"properties": {
|
|
"active": {
|
|
"title": "Active",
|
|
"type": "integer"
|
|
},
|
|
"pending_review": {
|
|
"title": "Pending Review",
|
|
"type": "integer"
|
|
},
|
|
"rejected": {
|
|
"title": "Rejected",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"total",
|
|
"pending_review",
|
|
"active",
|
|
"rejected"
|
|
],
|
|
"title": "GuardrailSubmissionSummary",
|
|
"type": "object"
|
|
},
|
|
"GuardrailTestResultEntry": {
|
|
"properties": {
|
|
"action": {
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"details": {
|
|
"title": "Details",
|
|
"type": "string"
|
|
},
|
|
"guardrail_name": {
|
|
"title": "Guardrail Name",
|
|
"type": "string"
|
|
},
|
|
"output_text": {
|
|
"title": "Output Text",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_name",
|
|
"action",
|
|
"output_text",
|
|
"details"
|
|
],
|
|
"title": "GuardrailTestResultEntry",
|
|
"type": "object"
|
|
},
|
|
"HTTPAuthSecurityScheme": {
|
|
"description": "Defines a security scheme using HTTP authentication.",
|
|
"properties": {
|
|
"bearerFormat": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bearerformat"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"scheme": {
|
|
"title": "Scheme",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "http",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"scheme"
|
|
],
|
|
"title": "HTTPAuthSecurityScheme",
|
|
"type": "object"
|
|
},
|
|
"HTTPValidationError": {
|
|
"properties": {
|
|
"detail": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ValidationError"
|
|
},
|
|
"title": "Detail",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"title": "HTTPValidationError",
|
|
"type": "object"
|
|
},
|
|
"HashicorpVaultConfig": {
|
|
"description": "Configuration for Hashicorp Vault secret manager integration.",
|
|
"properties": {
|
|
"approle_mount_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Mount path for the AppRole auth method (default: approle)",
|
|
"title": "Approle Mount Path"
|
|
},
|
|
"approle_role_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Role ID for Vault AppRole authentication",
|
|
"title": "Approle Role Id"
|
|
},
|
|
"approle_secret_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Secret ID for Vault AppRole authentication",
|
|
"title": "Approle Secret Id"
|
|
},
|
|
"client_cert": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to the client TLS certificate for Vault",
|
|
"title": "Client Cert"
|
|
},
|
|
"client_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to the client TLS private key for Vault",
|
|
"title": "Client Key"
|
|
},
|
|
"vault_addr": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The address of the Vault server (e.g., https://vault.example.com:8200)",
|
|
"title": "Vault Addr"
|
|
},
|
|
"vault_cert_role": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Certificate role name for TLS cert authentication",
|
|
"title": "Vault Cert Role"
|
|
},
|
|
"vault_mount_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "KV engine mount name (default: secret)",
|
|
"title": "Vault Mount Name"
|
|
},
|
|
"vault_namespace": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Vault namespace (for multi-tenant Vault, sent as X-Vault-Namespace header)",
|
|
"title": "Vault Namespace"
|
|
},
|
|
"vault_path_prefix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional path prefix for secrets (e.g., myapp -> secret/data/myapp/{secret_name})",
|
|
"title": "Vault Path Prefix"
|
|
},
|
|
"vault_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Token for Vault token-based authentication",
|
|
"title": "Vault Token"
|
|
}
|
|
},
|
|
"title": "HashicorpVaultConfig",
|
|
"type": "object"
|
|
},
|
|
"Hyperparameters": {
|
|
"additionalProperties": true,
|
|
"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"
|
|
}
|
|
},
|
|
"title": "Hyperparameters",
|
|
"type": "object"
|
|
},
|
|
"IPAddress": {
|
|
"properties": {
|
|
"ip": {
|
|
"title": "Ip",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"ip"
|
|
],
|
|
"title": "IPAddress",
|
|
"type": "object"
|
|
},
|
|
"ImageURLListItem": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"image_url": {
|
|
"$ref": "#/components/schemas/ImageURLObject"
|
|
},
|
|
"index": {
|
|
"title": "Index",
|
|
"type": "integer"
|
|
},
|
|
"type": {
|
|
"const": "image_url",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"image_url",
|
|
"index",
|
|
"type"
|
|
],
|
|
"title": "ImageURLListItem",
|
|
"type": "object"
|
|
},
|
|
"ImageURLObject": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"detail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Detail"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"url"
|
|
],
|
|
"title": "ImageURLObject",
|
|
"type": "object"
|
|
},
|
|
"IndexCreateLiteLLMParams": {
|
|
"properties": {
|
|
"vector_store_index": {
|
|
"title": "Vector Store Index",
|
|
"type": "string"
|
|
},
|
|
"vector_store_name": {
|
|
"title": "Vector Store Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"vector_store_index",
|
|
"vector_store_name"
|
|
],
|
|
"title": "IndexCreateLiteLLMParams",
|
|
"type": "object"
|
|
},
|
|
"IndexCreateRequest": {
|
|
"properties": {
|
|
"index_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Index Info"
|
|
},
|
|
"index_name": {
|
|
"title": "Index Name",
|
|
"type": "string"
|
|
},
|
|
"litellm_params": {
|
|
"$ref": "#/components/schemas/IndexCreateLiteLLMParams"
|
|
}
|
|
},
|
|
"required": [
|
|
"index_name",
|
|
"litellm_params"
|
|
],
|
|
"title": "IndexCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"InputAudio": {
|
|
"properties": {
|
|
"data": {
|
|
"title": "Data",
|
|
"type": "string"
|
|
},
|
|
"format": {
|
|
"enum": [
|
|
"wav",
|
|
"mp3"
|
|
],
|
|
"title": "Format",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"format"
|
|
],
|
|
"title": "InputAudio",
|
|
"type": "object"
|
|
},
|
|
"InternalUserSettingsResponse": {
|
|
"description": "Response model for internal user settings",
|
|
"properties": {
|
|
"field_schema": {
|
|
"additionalProperties": true,
|
|
"title": "Field Schema",
|
|
"type": "object"
|
|
},
|
|
"values": {
|
|
"additionalProperties": true,
|
|
"title": "Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"values",
|
|
"field_schema"
|
|
],
|
|
"title": "InternalUserSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"InvitationClaim": {
|
|
"properties": {
|
|
"invitation_link": {
|
|
"title": "Invitation Link",
|
|
"type": "string"
|
|
},
|
|
"password": {
|
|
"title": "Password",
|
|
"type": "string"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"invitation_link",
|
|
"user_id",
|
|
"password"
|
|
],
|
|
"title": "InvitationClaim",
|
|
"type": "object"
|
|
},
|
|
"InvitationDelete": {
|
|
"properties": {
|
|
"invitation_id": {
|
|
"title": "Invitation Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"invitation_id"
|
|
],
|
|
"title": "InvitationDelete",
|
|
"type": "object"
|
|
},
|
|
"InvitationModel": {
|
|
"properties": {
|
|
"accepted_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Accepted At"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"created_by": {
|
|
"title": "Created By",
|
|
"type": "string"
|
|
},
|
|
"expires_at": {
|
|
"format": "date-time",
|
|
"title": "Expires At",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"is_accepted": {
|
|
"title": "Is Accepted",
|
|
"type": "boolean"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
},
|
|
"updated_by": {
|
|
"title": "Updated By",
|
|
"type": "string"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"user_id",
|
|
"is_accepted",
|
|
"accepted_at",
|
|
"expires_at",
|
|
"created_at",
|
|
"created_by",
|
|
"updated_at",
|
|
"updated_by"
|
|
],
|
|
"title": "InvitationModel",
|
|
"type": "object"
|
|
},
|
|
"InvitationNew": {
|
|
"properties": {
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id"
|
|
],
|
|
"title": "InvitationNew",
|
|
"type": "object"
|
|
},
|
|
"InvitationUpdate": {
|
|
"properties": {
|
|
"invitation_id": {
|
|
"title": "Invitation Id",
|
|
"type": "string"
|
|
},
|
|
"is_accepted": {
|
|
"title": "Is Accepted",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"invitation_id",
|
|
"is_accepted"
|
|
],
|
|
"title": "InvitationUpdate",
|
|
"type": "object"
|
|
},
|
|
"JWTKeyMappingResponse": {
|
|
"properties": {
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"is_active": {
|
|
"title": "Is Active",
|
|
"type": "boolean"
|
|
},
|
|
"jwt_claim_name": {
|
|
"title": "Jwt Claim Name",
|
|
"type": "string"
|
|
},
|
|
"jwt_claim_value": {
|
|
"title": "Jwt Claim Value",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"jwt_claim_name",
|
|
"jwt_claim_value",
|
|
"is_active",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "JWTKeyMappingResponse",
|
|
"type": "object"
|
|
},
|
|
"KeyHealthResponse": {
|
|
"properties": {
|
|
"key": {
|
|
"enum": [
|
|
"healthy",
|
|
"unhealthy"
|
|
],
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"logging_callbacks": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LoggingCallbackStatus"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"title": "KeyHealthResponse",
|
|
"type": "object"
|
|
},
|
|
"KeyListResponseObject": {
|
|
"properties": {
|
|
"current_page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Current Page"
|
|
},
|
|
"keys": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/UserAPIKeyAuth"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_DeletedVerificationToken"
|
|
}
|
|
]
|
|
},
|
|
"title": "Keys",
|
|
"type": "array"
|
|
},
|
|
"total_count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Total Count"
|
|
},
|
|
"total_pages": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Total Pages"
|
|
}
|
|
},
|
|
"title": "KeyListResponseObject",
|
|
"type": "object"
|
|
},
|
|
"KeyManagementRoutes": {
|
|
"description": "Enum for key management routes",
|
|
"enum": [
|
|
"/key/generate",
|
|
"/key/update",
|
|
"/key/delete",
|
|
"/key/regenerate",
|
|
"/key/service-account/generate",
|
|
"/key/{key_id}/regenerate",
|
|
"/key/block",
|
|
"/key/unblock",
|
|
"/key/bulk_update",
|
|
"/team/key/bulk_update",
|
|
"/key/{key_id}/reset_spend",
|
|
"/key/access_group_assignment",
|
|
"/key/info",
|
|
"/key/health",
|
|
"/key/list",
|
|
"/key/aliases",
|
|
"/team/daily/activity",
|
|
"/spend/logs",
|
|
"/spend/logs/v2"
|
|
],
|
|
"title": "KeyManagementRoutes",
|
|
"type": "string"
|
|
},
|
|
"KeyManagementSystem": {
|
|
"enum": [
|
|
"google_kms",
|
|
"azure_key_vault",
|
|
"aws_secret_manager",
|
|
"google_secret_manager",
|
|
"hashicorp_vault",
|
|
"cyberark",
|
|
"local",
|
|
"aws_kms",
|
|
"custom"
|
|
],
|
|
"title": "KeyManagementSystem",
|
|
"type": "string"
|
|
},
|
|
"KeyMetadata": {
|
|
"description": "Metadata for a key",
|
|
"properties": {
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
"title": "KeyMetadata",
|
|
"type": "object"
|
|
},
|
|
"KeyMetricWithMetadata": {
|
|
"description": "Base class for metrics with additional metadata",
|
|
"properties": {
|
|
"metadata": {
|
|
"$ref": "#/components/schemas/KeyMetadata"
|
|
},
|
|
"metrics": {
|
|
"$ref": "#/components/schemas/SpendMetrics"
|
|
}
|
|
},
|
|
"required": [
|
|
"metrics"
|
|
],
|
|
"title": "KeyMetricWithMetadata",
|
|
"type": "object"
|
|
},
|
|
"KeyRequest": {
|
|
"properties": {
|
|
"key_aliases": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Aliases"
|
|
},
|
|
"keys": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Keys"
|
|
}
|
|
},
|
|
"title": "KeyRequest",
|
|
"type": "object"
|
|
},
|
|
"KeyUpdateFields": {
|
|
"additionalProperties": false,
|
|
"description": "Allowlist of bulk-broadcastable fields for /team/key/bulk_update; `extra=\"forbid\"` blocks RBAC/ownership/scope mutations even by team admins.",
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"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"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"rpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit Type"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"temp_budget_expiry": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Temp Budget Expiry"
|
|
},
|
|
"temp_budget_increase": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Temp Budget Increase"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"tpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit Type"
|
|
}
|
|
},
|
|
"title": "KeyUpdateFields",
|
|
"type": "object"
|
|
},
|
|
"KeywordTierRule": {
|
|
"description": "A deterministic override: if any keyword matches, route to this tier.",
|
|
"properties": {
|
|
"keywords": {
|
|
"description": "Keywords/phrases that trigger this rule (lexical or semantic match)",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"minItems": 1,
|
|
"title": "Keywords",
|
|
"type": "array"
|
|
},
|
|
"tier": {
|
|
"$ref": "#/components/schemas/ComplexityTier",
|
|
"description": "Tier to route to when this rule matches"
|
|
}
|
|
},
|
|
"required": [
|
|
"keywords",
|
|
"tier"
|
|
],
|
|
"title": "KeywordTierRule",
|
|
"type": "object"
|
|
},
|
|
"LakeraCategoryThresholds": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"jailbreak": {
|
|
"title": "Jailbreak",
|
|
"type": "number"
|
|
},
|
|
"prompt_injection": {
|
|
"title": "Prompt Injection",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"title": "LakeraCategoryThresholds",
|
|
"type": "object"
|
|
},
|
|
"ListAccessGroupsResponse": {
|
|
"properties": {
|
|
"access_groups": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AccessGroupInfo"
|
|
},
|
|
"title": "Access Groups",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"access_groups"
|
|
],
|
|
"title": "ListAccessGroupsResponse",
|
|
"type": "object"
|
|
},
|
|
"ListEvalsResponse": {
|
|
"description": "Response from listing evaluations",
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/Eval"
|
|
},
|
|
"title": "Data",
|
|
"type": "array"
|
|
},
|
|
"first_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "First Id"
|
|
},
|
|
"has_more": {
|
|
"default": false,
|
|
"title": "Has More",
|
|
"type": "boolean"
|
|
},
|
|
"last_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Id"
|
|
},
|
|
"object": {
|
|
"default": "list",
|
|
"title": "Object",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"data"
|
|
],
|
|
"title": "ListEvalsResponse",
|
|
"type": "object"
|
|
},
|
|
"ListGuardrailSubmissionsResponse": {
|
|
"properties": {
|
|
"submissions": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GuardrailSubmissionItem"
|
|
},
|
|
"title": "Submissions",
|
|
"type": "array"
|
|
},
|
|
"summary": {
|
|
"$ref": "#/components/schemas/GuardrailSubmissionSummary"
|
|
}
|
|
},
|
|
"required": [
|
|
"submissions",
|
|
"summary"
|
|
],
|
|
"title": "ListGuardrailSubmissionsResponse",
|
|
"type": "object"
|
|
},
|
|
"ListGuardrailsResponse": {
|
|
"properties": {
|
|
"guardrails": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GuardrailInfoResponse"
|
|
},
|
|
"title": "Guardrails",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrails"
|
|
],
|
|
"title": "ListGuardrailsResponse",
|
|
"type": "object"
|
|
},
|
|
"ListLinks": {
|
|
"description": "Page-mode counterpart to `PageLinks`. `first`/`last` are knowable here because the total count is.",
|
|
"properties": {
|
|
"first": {
|
|
"title": "First",
|
|
"type": "string"
|
|
},
|
|
"last": {
|
|
"title": "Last",
|
|
"type": "string"
|
|
},
|
|
"next": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Next"
|
|
},
|
|
"prev": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prev"
|
|
},
|
|
"self": {
|
|
"title": "Self",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"self",
|
|
"first",
|
|
"last"
|
|
],
|
|
"title": "ListLinks",
|
|
"type": "object"
|
|
},
|
|
"ListMeta": {
|
|
"description": "Page-mode counterpart to `PageMeta`: an entity list pays for the COUNT(*) so the table can show a page count.",
|
|
"properties": {
|
|
"page": {
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
},
|
|
"total_count": {
|
|
"title": "Total Count",
|
|
"type": "integer"
|
|
},
|
|
"total_pages": {
|
|
"title": "Total Pages",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"total_count",
|
|
"page",
|
|
"page_size",
|
|
"total_pages"
|
|
],
|
|
"title": "ListMeta",
|
|
"type": "object"
|
|
},
|
|
"ListPluginsResponse": {
|
|
"description": "Response from listing plugins.",
|
|
"properties": {
|
|
"count": {
|
|
"title": "Count",
|
|
"type": "integer"
|
|
},
|
|
"plugins": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PluginListItem"
|
|
},
|
|
"title": "Plugins",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"plugins",
|
|
"count"
|
|
],
|
|
"title": "ListPluginsResponse",
|
|
"type": "object"
|
|
},
|
|
"ListPromptsResponse": {
|
|
"properties": {
|
|
"prompts": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PromptSpec"
|
|
},
|
|
"title": "Prompts",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"prompts"
|
|
],
|
|
"title": "ListPromptsResponse",
|
|
"type": "object"
|
|
},
|
|
"ListResponse_BudgetListItem_": {
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetListItem"
|
|
},
|
|
"title": "Data",
|
|
"type": "array"
|
|
},
|
|
"links": {
|
|
"$ref": "#/components/schemas/ListLinks"
|
|
},
|
|
"meta": {
|
|
"$ref": "#/components/schemas/ListMeta"
|
|
}
|
|
},
|
|
"required": [
|
|
"data",
|
|
"meta",
|
|
"links"
|
|
],
|
|
"title": "ListResponse[BudgetListItem]",
|
|
"type": "object"
|
|
},
|
|
"ListRunsResponse": {
|
|
"description": "Response from listing runs",
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/Run"
|
|
},
|
|
"title": "Data",
|
|
"type": "array"
|
|
},
|
|
"first_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "First Id"
|
|
},
|
|
"has_more": {
|
|
"default": false,
|
|
"title": "Has More",
|
|
"type": "boolean"
|
|
},
|
|
"last_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Id"
|
|
},
|
|
"object": {
|
|
"default": "list",
|
|
"title": "Object",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"data"
|
|
],
|
|
"title": "ListRunsResponse",
|
|
"type": "object"
|
|
},
|
|
"ListSearchToolsResponse": {
|
|
"description": "Response model for listing search tools.",
|
|
"properties": {
|
|
"search_tools": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SearchToolInfoResponse"
|
|
},
|
|
"title": "Search Tools",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"search_tools"
|
|
],
|
|
"title": "ListSearchToolsResponse",
|
|
"type": "object"
|
|
},
|
|
"ListSkillsResponse": {
|
|
"description": "Response from listing skills",
|
|
"properties": {
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/Skill"
|
|
},
|
|
"title": "Data",
|
|
"type": "array"
|
|
},
|
|
"has_more": {
|
|
"default": false,
|
|
"title": "Has More",
|
|
"type": "boolean"
|
|
},
|
|
"next_page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Next Page"
|
|
}
|
|
},
|
|
"required": [
|
|
"data"
|
|
],
|
|
"title": "ListSkillsResponse",
|
|
"type": "object"
|
|
},
|
|
"LiteLLMFineTuningJobCreate": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"openai",
|
|
"azure",
|
|
"vertex_ai"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"hyperparameters": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Hyperparameters"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"integrations": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Integrations"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"seed": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Seed"
|
|
},
|
|
"suffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Suffix"
|
|
},
|
|
"training_file": {
|
|
"title": "Training File",
|
|
"type": "string"
|
|
},
|
|
"validation_file": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Validation File"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"training_file"
|
|
],
|
|
"title": "LiteLLMFineTuningJobCreate",
|
|
"type": "object"
|
|
},
|
|
"LiteLLMKeyType": {
|
|
"description": "Enum for key types that determine what routes a key can access",
|
|
"enum": [
|
|
"llm_api",
|
|
"management",
|
|
"read_only",
|
|
"default"
|
|
],
|
|
"title": "LiteLLMKeyType",
|
|
"type": "string"
|
|
},
|
|
"LiteLLM_BudgetTable": {
|
|
"description": "Represents user-controllable params for a LiteLLM_BudgetTable record.\n\nBudget-write paths use `model_fields.keys()` on this class as an allowlist\nfor user input. Keep server-managed fields (e.g. `budget_reset_at`) on\n`LiteLLM_BudgetTableFull` so they aren't user-settable.",
|
|
"properties": {
|
|
"allowed_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Models"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Max Budget"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"title": "LiteLLM_BudgetTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_BudgetTableFull": {
|
|
"description": "LiteLLM_BudgetTable + server-managed fields returned on API responses.",
|
|
"properties": {
|
|
"allowed_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Models"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Max Budget"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"required": [
|
|
"created_at"
|
|
],
|
|
"title": "LiteLLM_BudgetTableFull",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_DeletedTeamTable": {
|
|
"description": "Audit record for deleted teams; mirrors the team plus deletion metadata.",
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"admins": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Admins",
|
|
"type": "array"
|
|
},
|
|
"allow_team_guardrail_config": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Allow Team Guardrail Config"
|
|
},
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"default_team_member_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Team Member Models"
|
|
},
|
|
"deleted_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"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"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"litellm_changed_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Changed By"
|
|
},
|
|
"litellm_model_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ModelTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"members": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Members",
|
|
"type": "array"
|
|
},
|
|
"members_with_roles": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/Member"
|
|
},
|
|
"title": "Members With Roles",
|
|
"type": "array"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Id"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Max Budget"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Spend"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"team_member_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Permissions"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "LiteLLM_DeletedTeamTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_DeletedVerificationToken": {
|
|
"description": "Audit record for deleted keys; mirrors the token plus deletion metadata.",
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Aliases",
|
|
"type": "object"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Routes"
|
|
},
|
|
"auto_rotate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Auto Rotate"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"default": {},
|
|
"title": "Budget Fallbacks",
|
|
"type": "object"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"config": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Config",
|
|
"type": "object"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"deleted_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"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"
|
|
},
|
|
"expires": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Name"
|
|
},
|
|
"key_rotation_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Rotation At"
|
|
},
|
|
"key_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Type"
|
|
},
|
|
"last_active": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Active"
|
|
},
|
|
"last_rotation_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Rotation At"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Budget Table"
|
|
},
|
|
"litellm_changed_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Changed By"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Metadata",
|
|
"type": "object"
|
|
},
|
|
"model_max_budget": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Model Max Budget",
|
|
"type": "object"
|
|
},
|
|
"model_spend": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Model Spend",
|
|
"type": "object"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"org_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Org Id"
|
|
},
|
|
"permissions": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Permissions",
|
|
"type": "object"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Id"
|
|
},
|
|
"rotation_count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Rotation Count"
|
|
},
|
|
"rotation_interval": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rotation Interval"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget_cooldown": {
|
|
"default": false,
|
|
"title": "Soft Budget Cooldown",
|
|
"type": "boolean"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"title": "LiteLLM_DeletedVerificationToken",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_EndUserTable": {
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"allowed_model_region": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"eu",
|
|
"us"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Model Region"
|
|
},
|
|
"blocked": {
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Model"
|
|
},
|
|
"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"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id",
|
|
"blocked"
|
|
],
|
|
"title": "LiteLLM_EndUserTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_MCPServerTable": {
|
|
"description": "Represents a LiteLLM_MCPServerTable record",
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"allow_all_keys": {
|
|
"default": false,
|
|
"title": "Allow All Keys",
|
|
"type": "boolean"
|
|
},
|
|
"allowed_tools": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Allowed Tools",
|
|
"type": "array"
|
|
},
|
|
"approval_status": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "active",
|
|
"description": "Approval status: 'pending_review', 'active', 'rejected'",
|
|
"title": "Approval Status"
|
|
},
|
|
"args": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Args",
|
|
"type": "array"
|
|
},
|
|
"auth_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"none",
|
|
"api_key",
|
|
"bearer_token",
|
|
"basic",
|
|
"authorization",
|
|
"oauth2",
|
|
"aws_sigv4",
|
|
"token"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auth Type"
|
|
},
|
|
"authorization_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Authorization Url"
|
|
},
|
|
"available_on_public_internet": {
|
|
"default": true,
|
|
"title": "Available On Public Internet",
|
|
"type": "boolean"
|
|
},
|
|
"byok_api_key_help_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Byok Api Key Help Url"
|
|
},
|
|
"byok_description": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Byok Description",
|
|
"type": "array"
|
|
},
|
|
"command": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Command"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"credentials": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MCPCredentials"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"env": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"title": "Env",
|
|
"type": "object"
|
|
},
|
|
"extra_headers": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Extra Headers",
|
|
"type": "array"
|
|
},
|
|
"has_user_credential": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Has User Credential"
|
|
},
|
|
"health_check_error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Health Check Error"
|
|
},
|
|
"instructions": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Instructions"
|
|
},
|
|
"is_byok": {
|
|
"default": false,
|
|
"title": "Is Byok",
|
|
"type": "boolean"
|
|
},
|
|
"last_health_check": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Health Check"
|
|
},
|
|
"mcp_access_groups": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Mcp Access Groups",
|
|
"type": "array"
|
|
},
|
|
"mcp_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Info"
|
|
},
|
|
"registration_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Registration Url"
|
|
},
|
|
"review_notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Review Notes"
|
|
},
|
|
"reviewed_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reviewed At"
|
|
},
|
|
"server_id": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
},
|
|
"server_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Server Name"
|
|
},
|
|
"source_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Url"
|
|
},
|
|
"spec_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spec Path"
|
|
},
|
|
"static_headers": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Static Headers"
|
|
},
|
|
"status": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"healthy",
|
|
"unhealthy",
|
|
"unknown"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "unknown",
|
|
"description": "Health status: 'healthy', 'unhealthy', 'unknown'",
|
|
"title": "Status"
|
|
},
|
|
"submitted_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Submitted At"
|
|
},
|
|
"submitted_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Submitted By"
|
|
},
|
|
"teams": {
|
|
"items": {
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"type": "object"
|
|
},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
},
|
|
"token_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token Url"
|
|
},
|
|
"tool_name_to_description": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tool Name To Description"
|
|
},
|
|
"tool_name_to_display_name": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tool Name To Display Name"
|
|
},
|
|
"transport": {
|
|
"enum": [
|
|
"sse",
|
|
"http",
|
|
"stdio"
|
|
],
|
|
"title": "Transport",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
}
|
|
},
|
|
"required": [
|
|
"server_id",
|
|
"transport"
|
|
],
|
|
"title": "LiteLLM_MCPServerTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ManagedVectorStore": {
|
|
"description": "LiteLLM managed vector store object - this is is the object stored in the database",
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"custom_llm_provider": {
|
|
"title": "Custom Llm Provider",
|
|
"type": "string"
|
|
},
|
|
"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"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"vector_store_description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Description"
|
|
},
|
|
"vector_store_id": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
},
|
|
"vector_store_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Metadata"
|
|
},
|
|
"vector_store_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Name"
|
|
}
|
|
},
|
|
"title": "LiteLLM_ManagedVectorStore",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ManagedVectorStoreListResponse": {
|
|
"description": "Response format for listing vector stores",
|
|
"properties": {
|
|
"current_page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Current Page"
|
|
},
|
|
"data": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_ManagedVectorStore"
|
|
},
|
|
"title": "Data",
|
|
"type": "array"
|
|
},
|
|
"object": {
|
|
"const": "list",
|
|
"title": "Object",
|
|
"type": "string"
|
|
},
|
|
"total_count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Total Count"
|
|
},
|
|
"total_pages": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Total Pages"
|
|
}
|
|
},
|
|
"title": "LiteLLM_ManagedVectorStoreListResponse",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ManagedVectorStoresTable": {
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"custom_llm_provider": {
|
|
"title": "Custom Llm Provider",
|
|
"type": "string"
|
|
},
|
|
"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"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"vector_store_description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Description"
|
|
},
|
|
"vector_store_id": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
},
|
|
"vector_store_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Metadata"
|
|
},
|
|
"vector_store_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Name"
|
|
}
|
|
},
|
|
"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",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_MemoryRow": {
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"memory_id": {
|
|
"title": "Memory Id",
|
|
"type": "string"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"value": {
|
|
"title": "Value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"memory_id",
|
|
"key",
|
|
"value"
|
|
],
|
|
"title": "LiteLLM_MemoryRow",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ModelTable": {
|
|
"properties": {
|
|
"created_by": {
|
|
"title": "Created By",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"model_aliases": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Aliases"
|
|
},
|
|
"team": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_TeamTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"updated_by": {
|
|
"title": "Updated By",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"created_by",
|
|
"updated_by"
|
|
],
|
|
"title": "LiteLLM_ModelTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ObjectPermissionBase": {
|
|
"properties": {
|
|
"agent_access_groups": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Access Groups"
|
|
},
|
|
"agents": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agents"
|
|
},
|
|
"blocked_tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked Tools"
|
|
},
|
|
"mcp_access_groups": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Access Groups"
|
|
},
|
|
"mcp_servers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Servers"
|
|
},
|
|
"mcp_tool_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Tool Permissions"
|
|
},
|
|
"mcp_tool_search_enabled": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Tool Search Enabled"
|
|
},
|
|
"mcp_toolsets": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Toolsets"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"search_tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tools"
|
|
},
|
|
"vector_stores": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Stores"
|
|
}
|
|
},
|
|
"title": "LiteLLM_ObjectPermissionBase",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ObjectPermissionTable": {
|
|
"description": "Represents a LiteLLM_ObjectPermissionTable record",
|
|
"properties": {
|
|
"agent_access_groups": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Agent Access Groups"
|
|
},
|
|
"agents": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Agents"
|
|
},
|
|
"blocked_tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Blocked Tools"
|
|
},
|
|
"mcp_access_groups": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Mcp Access Groups"
|
|
},
|
|
"mcp_servers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Mcp Servers"
|
|
},
|
|
"mcp_tool_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Tool Permissions"
|
|
},
|
|
"mcp_tool_search_enabled": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Tool Search Enabled"
|
|
},
|
|
"mcp_toolsets": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Toolsets"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"object_permission_id": {
|
|
"title": "Object Permission Id",
|
|
"type": "string"
|
|
},
|
|
"search_tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Search Tools"
|
|
},
|
|
"vector_stores": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Vector Stores"
|
|
}
|
|
},
|
|
"required": [
|
|
"object_permission_id"
|
|
],
|
|
"title": "LiteLLM_ObjectPermissionTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_OrganizationMembershipTable": {
|
|
"description": "Tracks which organizations a user belongs to and their spend within it.",
|
|
"properties": {
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"title": "Organization Id",
|
|
"type": "string"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id",
|
|
"organization_id",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "LiteLLM_OrganizationMembershipTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_OrganizationTableWithMembers": {
|
|
"description": "Returned by the /organization/info endpoint and /organization/list endpoint",
|
|
"properties": {
|
|
"budget_id": {
|
|
"title": "Budget Id",
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"created_by": {
|
|
"title": "Created By",
|
|
"type": "string"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"members": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable"
|
|
},
|
|
"title": "Members",
|
|
"type": "array"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Spend"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"organization_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Alias"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"teams": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_TeamTable"
|
|
},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
},
|
|
"updated_by": {
|
|
"title": "Updated By",
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_UserTable"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Users"
|
|
}
|
|
},
|
|
"required": [
|
|
"budget_id",
|
|
"created_by",
|
|
"updated_by",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "LiteLLM_OrganizationTableWithMembers",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_Params": {
|
|
"additionalProperties": true,
|
|
"description": "LiteLLM Params with 'model' requirement - used for completions",
|
|
"properties": {
|
|
"adaptive_router_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Adaptive Router Config"
|
|
},
|
|
"adaptive_router_default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Adaptive Router Default Model"
|
|
},
|
|
"annotation_cost_per_page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Annotation Cost Per Page"
|
|
},
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
},
|
|
"api_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Version"
|
|
},
|
|
"auto_router_config": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auto Router Config"
|
|
},
|
|
"auto_router_config_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auto Router Config Path"
|
|
},
|
|
"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"
|
|
},
|
|
"auto_router_max_input_chars": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auto Router Max Input Chars"
|
|
},
|
|
"aws_access_key_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Access Key Id"
|
|
},
|
|
"aws_batch_role_arn": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Batch Role Arn"
|
|
},
|
|
"aws_bedrock_project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Bedrock Project Id"
|
|
},
|
|
"aws_bedrock_runtime_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Bedrock Runtime Endpoint"
|
|
},
|
|
"aws_region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Region Name"
|
|
},
|
|
"aws_secret_access_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Secret Access Key"
|
|
},
|
|
"azure_ad_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Azure Ad Token"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"cache_creation_input_audio_token_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Audio Token Cost"
|
|
},
|
|
"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_token_cost_above_272k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Above 272K Tokens"
|
|
},
|
|
"cache_creation_input_token_cost_above_272k_tokens_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Above 272K Tokens Flex"
|
|
},
|
|
"cache_creation_input_token_cost_above_272k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Above 272K Tokens Priority"
|
|
},
|
|
"cache_creation_input_token_cost_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Flex"
|
|
},
|
|
"cache_creation_input_token_cost_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Priority"
|
|
},
|
|
"cache_read_input_audio_token_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read 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_above_200k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 200K Tokens"
|
|
},
|
|
"cache_read_input_token_cost_above_200k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 200K Tokens Priority"
|
|
},
|
|
"cache_read_input_token_cost_above_272k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 272K Tokens"
|
|
},
|
|
"cache_read_input_token_cost_above_272k_tokens_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 272K Tokens Flex"
|
|
},
|
|
"cache_read_input_token_cost_above_272k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 272K Tokens Priority"
|
|
},
|
|
"cache_read_input_token_cost_above_512k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 512K Tokens"
|
|
},
|
|
"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"
|
|
},
|
|
"citation_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Citation Cost Per Token"
|
|
},
|
|
"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"
|
|
},
|
|
"configurable_clientside_auth_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ConfigurableClientsideParamsCustomAuth-Input"
|
|
}
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Configurable Clientside Auth Params"
|
|
},
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"default_api_key_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Api Key Rpm Limit"
|
|
},
|
|
"default_api_key_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Api Key Tpm Limit"
|
|
},
|
|
"gcs_bucket_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gcs Bucket Name"
|
|
},
|
|
"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_audio_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Audio Token"
|
|
},
|
|
"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_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_image_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Image Token"
|
|
},
|
|
"input_cost_per_pixel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Pixel"
|
|
},
|
|
"input_cost_per_query": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Query"
|
|
},
|
|
"input_cost_per_second": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Second"
|
|
},
|
|
"input_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token"
|
|
},
|
|
"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_token_above_200k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 200K Tokens Priority"
|
|
},
|
|
"input_cost_per_token_above_272k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 272K Tokens"
|
|
},
|
|
"input_cost_per_token_above_272k_tokens_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 272K Tokens Flex"
|
|
},
|
|
"input_cost_per_token_above_272k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 272K Tokens Priority"
|
|
},
|
|
"input_cost_per_token_above_512k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 512K Tokens"
|
|
},
|
|
"input_cost_per_token_batches": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Batches"
|
|
},
|
|
"input_cost_per_token_cache_hit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Cache Hit"
|
|
},
|
|
"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"
|
|
},
|
|
"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_video_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Video Token"
|
|
},
|
|
"itpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Itpm"
|
|
},
|
|
"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_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_file_size_mb": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max File Size Mb"
|
|
},
|
|
"max_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Retries"
|
|
},
|
|
"merge_reasoning_content_in_choices": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Merge Reasoning Content In Choices"
|
|
},
|
|
"milvus_db_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Milvus Db Name"
|
|
},
|
|
"milvus_partition_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Milvus Partition Names"
|
|
},
|
|
"milvus_text_field": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Milvus Text Field"
|
|
},
|
|
"mock_response": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ModelResponse"
|
|
},
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mock Response"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"model_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Info"
|
|
},
|
|
"ocr_cost_per_credit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ocr Cost Per Credit"
|
|
},
|
|
"ocr_cost_per_page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ocr Cost Per Page"
|
|
},
|
|
"organization": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization"
|
|
},
|
|
"otpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Otpm"
|
|
},
|
|
"output_cost_per_audio_per_second": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Audio Per Second"
|
|
},
|
|
"output_cost_per_audio_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Audio Token"
|
|
},
|
|
"output_cost_per_character": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Character"
|
|
},
|
|
"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_pixel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Pixel"
|
|
},
|
|
"output_cost_per_reasoning_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Reasoning Token"
|
|
},
|
|
"output_cost_per_reasoning_token_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Reasoning Token Flex"
|
|
},
|
|
"output_cost_per_reasoning_token_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Reasoning Token Priority"
|
|
},
|
|
"output_cost_per_second": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Second"
|
|
},
|
|
"output_cost_per_second_1080p": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Second 1080P"
|
|
},
|
|
"output_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per 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_token_above_200k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 200K Tokens Priority"
|
|
},
|
|
"output_cost_per_token_above_272k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 272K Tokens"
|
|
},
|
|
"output_cost_per_token_above_272k_tokens_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 272K Tokens Flex"
|
|
},
|
|
"output_cost_per_token_above_272k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 272K Tokens Priority"
|
|
},
|
|
"output_cost_per_token_above_512k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 512K Tokens"
|
|
},
|
|
"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_video_per_second": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Video Per Second"
|
|
},
|
|
"output_cost_per_video_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Video Token"
|
|
},
|
|
"output_vector_size": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Vector Size"
|
|
},
|
|
"quality_router_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quality Router Config"
|
|
},
|
|
"quality_router_default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quality Router Default Model"
|
|
},
|
|
"region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Region Name"
|
|
},
|
|
"regional_processing_uplift_multiplier_eu": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Regional Processing Uplift Multiplier Eu"
|
|
},
|
|
"regional_processing_uplift_multiplier_us": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Regional Processing Uplift Multiplier Us"
|
|
},
|
|
"rpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm"
|
|
},
|
|
"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"
|
|
},
|
|
"s3_region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "S3 Region Name"
|
|
},
|
|
"search_context_cost_per_query": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Context Cost Per Query"
|
|
},
|
|
"stream_timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Stream Timeout"
|
|
},
|
|
"tag_regex": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Regex"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"tiered_pricing": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tiered Pricing"
|
|
},
|
|
"timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Timeout"
|
|
},
|
|
"tpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm"
|
|
},
|
|
"use_chat_completions_api": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Use Chat Completions Api"
|
|
},
|
|
"use_in_pass_through": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Use In Pass Through"
|
|
},
|
|
"use_litellm_proxy": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Use Litellm Proxy"
|
|
},
|
|
"use_xai_oauth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Use stored xAI OAuth credentials when no xAI API key is configured.",
|
|
"title": "Use Xai Oauth"
|
|
},
|
|
"vector_store_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Id"
|
|
},
|
|
"vertex_credentials": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vertex Credentials"
|
|
},
|
|
"vertex_location": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vertex Location"
|
|
},
|
|
"vertex_project": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vertex Project"
|
|
},
|
|
"watsonx_region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Watsonx Region Name"
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"title": "LiteLLM_Params",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ProjectTable": {
|
|
"description": "Database model representation for project",
|
|
"properties": {
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Rpm Limit"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Spend"
|
|
},
|
|
"model_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Tpm Limit"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"project_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Alias"
|
|
},
|
|
"project_id": {
|
|
"title": "Project Id",
|
|
"type": "string"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
}
|
|
},
|
|
"required": [
|
|
"project_id"
|
|
],
|
|
"title": "LiteLLM_ProjectTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ProxyModelTable": {
|
|
"properties": {
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"litellm_params": {
|
|
"additionalProperties": true,
|
|
"title": "Litellm Params",
|
|
"type": "object"
|
|
},
|
|
"model_id": {
|
|
"title": "Model Id",
|
|
"type": "string"
|
|
},
|
|
"model_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Info"
|
|
},
|
|
"model_name": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
}
|
|
},
|
|
"required": [
|
|
"model_id",
|
|
"model_name",
|
|
"litellm_params"
|
|
],
|
|
"title": "LiteLLM_ProxyModelTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_SpendLogs": {
|
|
"properties": {
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "",
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"title": "Api Key",
|
|
"type": "string"
|
|
},
|
|
"cache_hit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "False",
|
|
"title": "Cache Hit"
|
|
},
|
|
"cache_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Key"
|
|
},
|
|
"call_type": {
|
|
"title": "Call Type",
|
|
"type": "string"
|
|
},
|
|
"completion_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Completion Tokens"
|
|
},
|
|
"endTime": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endtime"
|
|
},
|
|
"messages": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Messages"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Metadata"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "",
|
|
"title": "Model"
|
|
},
|
|
"prompt_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Prompt Tokens"
|
|
},
|
|
"request_id": {
|
|
"title": "Request Id",
|
|
"type": "string"
|
|
},
|
|
"request_tags": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Request Tags"
|
|
},
|
|
"requester_ip_address": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Requester Ip Address"
|
|
},
|
|
"response": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Response"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.0,
|
|
"title": "Spend"
|
|
},
|
|
"startTime": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Starttime"
|
|
},
|
|
"total_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Total Tokens"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "",
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"request_id",
|
|
"api_key",
|
|
"call_type",
|
|
"startTime",
|
|
"endTime",
|
|
"messages",
|
|
"response"
|
|
],
|
|
"title": "LiteLLM_SpendLogs",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_TeamMembership": {
|
|
"properties": {
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTableFull"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Budget Table"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.0,
|
|
"title": "Spend"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"total_spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.0,
|
|
"title": "Total Spend"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id",
|
|
"team_id"
|
|
],
|
|
"title": "LiteLLM_TeamMembership",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_TeamTable": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"admins": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Admins",
|
|
"type": "array"
|
|
},
|
|
"allow_team_guardrail_config": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Allow Team Guardrail Config"
|
|
},
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"default_team_member_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Team Member Models"
|
|
},
|
|
"litellm_model_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ModelTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"members": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Members",
|
|
"type": "array"
|
|
},
|
|
"members_with_roles": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/Member"
|
|
},
|
|
"title": "Members With Roles",
|
|
"type": "array"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Id"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Max Budget"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Spend"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"team_member_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Permissions"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "LiteLLM_TeamTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_ToolTableRow": {
|
|
"properties": {
|
|
"assignments": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Assignments"
|
|
},
|
|
"call_count": {
|
|
"default": 0,
|
|
"title": "Call Count",
|
|
"type": "integer"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"input_policy": {
|
|
"default": "untrusted",
|
|
"enum": [
|
|
"trusted",
|
|
"untrusted",
|
|
"blocked"
|
|
],
|
|
"title": "Input Policy",
|
|
"type": "string"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_hash": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Hash"
|
|
},
|
|
"last_used_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Used At"
|
|
},
|
|
"origin": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Origin"
|
|
},
|
|
"output_policy": {
|
|
"default": "untrusted",
|
|
"enum": [
|
|
"trusted",
|
|
"untrusted"
|
|
],
|
|
"title": "Output Policy",
|
|
"type": "string"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"tool_id": {
|
|
"title": "Tool Id",
|
|
"type": "string"
|
|
},
|
|
"tool_name": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
},
|
|
"user_agent": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Agent"
|
|
}
|
|
},
|
|
"required": [
|
|
"tool_id",
|
|
"tool_name"
|
|
],
|
|
"title": "LiteLLM_ToolTableRow",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_UserTable": {
|
|
"properties": {
|
|
"allowed_cache_controls": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Allowed Cache Controls",
|
|
"type": "array"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Max Budget"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Spend"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"organization_memberships": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Memberships"
|
|
},
|
|
"policies": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Policies",
|
|
"type": "array"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"sso_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sso User Id"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"teams": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"user_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Alias"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id"
|
|
],
|
|
"title": "LiteLLM_UserTable",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_UserTableFiltered": {
|
|
"properties": {
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id"
|
|
],
|
|
"title": "LiteLLM_UserTableFiltered",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_UserTableWithKeyCount": {
|
|
"properties": {
|
|
"allowed_cache_controls": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Allowed Cache Controls",
|
|
"type": "array"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"key_count": {
|
|
"default": 0,
|
|
"title": "Key Count",
|
|
"type": "integer"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Max Budget"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Spend"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"organization_memberships": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Memberships"
|
|
},
|
|
"policies": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Policies",
|
|
"type": "array"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"sso_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sso User Id"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"teams": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"user_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Alias"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id"
|
|
],
|
|
"title": "LiteLLM_UserTableWithKeyCount",
|
|
"type": "object"
|
|
},
|
|
"LiteLLM_VerificationToken": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Aliases",
|
|
"type": "object"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Routes"
|
|
},
|
|
"auto_rotate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Auto Rotate"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"default": {},
|
|
"title": "Budget Fallbacks",
|
|
"type": "object"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"config": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Config",
|
|
"type": "object"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"expires": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Name"
|
|
},
|
|
"key_rotation_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Rotation At"
|
|
},
|
|
"key_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Type"
|
|
},
|
|
"last_active": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Active"
|
|
},
|
|
"last_rotation_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Rotation At"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Budget Table"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Metadata",
|
|
"type": "object"
|
|
},
|
|
"model_max_budget": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Model Max Budget",
|
|
"type": "object"
|
|
},
|
|
"model_spend": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Model Spend",
|
|
"type": "object"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"org_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Org Id"
|
|
},
|
|
"permissions": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Permissions",
|
|
"type": "object"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Id"
|
|
},
|
|
"rotation_count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Rotation Count"
|
|
},
|
|
"rotation_interval": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rotation Interval"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget_cooldown": {
|
|
"default": false,
|
|
"title": "Soft Budget Cooldown",
|
|
"type": "boolean"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"title": "LiteLLM_VerificationToken",
|
|
"type": "object"
|
|
},
|
|
"LitellmParams": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"action": {
|
|
"default": "block",
|
|
"description": "'block' raises an error; 'mask' replaces the code block with a placeholder.",
|
|
"enum": [
|
|
"block",
|
|
"mask"
|
|
],
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"additional_provider_specific_params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Additional provider-specific parameters for generic guardrail APIs",
|
|
"title": "Additional Provider Specific Params"
|
|
},
|
|
"akto_account_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Akto account ID for multi-tenant deployments. Env: AKTO_ACCOUNT_ID. Default: '1000000'.",
|
|
"title": "Akto Account Id"
|
|
},
|
|
"akto_api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "API key for Akto. Env: AKTO_API_KEY.",
|
|
"title": "Akto Api Key"
|
|
},
|
|
"akto_base_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Akto Guardrail API Base URL. Env: AKTO_GUARDRAIL_API_BASE.",
|
|
"examples": [
|
|
"http://localhost:9090",
|
|
"https://akto-ingestion.example.com"
|
|
],
|
|
"title": "Akto Base Url"
|
|
},
|
|
"akto_vxlan_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Akto VXLAN ID. Env: AKTO_VXLAN_ID. Default: '0'.",
|
|
"title": "Akto Vxlan Id"
|
|
},
|
|
"anonymize_input": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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",
|
|
"title": "Anonymize Input"
|
|
},
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Base URL for the Lakera AI API",
|
|
"title": "Api Base"
|
|
},
|
|
"api_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional custom API endpoint for Model Armor",
|
|
"title": "Api Endpoint"
|
|
},
|
|
"api_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The Hiddenlayer API Id for the Hiddenlayer API. If not provided, the `HIDDENLAYER_CLIENT_ID` environment variable is checked or https://api.hiddenlayer.ai is used.",
|
|
"title": "Api Id"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "API key for the Lakera AI service",
|
|
"title": "Api Key"
|
|
},
|
|
"api_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "v1",
|
|
"description": "API version for Javelin service",
|
|
"title": "Api Version"
|
|
},
|
|
"application": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Application name for Javelin service",
|
|
"title": "Application"
|
|
},
|
|
"application_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Application ID for Noma Security. Defaults to 'litellm' if not provided",
|
|
"title": "Application Id"
|
|
},
|
|
"assertions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Custom assertions to validate against the output. Each assertion is a string describing a condition.",
|
|
"title": "Assertions"
|
|
},
|
|
"async_mode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Set to True to request asynchronous analysis (sets `plr_async` header). Defaults to provider behaviour when omitted.",
|
|
"title": "Async Mode"
|
|
},
|
|
"auth_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Authorization bearer token for IBM Guardrails API. Reads from IBM_GUARDRAILS_AUTH_TOKEN env var if None.",
|
|
"title": "Auth Token"
|
|
},
|
|
"aws_access_key_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "AWS access key ID for authentication",
|
|
"title": "Aws Access Key Id"
|
|
},
|
|
"aws_bedrock_runtime_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "AWS Bedrock runtime endpoint URL",
|
|
"title": "Aws Bedrock Runtime Endpoint"
|
|
},
|
|
"aws_profile_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "AWS profile name for credential retrieval",
|
|
"title": "Aws Profile Name"
|
|
},
|
|
"aws_region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "AWS region where your guardrail is deployed",
|
|
"title": "Aws Region Name"
|
|
},
|
|
"aws_role_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "AWS role name for assuming roles",
|
|
"title": "Aws Role Name"
|
|
},
|
|
"aws_secret_access_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "AWS secret access key for authentication",
|
|
"title": "Aws Secret Access Key"
|
|
},
|
|
"aws_session_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name of the AWS session",
|
|
"title": "Aws Session Name"
|
|
},
|
|
"aws_session_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "AWS session token for temporary credentials",
|
|
"title": "Aws Session Token"
|
|
},
|
|
"aws_sts_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "AWS STS endpoint URL",
|
|
"title": "Aws Sts Endpoint"
|
|
},
|
|
"aws_web_identity_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Web identity token for AWS role assumption",
|
|
"title": "Aws Web Identity Token"
|
|
},
|
|
"base_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Base URL for the IBM Guardrails server",
|
|
"title": "Base Url"
|
|
},
|
|
"block_failures": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "If True, blocks requests on API failures. Defaults to True if not provided",
|
|
"title": "Block Failures"
|
|
},
|
|
"block_on_error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Whether to block the request when the PromptGuard API is unreachable. Defaults to true (fail-closed). Set to false for fail-open behaviour.",
|
|
"title": "Block On Error"
|
|
},
|
|
"block_on_violation": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Whether to block requests when violations are detected. Defaults to True.",
|
|
"title": "Block On Violation"
|
|
},
|
|
"blocked_languages": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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"
|
|
],
|
|
"title": "Blocked Languages",
|
|
"ui_type": "multiselect"
|
|
},
|
|
"blocked_words": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BlockedWord"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of blocked words with individual actions",
|
|
"title": "Blocked Words"
|
|
},
|
|
"blocked_words_file": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to YAML file containing blocked_words list",
|
|
"title": "Blocked Words File"
|
|
},
|
|
"breakdown": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Whether to include breakdown in the response",
|
|
"title": "Breakdown"
|
|
},
|
|
"categories": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentFilterCategoryConfig"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of prebuilt categories to enable (harmful_*, bias_*)",
|
|
"title": "Categories"
|
|
},
|
|
"category_thresholds": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LakeraCategoryThresholds"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Threshold configuration for Lakera guardrail categories"
|
|
},
|
|
"confidence_threshold": {
|
|
"default": 0.5,
|
|
"default_value": 0.5,
|
|
"description": "Only block or mask when detection confidence >= this value; below threshold, allow or log_only.",
|
|
"max": 1.0,
|
|
"maximum": 1.0,
|
|
"min": 0.0,
|
|
"minimum": 0.0,
|
|
"step": 0.1,
|
|
"title": "Confidence Threshold",
|
|
"type": "number",
|
|
"ui_type": "percentage"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Additional configuration for the guardrail",
|
|
"title": "Config"
|
|
},
|
|
"content_moderation_check": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Enable content moderation to check for harmful content (harassment, hate speech, etc.).",
|
|
"title": "Content Moderation Check"
|
|
},
|
|
"credentials": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to Google Cloud credentials JSON file or JSON string",
|
|
"title": "Credentials"
|
|
},
|
|
"custom_code": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Python-like code containing the apply_guardrail function for custom guardrail logic",
|
|
"title": "Custom Code"
|
|
},
|
|
"default_action": {
|
|
"default": "deny",
|
|
"description": "Fallback decision when no rule matches",
|
|
"enum": [
|
|
"allow",
|
|
"deny"
|
|
],
|
|
"title": "Default Action",
|
|
"type": "string"
|
|
},
|
|
"default_on": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Whether the guardrail is enabled by default",
|
|
"title": "Default On"
|
|
},
|
|
"deployment_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The EnkryptAI deployment name to use. Sent via X-Enkrypt-Deployment header.",
|
|
"title": "Deployment Name"
|
|
},
|
|
"detect_execution_intent": {
|
|
"default": true,
|
|
"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').",
|
|
"title": "Detect Execution Intent",
|
|
"type": "boolean"
|
|
},
|
|
"detect_secrets_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Configuration for detect-secrets guardrail",
|
|
"title": "Detect Secrets Config"
|
|
},
|
|
"detector_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name of the detector inside the server (e.g., 'jailbreak-detector')",
|
|
"title": "Detector Id"
|
|
},
|
|
"detectors": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Dictionary of detector configurations (e.g., {'nsfw': {'enabled': True}, 'toxicity': {'enabled': True}}).",
|
|
"title": "Detectors"
|
|
},
|
|
"dev_info": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Whether to include developer information in the response",
|
|
"title": "Dev Info"
|
|
},
|
|
"disable_exception_on_block": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "If True, will not raise an exception when the guardrail is blocked. Useful for OpenWebUI where exceptions can end the chat flow.",
|
|
"title": "Disable Exception On Block"
|
|
},
|
|
"end_session_after_n_fails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "For /v1/realtime sessions: automatically close the session after this many guardrail violations.",
|
|
"title": "End Session After N Fails"
|
|
},
|
|
"evaluation_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Pre-configured evaluation ID from Qualifire dashboard. When provided, uses invoke_evaluation() instead of evaluate().",
|
|
"title": "Evaluation Id"
|
|
},
|
|
"experimental_use_latest_role_message_only": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"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)",
|
|
"title": "Experimental Use Latest Role Message Only"
|
|
},
|
|
"extra_headers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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).",
|
|
"title": "Extra Headers"
|
|
},
|
|
"fail_on_error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Whether to fail the request if Model Armor encounters an error",
|
|
"title": "Fail On Error"
|
|
},
|
|
"grounding_check": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Enable grounding verification to ensure output is grounded in provided context.",
|
|
"title": "Grounding Check"
|
|
},
|
|
"grounding_strictness": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"BALANCED",
|
|
"STRICT"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Strictness level for XecGuard context-grounding validation. 'BALANCED' (default) treats INCOMPLETE answers as SAFE; 'STRICT' flags them as UNSAFE. Grounding only runs in post_call when `metadata.xecguard_grounding_documents` is provided.",
|
|
"title": "Grounding Strictness"
|
|
},
|
|
"guard_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name of the Javelin guard to use",
|
|
"title": "Guard Name"
|
|
},
|
|
"guardrail": {
|
|
"description": "The type of guardrail integration to use",
|
|
"title": "Guardrail",
|
|
"type": "string"
|
|
},
|
|
"guardrailIdentifier": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The ID of your guardrail on Bedrock",
|
|
"title": "Guardrailidentifier"
|
|
},
|
|
"guardrailVersion": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The version of your Bedrock guardrail (e.g., DRAFT or version number)",
|
|
"title": "Guardrailversion"
|
|
},
|
|
"guardrail_timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "HTTP timeout in seconds. Default: 5.",
|
|
"title": "Guardrail Timeout"
|
|
},
|
|
"hallucinations_check": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Enable hallucination detection to detect factual inaccuracies.",
|
|
"title": "Hallucinations Check"
|
|
},
|
|
"include_evidence": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Include detailed evidence payloads in responses (sets `plr_evidence` header).",
|
|
"title": "Include Evidence"
|
|
},
|
|
"include_scanners": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Include scanner category summaries in responses (sets `plr_scanners` header).",
|
|
"title": "Include Scanners"
|
|
},
|
|
"is_detector_server": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Boolean flag to determine if calling a detector server (True) or the FMS Orchestrator (False). Defaults to True.",
|
|
"title": "Is Detector Server"
|
|
},
|
|
"keyword_redaction_tag": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Tag to use for keyword redaction",
|
|
"title": "Keyword Redaction Tag"
|
|
},
|
|
"lasso_conversation_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Conversation ID for the Lasso guardrail",
|
|
"title": "Lasso Conversation Id"
|
|
},
|
|
"lasso_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "User ID for the Lasso guardrail",
|
|
"title": "Lasso User Id"
|
|
},
|
|
"location": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Google Cloud location/region (e.g., us-central1)",
|
|
"title": "Location"
|
|
},
|
|
"mask": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Enable content masking using Lasso classifix API",
|
|
"title": "Mask"
|
|
},
|
|
"mask_request_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Will mask request content if guardrail makes any changes",
|
|
"title": "Mask Request Content"
|
|
},
|
|
"mask_response_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Will mask response content if guardrail makes any changes",
|
|
"title": "Mask Response Content"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Additional metadata to include in the request",
|
|
"title": "Metadata"
|
|
},
|
|
"mock_redacted_text": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Mock redacted text for testing",
|
|
"title": "Mock Redacted Text"
|
|
},
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Mode"
|
|
}
|
|
],
|
|
"description": "When to apply the guardrail (pre_call, post_call, during_call, logging_only)",
|
|
"title": "Mode"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional field if guardrail requires a 'model' parameter",
|
|
"title": "Model"
|
|
},
|
|
"monitor_mode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "If True, logs violations without blocking. Defaults to False if not provided",
|
|
"title": "Monitor Mode"
|
|
},
|
|
"on_disallowed_action": {
|
|
"default": "block",
|
|
"description": "Choose whether disallowed tools block the request or get rewritten out of the payload",
|
|
"enum": [
|
|
"block",
|
|
"rewrite"
|
|
],
|
|
"title": "On Disallowed Action",
|
|
"type": "string"
|
|
},
|
|
"on_flagged": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"block",
|
|
"monitor"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "block",
|
|
"description": "Action to take when content is flagged: 'block' (raise exception) or 'monitor' (log only)",
|
|
"title": "On Flagged"
|
|
},
|
|
"on_flagged_action": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "monitor",
|
|
"description": "Action to take when content is flagged: 'block' (raise exception) or 'monitor' (log only)",
|
|
"title": "On Flagged Action"
|
|
},
|
|
"on_violation": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"warn",
|
|
"end_session"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "For /v1/realtime sessions: 'warn' speaks the violation message and continues; 'end_session' speaks the message and closes the connection.",
|
|
"title": "On Violation"
|
|
},
|
|
"optional_params": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GraySwanGuardrailConfigModelOptionalParams"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional parameters for the guardrail"
|
|
},
|
|
"output_parse_pii": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When True, LiteLLM will replace the masked text with the original text in the response",
|
|
"title": "Output Parse Pii",
|
|
"ui_type": "bool"
|
|
},
|
|
"pangea_input_recipe": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Recipe for input (LLM request)",
|
|
"title": "Pangea Input Recipe"
|
|
},
|
|
"pangea_output_recipe": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Recipe for output (LLM response)",
|
|
"title": "Pangea Output Recipe"
|
|
},
|
|
"pattern_redaction_format": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Format string for pattern redaction (use {pattern_name} placeholder)",
|
|
"title": "Pattern Redaction Format"
|
|
},
|
|
"patterns": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ContentFilterPattern"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of patterns (prebuilt or custom regex) to detect",
|
|
"title": "Patterns"
|
|
},
|
|
"payload": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Whether to include payload in the response",
|
|
"title": "Payload"
|
|
},
|
|
"persist_session": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Controls Pillar session persistence (sets `plr_persist` header). Set to False to disable persistence.",
|
|
"title": "Persist Session"
|
|
},
|
|
"pii_check": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Enable PII (Personally Identifiable Information) detection.",
|
|
"title": "Pii Check"
|
|
},
|
|
"pii_entities_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/PiiAction"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Configuration for PII entity types and actions",
|
|
"title": "Pii Entities Config"
|
|
},
|
|
"policy_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Policy ID for Zscaler AI Guard. Can also be set via ZSCALER_AI_GUARD_POLICY_ID environment variable",
|
|
"title": "Policy Id"
|
|
},
|
|
"policy_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The EnkryptAI policy name to use. Sent via x-enkrypt-policy header.",
|
|
"title": "Policy Name"
|
|
},
|
|
"policy_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "XecGuard policies to apply on each scan. Select one or more of the built-in default policies; if none are selected, the guardrail defaults to System Prompt Enforcement + Harmful Content Protection.",
|
|
"options": [
|
|
"Default_Policy_SystemPromptEnforcement",
|
|
"Default_Policy_GeneralPromptAttackProtection",
|
|
"Default_Policy_ContentBiasProtection",
|
|
"Default_Policy_HarmfulContentProtection",
|
|
"Default_Policy_SkillsProtection",
|
|
"Default_Policy_PIISensitiveDataProtection"
|
|
],
|
|
"title": "Policy Names",
|
|
"ui_type": "multiselect"
|
|
},
|
|
"presidio_ad_hoc_recognizers": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Path to a JSON file containing ad-hoc recognizers for Presidio",
|
|
"title": "Presidio Ad Hoc Recognizers"
|
|
},
|
|
"presidio_analyzer_api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Base URL for the Presidio analyzer API",
|
|
"title": "Presidio Analyzer Api Base"
|
|
},
|
|
"presidio_anonymizer_api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Base URL for the Presidio anonymizer API",
|
|
"title": "Presidio Anonymizer Api Base"
|
|
},
|
|
"presidio_entities_deny_list": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PiiEntityType"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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).",
|
|
"title": "Presidio Entities Deny List"
|
|
},
|
|
"presidio_filter_scope": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"input",
|
|
"output",
|
|
"both"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Where to apply Presidio checks: 'input' (user -> model), 'output' (model -> user), or 'both' (default).",
|
|
"title": "Presidio Filter Scope"
|
|
},
|
|
"presidio_language": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "en",
|
|
"description": "Language code for Presidio PII analysis (e.g., 'en', 'de', 'es', 'fr')",
|
|
"title": "Presidio Language"
|
|
},
|
|
"presidio_run_on": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"input",
|
|
"output",
|
|
"both"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Where to apply Presidio checks: input, output, or both (default).",
|
|
"title": "Presidio Run On"
|
|
},
|
|
"presidio_score_thresholds": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "number"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional per-entity minimum confidence scores for Presidio detections. Entities below the threshold are ignored.",
|
|
"title": "Presidio Score Thresholds"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Project ID for the Lakera AI project",
|
|
"title": "Project Id"
|
|
},
|
|
"prompt_injections": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Enable prompt injection detection. Default check if no evaluation_id and no other checks are specified.",
|
|
"title": "Prompt Injections"
|
|
},
|
|
"realtime_violation_message": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The message the bot speaks aloud when a /v1/realtime guardrail fires. Falls back to violation_message_template if not set.",
|
|
"title": "Realtime Violation Message"
|
|
},
|
|
"rules": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ToolPermissionRule"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Ordered allow/deny rules. Patterns use regex for tool names/types and optional regex constraints on tool arguments.",
|
|
"title": "Rules"
|
|
},
|
|
"send_user_api_key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Whether to send user_API_key_alias in headers",
|
|
"title": "Send User Api Key Alias"
|
|
},
|
|
"send_user_api_key_team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Whether to send user_API_key_team_id in headers",
|
|
"title": "Send User Api Key Team Id"
|
|
},
|
|
"send_user_api_key_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Whether to send user_API_key_user_id in headers",
|
|
"title": "Send User Api Key User Id"
|
|
},
|
|
"severity_threshold": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Minimum severity to block (high, medium, low)",
|
|
"title": "Severity Threshold"
|
|
},
|
|
"skip_system_message_in_guardrail": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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.",
|
|
"title": "Skip System Message In Guardrail"
|
|
},
|
|
"template_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The ID of your Model Armor template",
|
|
"title": "Template Id"
|
|
},
|
|
"tool_selection_quality_check": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Enable tool selection quality check to evaluate quality of tool/function calls.",
|
|
"title": "Tool Selection Quality Check"
|
|
},
|
|
"unreachable_fallback": {
|
|
"default": "fail_closed",
|
|
"description": "What to do when Akto is unreachable. 'fail_open' = allow, 'fail_closed' = block.",
|
|
"enum": [
|
|
"fail_closed",
|
|
"fail_open"
|
|
],
|
|
"title": "Unreachable Fallback",
|
|
"type": "string"
|
|
},
|
|
"use_v2": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "If True and guardrail='noma', route to the new Noma v2 implementation instead of the legacy implementation.",
|
|
"title": "Use V2"
|
|
},
|
|
"verify_ssl": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"description": "Whether to verify SSL certificates. Defaults to True.",
|
|
"title": "Verify Ssl"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 2,
|
|
"description": "Hiddenlayer guardrail version to use.",
|
|
"title": "Version"
|
|
},
|
|
"violation_message_template": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Custom message when a guardrail blocks an action. Supports placeholders like {tool_name}, {rule_id}, and {default_message}.",
|
|
"title": "Violation Message Template"
|
|
},
|
|
"xecguard_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "XecGuard scanning model identifier. Defaults to 'xecguard_v2'.",
|
|
"title": "Xecguard Model"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail",
|
|
"mode"
|
|
],
|
|
"title": "LitellmParams",
|
|
"type": "object"
|
|
},
|
|
"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",
|
|
"enum": [
|
|
"proxy_admin",
|
|
"proxy_admin_viewer",
|
|
"org_admin",
|
|
"internal_user",
|
|
"internal_user_viewer",
|
|
"team",
|
|
"customer"
|
|
],
|
|
"title": "LitellmUserRoles",
|
|
"type": "string"
|
|
},
|
|
"LoggingCallbackStatus": {
|
|
"properties": {
|
|
"callbacks": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Callbacks",
|
|
"type": "array"
|
|
},
|
|
"details": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Details"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"healthy",
|
|
"unhealthy"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "LoggingCallbackStatus",
|
|
"type": "object"
|
|
},
|
|
"MCPCredentials": {
|
|
"properties": {
|
|
"auth_value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auth Value"
|
|
},
|
|
"aws_access_key_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Access Key Id"
|
|
},
|
|
"aws_region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Region Name"
|
|
},
|
|
"aws_role_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Role Name"
|
|
},
|
|
"aws_secret_access_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Secret Access Key"
|
|
},
|
|
"aws_service_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Service Name"
|
|
},
|
|
"aws_session_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Session Name"
|
|
},
|
|
"aws_session_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Session Token"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"title": "MCPCredentials",
|
|
"type": "object"
|
|
},
|
|
"MCPOAuthUserCredentialRequest": {
|
|
"description": "Stores a user's OAuth2 token for an OpenAPI MCP server.",
|
|
"properties": {
|
|
"access_token": {
|
|
"title": "Access Token",
|
|
"type": "string"
|
|
},
|
|
"expires_in": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires In"
|
|
},
|
|
"refresh_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Refresh Token"
|
|
},
|
|
"scopes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Scopes"
|
|
}
|
|
},
|
|
"required": [
|
|
"access_token"
|
|
],
|
|
"title": "MCPOAuthUserCredentialRequest",
|
|
"type": "object"
|
|
},
|
|
"MCPOAuthUserCredentialStatus": {
|
|
"description": "Describes whether the calling user has a stored OAuth credential.",
|
|
"properties": {
|
|
"connected_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Connected At"
|
|
},
|
|
"expires_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires At"
|
|
},
|
|
"has_credential": {
|
|
"title": "Has Credential",
|
|
"type": "boolean"
|
|
},
|
|
"is_expired": {
|
|
"default": false,
|
|
"title": "Is Expired",
|
|
"type": "boolean"
|
|
},
|
|
"server_id": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"server_id",
|
|
"has_credential"
|
|
],
|
|
"title": "MCPOAuthUserCredentialStatus",
|
|
"type": "object"
|
|
},
|
|
"MCPPublicServer": {
|
|
"description": "Safe params for public MCP servers",
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"auth_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"none",
|
|
"api_key",
|
|
"bearer_token",
|
|
"basic",
|
|
"authorization",
|
|
"oauth2",
|
|
"aws_sigv4",
|
|
"token",
|
|
"oauth2_token_exchange",
|
|
"oauth2_id_jag",
|
|
"true_passthrough",
|
|
"oauth_delegate"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auth Type"
|
|
},
|
|
"mcp_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Info"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"server_id": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
},
|
|
"server_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Server Name"
|
|
},
|
|
"spec_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spec Path"
|
|
},
|
|
"transport": {
|
|
"enum": [
|
|
"sse",
|
|
"http",
|
|
"stdio"
|
|
],
|
|
"title": "Transport",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"server_id",
|
|
"name",
|
|
"transport"
|
|
],
|
|
"title": "MCPPublicServer",
|
|
"type": "object"
|
|
},
|
|
"MCPSemanticFilterSettings": {
|
|
"description": "Configuration for MCP Semantic Tool Filter",
|
|
"properties": {
|
|
"embedding_model": {
|
|
"default": "text-embedding-3-small",
|
|
"description": "Embedding model to use for semantic similarity (e.g., 'text-embedding-3-small', 'text-embedding-ada-002')",
|
|
"title": "Embedding Model",
|
|
"type": "string"
|
|
},
|
|
"enabled": {
|
|
"default": false,
|
|
"description": "Enable semantic filtering of MCP tools based on query relevance",
|
|
"title": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"similarity_threshold": {
|
|
"default": 0.3,
|
|
"description": "Minimum similarity score for tool inclusion (0.0 to 1.0, where 1.0 = exact match)",
|
|
"maximum": 1.0,
|
|
"minimum": 0.0,
|
|
"title": "Similarity Threshold",
|
|
"type": "number"
|
|
},
|
|
"top_k": {
|
|
"default": 10,
|
|
"description": "Number of most relevant tools to return",
|
|
"maximum": 100.0,
|
|
"minimum": 1.0,
|
|
"title": "Top K",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"title": "MCPSemanticFilterSettings",
|
|
"type": "object"
|
|
},
|
|
"MCPSemanticFilterSettingsResponse": {
|
|
"description": "Response model for MCP semantic filter settings",
|
|
"properties": {
|
|
"field_schema": {
|
|
"additionalProperties": true,
|
|
"title": "Field Schema",
|
|
"type": "object"
|
|
},
|
|
"values": {
|
|
"additionalProperties": true,
|
|
"title": "Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"values",
|
|
"field_schema"
|
|
],
|
|
"title": "MCPSemanticFilterSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"MCPSubmissionsSummary": {
|
|
"properties": {
|
|
"active": {
|
|
"title": "Active",
|
|
"type": "integer"
|
|
},
|
|
"items": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_MCPServerTable"
|
|
},
|
|
"title": "Items",
|
|
"type": "array"
|
|
},
|
|
"pending_review": {
|
|
"title": "Pending Review",
|
|
"type": "integer"
|
|
},
|
|
"rejected": {
|
|
"title": "Rejected",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"total",
|
|
"pending_review",
|
|
"active",
|
|
"rejected",
|
|
"items"
|
|
],
|
|
"title": "MCPSubmissionsSummary",
|
|
"type": "object"
|
|
},
|
|
"MCPToolsetTool": {
|
|
"properties": {
|
|
"server_id": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
},
|
|
"tool_name": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"server_id",
|
|
"tool_name"
|
|
],
|
|
"title": "MCPToolsetTool",
|
|
"type": "object"
|
|
},
|
|
"MCPUserCredentialListItem": {
|
|
"description": "One entry in the /user-credentials list.",
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"connected_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Connected At"
|
|
},
|
|
"credential_type": {
|
|
"title": "Credential Type",
|
|
"type": "string"
|
|
},
|
|
"expires_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires At"
|
|
},
|
|
"has_credential": {
|
|
"title": "Has Credential",
|
|
"type": "boolean"
|
|
},
|
|
"server_id": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
},
|
|
"server_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Server Name"
|
|
}
|
|
},
|
|
"required": [
|
|
"server_id",
|
|
"credential_type",
|
|
"has_credential"
|
|
],
|
|
"title": "MCPUserCredentialListItem",
|
|
"type": "object"
|
|
},
|
|
"MCPUserCredentialRequest": {
|
|
"properties": {
|
|
"credential": {
|
|
"title": "Credential",
|
|
"type": "string"
|
|
},
|
|
"save": {
|
|
"default": true,
|
|
"title": "Save",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"credential"
|
|
],
|
|
"title": "MCPUserCredentialRequest",
|
|
"type": "object"
|
|
},
|
|
"MCPUserCredentialResponse": {
|
|
"properties": {
|
|
"has_credential": {
|
|
"title": "Has Credential",
|
|
"type": "boolean"
|
|
},
|
|
"server_id": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"server_id",
|
|
"has_credential"
|
|
],
|
|
"title": "MCPUserCredentialResponse",
|
|
"type": "object"
|
|
},
|
|
"MakeAgentsPublicRequest": {
|
|
"properties": {
|
|
"agent_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Agent Ids",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"agent_ids"
|
|
],
|
|
"title": "MakeAgentsPublicRequest",
|
|
"type": "object"
|
|
},
|
|
"MakeMCPServersPublicRequest": {
|
|
"properties": {
|
|
"mcp_server_ids": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Mcp Server Ids",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"mcp_server_ids"
|
|
],
|
|
"title": "MakeMCPServersPublicRequest",
|
|
"type": "object"
|
|
},
|
|
"Member": {
|
|
"properties": {
|
|
"role": {
|
|
"description": "The role of the user within the team. 'admin' users can manage team settings and members, 'user' is a regular team member",
|
|
"enum": [
|
|
"admin",
|
|
"user"
|
|
],
|
|
"title": "Role",
|
|
"type": "string"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The email address of the user to add. Either user_id or user_email must be provided",
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The unique ID of the user to add. Either user_id or user_email must be provided",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"role"
|
|
],
|
|
"title": "Member",
|
|
"type": "object"
|
|
},
|
|
"MemoryCreateRequest": {
|
|
"properties": {
|
|
"key": {
|
|
"description": "Memory key (acts as the namespace in the URL).",
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional JSON metadata (tags, structured fields).",
|
|
"title": "Metadata"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Scope to this team. Defaults to the caller's team_id.",
|
|
"title": "Team Id"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Scope to this user. Defaults to the caller's user_id.",
|
|
"title": "User Id"
|
|
},
|
|
"value": {
|
|
"description": "Memory content. Typically markdown/text for LLM context.",
|
|
"title": "Value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"value"
|
|
],
|
|
"title": "MemoryCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"MemoryDeleteResponse": {
|
|
"properties": {
|
|
"deleted": {
|
|
"title": "Deleted",
|
|
"type": "boolean"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"deleted"
|
|
],
|
|
"title": "MemoryDeleteResponse",
|
|
"type": "object"
|
|
},
|
|
"MemoryListResponse": {
|
|
"properties": {
|
|
"memories": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_MemoryRow"
|
|
},
|
|
"title": "Memories",
|
|
"type": "array"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"memories",
|
|
"total"
|
|
],
|
|
"title": "MemoryListResponse",
|
|
"type": "object"
|
|
},
|
|
"MemoryUpdateRequest": {
|
|
"properties": {
|
|
"metadata": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value"
|
|
}
|
|
},
|
|
"title": "MemoryUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"Message": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"annotations": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionAnnotation"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Annotations"
|
|
},
|
|
"audio": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionAudioResponse"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Content"
|
|
},
|
|
"function_call": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/FunctionCall"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"images": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ImageURLListItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Images"
|
|
},
|
|
"provider_specific_fields": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider Specific Fields"
|
|
},
|
|
"reasoning_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reasoning Content"
|
|
},
|
|
"reasoning_items": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatCompletionReasoningItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reasoning Items"
|
|
},
|
|
"role": {
|
|
"enum": [
|
|
"assistant",
|
|
"user",
|
|
"system",
|
|
"tool",
|
|
"function"
|
|
],
|
|
"title": "Role",
|
|
"type": "string"
|
|
},
|
|
"thinking_blocks": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionThinkingBlock"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionRedactedThinkingBlock"
|
|
}
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Thinking Blocks"
|
|
},
|
|
"tool_calls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionMessageToolCall"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ChatCompletionMessageCustomToolCall"
|
|
}
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tool Calls"
|
|
}
|
|
},
|
|
"required": [
|
|
"content",
|
|
"role",
|
|
"tool_calls",
|
|
"function_call"
|
|
],
|
|
"title": "Message",
|
|
"type": "object"
|
|
},
|
|
"MetricWithMetadata": {
|
|
"properties": {
|
|
"api_key_breakdown": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/KeyMetricWithMetadata"
|
|
},
|
|
"title": "Api Key Breakdown",
|
|
"type": "object"
|
|
},
|
|
"metadata": {
|
|
"additionalProperties": true,
|
|
"title": "Metadata",
|
|
"type": "object"
|
|
},
|
|
"metrics": {
|
|
"$ref": "#/components/schemas/SpendMetrics"
|
|
}
|
|
},
|
|
"required": [
|
|
"metrics"
|
|
],
|
|
"title": "MetricWithMetadata",
|
|
"type": "object"
|
|
},
|
|
"Mode": {
|
|
"properties": {
|
|
"default": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default mode when no tags match",
|
|
"title": "Default"
|
|
},
|
|
"tags": {
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
]
|
|
},
|
|
"description": "Tags for the guardrail mode",
|
|
"title": "Tags",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"tags"
|
|
],
|
|
"title": "Mode",
|
|
"type": "object"
|
|
},
|
|
"ModelGroupInfoProxy": {
|
|
"properties": {
|
|
"configurable_clientside_auth_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ConfigurableClientsideParamsCustomAuth-Output"
|
|
}
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Configurable Clientside Auth Params"
|
|
},
|
|
"health_checked_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Health Checked At"
|
|
},
|
|
"health_response_time": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Health Response Time"
|
|
},
|
|
"health_status": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Health Status"
|
|
},
|
|
"input_cost_per_pixel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Pixel"
|
|
},
|
|
"input_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token"
|
|
},
|
|
"is_public_model_group": {
|
|
"default": false,
|
|
"title": "Is Public Model Group",
|
|
"type": "boolean"
|
|
},
|
|
"itpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Itpm"
|
|
},
|
|
"max_input_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Input Tokens"
|
|
},
|
|
"max_output_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Output Tokens"
|
|
},
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"enum": [
|
|
"chat",
|
|
"embedding",
|
|
"completion",
|
|
"image_generation",
|
|
"audio_transcription",
|
|
"rerank",
|
|
"moderations"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "chat",
|
|
"title": "Mode"
|
|
},
|
|
"model_group": {
|
|
"title": "Model Group",
|
|
"type": "string"
|
|
},
|
|
"otpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Otpm"
|
|
},
|
|
"output_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token"
|
|
},
|
|
"providers": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Providers",
|
|
"type": "array"
|
|
},
|
|
"rpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm"
|
|
},
|
|
"supported_openai_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Supported Openai Params"
|
|
},
|
|
"supports_function_calling": {
|
|
"default": false,
|
|
"title": "Supports Function Calling",
|
|
"type": "boolean"
|
|
},
|
|
"supports_parallel_function_calling": {
|
|
"default": false,
|
|
"title": "Supports Parallel Function Calling",
|
|
"type": "boolean"
|
|
},
|
|
"supports_reasoning": {
|
|
"default": false,
|
|
"title": "Supports Reasoning",
|
|
"type": "boolean"
|
|
},
|
|
"supports_url_context": {
|
|
"default": false,
|
|
"title": "Supports Url Context",
|
|
"type": "boolean"
|
|
},
|
|
"supports_vision": {
|
|
"default": false,
|
|
"title": "Supports Vision",
|
|
"type": "boolean"
|
|
},
|
|
"supports_web_search": {
|
|
"default": false,
|
|
"title": "Supports Web Search",
|
|
"type": "boolean"
|
|
},
|
|
"tpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm"
|
|
}
|
|
},
|
|
"required": [
|
|
"model_group",
|
|
"providers"
|
|
],
|
|
"title": "ModelGroupInfoProxy",
|
|
"type": "object"
|
|
},
|
|
"ModelInfoDelete": {
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "ModelInfoDelete",
|
|
"type": "object"
|
|
},
|
|
"ModelParams": {
|
|
"properties": {
|
|
"litellm_params": {
|
|
"additionalProperties": true,
|
|
"title": "Litellm Params",
|
|
"type": "object"
|
|
},
|
|
"model_info": {
|
|
"$ref": "#/components/schemas/litellm__proxy___types__ModelInfo"
|
|
},
|
|
"model_name": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"model_name",
|
|
"litellm_params",
|
|
"model_info"
|
|
],
|
|
"title": "ModelParams",
|
|
"type": "object"
|
|
},
|
|
"ModelResponse": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"choices": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/Choices"
|
|
},
|
|
"title": "Choices",
|
|
"type": "array"
|
|
},
|
|
"created": {
|
|
"title": "Created",
|
|
"type": "integer"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"object": {
|
|
"title": "Object",
|
|
"type": "string"
|
|
},
|
|
"system_fingerprint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "System Fingerprint"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"created",
|
|
"object",
|
|
"choices"
|
|
],
|
|
"title": "ModelResponse",
|
|
"type": "object"
|
|
},
|
|
"MutualTLSSecurityScheme": {
|
|
"description": "Defines a security scheme using mTLS authentication.",
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"type": {
|
|
"const": "mutualTLS",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type"
|
|
],
|
|
"title": "MutualTLSSecurityScheme",
|
|
"type": "object"
|
|
},
|
|
"NewCustomerRequest": {
|
|
"description": "Create a new customer, allocate a budget to them",
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"allowed_model_region": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"eu",
|
|
"us"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Model Region"
|
|
},
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max duration budget should be set for (e.g. '1hr', '1d', '28d')",
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Datetime when the budget is reset",
|
|
"title": "Budget Reset At"
|
|
},
|
|
"default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Model"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Requests will fail if this budget (in USD) is exceeded.",
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max concurrent requests allowed for this budget id.",
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/BudgetConfig"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max budget for each model (e.g. {'gpt-4o': {'max_budget': '0.0000001', 'budget_duration': '1d', 'tpm_limit': 1000, 'rpm_limit': 1000}})",
|
|
"title": "Model Max Budget"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max requests per minute, allowed for this budget id.",
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Requests will NOT fail if this is exceeded. Will fire alerting though.",
|
|
"title": "Soft Budget"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Max tokens per minute, allowed for this budget id.",
|
|
"title": "Tpm Limit"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id"
|
|
],
|
|
"title": "NewCustomerRequest",
|
|
"type": "object"
|
|
},
|
|
"NewMCPServerRequest": {
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"allow_all_keys": {
|
|
"default": false,
|
|
"title": "Allow All Keys",
|
|
"type": "boolean"
|
|
},
|
|
"allowed_tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Tools"
|
|
},
|
|
"approval_status": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Server-managed: set by the endpoint; caller values are overridden.",
|
|
"title": "Approval Status"
|
|
},
|
|
"args": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Args",
|
|
"type": "array"
|
|
},
|
|
"auth_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"none",
|
|
"api_key",
|
|
"bearer_token",
|
|
"basic",
|
|
"authorization",
|
|
"oauth2",
|
|
"aws_sigv4",
|
|
"token"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auth Type"
|
|
},
|
|
"authorization_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Authorization Url"
|
|
},
|
|
"available_on_public_internet": {
|
|
"default": true,
|
|
"title": "Available On Public Internet",
|
|
"type": "boolean"
|
|
},
|
|
"byok_api_key_help_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Byok Api Key Help Url"
|
|
},
|
|
"byok_description": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Byok Description",
|
|
"type": "array"
|
|
},
|
|
"command": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Command"
|
|
},
|
|
"credentials": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MCPCredentials"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"env": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"title": "Env",
|
|
"type": "object"
|
|
},
|
|
"extra_headers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Extra Headers"
|
|
},
|
|
"instructions": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Instructions"
|
|
},
|
|
"is_byok": {
|
|
"default": false,
|
|
"title": "Is Byok",
|
|
"type": "boolean"
|
|
},
|
|
"mcp_access_groups": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Mcp Access Groups",
|
|
"type": "array"
|
|
},
|
|
"mcp_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Info"
|
|
},
|
|
"oauth2_flow": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"client_credentials",
|
|
"authorization_code"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Oauth2 Flow"
|
|
},
|
|
"registration_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Registration Url"
|
|
},
|
|
"server_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Server Id"
|
|
},
|
|
"server_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Server Name"
|
|
},
|
|
"source_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Url"
|
|
},
|
|
"spec_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spec Path"
|
|
},
|
|
"static_headers": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Static Headers"
|
|
},
|
|
"submitted_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Server-managed: set by the endpoint; caller values are overridden.",
|
|
"title": "Submitted At"
|
|
},
|
|
"submitted_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Server-managed: set by the endpoint; caller values are overridden.",
|
|
"title": "Submitted By"
|
|
},
|
|
"token_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token Url"
|
|
},
|
|
"tool_name_to_description": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tool Name To Description"
|
|
},
|
|
"tool_name_to_display_name": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tool Name To Display Name"
|
|
},
|
|
"transport": {
|
|
"default": "sse",
|
|
"enum": [
|
|
"sse",
|
|
"http",
|
|
"stdio"
|
|
],
|
|
"title": "Transport",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
}
|
|
},
|
|
"title": "NewMCPServerRequest",
|
|
"type": "object"
|
|
},
|
|
"NewMCPToolsetRequest": {
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"tools": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/MCPToolsetTool"
|
|
},
|
|
"title": "Tools",
|
|
"type": "array"
|
|
},
|
|
"toolset_name": {
|
|
"title": "Toolset Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"toolset_name"
|
|
],
|
|
"title": "NewMCPToolsetRequest",
|
|
"type": "object"
|
|
},
|
|
"NewModelGroupRequest": {
|
|
"properties": {
|
|
"access_group": {
|
|
"title": "Access Group",
|
|
"type": "string"
|
|
},
|
|
"model_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Ids"
|
|
},
|
|
"model_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Names"
|
|
}
|
|
},
|
|
"required": [
|
|
"access_group"
|
|
],
|
|
"title": "NewModelGroupRequest",
|
|
"type": "object"
|
|
},
|
|
"NewModelGroupResponse": {
|
|
"properties": {
|
|
"access_group": {
|
|
"title": "Access Group",
|
|
"type": "string"
|
|
},
|
|
"model_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Ids"
|
|
},
|
|
"model_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Names"
|
|
},
|
|
"models_updated": {
|
|
"title": "Models Updated",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"access_group",
|
|
"models_updated"
|
|
],
|
|
"title": "NewModelGroupResponse",
|
|
"type": "object"
|
|
},
|
|
"NewOrganizationRequest": {
|
|
"properties": {
|
|
"allowed_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Models"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Max Budget"
|
|
},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_alias": {
|
|
"title": "Organization Alias",
|
|
"type": "string"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"required": [
|
|
"organization_alias"
|
|
],
|
|
"title": "NewOrganizationRequest",
|
|
"type": "object"
|
|
},
|
|
"NewOrganizationResponse": {
|
|
"properties": {
|
|
"budget_id": {
|
|
"title": "Budget Id",
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"created_by": {
|
|
"title": "Created By",
|
|
"type": "string"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Spend"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"organization_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Alias"
|
|
},
|
|
"organization_id": {
|
|
"title": "Organization Id",
|
|
"type": "string"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
},
|
|
"updated_by": {
|
|
"title": "Updated By",
|
|
"type": "string"
|
|
},
|
|
"users": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_UserTable"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Users"
|
|
}
|
|
},
|
|
"required": [
|
|
"organization_id",
|
|
"budget_id",
|
|
"created_by",
|
|
"updated_by",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "NewOrganizationResponse",
|
|
"type": "object"
|
|
},
|
|
"NewProjectRequest": {
|
|
"description": "Request model for POST /project/new",
|
|
"properties": {
|
|
"allowed_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Models"
|
|
},
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"project_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Alias"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Id"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "NewProjectRequest",
|
|
"type": "object"
|
|
},
|
|
"NewProjectResponse": {
|
|
"description": "Response model for POST /project/new",
|
|
"properties": {
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"created_at": {
|
|
"format": "date-time",
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Rpm Limit"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Spend"
|
|
},
|
|
"model_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Tpm Limit"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"project_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Alias"
|
|
},
|
|
"project_id": {
|
|
"title": "Project Id",
|
|
"type": "string"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"updated_at": {
|
|
"format": "date-time",
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
}
|
|
},
|
|
"required": [
|
|
"project_id",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "NewProjectResponse",
|
|
"type": "object"
|
|
},
|
|
"NewTeamRequest": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"admins": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Admins",
|
|
"type": "array"
|
|
},
|
|
"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"
|
|
},
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"default_team_member_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Team Member Models"
|
|
},
|
|
"disable_global_guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Disable Global Guardrails"
|
|
},
|
|
"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"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"members": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Members",
|
|
"type": "array"
|
|
},
|
|
"members_with_roles": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/Member"
|
|
},
|
|
"title": "Members With Roles",
|
|
"type": "array"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Aliases"
|
|
},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"rpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit Type"
|
|
},
|
|
"secret_manager_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Secret Manager Settings"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"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_key_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Key Duration"
|
|
},
|
|
"team_member_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Permissions"
|
|
},
|
|
"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"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"tpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit Type"
|
|
}
|
|
},
|
|
"title": "NewTeamRequest",
|
|
"type": "object"
|
|
},
|
|
"NewUserRequest": {
|
|
"properties": {
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Aliases"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"auto_create_key": {
|
|
"default": true,
|
|
"title": "Auto Create Key",
|
|
"type": "boolean"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Fallbacks"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Config"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organizations": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organizations"
|
|
},
|
|
"permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Permissions"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"send_invite_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Send Invite Email"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Spend"
|
|
},
|
|
"sso_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sso User Id"
|
|
},
|
|
"tag_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Rpm Limit"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"teams": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/NewUserRequestTeam"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Teams"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"user_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Alias"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"proxy_admin",
|
|
"proxy_admin_viewer",
|
|
"internal_user",
|
|
"internal_user_viewer"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"title": "NewUserRequest",
|
|
"type": "object"
|
|
},
|
|
"NewUserRequestTeam": {
|
|
"properties": {
|
|
"max_budget_in_team": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget In Team"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"user_role": {
|
|
"default": "user",
|
|
"enum": [
|
|
"user",
|
|
"admin"
|
|
],
|
|
"title": "User Role",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "NewUserRequestTeam",
|
|
"type": "object"
|
|
},
|
|
"NewUserResponse": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Aliases"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"allowed_passthrough_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Passthrough Routes"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Routes"
|
|
},
|
|
"allowed_vector_store_indexes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AllowedVectorStoreIndexItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Vector Store Indexes"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Fallbacks"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Config"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"disable_global_guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Disable Global Guardrails"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"enforced_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Enforced Params"
|
|
},
|
|
"expires": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Name"
|
|
},
|
|
"key_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Type"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Budget Table"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Metadata"
|
|
},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Permissions"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Id"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UpdateRouterConfig"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"rpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit Type"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Spend"
|
|
},
|
|
"tag_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Rpm Limit"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"teams": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Teams"
|
|
},
|
|
"throttle_on_budget_exceeded": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Throttle On Budget Exceeded"
|
|
},
|
|
"token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token"
|
|
},
|
|
"token_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token Id"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"tpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit Type"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
},
|
|
"user_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Alias"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"proxy_admin",
|
|
"proxy_admin_viewer",
|
|
"internal_user",
|
|
"internal_user_viewer"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"title": "NewUserResponse",
|
|
"type": "object"
|
|
},
|
|
"OAuth2SecurityScheme": {
|
|
"description": "Defines a security scheme using OAuth 2.0.",
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"flows": {
|
|
"$ref": "#/components/schemas/OAuthFlows"
|
|
},
|
|
"oauth2MetadataUrl": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Oauth2Metadataurl"
|
|
},
|
|
"type": {
|
|
"const": "oauth2",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"flows"
|
|
],
|
|
"title": "OAuth2SecurityScheme",
|
|
"type": "object"
|
|
},
|
|
"OAuthFlows": {
|
|
"description": "Defines the configuration for the supported OAuth 2.0 flows.",
|
|
"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"
|
|
}
|
|
},
|
|
"title": "OAuthFlows",
|
|
"type": "object"
|
|
},
|
|
"OpenIdConnectSecurityScheme": {
|
|
"description": "Defines a security scheme using OpenID Connect.",
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"openIdConnectUrl": {
|
|
"title": "Openidconnecturl",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"const": "openIdConnect",
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"type",
|
|
"openIdConnectUrl"
|
|
],
|
|
"title": "OpenIdConnectSecurityScheme",
|
|
"type": "object"
|
|
},
|
|
"OrgMember": {
|
|
"properties": {
|
|
"role": {
|
|
"enum": [
|
|
"org_admin",
|
|
"internal_user",
|
|
"internal_user_viewer"
|
|
],
|
|
"title": "Role",
|
|
"type": "string"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The email address of the user to add. Either user_id or user_email must be provided",
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The unique ID of the user to add. Either user_id or user_email must be provided",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"role"
|
|
],
|
|
"title": "OrgMember",
|
|
"type": "object"
|
|
},
|
|
"OrganizationAddMemberResponse": {
|
|
"properties": {
|
|
"organization_id": {
|
|
"title": "Organization Id",
|
|
"type": "string"
|
|
},
|
|
"updated_organization_memberships": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable"
|
|
},
|
|
"title": "Updated Organization Memberships",
|
|
"type": "array"
|
|
},
|
|
"updated_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_UserTable"
|
|
},
|
|
"title": "Updated Users",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"organization_id",
|
|
"updated_users",
|
|
"updated_organization_memberships"
|
|
],
|
|
"title": "OrganizationAddMemberResponse",
|
|
"type": "object"
|
|
},
|
|
"OrganizationMemberAddRequest": {
|
|
"properties": {
|
|
"max_budget_in_organization": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget In Organization"
|
|
},
|
|
"member": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/OrgMember"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/OrgMember"
|
|
}
|
|
],
|
|
"title": "Member"
|
|
},
|
|
"organization_id": {
|
|
"title": "Organization Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"member",
|
|
"organization_id"
|
|
],
|
|
"title": "OrganizationMemberAddRequest",
|
|
"type": "object"
|
|
},
|
|
"OrganizationMemberDeleteRequest": {
|
|
"properties": {
|
|
"organization_id": {
|
|
"title": "Organization Id",
|
|
"type": "string"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"organization_id"
|
|
],
|
|
"title": "OrganizationMemberDeleteRequest",
|
|
"type": "object"
|
|
},
|
|
"OrganizationMemberUpdateRequest": {
|
|
"properties": {
|
|
"max_budget_in_organization": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget In Organization"
|
|
},
|
|
"organization_id": {
|
|
"title": "Organization Id",
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LitellmUserRoles"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"organization_id"
|
|
],
|
|
"title": "OrganizationMemberUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"OrganizationRequest": {
|
|
"properties": {
|
|
"organizations": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Organizations",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"organizations"
|
|
],
|
|
"title": "OrganizationRequest",
|
|
"type": "object"
|
|
},
|
|
"OrganizationUpdateRequestV2": {
|
|
"additionalProperties": false,
|
|
"description": "Typed PATCH body for ``/v2/organization/{organization_id}`` (RFC 7396 merge-patch).\n\nPresence is read from ``model_fields_set``, so a sent field is written and an omitted one is\nleft untouched. ``extra=\"forbid\"`` makes an unknown key a 422 rather than a silent no-op, since\nthe contract hinges on which keys are present. See the endpoint for the per-field clear tokens.",
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Max Budget"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Alias"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"title": "OrganizationUpdateRequestV2",
|
|
"type": "object"
|
|
},
|
|
"PageLinks": {
|
|
"description": "Hypermedia for a paginated list. No `first`/`last`: without a total count the last page is unknown.",
|
|
"properties": {
|
|
"next": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Next"
|
|
},
|
|
"prev": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prev"
|
|
},
|
|
"self": {
|
|
"title": "Self",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"self"
|
|
],
|
|
"title": "PageLinks",
|
|
"type": "object"
|
|
},
|
|
"PageMeta": {
|
|
"description": "`has_more` rather than `total_count`, which would need a COUNT(*) over the whole match set per keystroke.",
|
|
"properties": {
|
|
"has_more": {
|
|
"title": "Has More",
|
|
"type": "boolean"
|
|
},
|
|
"page": {
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"page",
|
|
"page_size",
|
|
"has_more"
|
|
],
|
|
"title": "PageMeta",
|
|
"type": "object"
|
|
},
|
|
"PaginatedAuditLogResponse": {
|
|
"description": "Response model for paginated audit logs",
|
|
"properties": {
|
|
"audit_logs": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AuditLogResponse"
|
|
},
|
|
"title": "Audit Logs",
|
|
"type": "array"
|
|
},
|
|
"page": {
|
|
"description": "Current page number",
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"description": "Number of items per page",
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"description": "Total number of audit logs matching the filters",
|
|
"title": "Total",
|
|
"type": "integer"
|
|
},
|
|
"total_pages": {
|
|
"description": "Total number of pages",
|
|
"title": "Total Pages",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"audit_logs",
|
|
"total",
|
|
"page",
|
|
"page_size",
|
|
"total_pages"
|
|
],
|
|
"title": "PaginatedAuditLogResponse",
|
|
"type": "object"
|
|
},
|
|
"PassThroughEndpointResponse": {
|
|
"properties": {
|
|
"endpoints": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PassThroughGenericEndpoint"
|
|
},
|
|
"title": "Endpoints",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"endpoints"
|
|
],
|
|
"title": "PassThroughEndpointResponse",
|
|
"type": "object"
|
|
},
|
|
"PassThroughGenericEndpoint": {
|
|
"properties": {
|
|
"auth": {
|
|
"default": true,
|
|
"description": "Whether authentication is required for the pass-through endpoint. Defaults to True so a pass-through silently created without an explicit value still requires a valid LiteLLM API key \u2014 set to False only if the endpoint is meant to be a public forwarder (e.g. an unauthenticated webhook target).",
|
|
"title": "Auth",
|
|
"type": "boolean"
|
|
},
|
|
"cost_per_request": {
|
|
"default": 0.0,
|
|
"description": "The USD cost per request to the target endpoint. This is used to calculate the cost of the request to the target endpoint.",
|
|
"title": "Cost Per Request",
|
|
"type": "number"
|
|
},
|
|
"default_query_params": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"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'}",
|
|
"title": "Default Query Params",
|
|
"type": "object"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PassThroughGuardrailSettings"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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).",
|
|
"title": "Guardrails"
|
|
},
|
|
"headers": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"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",
|
|
"title": "Headers",
|
|
"type": "object"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional unique identifier for the pass-through endpoint. If not provided, endpoints will be identified by path for backwards compatibility.",
|
|
"title": "Id"
|
|
},
|
|
"include_subpath": {
|
|
"default": false,
|
|
"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.",
|
|
"title": "Include Subpath",
|
|
"type": "boolean"
|
|
},
|
|
"is_from_config": {
|
|
"default": false,
|
|
"description": "True if this endpoint is defined in the config file, False if from DB. Config-defined endpoints cannot be edited via the UI.",
|
|
"title": "Is From Config",
|
|
"type": "boolean"
|
|
},
|
|
"methods": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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.",
|
|
"title": "Methods"
|
|
},
|
|
"path": {
|
|
"description": "The route to be added to the LiteLLM Proxy Server.",
|
|
"title": "Path",
|
|
"type": "string"
|
|
},
|
|
"target": {
|
|
"description": "The URL to which requests for this path should be forwarded.",
|
|
"title": "Target",
|
|
"type": "string"
|
|
},
|
|
"timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Upstream request timeout in seconds for this pass-through endpoint. If unset, uses general_settings.pass_through_request_timeout (default 600).",
|
|
"title": "Timeout"
|
|
}
|
|
},
|
|
"required": [
|
|
"path",
|
|
"target"
|
|
],
|
|
"title": "PassThroughGenericEndpoint",
|
|
"type": "object"
|
|
},
|
|
"PassThroughGuardrailSettings": {
|
|
"description": "Settings for a specific guardrail on a passthrough endpoint.\n\nAllows field-level targeting for guardrail execution.",
|
|
"properties": {
|
|
"request_fields": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "JSONPath expressions for input field targeting (pre_call). Examples: 'query', 'documents[*].text', 'messages[*].content'. If not specified, guardrail runs on entire request payload.",
|
|
"title": "Request Fields"
|
|
},
|
|
"response_fields": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "JSONPath expressions for output field targeting (post_call). Examples: 'results[*].text', 'output'. If not specified, guardrail runs on entire response payload.",
|
|
"title": "Response Fields"
|
|
}
|
|
},
|
|
"title": "PassThroughGuardrailSettings",
|
|
"type": "object"
|
|
},
|
|
"PatchAgentRequest": {
|
|
"properties": {
|
|
"agent_card_params": {
|
|
"$ref": "#/components/schemas/AgentCard"
|
|
},
|
|
"agent_name": {
|
|
"title": "Agent Name",
|
|
"type": "string"
|
|
},
|
|
"extra_headers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Extra Headers"
|
|
},
|
|
"litellm_params": {
|
|
"additionalProperties": true,
|
|
"title": "Litellm Params",
|
|
"type": "object"
|
|
},
|
|
"object_permission": {
|
|
"$ref": "#/components/schemas/AgentObjectPermission"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"session_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Session Rpm Limit"
|
|
},
|
|
"session_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Session Tpm Limit"
|
|
},
|
|
"static_headers": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Static Headers"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"title": "PatchAgentRequest",
|
|
"type": "object"
|
|
},
|
|
"PatchGuardrailRequest": {
|
|
"properties": {
|
|
"guardrail_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Info"
|
|
},
|
|
"guardrail_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Name"
|
|
},
|
|
"litellm_params": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/BaseLitellmParams-Input"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"title": "PatchGuardrailRequest",
|
|
"type": "object"
|
|
},
|
|
"PatchPromptRequest": {
|
|
"properties": {
|
|
"litellm_params": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PromptLiteLLMParams"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"prompt_info": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PromptInfo"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"title": "PatchPromptRequest",
|
|
"type": "object"
|
|
},
|
|
"PatchTeamRequest": {
|
|
"description": "Body of PATCH /team/{team_id}.\n\nIdentical to UpdateTeamRequest except team_id is optional, because PATCH takes it\nfrom the path. A team_id in the body is still accepted when it matches the path.",
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"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"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"default_team_member_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Team Member Models"
|
|
},
|
|
"disable_global_guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Disable Global Guardrails"
|
|
},
|
|
"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"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Aliases"
|
|
},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"secret_manager_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Secret Manager Settings"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"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_key_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Key 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"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"title": "PatchTeamRequest",
|
|
"type": "object"
|
|
},
|
|
"PerTestingCriteriaResult": {
|
|
"description": "Results for a specific testing criteria",
|
|
"properties": {
|
|
"average_score": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Average Score"
|
|
},
|
|
"result_counts": {
|
|
"$ref": "#/components/schemas/ResultCounts"
|
|
},
|
|
"testing_criteria_index": {
|
|
"title": "Testing Criteria Index",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"testing_criteria_index",
|
|
"result_counts"
|
|
],
|
|
"title": "PerTestingCriteriaResult",
|
|
"type": "object"
|
|
},
|
|
"PerUserAnalyticsResponse": {
|
|
"description": "Response for per-user analytics",
|
|
"properties": {
|
|
"page": {
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
},
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PerUserMetrics"
|
|
},
|
|
"title": "Results",
|
|
"type": "array"
|
|
},
|
|
"total_count": {
|
|
"title": "Total Count",
|
|
"type": "integer"
|
|
},
|
|
"total_pages": {
|
|
"title": "Total Pages",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"results",
|
|
"total_count",
|
|
"page",
|
|
"page_size",
|
|
"total_pages"
|
|
],
|
|
"title": "PerUserAnalyticsResponse",
|
|
"type": "object"
|
|
},
|
|
"PerUserMetrics": {
|
|
"description": "Metrics for individual user",
|
|
"properties": {
|
|
"failed_requests": {
|
|
"default": 0,
|
|
"title": "Failed Requests",
|
|
"type": "integer"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"successful_requests": {
|
|
"default": 0,
|
|
"title": "Successful Requests",
|
|
"type": "integer"
|
|
},
|
|
"total_requests": {
|
|
"default": 0,
|
|
"title": "Total Requests",
|
|
"type": "integer"
|
|
},
|
|
"total_tokens": {
|
|
"default": 0,
|
|
"title": "Total Tokens",
|
|
"type": "integer"
|
|
},
|
|
"user_agent": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Agent"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id"
|
|
],
|
|
"title": "PerUserMetrics",
|
|
"type": "object"
|
|
},
|
|
"PiiAction": {
|
|
"enum": [
|
|
"BLOCK",
|
|
"MASK"
|
|
],
|
|
"title": "PiiAction",
|
|
"type": "string"
|
|
},
|
|
"PiiEntityType": {
|
|
"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",
|
|
"type": "string"
|
|
},
|
|
"PipelineTestRequest": {
|
|
"description": "Request body for testing a guardrail pipeline with sample messages.",
|
|
"properties": {
|
|
"pipeline": {
|
|
"additionalProperties": true,
|
|
"description": "Pipeline definition with 'mode' and 'steps'.",
|
|
"title": "Pipeline",
|
|
"type": "object"
|
|
},
|
|
"test_messages": {
|
|
"description": "Test messages to run through the pipeline, e.g. [{'role': 'user', 'content': '...'}].",
|
|
"items": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"title": "Test Messages",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"pipeline",
|
|
"test_messages"
|
|
],
|
|
"title": "PipelineTestRequest",
|
|
"type": "object"
|
|
},
|
|
"PluginAuthor": {
|
|
"description": "Plugin author information.",
|
|
"properties": {
|
|
"email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Author email",
|
|
"title": "Email"
|
|
},
|
|
"name": {
|
|
"description": "Author name",
|
|
"title": "Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "PluginAuthor",
|
|
"type": "object"
|
|
},
|
|
"PluginConfig": {
|
|
"description": "A single external service registered as an embeddable UI plugin.",
|
|
"properties": {
|
|
"display_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "human-readable label shown in the UI view switcher",
|
|
"title": "Display Name"
|
|
},
|
|
"name": {
|
|
"description": "unique plugin identifier (kebab-case)",
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"plugin_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "plugin's own credential, injected as Bearer auth only on /plugin-proxy/<name>/* reverse-proxy calls",
|
|
"title": "Plugin Key"
|
|
},
|
|
"url": {
|
|
"description": "base URL of the plugin service",
|
|
"title": "Url",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name",
|
|
"url"
|
|
],
|
|
"title": "PluginConfig",
|
|
"type": "object"
|
|
},
|
|
"PluginListItem": {
|
|
"description": "Plugin item in list responses.",
|
|
"properties": {
|
|
"author": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PluginAuthor"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"category": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Category"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Domain"
|
|
},
|
|
"enabled": {
|
|
"title": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"homepage": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Homepage"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Keywords"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"namespace": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Namespace"
|
|
},
|
|
"source": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"title": "Source",
|
|
"type": "object"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Version"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"version",
|
|
"description",
|
|
"source",
|
|
"enabled",
|
|
"created_at",
|
|
"updated_at"
|
|
],
|
|
"title": "PluginListItem",
|
|
"type": "object"
|
|
},
|
|
"PluginResponse": {
|
|
"description": "Plugin information in API responses.",
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin description",
|
|
"title": "Description"
|
|
},
|
|
"enabled": {
|
|
"description": "Whether plugin is enabled",
|
|
"title": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"id": {
|
|
"description": "Plugin unique ID",
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"description": "Plugin name",
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"source": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "Git source reference",
|
|
"title": "Source",
|
|
"type": "object"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin version",
|
|
"title": "Version"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"source",
|
|
"enabled"
|
|
],
|
|
"title": "PluginResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyAttachmentCreateRequest": {
|
|
"description": "Request body for creating a policy attachment.",
|
|
"properties": {
|
|
"keys": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Key aliases or patterns this attachment applies to.",
|
|
"title": "Keys"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Model names or patterns this attachment applies to.",
|
|
"title": "Models"
|
|
},
|
|
"policy_name": {
|
|
"description": "Name of the policy to attach.",
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Use '*' for global scope (applies to all requests).",
|
|
"title": "Scope"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Tag patterns this attachment applies to. Supports wildcards (e.g., health-*).",
|
|
"title": "Tags"
|
|
},
|
|
"teams": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Team aliases or patterns this attachment applies to.",
|
|
"title": "Teams"
|
|
}
|
|
},
|
|
"required": [
|
|
"policy_name"
|
|
],
|
|
"title": "PolicyAttachmentCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"PolicyAttachmentDBResponse": {
|
|
"description": "Response for a policy attachment from the database.",
|
|
"properties": {
|
|
"attachment_id": {
|
|
"description": "Unique ID of the attachment.",
|
|
"title": "Attachment Id",
|
|
"type": "string"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When the attachment was created.",
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Who created the attachment.",
|
|
"title": "Created By"
|
|
},
|
|
"definition_location": {
|
|
"default": "db",
|
|
"description": "Where this attachment is defined: 'db' (database) or 'config' (config.yaml).",
|
|
"enum": [
|
|
"db",
|
|
"config"
|
|
],
|
|
"title": "Definition Location",
|
|
"type": "string"
|
|
},
|
|
"keys": {
|
|
"description": "Key patterns.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Keys",
|
|
"type": "array"
|
|
},
|
|
"models": {
|
|
"description": "Model patterns.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"policy_name": {
|
|
"description": "Name of the attached policy.",
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
},
|
|
"scope": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Scope of the attachment.",
|
|
"title": "Scope"
|
|
},
|
|
"tags": {
|
|
"description": "Tag patterns.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Tags",
|
|
"type": "array"
|
|
},
|
|
"teams": {
|
|
"description": "Team patterns.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When the attachment was last updated.",
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Who last updated the attachment.",
|
|
"title": "Updated By"
|
|
}
|
|
},
|
|
"required": [
|
|
"attachment_id",
|
|
"policy_name"
|
|
],
|
|
"title": "PolicyAttachmentDBResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyAttachmentListResponse": {
|
|
"description": "Response for listing policy attachments.",
|
|
"properties": {
|
|
"attachments": {
|
|
"description": "List of policy attachments.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PolicyAttachmentDBResponse"
|
|
},
|
|
"title": "Attachments",
|
|
"type": "array"
|
|
},
|
|
"total_count": {
|
|
"default": 0,
|
|
"description": "Total number of attachments.",
|
|
"title": "Total Count",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"title": "PolicyAttachmentListResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyConditionRequest": {
|
|
"description": "Condition for when a policy applies.",
|
|
"properties": {
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Model name pattern (exact match or regex) for when policy applies.",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
"title": "PolicyConditionRequest",
|
|
"type": "object"
|
|
},
|
|
"PolicyCreateRequest": {
|
|
"description": "Request body for creating a new policy.",
|
|
"properties": {
|
|
"condition": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PolicyConditionRequest"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Condition for when this policy applies."
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Human-readable description of the policy.",
|
|
"title": "Description"
|
|
},
|
|
"guardrails_add": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of guardrail names to add.",
|
|
"title": "Guardrails Add"
|
|
},
|
|
"guardrails_remove": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of guardrail names to remove (from inherited).",
|
|
"title": "Guardrails Remove"
|
|
},
|
|
"inherit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name of parent policy to inherit from.",
|
|
"title": "Inherit"
|
|
},
|
|
"pipeline": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional guardrail pipeline for ordered execution. Contains 'mode' and 'steps'.",
|
|
"title": "Pipeline"
|
|
},
|
|
"policy_name": {
|
|
"description": "Unique name for the policy.",
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"policy_name"
|
|
],
|
|
"title": "PolicyCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"PolicyDBResponse": {
|
|
"description": "Response for a policy from the database.",
|
|
"properties": {
|
|
"condition": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Policy condition.",
|
|
"title": "Condition"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When the policy was created.",
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Who created the policy.",
|
|
"title": "Created By"
|
|
},
|
|
"definition_location": {
|
|
"default": "db",
|
|
"description": "Where this policy is defined: 'db' (database) or 'config' (config.yaml).",
|
|
"enum": [
|
|
"db",
|
|
"config"
|
|
],
|
|
"title": "Definition Location",
|
|
"type": "string"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Policy description.",
|
|
"title": "Description"
|
|
},
|
|
"guardrails_add": {
|
|
"description": "Guardrails to add.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Guardrails Add",
|
|
"type": "array"
|
|
},
|
|
"guardrails_remove": {
|
|
"description": "Guardrails to remove.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Guardrails Remove",
|
|
"type": "array"
|
|
},
|
|
"inherit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Parent policy name.",
|
|
"title": "Inherit"
|
|
},
|
|
"is_latest": {
|
|
"default": true,
|
|
"description": "True if this is the latest version by version_number.",
|
|
"title": "Is Latest",
|
|
"type": "boolean"
|
|
},
|
|
"parent_version_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Policy ID this version was cloned from.",
|
|
"title": "Parent Version Id"
|
|
},
|
|
"pipeline": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional guardrail pipeline.",
|
|
"title": "Pipeline"
|
|
},
|
|
"policy_id": {
|
|
"description": "Unique ID of the policy.",
|
|
"title": "Policy Id",
|
|
"type": "string"
|
|
},
|
|
"policy_name": {
|
|
"description": "Name of the policy.",
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
},
|
|
"production_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When this version was promoted to production.",
|
|
"title": "Production At"
|
|
},
|
|
"published_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When this version was published.",
|
|
"title": "Published At"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When the policy was last updated.",
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Who last updated the policy.",
|
|
"title": "Updated By"
|
|
},
|
|
"version_number": {
|
|
"default": 1,
|
|
"description": "Version number of this policy.",
|
|
"title": "Version Number",
|
|
"type": "integer"
|
|
},
|
|
"version_status": {
|
|
"default": "production",
|
|
"description": "One of: draft, published, production.",
|
|
"title": "Version Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"policy_id",
|
|
"policy_name"
|
|
],
|
|
"title": "PolicyDBResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyGuardrailsResponse": {
|
|
"description": "Guardrails configuration for a policy.",
|
|
"properties": {
|
|
"add": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Add",
|
|
"type": "array"
|
|
},
|
|
"remove": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Remove",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"title": "PolicyGuardrailsResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyInfoResponse": {
|
|
"description": "Response for /policy/info/{policy_name} endpoint.",
|
|
"properties": {
|
|
"guardrails": {
|
|
"$ref": "#/components/schemas/PolicyGuardrailsResponse"
|
|
},
|
|
"inherit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Inherit"
|
|
},
|
|
"inheritance_chain": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Inheritance Chain",
|
|
"type": "array"
|
|
},
|
|
"policy_name": {
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
},
|
|
"resolved_guardrails": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Resolved Guardrails",
|
|
"type": "array"
|
|
},
|
|
"scope": {
|
|
"$ref": "#/components/schemas/PolicyScopeResponse"
|
|
}
|
|
},
|
|
"required": [
|
|
"policy_name",
|
|
"scope",
|
|
"guardrails",
|
|
"resolved_guardrails",
|
|
"inheritance_chain"
|
|
],
|
|
"title": "PolicyInfoResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyListDBResponse": {
|
|
"description": "Response for listing policies from the database.",
|
|
"properties": {
|
|
"policies": {
|
|
"description": "List of policies.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse"
|
|
},
|
|
"title": "Policies",
|
|
"type": "array"
|
|
},
|
|
"total_count": {
|
|
"default": 0,
|
|
"description": "Total number of policies.",
|
|
"title": "Total Count",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"title": "PolicyListDBResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyListResponse": {
|
|
"description": "Response for /policy/list endpoint.",
|
|
"properties": {
|
|
"policies": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/PolicySummaryItem"
|
|
},
|
|
"title": "Policies",
|
|
"type": "object"
|
|
},
|
|
"total_count": {
|
|
"title": "Total Count",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"policies",
|
|
"total_count"
|
|
],
|
|
"title": "PolicyListResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyMatchContext": {
|
|
"additionalProperties": false,
|
|
"description": "Context used to match a request against policies.\n\nContains the team alias, key alias, and model from the incoming request.",
|
|
"properties": {
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "API key alias from the request.",
|
|
"title": "Key Alias"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Model name from the request.",
|
|
"title": "Model"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Tags from key/team metadata.",
|
|
"title": "Tags"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Team alias from the request.",
|
|
"title": "Team Alias"
|
|
}
|
|
},
|
|
"title": "PolicyMatchContext",
|
|
"type": "object"
|
|
},
|
|
"PolicyMatchDetail": {
|
|
"description": "Details about why a specific policy matched.",
|
|
"properties": {
|
|
"guardrails_added": {
|
|
"description": "Guardrails this policy contributes.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Guardrails Added",
|
|
"type": "array"
|
|
},
|
|
"matched_via": {
|
|
"description": "How the policy was matched (e.g., 'tag:healthcare', 'team:health-team', 'scope:*').",
|
|
"title": "Matched Via",
|
|
"type": "string"
|
|
},
|
|
"policy_name": {
|
|
"description": "Name of the matched policy.",
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"policy_name",
|
|
"matched_via"
|
|
],
|
|
"title": "PolicyMatchDetail",
|
|
"type": "object"
|
|
},
|
|
"PolicyResolveRequest": {
|
|
"description": "Request body for resolving effective policies/guardrails for a context.",
|
|
"properties": {
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Key alias to resolve for.",
|
|
"title": "Key Alias"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Model name to resolve for.",
|
|
"title": "Model"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Tags to resolve for.",
|
|
"title": "Tags"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Team alias to resolve for.",
|
|
"title": "Team Alias"
|
|
}
|
|
},
|
|
"title": "PolicyResolveRequest",
|
|
"type": "object"
|
|
},
|
|
"PolicyResolveResponse": {
|
|
"description": "Response for resolving effective policies/guardrails for a context.",
|
|
"properties": {
|
|
"effective_guardrails": {
|
|
"description": "Final list of guardrails that would be applied.",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Effective Guardrails",
|
|
"type": "array"
|
|
},
|
|
"matched_policies": {
|
|
"description": "Details about each matched policy and why it matched.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PolicyMatchDetail"
|
|
},
|
|
"title": "Matched Policies",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"title": "PolicyResolveResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyScopeResponse": {
|
|
"description": "Scope configuration for a policy.",
|
|
"properties": {
|
|
"keys": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Keys",
|
|
"type": "array"
|
|
},
|
|
"models": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"tags": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Tags",
|
|
"type": "array"
|
|
},
|
|
"teams": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"title": "PolicyScopeResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicySummaryItem": {
|
|
"description": "Summary of a single policy for list endpoint.",
|
|
"properties": {
|
|
"guardrails": {
|
|
"$ref": "#/components/schemas/PolicyGuardrailsResponse"
|
|
},
|
|
"inherit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Inherit"
|
|
},
|
|
"inheritance_chain": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Inheritance Chain",
|
|
"type": "array"
|
|
},
|
|
"resolved_guardrails": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Resolved Guardrails",
|
|
"type": "array"
|
|
},
|
|
"scope": {
|
|
"$ref": "#/components/schemas/PolicyScopeResponse"
|
|
}
|
|
},
|
|
"required": [
|
|
"scope",
|
|
"guardrails",
|
|
"resolved_guardrails",
|
|
"inheritance_chain"
|
|
],
|
|
"title": "PolicySummaryItem",
|
|
"type": "object"
|
|
},
|
|
"PolicyTestResponse": {
|
|
"description": "Response for /policy/test endpoint.",
|
|
"properties": {
|
|
"context": {
|
|
"$ref": "#/components/schemas/PolicyMatchContext"
|
|
},
|
|
"matching_policies": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Matching Policies",
|
|
"type": "array"
|
|
},
|
|
"message": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Message"
|
|
},
|
|
"resolved_guardrails": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Resolved Guardrails",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"context",
|
|
"matching_policies",
|
|
"resolved_guardrails"
|
|
],
|
|
"title": "PolicyTestResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyUpdateRequest": {
|
|
"description": "Request body for updating a policy.",
|
|
"properties": {
|
|
"condition": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PolicyConditionRequest"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Condition for when this policy applies."
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Human-readable description of the policy.",
|
|
"title": "Description"
|
|
},
|
|
"guardrails_add": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of guardrail names to add.",
|
|
"title": "Guardrails Add"
|
|
},
|
|
"guardrails_remove": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of guardrail names to remove (from inherited).",
|
|
"title": "Guardrails Remove"
|
|
},
|
|
"inherit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Name of parent policy to inherit from.",
|
|
"title": "Inherit"
|
|
},
|
|
"pipeline": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional guardrail pipeline for ordered execution. Contains 'mode' and 'steps'.",
|
|
"title": "Pipeline"
|
|
},
|
|
"policy_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "New name for the policy.",
|
|
"title": "Policy Name"
|
|
}
|
|
},
|
|
"title": "PolicyUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"PolicyValidateRequest": {
|
|
"additionalProperties": false,
|
|
"description": "Request body for the /policy/validate endpoint.",
|
|
"properties": {
|
|
"policies": {
|
|
"additionalProperties": true,
|
|
"description": "Policy configuration to validate. Map of policy names to policy definitions.",
|
|
"title": "Policies",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"policies"
|
|
],
|
|
"title": "PolicyValidateRequest",
|
|
"type": "object"
|
|
},
|
|
"PolicyValidationError": {
|
|
"additionalProperties": false,
|
|
"description": "Represents a validation error or warning for a policy.",
|
|
"properties": {
|
|
"error_type": {
|
|
"$ref": "#/components/schemas/PolicyValidationErrorType",
|
|
"description": "Type of validation error."
|
|
},
|
|
"field": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Specific field that caused the error (e.g., 'guardrails.add', 'scope.teams').",
|
|
"title": "Field"
|
|
},
|
|
"message": {
|
|
"description": "Human-readable error message.",
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"policy_name": {
|
|
"description": "Name of the policy with the issue.",
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The invalid value that caused the error.",
|
|
"title": "Value"
|
|
}
|
|
},
|
|
"required": [
|
|
"policy_name",
|
|
"error_type",
|
|
"message"
|
|
],
|
|
"title": "PolicyValidationError",
|
|
"type": "object"
|
|
},
|
|
"PolicyValidationErrorType": {
|
|
"description": "Types of validation errors that can occur.",
|
|
"enum": [
|
|
"invalid_guardrail",
|
|
"invalid_team",
|
|
"invalid_key",
|
|
"invalid_model",
|
|
"invalid_inheritance",
|
|
"circular_inheritance",
|
|
"invalid_scope",
|
|
"invalid_syntax"
|
|
],
|
|
"title": "PolicyValidationErrorType",
|
|
"type": "string"
|
|
},
|
|
"PolicyValidationResponse": {
|
|
"additionalProperties": false,
|
|
"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)",
|
|
"properties": {
|
|
"errors": {
|
|
"description": "List of blocking validation errors.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PolicyValidationError"
|
|
},
|
|
"title": "Errors",
|
|
"type": "array"
|
|
},
|
|
"valid": {
|
|
"description": "True if the policy configuration is valid.",
|
|
"title": "Valid",
|
|
"type": "boolean"
|
|
},
|
|
"warnings": {
|
|
"description": "List of non-blocking validation warnings.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PolicyValidationError"
|
|
},
|
|
"title": "Warnings",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"valid"
|
|
],
|
|
"title": "PolicyValidationResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyVersionCompareResponse": {
|
|
"description": "Response for comparing two policy versions.",
|
|
"properties": {
|
|
"field_diffs": {
|
|
"additionalProperties": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"description": "Field name -> {version_a: val, version_b: val} for differing fields.",
|
|
"title": "Field Diffs",
|
|
"type": "object"
|
|
},
|
|
"version_a": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse",
|
|
"description": "First version."
|
|
},
|
|
"version_b": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse",
|
|
"description": "Second version."
|
|
}
|
|
},
|
|
"required": [
|
|
"version_a",
|
|
"version_b"
|
|
],
|
|
"title": "PolicyVersionCompareResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyVersionCreateRequest": {
|
|
"description": "Request body for creating a new policy version (draft).",
|
|
"properties": {
|
|
"source_policy_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Policy ID to clone from. If None, clone from current production version.",
|
|
"title": "Source Policy Id"
|
|
}
|
|
},
|
|
"title": "PolicyVersionCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"PolicyVersionListResponse": {
|
|
"description": "Response for listing all versions of a policy.",
|
|
"properties": {
|
|
"policy_name": {
|
|
"description": "Name of the policy.",
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
},
|
|
"total_count": {
|
|
"default": 0,
|
|
"description": "Total number of versions.",
|
|
"title": "Total Count",
|
|
"type": "integer"
|
|
},
|
|
"versions": {
|
|
"description": "All versions ordered by version_number desc.",
|
|
"items": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse"
|
|
},
|
|
"title": "Versions",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"policy_name"
|
|
],
|
|
"title": "PolicyVersionListResponse",
|
|
"type": "object"
|
|
},
|
|
"PolicyVersionStatusUpdateRequest": {
|
|
"description": "Request body for updating a policy version's status.",
|
|
"properties": {
|
|
"version_status": {
|
|
"description": "New status: 'published' or 'production'.",
|
|
"title": "Version Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"version_status"
|
|
],
|
|
"title": "PolicyVersionStatusUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"Prompt": {
|
|
"properties": {
|
|
"litellm_params": {
|
|
"$ref": "#/components/schemas/PromptLiteLLMParams"
|
|
},
|
|
"prompt_id": {
|
|
"title": "Prompt Id",
|
|
"type": "string"
|
|
},
|
|
"prompt_info": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PromptInfo"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"prompt_id",
|
|
"litellm_params"
|
|
],
|
|
"title": "Prompt",
|
|
"type": "object"
|
|
},
|
|
"PromptInfo": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"environment": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "development",
|
|
"title": "Environment"
|
|
},
|
|
"prompt_type": {
|
|
"enum": [
|
|
"config",
|
|
"db"
|
|
],
|
|
"title": "Prompt Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"prompt_type"
|
|
],
|
|
"title": "PromptInfo",
|
|
"type": "object"
|
|
},
|
|
"PromptInfoResponse": {
|
|
"properties": {
|
|
"environments": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Environments"
|
|
},
|
|
"prompt_spec": {
|
|
"$ref": "#/components/schemas/PromptSpec"
|
|
},
|
|
"raw_prompt_template": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PromptTemplateBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
}
|
|
},
|
|
"required": [
|
|
"prompt_spec"
|
|
],
|
|
"title": "PromptInfoResponse",
|
|
"type": "object"
|
|
},
|
|
"PromptLiteLLMParams": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
},
|
|
"dotprompt_content": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Dotprompt Content"
|
|
},
|
|
"ignore_prompt_manager_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Ignore Prompt Manager Model"
|
|
},
|
|
"ignore_prompt_manager_optional_params": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Ignore Prompt Manager Optional Params"
|
|
},
|
|
"prompt_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompt Id"
|
|
},
|
|
"prompt_integration": {
|
|
"title": "Prompt Integration",
|
|
"type": "string"
|
|
},
|
|
"provider_specific_query_params": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider Specific Query Params"
|
|
}
|
|
},
|
|
"required": [
|
|
"prompt_integration"
|
|
],
|
|
"title": "PromptLiteLLMParams",
|
|
"type": "object"
|
|
},
|
|
"PromptSpec": {
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"environment": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "development",
|
|
"title": "Environment"
|
|
},
|
|
"litellm_params": {
|
|
"$ref": "#/components/schemas/PromptLiteLLMParams"
|
|
},
|
|
"prompt_id": {
|
|
"title": "Prompt Id",
|
|
"type": "string"
|
|
},
|
|
"prompt_info": {
|
|
"$ref": "#/components/schemas/PromptInfo"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Version"
|
|
}
|
|
},
|
|
"required": [
|
|
"prompt_id",
|
|
"litellm_params",
|
|
"prompt_info"
|
|
],
|
|
"title": "PromptSpec",
|
|
"type": "object"
|
|
},
|
|
"PromptTemplateBase": {
|
|
"properties": {
|
|
"content": {
|
|
"title": "Content",
|
|
"type": "string"
|
|
},
|
|
"litellm_prompt_id": {
|
|
"title": "Litellm Prompt Id",
|
|
"type": "string"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
}
|
|
},
|
|
"required": [
|
|
"litellm_prompt_id",
|
|
"content"
|
|
],
|
|
"title": "PromptTemplateBase",
|
|
"type": "object"
|
|
},
|
|
"PromptTokensDetails": {
|
|
"properties": {
|
|
"modality": {
|
|
"enum": [
|
|
"TEXT",
|
|
"AUDIO",
|
|
"IMAGE",
|
|
"VIDEO"
|
|
],
|
|
"title": "Modality",
|
|
"type": "string"
|
|
},
|
|
"tokenCount": {
|
|
"title": "Tokencount",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"modality",
|
|
"tokenCount"
|
|
],
|
|
"title": "PromptTokensDetails",
|
|
"type": "object"
|
|
},
|
|
"ProviderBudgetResponse": {
|
|
"description": "Complete provider budget configuration and status.\nMaps provider names to their budget configs.",
|
|
"properties": {
|
|
"providers": {
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/ProviderBudgetResponseObject"
|
|
},
|
|
"default": {},
|
|
"title": "Providers",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"title": "ProviderBudgetResponse",
|
|
"type": "object"
|
|
},
|
|
"ProviderBudgetResponseObject": {
|
|
"description": "Configuration for a single provider's budget settings",
|
|
"properties": {
|
|
"budget_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limit"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.0,
|
|
"title": "Spend"
|
|
},
|
|
"time_period": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Time Period"
|
|
}
|
|
},
|
|
"required": [
|
|
"budget_limit",
|
|
"time_period"
|
|
],
|
|
"title": "ProviderBudgetResponseObject",
|
|
"type": "object"
|
|
},
|
|
"ProviderCreateInfo": {
|
|
"properties": {
|
|
"credential_fields": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProviderCredentialField"
|
|
},
|
|
"title": "Credential Fields",
|
|
"type": "array"
|
|
},
|
|
"default_model_placeholder": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Model Placeholder"
|
|
},
|
|
"litellm_provider": {
|
|
"title": "Litellm Provider",
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"title": "Provider",
|
|
"type": "string"
|
|
},
|
|
"provider_display_name": {
|
|
"title": "Provider Display Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"provider",
|
|
"provider_display_name",
|
|
"litellm_provider",
|
|
"credential_fields"
|
|
],
|
|
"title": "ProviderCreateInfo",
|
|
"type": "object"
|
|
},
|
|
"ProviderCredentialField": {
|
|
"properties": {
|
|
"default_value": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Value"
|
|
},
|
|
"field_type": {
|
|
"default": "text",
|
|
"enum": [
|
|
"text",
|
|
"password",
|
|
"select",
|
|
"upload",
|
|
"textarea"
|
|
],
|
|
"title": "Field Type",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"title": "Label",
|
|
"type": "string"
|
|
},
|
|
"options": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Options"
|
|
},
|
|
"placeholder": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Placeholder"
|
|
},
|
|
"required": {
|
|
"default": false,
|
|
"title": "Required",
|
|
"type": "boolean"
|
|
},
|
|
"tooltip": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tooltip"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"label"
|
|
],
|
|
"title": "ProviderCredentialField",
|
|
"type": "object"
|
|
},
|
|
"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": {
|
|
"caching": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Caching"
|
|
},
|
|
"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"
|
|
},
|
|
"frequency_penalty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Frequency Penalty"
|
|
},
|
|
"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"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Guardrails"
|
|
},
|
|
"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"
|
|
},
|
|
"max_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Max Tokens"
|
|
},
|
|
"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"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Metadata"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"n": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "N"
|
|
},
|
|
"num_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Num Retries"
|
|
},
|
|
"parallel_tool_calls": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Parallel Tool Calls"
|
|
},
|
|
"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": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream"
|
|
},
|
|
"stream_options": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream Options"
|
|
},
|
|
"temperature": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Temperature"
|
|
},
|
|
"tool_choice": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tool Choice"
|
|
},
|
|
"tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tools"
|
|
},
|
|
"top_logprobs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top Logprobs"
|
|
},
|
|
"top_p": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top P"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"messages"
|
|
],
|
|
"title": "ProxyChatCompletionRequest",
|
|
"type": "object"
|
|
},
|
|
"PublicModelHubInfo": {
|
|
"properties": {
|
|
"custom_docs_description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Docs Description"
|
|
},
|
|
"docs_title": {
|
|
"title": "Docs Title",
|
|
"type": "string"
|
|
},
|
|
"litellm_version": {
|
|
"title": "Litellm Version",
|
|
"type": "string"
|
|
},
|
|
"useful_links": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Useful Links"
|
|
}
|
|
},
|
|
"required": [
|
|
"docs_title",
|
|
"custom_docs_description",
|
|
"litellm_version",
|
|
"useful_links"
|
|
],
|
|
"title": "PublicModelHubInfo",
|
|
"type": "object"
|
|
},
|
|
"RawRequestTypedDict": {
|
|
"properties": {
|
|
"error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"title": "RawRequestTypedDict",
|
|
"type": "object"
|
|
},
|
|
"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.",
|
|
"properties": {
|
|
"expires_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires At"
|
|
},
|
|
"session": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Session"
|
|
},
|
|
"value": {
|
|
"title": "Value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
],
|
|
"title": "RealtimeClientSecretResponse",
|
|
"type": "object"
|
|
},
|
|
"RegenerateKeyRequest": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Aliases"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"allowed_passthrough_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Passthrough Routes"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Routes"
|
|
},
|
|
"allowed_vector_store_indexes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AllowedVectorStoreIndexItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Vector Store Indexes"
|
|
},
|
|
"auto_rotate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Whether this key should be automatically rotated",
|
|
"title": "Auto Rotate"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Fallbacks"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Config"
|
|
},
|
|
"disable_global_guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Disable Global Guardrails"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"enforced_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Enforced Params"
|
|
},
|
|
"grace_period": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Grace Period"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_type": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLMKeyType"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "default",
|
|
"description": "Type of key that determines default allowed routes."
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"new_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "New Key"
|
|
},
|
|
"new_master_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "New Master Key"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Permissions"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Id"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"rotation_interval": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "How often to rotate this key (e.g., '30d', '90d'). Required if auto_rotate=True",
|
|
"title": "Rotation Interval"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UpdateRouterConfig"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"rpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit Type"
|
|
},
|
|
"send_invite_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Send Invite Email"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"tag_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Rpm Limit"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"throttle_on_budget_exceeded": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Throttle On Budget Exceeded"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"tpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit Type"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"title": "RegenerateKeyRequest",
|
|
"type": "object"
|
|
},
|
|
"RegisterGuardrailRequest": {
|
|
"description": "Request body for POST /guardrails/register. Follows Generic Guardrail API config.",
|
|
"properties": {
|
|
"guardrail_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Info"
|
|
},
|
|
"guardrail_name": {
|
|
"title": "Guardrail Name",
|
|
"type": "string"
|
|
},
|
|
"litellm_params": {
|
|
"additionalProperties": true,
|
|
"title": "Litellm Params",
|
|
"type": "object"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_name",
|
|
"litellm_params"
|
|
],
|
|
"title": "RegisterGuardrailRequest",
|
|
"type": "object"
|
|
},
|
|
"RegisterGuardrailResponse": {
|
|
"properties": {
|
|
"guardrail_id": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
},
|
|
"guardrail_name": {
|
|
"title": "Guardrail Name",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"submitted_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Submitted At"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_id",
|
|
"guardrail_name",
|
|
"status"
|
|
],
|
|
"title": "RegisterGuardrailResponse",
|
|
"type": "object"
|
|
},
|
|
"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.",
|
|
"properties": {
|
|
"author": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PluginAuthor"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin author"
|
|
},
|
|
"category": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin category",
|
|
"title": "Category"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin description",
|
|
"title": "Description"
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Skill domain (e.g., 'Productivity')",
|
|
"title": "Domain"
|
|
},
|
|
"homepage": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin homepage URL",
|
|
"title": "Homepage"
|
|
},
|
|
"keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Search keywords",
|
|
"title": "Keywords"
|
|
},
|
|
"name": {
|
|
"description": "Plugin name (kebab-case, e.g., 'my-plugin')",
|
|
"pattern": "^[a-z0-9-]+$",
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"namespace": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Skill namespace within domain (e.g., 'workflows')",
|
|
"title": "Namespace"
|
|
},
|
|
"source": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"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'}",
|
|
"title": "Source",
|
|
"type": "object"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "1.0.0",
|
|
"description": "Semantic version",
|
|
"title": "Version"
|
|
}
|
|
},
|
|
"required": [
|
|
"source",
|
|
"name"
|
|
],
|
|
"title": "RegisterPluginRequest",
|
|
"type": "object"
|
|
},
|
|
"RegisterPluginResponse": {
|
|
"description": "Response from plugin registration.",
|
|
"properties": {
|
|
"action": {
|
|
"description": "Action taken (created/updated)",
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"plugin": {
|
|
"$ref": "#/components/schemas/PluginResponse",
|
|
"description": "Plugin information"
|
|
},
|
|
"status": {
|
|
"description": "Operation status",
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"status",
|
|
"action",
|
|
"plugin"
|
|
],
|
|
"title": "RegisterPluginResponse",
|
|
"type": "object"
|
|
},
|
|
"RejectMCPServerRequest": {
|
|
"properties": {
|
|
"review_notes": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Review Notes"
|
|
}
|
|
},
|
|
"title": "RejectMCPServerRequest",
|
|
"type": "object"
|
|
},
|
|
"ReminderMarkerPair": {
|
|
"description": "One open/close delimiter pair a harness wraps injected context in.\n\nNormalizing here rather than at the scan is what makes matching case-insensitive: markers reach\nthe scan already lowered, so it lowercases only the haystack and never the needles. Stripping\nkeeps YAML indentation whitespace from becoming part of the delimiter.",
|
|
"properties": {
|
|
"close": {
|
|
"description": "Closing delimiter, e.g. '</system-reminder>'",
|
|
"title": "Close",
|
|
"type": "string"
|
|
},
|
|
"open": {
|
|
"description": "Opening delimiter, e.g. '<system-reminder>'",
|
|
"title": "Open",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"open",
|
|
"close"
|
|
],
|
|
"title": "ReminderMarkerPair",
|
|
"type": "object"
|
|
},
|
|
"RequestComplexityRouterConfig": {
|
|
"additionalProperties": true,
|
|
"description": "The part of a complexity-router config a request can carry.\n\n`plugins` holds live RoutingPlugin objects, which no JSON body can express and which have no\nOpenAPI schema, so it is closed off here rather than left as an arbitrary-type field.",
|
|
"properties": {
|
|
"adaptive": {
|
|
"default": false,
|
|
"description": "Enable adaptive bandit selection with soft complexity floors",
|
|
"title": "Adaptive",
|
|
"type": "boolean"
|
|
},
|
|
"adaptive_eligible": {
|
|
"default": "all",
|
|
"description": "When adaptive=True: 'all' scores every pool model with a tier-distance penalty (soft floors); 'classified_tier' Thompson-samples only inside the classified tier's pool",
|
|
"enum": [
|
|
"all",
|
|
"classified_tier"
|
|
],
|
|
"title": "Adaptive Eligible",
|
|
"type": "string"
|
|
},
|
|
"adaptive_weights": {
|
|
"$ref": "#/components/schemas/AdaptiveRouterWeights",
|
|
"description": "Quality vs cost weights for adaptive selection (used when adaptive=True)"
|
|
},
|
|
"classifier_context_include_assistant_turns": {
|
|
"default": false,
|
|
"description": "Include assistant turns in the classifier context window, so difficulty stated by the model rather than by the user stays visible: a plan the assistant calls complex, which the user approves with 'yes', is classified on the work being approved instead of on the word 'yes'. When enabled, classifier_context_window_size counts the last N turns of the conversation across both roles rather than the last N user turns, and assistant text is sent to the classifier model, which may be a different deployment or provider than the routed completion model. Assistant replies share classifier_context_per_turn_chars with user turns, so raise it if replies are truncated before the part that carries the difficulty. Off by default because enabling it shifts tier decisions, and therefore spend, for an already-deployed router. Only applies when classifier_type is 'llm'.",
|
|
"title": "Classifier Context Include Assistant Turns",
|
|
"type": "boolean"
|
|
},
|
|
"classifier_context_per_turn_chars": {
|
|
"default": 200,
|
|
"description": "Maximum character length for each prior turn's text in the classifier context window. Turns exceeding this are truncated. Only applies when classifier_type is 'llm'.",
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Classifier Context Per Turn Chars",
|
|
"type": "integer"
|
|
},
|
|
"classifier_context_window_size": {
|
|
"default": 3,
|
|
"description": "Number of prior user turns (tool output and harness reminders excluded) to include as context in the LLM classifier prompt, so a follow-up like 'now do the same for the streaming path' is classified against what it refers to. Counts turns of both roles when classifier_context_include_assistant_turns is enabled. These turns are sent to the classifier model, which may be a different deployment or provider than the routed completion model; that call already carries the current user ask and the caller's system prompt in full. Set to 0 to send neither prior turns nor any conversation context beyond the current ask. Only applies when classifier_type is 'llm'.",
|
|
"minimum": 0.0,
|
|
"title": "Classifier Context Window Size",
|
|
"type": "integer"
|
|
},
|
|
"classifier_fallback": {
|
|
"default": "heuristic",
|
|
"description": "What classifies the request when the LLM classifier errors, times out, or returns an unparseable response. 'heuristic' runs the local complexity scorer, which is right when the classifier grades complexity too. 'default_model' skips scoring and routes to default_model, which is what a classifier on some other taxonomy wants: a prompt that grades data sensitivity has no use for a complexity score, and scoring one produces a tier unrelated to what the operator configured. Requires default_model when set to 'default_model'. Only applies when classifier_type is 'llm'.",
|
|
"enum": [
|
|
"heuristic",
|
|
"default_model"
|
|
],
|
|
"title": "Classifier Fallback",
|
|
"type": "string"
|
|
},
|
|
"classifier_llm_config": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/ClassifierLLMConfig"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Configuration for the LLM classifier; required when classifier_type is 'llm'"
|
|
},
|
|
"classifier_type": {
|
|
"default": "heuristic",
|
|
"description": "Classification strategy: local regex/keyword scoring, or an LLM call",
|
|
"enum": [
|
|
"heuristic",
|
|
"llm"
|
|
],
|
|
"title": "Classifier Type",
|
|
"type": "string"
|
|
},
|
|
"code_keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Keywords indicating code-related content",
|
|
"title": "Code Keywords"
|
|
},
|
|
"custom_technical_keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Domain-specific technical keywords appended to the effective base list (technical_keywords if set, otherwise DEFAULT_TECHNICAL_KEYWORDS). Order is preserved; duplicates are removed case-insensitively against the base list and within this list.",
|
|
"title": "Custom Technical Keywords"
|
|
},
|
|
"default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Default model to use if tier cannot be determined",
|
|
"title": "Default Model"
|
|
},
|
|
"dimension_weights": {
|
|
"additionalProperties": {
|
|
"type": "number"
|
|
},
|
|
"description": "Weights for each scoring dimension",
|
|
"title": "Dimension Weights",
|
|
"type": "object"
|
|
},
|
|
"embedding_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Embedding model (LiteLLM model name) used when semantic_keyword_matching is enabled",
|
|
"title": "Embedding Model"
|
|
},
|
|
"escalation_keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Case-sensitive phrases a user can include to force a bump to the next-higher complexity tier when they aren't satisfied with results (they can force a stronger model, but not choose which one). Defaults to ['LITELLM ESCALATE'] when unset; set to an empty list to disable.",
|
|
"title": "Escalation Keywords"
|
|
},
|
|
"keyword_tier_rules": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/KeywordTierRule"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Rules that force a specific tier when their keywords match the prompt",
|
|
"title": "Keyword Tier Rules"
|
|
},
|
|
"match_threshold": {
|
|
"default": 0.5,
|
|
"description": "Minimum cosine similarity for a semantic keyword match",
|
|
"maximum": 1.0,
|
|
"minimum": 0.0,
|
|
"title": "Match Threshold",
|
|
"type": "number"
|
|
},
|
|
"plugins": {
|
|
"description": "Not settable over HTTP; routing plugins are runtime objects",
|
|
"title": "Plugins",
|
|
"type": "null"
|
|
},
|
|
"reasoning_keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Keywords indicating reasoning-required content",
|
|
"title": "Reasoning Keywords"
|
|
},
|
|
"reminder_markers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/ReminderMarkerPair"
|
|
},
|
|
"minItems": 1,
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Override the delimiter pairs used to recognize and strip harness-injected reminder blocks before classification. A harness that wraps injected context differently per agent type (main, subagent, cron) lists every pair it emits. Replaces, rather than adds to, the built-in default of ('<system-reminder>', '</system-reminder>'), so a harness that also emits that pair lists it too. Matching is case-insensitive.",
|
|
"title": "Reminder Markers"
|
|
},
|
|
"return_raw_model_name": {
|
|
"default": false,
|
|
"description": "Return the resolved raw model name in the response model field instead of the client-requested complexity-router alias",
|
|
"title": "Return Raw Model Name",
|
|
"type": "boolean"
|
|
},
|
|
"semantic_keyword_matching": {
|
|
"default": false,
|
|
"description": "Match keyword_tier_rules by embedding similarity instead of literal text",
|
|
"title": "Semantic Keyword Matching",
|
|
"type": "boolean"
|
|
},
|
|
"session_affinity": {
|
|
"default": false,
|
|
"description": "When True and a session_id is resolvable on the request, pin the model chosen on the session's first turn and reuse it for every later turn, skipping re-classification. Off by default so every turn is classified on its own merits and routed to the cheapest adequate tier. Set True to keep a multi-turn session on one model, which preserves provider prompt caches and avoids cross-model conversation-history errors.",
|
|
"title": "Session Affinity",
|
|
"type": "boolean"
|
|
},
|
|
"session_affinity_ttl_seconds": {
|
|
"default": 3600,
|
|
"description": "TTL for the session affinity pin; refreshed on every cache hit",
|
|
"exclusiveMinimum": 0.0,
|
|
"title": "Session Affinity Ttl Seconds",
|
|
"type": "integer"
|
|
},
|
|
"simple_keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Keywords indicating simple/basic queries",
|
|
"title": "Simple Keywords"
|
|
},
|
|
"technical_keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Keywords indicating technical content",
|
|
"title": "Technical Keywords"
|
|
},
|
|
"tier_boundaries": {
|
|
"additionalProperties": {
|
|
"type": "number"
|
|
},
|
|
"description": "Score boundaries between tiers. These keys (simple_medium, medium_complex, complex_reasoning) name the gaps between the default tier names and are not renameable by tier_labels; they are scorer knobs persisted by name on every routing decision",
|
|
"title": "Tier Boundaries",
|
|
"type": "object"
|
|
},
|
|
"tier_distance_penalty": {
|
|
"default": 0.5,
|
|
"description": "Score penalty per tier-step away from the classified tier when adaptive=True",
|
|
"minimum": 0.0,
|
|
"title": "Tier Distance Penalty",
|
|
"type": "number"
|
|
},
|
|
"tier_labels": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "Display names for the complexity tiers, so a deployment can use its own vocabulary (e.g. Cheap/Standard/Premium/Deep) in the dashboard, spend logs, and the LLM classifier rubric. Purely operator-facing: config keys stay canonical (tiers, keyword_tier_rules[].tier, tier_boundaries), API callers never see these names, and the heuristic scorer never reads them. Unlisted tiers keep their canonical name. Partial maps are allowed.",
|
|
"propertyNames": {
|
|
"$ref": "#/components/schemas/ComplexityTier"
|
|
},
|
|
"title": "Tier Labels",
|
|
"type": "object"
|
|
},
|
|
"tiers": {
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
}
|
|
]
|
|
},
|
|
"description": "Mapping of complexity tiers to a model or model pool. A list is randomly picked from when adaptive=False, and used as a soft-floor home pool when adaptive=True",
|
|
"title": "Tiers",
|
|
"type": "object"
|
|
},
|
|
"token_thresholds": {
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"description": "Token count thresholds for simple/complex classification",
|
|
"title": "Token Thresholds",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"title": "RequestComplexityRouterConfig",
|
|
"type": "object"
|
|
},
|
|
"ResetSpendRequest": {
|
|
"properties": {
|
|
"reset_to": {
|
|
"title": "Reset To",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"reset_to"
|
|
],
|
|
"title": "ResetSpendRequest",
|
|
"type": "object"
|
|
},
|
|
"ResponseLiteLLM_ManagedVectorStore": {
|
|
"properties": {
|
|
"vector_store": {
|
|
"$ref": "#/components/schemas/LiteLLM_ManagedVectorStoresTable"
|
|
}
|
|
},
|
|
"title": "ResponseLiteLLM_ManagedVectorStore",
|
|
"type": "object"
|
|
},
|
|
"ResultCounts": {
|
|
"description": "Result counts for a run",
|
|
"properties": {
|
|
"error": {
|
|
"default": 0,
|
|
"title": "Error",
|
|
"type": "integer"
|
|
},
|
|
"failed": {
|
|
"default": 0,
|
|
"title": "Failed",
|
|
"type": "integer"
|
|
},
|
|
"passed": {
|
|
"default": 0,
|
|
"title": "Passed",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"total"
|
|
],
|
|
"title": "ResultCounts",
|
|
"type": "object"
|
|
},
|
|
"RetryPolicy": {
|
|
"description": "Use this to set a custom number of retries per exception type\nIf RateLimitErrorRetries = 3, then 3 retries will be made for RateLimitError\nMapping of Exception type to number of retries\nhttps://docs.litellm.ai/docs/exception_mapping",
|
|
"properties": {
|
|
"AuthenticationErrorRetries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Authenticationerrorretries"
|
|
},
|
|
"BadRequestErrorRetries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Badrequesterrorretries"
|
|
},
|
|
"ContentPolicyViolationErrorRetries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contentpolicyviolationerrorretries"
|
|
},
|
|
"InternalServerErrorRetries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Internalservererrorretries"
|
|
},
|
|
"RateLimitErrorRetries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ratelimiterrorretries"
|
|
},
|
|
"TimeoutErrorRetries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Timeouterrorretries"
|
|
}
|
|
},
|
|
"title": "RetryPolicy",
|
|
"type": "object"
|
|
},
|
|
"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.",
|
|
"properties": {
|
|
"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')"
|
|
},
|
|
"group_claim": {
|
|
"description": "The field name in the SSO token that contains the groups array (e.g., 'groups', 'roles')",
|
|
"title": "Group Claim",
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"description": "SSO Provider name (e.g., 'google', 'microsoft', 'generic')",
|
|
"title": "Provider",
|
|
"type": "string"
|
|
},
|
|
"roles": {
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"description": "Mapping of LiteLLM role names to arrays of SSO group names. Example: {'proxy_admin': ['group-1', 'group-2'], 'proxy_admin_viewer': ['group-3']}",
|
|
"propertyNames": {
|
|
"$ref": "#/components/schemas/LitellmUserRoles"
|
|
},
|
|
"title": "Roles",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"provider",
|
|
"group_claim"
|
|
],
|
|
"title": "RoleMappings",
|
|
"type": "object"
|
|
},
|
|
"RouterFieldsResponse": {
|
|
"properties": {
|
|
"fields": {
|
|
"description": "List of all configurable router settings with metadata (without field values)",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RouterSettingsField"
|
|
},
|
|
"title": "Fields",
|
|
"type": "array"
|
|
},
|
|
"routing_strategy_descriptions": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "Descriptions for each routing strategy option",
|
|
"title": "Routing Strategy Descriptions",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"fields",
|
|
"routing_strategy_descriptions"
|
|
],
|
|
"title": "RouterFieldsResponse",
|
|
"type": "object"
|
|
},
|
|
"RouterSettingsField": {
|
|
"properties": {
|
|
"field_default": {
|
|
"title": "Field Default"
|
|
},
|
|
"field_description": {
|
|
"title": "Field Description",
|
|
"type": "string"
|
|
},
|
|
"field_name": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
},
|
|
"field_type": {
|
|
"title": "Field Type",
|
|
"type": "string"
|
|
},
|
|
"field_value": {
|
|
"title": "Field Value"
|
|
},
|
|
"link": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Link"
|
|
},
|
|
"options": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Options"
|
|
},
|
|
"ui_field_name": {
|
|
"title": "Ui Field Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"field_name",
|
|
"field_type",
|
|
"field_value",
|
|
"field_description",
|
|
"ui_field_name"
|
|
],
|
|
"title": "RouterSettingsField",
|
|
"type": "object"
|
|
},
|
|
"RouterSettingsResponse": {
|
|
"properties": {
|
|
"current_values": {
|
|
"additionalProperties": true,
|
|
"description": "Current values of router settings",
|
|
"title": "Current Values",
|
|
"type": "object"
|
|
},
|
|
"fields": {
|
|
"description": "List of all configurable router settings with metadata",
|
|
"items": {
|
|
"$ref": "#/components/schemas/RouterSettingsField"
|
|
},
|
|
"title": "Fields",
|
|
"type": "array"
|
|
},
|
|
"routing_strategy_descriptions": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"description": "Descriptions for each routing strategy option",
|
|
"title": "Routing Strategy Descriptions",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"fields",
|
|
"current_values",
|
|
"routing_strategy_descriptions"
|
|
],
|
|
"title": "RouterSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"RoutingGroup": {
|
|
"description": "A group of models that share a routing strategy.",
|
|
"properties": {
|
|
"group_name": {
|
|
"title": "Group Name",
|
|
"type": "string"
|
|
},
|
|
"models": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"routing_strategy": {
|
|
"title": "Routing Strategy",
|
|
"type": "string"
|
|
},
|
|
"routing_strategy_args": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Routing Strategy Args"
|
|
}
|
|
},
|
|
"required": [
|
|
"group_name",
|
|
"models",
|
|
"routing_strategy"
|
|
],
|
|
"title": "RoutingGroup",
|
|
"type": "object"
|
|
},
|
|
"Run": {
|
|
"description": "Represents a run from the OpenAI Evals API",
|
|
"properties": {
|
|
"completed_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Completed At"
|
|
},
|
|
"created_at": {
|
|
"title": "Created At",
|
|
"type": "integer"
|
|
},
|
|
"data_source": {
|
|
"additionalProperties": true,
|
|
"title": "Data Source",
|
|
"type": "object"
|
|
},
|
|
"error": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error"
|
|
},
|
|
"eval_id": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Name"
|
|
},
|
|
"object": {
|
|
"default": "eval.run",
|
|
"title": "Object",
|
|
"type": "string"
|
|
},
|
|
"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"
|
|
},
|
|
"started_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Started At"
|
|
},
|
|
"status": {
|
|
"enum": [
|
|
"queued",
|
|
"running",
|
|
"completed",
|
|
"failed",
|
|
"cancelled"
|
|
],
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"created_at",
|
|
"status",
|
|
"data_source",
|
|
"eval_id"
|
|
],
|
|
"title": "Run",
|
|
"type": "object"
|
|
},
|
|
"RunDeleteResponse": {
|
|
"description": "Response from deleting a run",
|
|
"properties": {
|
|
"deleted": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": true,
|
|
"title": "Deleted"
|
|
},
|
|
"object": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "eval.run.deleted",
|
|
"title": "Object"
|
|
},
|
|
"run_id": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"run_id"
|
|
],
|
|
"title": "RunDeleteResponse",
|
|
"type": "object"
|
|
},
|
|
"SCIMFeature": {
|
|
"properties": {
|
|
"maxOperations": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Maxoperations"
|
|
},
|
|
"maxPayloadSize": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Maxpayloadsize"
|
|
},
|
|
"maxResults": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Maxresults"
|
|
},
|
|
"supported": {
|
|
"title": "Supported",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"supported"
|
|
],
|
|
"title": "SCIMFeature",
|
|
"type": "object"
|
|
},
|
|
"SCIMGroup": {
|
|
"properties": {
|
|
"displayName": {
|
|
"title": "Displayname",
|
|
"type": "string"
|
|
},
|
|
"externalId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Externalid"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"members": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/SCIMMember"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Members"
|
|
},
|
|
"meta": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Meta"
|
|
},
|
|
"schemas": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Schemas",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"schemas",
|
|
"displayName"
|
|
],
|
|
"title": "SCIMGroup",
|
|
"type": "object"
|
|
},
|
|
"SCIMListResponse": {
|
|
"properties": {
|
|
"Resources": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/SCIMUser"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/SCIMGroup"
|
|
},
|
|
"type": "array"
|
|
}
|
|
],
|
|
"title": "Resources"
|
|
},
|
|
"itemsPerPage": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 10,
|
|
"title": "Itemsperpage"
|
|
},
|
|
"schemas": {
|
|
"default": [
|
|
"urn:ietf:params:scim:api:messages:2.0:ListResponse"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Schemas",
|
|
"type": "array"
|
|
},
|
|
"startIndex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 1,
|
|
"title": "Startindex"
|
|
},
|
|
"totalResults": {
|
|
"title": "Totalresults",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"totalResults",
|
|
"Resources"
|
|
],
|
|
"title": "SCIMListResponse",
|
|
"type": "object"
|
|
},
|
|
"SCIMMember": {
|
|
"properties": {
|
|
"display": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Display"
|
|
},
|
|
"value": {
|
|
"title": "Value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
],
|
|
"title": "SCIMMember",
|
|
"type": "object"
|
|
},
|
|
"SCIMPatchOp": {
|
|
"properties": {
|
|
"Operations": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SCIMPatchOperation"
|
|
},
|
|
"title": "Operations",
|
|
"type": "array"
|
|
},
|
|
"schemas": {
|
|
"default": [
|
|
"urn:ietf:params:scim:api:messages:2.0:PatchOp"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Schemas",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"Operations"
|
|
],
|
|
"title": "SCIMPatchOp",
|
|
"type": "object"
|
|
},
|
|
"SCIMPatchOperation": {
|
|
"properties": {
|
|
"op": {
|
|
"title": "Op",
|
|
"type": "string"
|
|
},
|
|
"path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Path"
|
|
},
|
|
"value": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Value"
|
|
}
|
|
},
|
|
"required": [
|
|
"op"
|
|
],
|
|
"title": "SCIMPatchOperation",
|
|
"type": "object"
|
|
},
|
|
"SCIMServiceProviderConfig": {
|
|
"properties": {
|
|
"authenticationSchemes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Authenticationschemes"
|
|
},
|
|
"bulk": {
|
|
"$ref": "#/components/schemas/SCIMFeature",
|
|
"default": {
|
|
"supported": false
|
|
}
|
|
},
|
|
"changePassword": {
|
|
"$ref": "#/components/schemas/SCIMFeature",
|
|
"default": {
|
|
"supported": false
|
|
}
|
|
},
|
|
"etag": {
|
|
"$ref": "#/components/schemas/SCIMFeature",
|
|
"default": {
|
|
"supported": false
|
|
}
|
|
},
|
|
"filter": {
|
|
"$ref": "#/components/schemas/SCIMFeature",
|
|
"default": {
|
|
"supported": false
|
|
}
|
|
},
|
|
"meta": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Meta"
|
|
},
|
|
"patch": {
|
|
"$ref": "#/components/schemas/SCIMFeature",
|
|
"default": {
|
|
"supported": true
|
|
}
|
|
},
|
|
"schemas": {
|
|
"default": [
|
|
"urn:ietf:params:scim:schemas:core:2.0:ServiceProviderConfig"
|
|
],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Schemas",
|
|
"type": "array"
|
|
},
|
|
"sort": {
|
|
"$ref": "#/components/schemas/SCIMFeature",
|
|
"default": {
|
|
"supported": false
|
|
}
|
|
}
|
|
},
|
|
"title": "SCIMServiceProviderConfig",
|
|
"type": "object"
|
|
},
|
|
"SCIMUser": {
|
|
"properties": {
|
|
"active": {
|
|
"default": true,
|
|
"title": "Active",
|
|
"type": "boolean"
|
|
},
|
|
"displayName": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Displayname"
|
|
},
|
|
"emails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/SCIMUserEmail"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Emails"
|
|
},
|
|
"externalId": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Externalid"
|
|
},
|
|
"groups": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/SCIMUserGroup"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Groups"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"meta": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Meta"
|
|
},
|
|
"name": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/SCIMUserName"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"schemas": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Schemas",
|
|
"type": "array"
|
|
},
|
|
"userName": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Username"
|
|
}
|
|
},
|
|
"required": [
|
|
"schemas"
|
|
],
|
|
"title": "SCIMUser",
|
|
"type": "object"
|
|
},
|
|
"SCIMUserEmail": {
|
|
"properties": {
|
|
"primary": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Primary"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Type"
|
|
},
|
|
"value": {
|
|
"format": "email",
|
|
"title": "Value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
],
|
|
"title": "SCIMUserEmail",
|
|
"type": "object"
|
|
},
|
|
"SCIMUserGroup": {
|
|
"properties": {
|
|
"display": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Display"
|
|
},
|
|
"type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "direct",
|
|
"title": "Type"
|
|
},
|
|
"value": {
|
|
"title": "Value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value"
|
|
],
|
|
"title": "SCIMUserGroup",
|
|
"type": "object"
|
|
},
|
|
"SCIMUserName": {
|
|
"properties": {
|
|
"familyName": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Familyname"
|
|
},
|
|
"formatted": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Formatted"
|
|
},
|
|
"givenName": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Givenname"
|
|
},
|
|
"honorificPrefix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Honorificprefix"
|
|
},
|
|
"honorificSuffix": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Honorificsuffix"
|
|
},
|
|
"middleName": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Middlename"
|
|
}
|
|
},
|
|
"title": "SCIMUserName",
|
|
"type": "object"
|
|
},
|
|
"SSOConfig": {
|
|
"description": "Configuration for SSO environment variables and settings",
|
|
"properties": {
|
|
"generic_authorization_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Authorization endpoint URL for generic OAuth provider",
|
|
"title": "Generic Authorization Endpoint"
|
|
},
|
|
"generic_client_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Generic OAuth Client ID for SSO authentication (used for Okta and other providers)",
|
|
"title": "Generic Client Id"
|
|
},
|
|
"generic_client_secret": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Generic OAuth Client Secret for SSO authentication",
|
|
"title": "Generic Client Secret"
|
|
},
|
|
"generic_scope": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Space-separated OAuth scopes requested from the generic provider, e.g. 'openid email profile'",
|
|
"title": "Generic Scope"
|
|
},
|
|
"generic_token_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Token endpoint URL for generic OAuth provider",
|
|
"title": "Generic Token Endpoint"
|
|
},
|
|
"generic_userinfo_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "User info endpoint URL for generic OAuth provider",
|
|
"title": "Generic Userinfo Endpoint"
|
|
},
|
|
"google_client_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Google OAuth Client ID for SSO authentication",
|
|
"title": "Google Client Id"
|
|
},
|
|
"google_client_secret": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Google OAuth Client Secret for SSO authentication",
|
|
"title": "Google Client Secret"
|
|
},
|
|
"microsoft_client_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Microsoft OAuth Client ID for SSO authentication",
|
|
"title": "Microsoft Client Id"
|
|
},
|
|
"microsoft_client_secret": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Microsoft OAuth Client Secret for SSO authentication",
|
|
"title": "Microsoft Client Secret"
|
|
},
|
|
"microsoft_tenant": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Microsoft Azure Tenant ID for SSO authentication",
|
|
"title": "Microsoft Tenant"
|
|
},
|
|
"proxy_base_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Base URL of the proxy server for SSO redirects",
|
|
"title": "Proxy Base Url"
|
|
},
|
|
"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"
|
|
},
|
|
"saml_allow_unsolicited": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "'true' to accept IdP-initiated (unsolicited) SAML responses, which cannot be browser-bound against login CSRF",
|
|
"title": "Saml Allow Unsolicited"
|
|
},
|
|
"saml_idp_metadata_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "URL of the SAML IdP metadata to fetch and parse for SSO authentication",
|
|
"title": "Saml Idp Metadata Url"
|
|
},
|
|
"saml_idp_metadata_xml": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Inline SAML IdP metadata XML, used when a metadata URL is not available",
|
|
"title": "Saml Idp Metadata Xml"
|
|
},
|
|
"saml_sp_entity_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "SAML Service Provider entityID; defaults to the proxy's /sso/saml/metadata URL",
|
|
"title": "Saml Sp Entity Id"
|
|
},
|
|
"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."
|
|
},
|
|
"ui_access_mode": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/AccessControl_UI_AccessMode"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Access mode for the UI",
|
|
"title": "Ui Access Mode"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Email of the proxy admin user",
|
|
"title": "User Email"
|
|
}
|
|
},
|
|
"title": "SSOConfig",
|
|
"type": "object"
|
|
},
|
|
"SSOSettingsResponse": {
|
|
"description": "Response model for SSO settings",
|
|
"properties": {
|
|
"field_schema": {
|
|
"additionalProperties": true,
|
|
"title": "Field Schema",
|
|
"type": "object"
|
|
},
|
|
"provenance": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"title": "Provenance",
|
|
"type": "object"
|
|
},
|
|
"values": {
|
|
"additionalProperties": true,
|
|
"title": "Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"values",
|
|
"field_schema"
|
|
],
|
|
"title": "SSOSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"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 }",
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"litellm_params": {
|
|
"$ref": "#/components/schemas/SearchToolLiteLLMParams"
|
|
},
|
|
"search_tool_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tool Id"
|
|
},
|
|
"search_tool_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tool Info"
|
|
},
|
|
"search_tool_name": {
|
|
"title": "Search Tool Name",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"search_tool_name",
|
|
"litellm_params"
|
|
],
|
|
"title": "SearchTool",
|
|
"type": "object"
|
|
},
|
|
"SearchToolInfoResponse": {
|
|
"description": "Response model for search tool information.",
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"is_from_config": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is From Config"
|
|
},
|
|
"litellm_params": {
|
|
"additionalProperties": true,
|
|
"title": "Litellm Params",
|
|
"type": "object"
|
|
},
|
|
"search_tool_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tool Id"
|
|
},
|
|
"search_tool_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tool Info"
|
|
},
|
|
"search_tool_name": {
|
|
"title": "Search Tool Name",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"title": "SearchToolInfoResponse",
|
|
"type": "object"
|
|
},
|
|
"SearchToolLiteLLMParams": {
|
|
"description": "LiteLLM params for search tools configuration.",
|
|
"properties": {
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
},
|
|
"max_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Retries"
|
|
},
|
|
"search_provider": {
|
|
"title": "Search Provider",
|
|
"type": "string"
|
|
},
|
|
"timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Timeout"
|
|
}
|
|
},
|
|
"required": [
|
|
"search_provider"
|
|
],
|
|
"title": "SearchToolLiteLLMParams",
|
|
"type": "object"
|
|
},
|
|
"Skill": {
|
|
"description": "Represents a skill from the Anthropic Skills API",
|
|
"properties": {
|
|
"created_at": {
|
|
"title": "Created At",
|
|
"type": "string"
|
|
},
|
|
"display_title": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Display Title"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"latest_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Latest Version"
|
|
},
|
|
"source": {
|
|
"title": "Source",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"default": "skill",
|
|
"title": "Type",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"title": "Updated At",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"created_at",
|
|
"source",
|
|
"updated_at"
|
|
],
|
|
"title": "Skill",
|
|
"type": "object"
|
|
},
|
|
"SpendAnalyticsPaginatedResponse": {
|
|
"properties": {
|
|
"metadata": {
|
|
"$ref": "#/components/schemas/DailySpendMetadata"
|
|
},
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/DailySpendData"
|
|
},
|
|
"title": "Results",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"results"
|
|
],
|
|
"title": "SpendAnalyticsPaginatedResponse",
|
|
"type": "object"
|
|
},
|
|
"SpendCalculateRequest": {
|
|
"properties": {
|
|
"completion_response": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Completion Response"
|
|
},
|
|
"messages": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Messages"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
"title": "SpendCalculateRequest",
|
|
"type": "object"
|
|
},
|
|
"SpendMetrics": {
|
|
"properties": {
|
|
"api_requests": {
|
|
"default": 0,
|
|
"title": "Api Requests",
|
|
"type": "integer"
|
|
},
|
|
"autorouter_savings_spend": {
|
|
"default": 0.0,
|
|
"title": "Autorouter Savings Spend",
|
|
"type": "number"
|
|
},
|
|
"cache_creation_input_tokens": {
|
|
"default": 0,
|
|
"title": "Cache Creation Input Tokens",
|
|
"type": "integer"
|
|
},
|
|
"cache_read_input_tokens": {
|
|
"default": 0,
|
|
"title": "Cache Read Input Tokens",
|
|
"type": "integer"
|
|
},
|
|
"completion_tokens": {
|
|
"default": 0,
|
|
"title": "Completion Tokens",
|
|
"type": "integer"
|
|
},
|
|
"compression_saved_tokens": {
|
|
"default": 0,
|
|
"title": "Compression Saved Tokens",
|
|
"type": "integer"
|
|
},
|
|
"compression_savings_spend": {
|
|
"default": 0.0,
|
|
"title": "Compression Savings Spend",
|
|
"type": "number"
|
|
},
|
|
"failed_requests": {
|
|
"default": 0,
|
|
"title": "Failed Requests",
|
|
"type": "integer"
|
|
},
|
|
"prompt_caching_savings_spend": {
|
|
"default": 0.0,
|
|
"title": "Prompt Caching Savings Spend",
|
|
"type": "number"
|
|
},
|
|
"prompt_tokens": {
|
|
"default": 0,
|
|
"title": "Prompt Tokens",
|
|
"type": "integer"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"successful_requests": {
|
|
"default": 0,
|
|
"title": "Successful Requests",
|
|
"type": "integer"
|
|
},
|
|
"total_tokens": {
|
|
"default": 0,
|
|
"title": "Total Tokens",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"title": "SpendMetrics",
|
|
"type": "object"
|
|
},
|
|
"StandardLoggingRoutingDecision": {
|
|
"description": "Per-request provenance for a pre-routing strategy (auto-router) decision.",
|
|
"properties": {
|
|
"cause": {
|
|
"enum": [
|
|
"heuristic_scorer",
|
|
"reasoning_override",
|
|
"llm_classifier",
|
|
"default_model_fallback",
|
|
"literal_keyword_match",
|
|
"semantic_keyword_match",
|
|
"session_affinity_pin",
|
|
"session_affinity_escalation",
|
|
"default_fallback",
|
|
"keyword",
|
|
"quality_tier",
|
|
"bandit"
|
|
],
|
|
"title": "Cause",
|
|
"type": "string"
|
|
},
|
|
"classifier_cost": {
|
|
"title": "Classifier Cost",
|
|
"type": "number"
|
|
},
|
|
"classifier_model": {
|
|
"title": "Classifier Model",
|
|
"type": "string"
|
|
},
|
|
"conversation_continuing": {
|
|
"title": "Conversation Continuing",
|
|
"type": "boolean"
|
|
},
|
|
"escalated": {
|
|
"title": "Escalated",
|
|
"type": "boolean"
|
|
},
|
|
"escalation_keyword": {
|
|
"title": "Escalation Keyword",
|
|
"type": "string"
|
|
},
|
|
"matched_keyword": {
|
|
"title": "Matched Keyword",
|
|
"type": "string"
|
|
},
|
|
"request_type": {
|
|
"title": "Request Type",
|
|
"type": "string"
|
|
},
|
|
"routed_model": {
|
|
"title": "Routed Model",
|
|
"type": "string"
|
|
},
|
|
"router_model_name": {
|
|
"title": "Router Model Name",
|
|
"type": "string"
|
|
},
|
|
"router_type": {
|
|
"enum": [
|
|
"complexity",
|
|
"adaptive",
|
|
"quality"
|
|
],
|
|
"title": "Router Type",
|
|
"type": "string"
|
|
},
|
|
"savings_baseline_deployment_id": {
|
|
"title": "Savings Baseline Deployment Id",
|
|
"type": "string"
|
|
},
|
|
"savings_baseline_model": {
|
|
"title": "Savings Baseline Model",
|
|
"type": "string"
|
|
},
|
|
"score": {
|
|
"title": "Score",
|
|
"type": "number"
|
|
},
|
|
"signals": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Signals",
|
|
"type": "array"
|
|
},
|
|
"tier": {
|
|
"title": "Tier",
|
|
"type": "string"
|
|
},
|
|
"tier_boundaries": {
|
|
"$ref": "#/components/schemas/StandardLoggingRoutingDecisionTierBoundaries"
|
|
},
|
|
"tier_label": {
|
|
"title": "Tier Label",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "StandardLoggingRoutingDecision",
|
|
"type": "object"
|
|
},
|
|
"StandardLoggingRoutingDecisionTierBoundaries": {
|
|
"description": "Snapshot of the complexity scorer's tier boundaries at decision time, so a\nhistorical spend log row stays explainable after the router config changes.",
|
|
"properties": {
|
|
"complex_reasoning": {
|
|
"title": "Complex Reasoning",
|
|
"type": "number"
|
|
},
|
|
"medium_complex": {
|
|
"title": "Medium Complex",
|
|
"type": "number"
|
|
},
|
|
"simple_medium": {
|
|
"title": "Simple Medium",
|
|
"type": "number"
|
|
}
|
|
},
|
|
"required": [
|
|
"simple_medium",
|
|
"medium_complex",
|
|
"complex_reasoning"
|
|
],
|
|
"title": "StandardLoggingRoutingDecisionTierBoundaries",
|
|
"type": "object"
|
|
},
|
|
"SuccessfulKeyUpdate": {
|
|
"description": "Successfully updated key with its updated information",
|
|
"properties": {
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"key_info": {
|
|
"additionalProperties": true,
|
|
"title": "Key Info",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"key_info"
|
|
],
|
|
"title": "SuccessfulKeyUpdate",
|
|
"type": "object"
|
|
},
|
|
"SuggestTemplatesRequest": {
|
|
"properties": {
|
|
"attack_examples": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Attack Examples",
|
|
"type": "array"
|
|
},
|
|
"description": {
|
|
"default": "",
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
"title": "SuggestTemplatesRequest",
|
|
"type": "object"
|
|
},
|
|
"SupportedDBObjectType": {
|
|
"description": "Supported database object types for fine-grained DB storage control.\nUse in general_settings.supported_db_objects to specify which objects to load from DB.",
|
|
"enum": [
|
|
"models",
|
|
"mcp",
|
|
"guardrails",
|
|
"policies",
|
|
"vector_stores",
|
|
"pass_through_endpoints",
|
|
"prompts",
|
|
"model_cost_map",
|
|
"tools",
|
|
"config_overrides"
|
|
],
|
|
"title": "SupportedDBObjectType",
|
|
"type": "string"
|
|
},
|
|
"SupportedEndpoint": {
|
|
"properties": {
|
|
"endpoint": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
},
|
|
"key": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"title": "Label",
|
|
"type": "string"
|
|
},
|
|
"providers": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/EndpointProvider"
|
|
},
|
|
"title": "Providers",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"key",
|
|
"label",
|
|
"endpoint",
|
|
"providers"
|
|
],
|
|
"title": "SupportedEndpoint",
|
|
"type": "object"
|
|
},
|
|
"SupportedEndpointsResponse": {
|
|
"properties": {
|
|
"endpoints": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/SupportedEndpoint"
|
|
},
|
|
"title": "Endpoints",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"endpoints"
|
|
],
|
|
"title": "SupportedEndpointsResponse",
|
|
"type": "object"
|
|
},
|
|
"TagActiveUsersResponse": {
|
|
"description": "Response for tag active users metrics",
|
|
"properties": {
|
|
"active_users": {
|
|
"title": "Active Users",
|
|
"type": "integer"
|
|
},
|
|
"date": {
|
|
"title": "Date",
|
|
"type": "string"
|
|
},
|
|
"period_end": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Period End"
|
|
},
|
|
"period_start": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Period Start"
|
|
},
|
|
"tag": {
|
|
"title": "Tag",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"tag",
|
|
"active_users",
|
|
"date"
|
|
],
|
|
"title": "TagActiveUsersResponse",
|
|
"type": "object"
|
|
},
|
|
"TagDeleteRequest": {
|
|
"properties": {
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "TagDeleteRequest",
|
|
"type": "object"
|
|
},
|
|
"TagInfoRequest": {
|
|
"properties": {
|
|
"names": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Names",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"names"
|
|
],
|
|
"title": "TagInfoRequest",
|
|
"type": "object"
|
|
},
|
|
"TagNewRequest": {
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"model_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Info"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Max Budget"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "TagNewRequest",
|
|
"type": "object"
|
|
},
|
|
"TagSummaryMetrics": {
|
|
"description": "Summary metrics for a tag",
|
|
"properties": {
|
|
"failed_requests": {
|
|
"title": "Failed Requests",
|
|
"type": "integer"
|
|
},
|
|
"successful_requests": {
|
|
"title": "Successful Requests",
|
|
"type": "integer"
|
|
},
|
|
"tag": {
|
|
"title": "Tag",
|
|
"type": "string"
|
|
},
|
|
"total_requests": {
|
|
"title": "Total Requests",
|
|
"type": "integer"
|
|
},
|
|
"total_spend": {
|
|
"title": "Total Spend",
|
|
"type": "number"
|
|
},
|
|
"total_tokens": {
|
|
"title": "Total Tokens",
|
|
"type": "integer"
|
|
},
|
|
"unique_users": {
|
|
"title": "Unique Users",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"tag",
|
|
"unique_users",
|
|
"total_requests",
|
|
"successful_requests",
|
|
"failed_requests",
|
|
"total_tokens",
|
|
"total_spend"
|
|
],
|
|
"title": "TagSummaryMetrics",
|
|
"type": "object"
|
|
},
|
|
"TagSummaryResponse": {
|
|
"description": "Response for tag summary analytics",
|
|
"properties": {
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TagSummaryMetrics"
|
|
},
|
|
"title": "Results",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"results"
|
|
],
|
|
"title": "TagSummaryResponse",
|
|
"type": "object"
|
|
},
|
|
"TagUpdateRequest": {
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"model_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Info"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Max Budget"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"required": [
|
|
"name"
|
|
],
|
|
"title": "TagUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"TeamAddMemberResponse": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"admins": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Admins",
|
|
"type": "array"
|
|
},
|
|
"allow_team_guardrail_config": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Allow Team Guardrail Config"
|
|
},
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"default_team_member_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Team Member Models"
|
|
},
|
|
"litellm_model_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ModelTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"members": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Members",
|
|
"type": "array"
|
|
},
|
|
"members_with_roles": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/Member"
|
|
},
|
|
"title": "Members With Roles",
|
|
"type": "array"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Id"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Max Budget"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Spend"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"team_member_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Permissions"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_team_memberships": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_TeamMembership"
|
|
},
|
|
"title": "Updated Team Memberships",
|
|
"type": "array"
|
|
},
|
|
"updated_users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_UserTable"
|
|
},
|
|
"title": "Updated Users",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id",
|
|
"updated_users",
|
|
"updated_team_memberships"
|
|
],
|
|
"title": "TeamAddMemberResponse",
|
|
"type": "object"
|
|
},
|
|
"TeamListItem": {
|
|
"description": "A team item in the paginated list response, enriched with computed fields.",
|
|
"properties": {
|
|
"access_group_agent_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Agent Ids"
|
|
},
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"access_group_mcp_server_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Mcp Server Ids"
|
|
},
|
|
"access_group_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Models"
|
|
},
|
|
"admins": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Admins",
|
|
"type": "array"
|
|
},
|
|
"allow_team_guardrail_config": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Allow Team Guardrail Config"
|
|
},
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"default_team_member_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Team Member Models"
|
|
},
|
|
"keys_count": {
|
|
"default": 0,
|
|
"title": "Keys Count",
|
|
"type": "integer"
|
|
},
|
|
"litellm_model_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ModelTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"members": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Members",
|
|
"type": "array"
|
|
},
|
|
"members_count": {
|
|
"default": 0,
|
|
"title": "Members Count",
|
|
"type": "integer"
|
|
},
|
|
"members_with_roles": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/Member"
|
|
},
|
|
"title": "Members With Roles",
|
|
"type": "array"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Id"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Max Budget"
|
|
},
|
|
"model_spend": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Spend"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"team_member_permissions": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Permissions"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "TeamListItem",
|
|
"type": "object"
|
|
},
|
|
"TeamListResponse": {
|
|
"description": "Response to get the list of teams",
|
|
"properties": {
|
|
"page": {
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
},
|
|
"teams": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/TeamListItem"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_TeamTable"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_DeletedTeamTable"
|
|
}
|
|
]
|
|
},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
},
|
|
"total_pages": {
|
|
"title": "Total Pages",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"teams",
|
|
"total",
|
|
"page",
|
|
"page_size",
|
|
"total_pages"
|
|
],
|
|
"title": "TeamListResponse",
|
|
"type": "object"
|
|
},
|
|
"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.",
|
|
"properties": {
|
|
"team_ids_jwt_field": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"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.",
|
|
"title": "Team Ids Jwt Field"
|
|
}
|
|
},
|
|
"title": "TeamMappings",
|
|
"type": "object"
|
|
},
|
|
"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```",
|
|
"properties": {
|
|
"allowed_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of models this team member can access. If not set, inherits the team's default_team_member_models or all team models.",
|
|
"title": "Allowed Models"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Duration after which this team member's budget resets (e.g. '1h', '24h', '7d', '30d'). If not set, the budget never resets.",
|
|
"title": "Budget Duration"
|
|
},
|
|
"max_budget_in_team": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Maximum budget allocated to this user within the team. If not set, user has unlimited budget within team limits",
|
|
"title": "Max Budget In Team"
|
|
},
|
|
"member": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/Member"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/Member"
|
|
}
|
|
],
|
|
"description": "Member object or list of member objects to add. Each member must include either user_id or user_email, and a role",
|
|
"title": "Member"
|
|
},
|
|
"team_id": {
|
|
"description": "The ID of the team to add the member to",
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"member",
|
|
"team_id"
|
|
],
|
|
"title": "TeamMemberAddRequest",
|
|
"type": "object"
|
|
},
|
|
"TeamMemberAddResult": {
|
|
"description": "Result of a single team member add operation",
|
|
"properties": {
|
|
"error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error"
|
|
},
|
|
"success": {
|
|
"title": "Success",
|
|
"type": "boolean"
|
|
},
|
|
"updated_team_membership": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated Team Membership"
|
|
},
|
|
"updated_user": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated User"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
],
|
|
"title": "TeamMemberAddResult",
|
|
"type": "object"
|
|
},
|
|
"TeamMemberDeleteRequest": {
|
|
"properties": {
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "TeamMemberDeleteRequest",
|
|
"type": "object"
|
|
},
|
|
"TeamMemberInfoResponse": {
|
|
"description": "Response for GET /team/{team_id}/members/me \u2014 caller's own membership row.",
|
|
"properties": {
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTableFull"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_BudgetTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Budget Table"
|
|
},
|
|
"role": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Role"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.0,
|
|
"title": "Spend"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"total_spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.0,
|
|
"title": "Total Spend"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id",
|
|
"team_id"
|
|
],
|
|
"title": "TeamMemberInfoResponse",
|
|
"type": "object"
|
|
},
|
|
"TeamMemberUpdateRequest": {
|
|
"properties": {
|
|
"allowed_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "List of models this team member can access. Pass an empty list to remove per-member model restrictions.",
|
|
"title": "Allowed Models"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Duration after which this team member's budget resets (e.g. '1h', '24h', '7d', '30d'). If not set, the budget never resets.",
|
|
"title": "Budget Duration"
|
|
},
|
|
"max_budget_in_team": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget In Team"
|
|
},
|
|
"role": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"admin",
|
|
"user"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Role"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Requests per minute limit for this team member",
|
|
"title": "Rpm Limit"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Tokens per minute limit for this team member",
|
|
"title": "Tpm Limit"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "TeamMemberUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"TeamMemberUpdateResponse": {
|
|
"properties": {
|
|
"allowed_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Models"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"max_budget_in_team": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget In Team"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id",
|
|
"team_id"
|
|
],
|
|
"title": "TeamMemberUpdateResponse",
|
|
"type": "object"
|
|
},
|
|
"TeamMetadataFieldSchema": {
|
|
"additionalProperties": false,
|
|
"description": "One declared team metadata field from ``general_settings.team_metadata_schema``.\n\nAdvisory only: the UI uses it to prepopulate the team metadata form.\nEnforcement stays with ``custom_team_metadata_validate``.",
|
|
"properties": {
|
|
"key": {
|
|
"minLength": 1,
|
|
"title": "Key",
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Label"
|
|
}
|
|
},
|
|
"required": [
|
|
"key"
|
|
],
|
|
"title": "TeamMetadataFieldSchema",
|
|
"type": "object"
|
|
},
|
|
"TeamMetadataSchemaResponse": {
|
|
"description": "Response for GET /team/metadata_schema; ``fields`` is empty when no schema is configured.",
|
|
"properties": {
|
|
"fields": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/TeamMetadataFieldSchema"
|
|
},
|
|
"title": "Fields",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"fields"
|
|
],
|
|
"title": "TeamMetadataSchemaResponse",
|
|
"type": "object"
|
|
},
|
|
"TeamModelAddRequest": {
|
|
"description": "Request to add models to a team",
|
|
"properties": {
|
|
"models": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id",
|
|
"models"
|
|
],
|
|
"title": "TeamModelAddRequest",
|
|
"type": "object"
|
|
},
|
|
"TeamModelDeleteRequest": {
|
|
"description": "Request to delete models from a team",
|
|
"properties": {
|
|
"models": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id",
|
|
"models"
|
|
],
|
|
"title": "TeamModelDeleteRequest",
|
|
"type": "object"
|
|
},
|
|
"TestCustomCodeGuardrailRequest": {
|
|
"description": "Request model for testing custom code guardrails.",
|
|
"properties": {
|
|
"custom_code": {
|
|
"title": "Custom Code",
|
|
"type": "string"
|
|
},
|
|
"input_type": {
|
|
"default": "request",
|
|
"title": "Input Type",
|
|
"type": "string"
|
|
},
|
|
"request_data": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Request Data"
|
|
},
|
|
"test_input": {
|
|
"additionalProperties": true,
|
|
"title": "Test Input",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"custom_code",
|
|
"test_input"
|
|
],
|
|
"title": "TestCustomCodeGuardrailRequest",
|
|
"type": "object"
|
|
},
|
|
"TestCustomCodeGuardrailResponse": {
|
|
"description": "Response model for testing custom code guardrails.",
|
|
"properties": {
|
|
"error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error"
|
|
},
|
|
"error_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error Type"
|
|
},
|
|
"result": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Result"
|
|
},
|
|
"success": {
|
|
"title": "Success",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
],
|
|
"title": "TestCustomCodeGuardrailResponse",
|
|
"type": "object"
|
|
},
|
|
"TestPoliciesAndGuardrailsRequest": {
|
|
"description": "Request body for POST /utils/test_policies_and_guardrails.",
|
|
"properties": {
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "When set, call chat completion with this model/agent for each input and include the response in the result.",
|
|
"title": "Agent Id"
|
|
},
|
|
"guardrail_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Guardrail names to apply directly",
|
|
"title": "Guardrail Names"
|
|
},
|
|
"input_type": {
|
|
"default": "request",
|
|
"description": "Whether inputs are request or response",
|
|
"enum": [
|
|
"request",
|
|
"response"
|
|
],
|
|
"title": "Input Type",
|
|
"type": "string"
|
|
},
|
|
"inputs_list": {
|
|
"default": [],
|
|
"description": "List of GenericGuardrailAPIInputs; each item processed separately (for batch compliance testing).",
|
|
"items": {
|
|
"$ref": "#/components/schemas/GenericGuardrailAPIInputs"
|
|
},
|
|
"title": "Inputs List",
|
|
"type": "array"
|
|
},
|
|
"policy_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Policy names to resolve guardrails from",
|
|
"title": "Policy Names"
|
|
},
|
|
"request_data": {
|
|
"additionalProperties": true,
|
|
"description": "Request context (model, user_id, etc.)",
|
|
"title": "Request Data",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"title": "TestPoliciesAndGuardrailsRequest",
|
|
"type": "object"
|
|
},
|
|
"TestPolicyTemplateRequest": {
|
|
"properties": {
|
|
"guardrail_definitions": {
|
|
"description": "All guardrailDefinitions from the policy template",
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Guardrail Definitions",
|
|
"type": "array"
|
|
},
|
|
"text": {
|
|
"description": "Test input text to run guardrails against",
|
|
"title": "Text",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_definitions",
|
|
"text"
|
|
],
|
|
"title": "TestPolicyTemplateRequest",
|
|
"type": "object"
|
|
},
|
|
"TestPolicyTemplateResponse": {
|
|
"properties": {
|
|
"overall_action": {
|
|
"title": "Overall Action",
|
|
"type": "string"
|
|
},
|
|
"results": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/GuardrailTestResultEntry"
|
|
},
|
|
"title": "Results",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"overall_action",
|
|
"results"
|
|
],
|
|
"title": "TestPolicyTemplateResponse",
|
|
"type": "object"
|
|
},
|
|
"TestPromptRequest": {
|
|
"properties": {
|
|
"conversation_history": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Conversation History"
|
|
},
|
|
"dotprompt_content": {
|
|
"title": "Dotprompt Content",
|
|
"type": "string"
|
|
},
|
|
"prompt_variables": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompt Variables"
|
|
}
|
|
},
|
|
"required": [
|
|
"dotprompt_content"
|
|
],
|
|
"title": "TestPromptRequest",
|
|
"type": "object"
|
|
},
|
|
"TestSearchToolConnectionRequest": {
|
|
"properties": {
|
|
"litellm_params": {
|
|
"additionalProperties": true,
|
|
"title": "Litellm Params",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"litellm_params"
|
|
],
|
|
"title": "TestSearchToolConnectionRequest",
|
|
"type": "object"
|
|
},
|
|
"TokenCountDetailsResponse": {
|
|
"description": "Response structure for token count details with modality breakdown.\n\nExample:\n {'totalTokens': 12, 'promptTokensDetails': [{'modality': 'TEXT', 'tokenCount': 12}]}",
|
|
"properties": {
|
|
"promptTokensDetails": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/PromptTokensDetails"
|
|
},
|
|
"title": "Prompttokensdetails",
|
|
"type": "array"
|
|
},
|
|
"totalTokens": {
|
|
"title": "Totaltokens",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"totalTokens",
|
|
"promptTokensDetails"
|
|
],
|
|
"title": "TokenCountDetailsResponse",
|
|
"type": "object"
|
|
},
|
|
"TokenCountRequest": {
|
|
"properties": {
|
|
"contents": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Contents"
|
|
},
|
|
"messages": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Messages"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"prompt": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompt"
|
|
},
|
|
"system": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "System"
|
|
},
|
|
"tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tools"
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"title": "TokenCountRequest",
|
|
"type": "object"
|
|
},
|
|
"TokenCountResponse": {
|
|
"properties": {
|
|
"error": {
|
|
"default": false,
|
|
"title": "Error",
|
|
"type": "boolean"
|
|
},
|
|
"error_message": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error Message"
|
|
},
|
|
"model_used": {
|
|
"title": "Model Used",
|
|
"type": "string"
|
|
},
|
|
"original_response": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Original Response"
|
|
},
|
|
"request_model": {
|
|
"title": "Request Model",
|
|
"type": "string"
|
|
},
|
|
"status_code": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status Code"
|
|
},
|
|
"tokenizer_type": {
|
|
"title": "Tokenizer Type",
|
|
"type": "string"
|
|
},
|
|
"total_tokens": {
|
|
"title": "Total Tokens",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"total_tokens",
|
|
"request_model",
|
|
"model_used",
|
|
"tokenizer_type"
|
|
],
|
|
"title": "TokenCountResponse",
|
|
"type": "object"
|
|
},
|
|
"ToolDetailResponse": {
|
|
"properties": {
|
|
"overrides": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ToolPolicyOverrideRow"
|
|
},
|
|
"title": "Overrides",
|
|
"type": "array"
|
|
},
|
|
"tool": {
|
|
"$ref": "#/components/schemas/LiteLLM_ToolTableRow"
|
|
}
|
|
},
|
|
"required": [
|
|
"tool"
|
|
],
|
|
"title": "ToolDetailResponse",
|
|
"type": "object"
|
|
},
|
|
"ToolListResponse": {
|
|
"properties": {
|
|
"tools": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_ToolTableRow"
|
|
},
|
|
"title": "Tools",
|
|
"type": "array"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"tools",
|
|
"total"
|
|
],
|
|
"title": "ToolListResponse",
|
|
"type": "object"
|
|
},
|
|
"ToolPermissionRule": {
|
|
"description": "A rule defining permission for a specific tool or tool pattern",
|
|
"properties": {
|
|
"allowed_param_patterns": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional regex map enforcing nested parameter values using dot/[] paths",
|
|
"title": "Allowed Param Patterns"
|
|
},
|
|
"decision": {
|
|
"description": "Whether to allow or deny this tool usage",
|
|
"enum": [
|
|
"allow",
|
|
"deny"
|
|
],
|
|
"title": "Decision",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"description": "Unique identifier for the rule",
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"tool_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Regex pattern applied to the tool's function name",
|
|
"title": "Tool Name"
|
|
},
|
|
"tool_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Regex pattern applied to the tool type (e.g., function)",
|
|
"title": "Tool Type"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"decision"
|
|
],
|
|
"title": "ToolPermissionRule",
|
|
"type": "object"
|
|
},
|
|
"ToolPolicyOption": {
|
|
"properties": {
|
|
"description": {
|
|
"title": "Description",
|
|
"type": "string"
|
|
},
|
|
"label": {
|
|
"title": "Label",
|
|
"type": "string"
|
|
},
|
|
"value": {
|
|
"title": "Value",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"value",
|
|
"label",
|
|
"description"
|
|
],
|
|
"title": "ToolPolicyOption",
|
|
"type": "object"
|
|
},
|
|
"ToolPolicyOptionsResponse": {
|
|
"properties": {
|
|
"input_policies": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ToolPolicyOption"
|
|
},
|
|
"title": "Input Policies",
|
|
"type": "array"
|
|
},
|
|
"output_policies": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ToolPolicyOption"
|
|
},
|
|
"title": "Output Policies",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"input_policies",
|
|
"output_policies"
|
|
],
|
|
"title": "ToolPolicyOptionsResponse",
|
|
"type": "object"
|
|
},
|
|
"ToolPolicyOverrideRow": {
|
|
"properties": {
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"input_policy": {
|
|
"default": "blocked",
|
|
"enum": [
|
|
"trusted",
|
|
"untrusted",
|
|
"blocked"
|
|
],
|
|
"title": "Input Policy",
|
|
"type": "string"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_hash": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Hash"
|
|
},
|
|
"override_id": {
|
|
"title": "Override Id",
|
|
"type": "string"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"tool_name": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
}
|
|
},
|
|
"required": [
|
|
"override_id",
|
|
"tool_name"
|
|
],
|
|
"title": "ToolPolicyOverrideRow",
|
|
"type": "object"
|
|
},
|
|
"ToolPolicyUpdateRequest": {
|
|
"properties": {
|
|
"input_policy": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"trusted",
|
|
"untrusted",
|
|
"blocked"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Policy"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_hash": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Hash"
|
|
},
|
|
"output_policy": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"trusted",
|
|
"untrusted"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Policy"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"tool_name": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"tool_name"
|
|
],
|
|
"title": "ToolPolicyUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"ToolPolicyUpdateResponse": {
|
|
"properties": {
|
|
"input_policy": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"trusted",
|
|
"untrusted",
|
|
"blocked"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Policy"
|
|
},
|
|
"key_hash": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Hash"
|
|
},
|
|
"output_policy": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"trusted",
|
|
"untrusted"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Policy"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"tool_name": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
},
|
|
"updated": {
|
|
"title": "Updated",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
"required": [
|
|
"tool_name",
|
|
"updated"
|
|
],
|
|
"title": "ToolPolicyUpdateResponse",
|
|
"type": "object"
|
|
},
|
|
"ToolSpendDailyEntry": {
|
|
"description": "Spend attributed to one tool on one UTC day.",
|
|
"properties": {
|
|
"call_count": {
|
|
"default": 0,
|
|
"title": "Call Count",
|
|
"type": "integer"
|
|
},
|
|
"date": {
|
|
"title": "Date",
|
|
"type": "string"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"tool_name": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"date",
|
|
"tool_name"
|
|
],
|
|
"title": "ToolSpendDailyEntry",
|
|
"type": "object"
|
|
},
|
|
"ToolSpendEntry": {
|
|
"description": "Total spend attributed to one tool over the requested window.",
|
|
"properties": {
|
|
"call_count": {
|
|
"default": 0,
|
|
"title": "Call Count",
|
|
"type": "integer"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"description": "Attributed spend: a request that used several tools counts its full spend toward each of them",
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"tool_name": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
},
|
|
"total_tokens": {
|
|
"default": 0,
|
|
"title": "Total Tokens",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"tool_name"
|
|
],
|
|
"title": "ToolSpendEntry",
|
|
"type": "object"
|
|
},
|
|
"ToolSpendResponse": {
|
|
"properties": {
|
|
"by_tool": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ToolSpendEntry"
|
|
},
|
|
"title": "By Tool",
|
|
"type": "array"
|
|
},
|
|
"daily": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ToolSpendDailyEntry"
|
|
},
|
|
"title": "Daily",
|
|
"type": "array"
|
|
},
|
|
"end_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
},
|
|
"start_date": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
"title": "ToolSpendResponse",
|
|
"type": "object"
|
|
},
|
|
"ToolUsageLogEntry": {
|
|
"description": "One spend log row for a tool call (for UI \"recent logs\" table).",
|
|
"properties": {
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"input_snippet": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Snippet"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"timestamp": {
|
|
"title": "Timestamp",
|
|
"type": "string"
|
|
},
|
|
"total_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Total Tokens"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"timestamp"
|
|
],
|
|
"title": "ToolUsageLogEntry",
|
|
"type": "object"
|
|
},
|
|
"ToolUsageLogsResponse": {
|
|
"properties": {
|
|
"logs": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ToolUsageLogEntry"
|
|
},
|
|
"title": "Logs",
|
|
"type": "array"
|
|
},
|
|
"page": {
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"logs",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "ToolUsageLogsResponse",
|
|
"type": "object"
|
|
},
|
|
"TopLogprob": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"bytes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "integer"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Bytes"
|
|
},
|
|
"logprob": {
|
|
"title": "Logprob",
|
|
"type": "number"
|
|
},
|
|
"token": {
|
|
"title": "Token",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"token",
|
|
"logprob"
|
|
],
|
|
"title": "TopLogprob",
|
|
"type": "object"
|
|
},
|
|
"TransformRequestBody": {
|
|
"properties": {
|
|
"call_type": {
|
|
"$ref": "#/components/schemas/CallTypes"
|
|
},
|
|
"request_body": {
|
|
"additionalProperties": true,
|
|
"title": "Request Body",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"call_type",
|
|
"request_body"
|
|
],
|
|
"title": "TransformRequestBody",
|
|
"type": "object"
|
|
},
|
|
"UISettingsResponse": {
|
|
"description": "Response model for UI settings",
|
|
"properties": {
|
|
"field_schema": {
|
|
"additionalProperties": true,
|
|
"title": "Field Schema",
|
|
"type": "object"
|
|
},
|
|
"values": {
|
|
"additionalProperties": true,
|
|
"title": "Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"values",
|
|
"field_schema"
|
|
],
|
|
"title": "UISettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"UIThemeConfig": {
|
|
"description": "Configuration for UI theme customization",
|
|
"properties": {
|
|
"favicon_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "URL to custom favicon image. Must be an HTTP/HTTPS URL to a .ico, .png, or .svg file",
|
|
"title": "Favicon Url"
|
|
},
|
|
"logo_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "URL or path to custom logo image. Can be a local file path or HTTP/HTTPS URL",
|
|
"title": "Logo Url"
|
|
}
|
|
},
|
|
"title": "UIThemeConfig",
|
|
"type": "object"
|
|
},
|
|
"UIThemeSettingsResponse": {
|
|
"description": "Response model for UI theme settings",
|
|
"properties": {
|
|
"field_schema": {
|
|
"additionalProperties": true,
|
|
"title": "Field Schema",
|
|
"type": "object"
|
|
},
|
|
"values": {
|
|
"additionalProperties": true,
|
|
"title": "Values",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"values",
|
|
"field_schema"
|
|
],
|
|
"title": "UIThemeSettingsResponse",
|
|
"type": "object"
|
|
},
|
|
"UiDiscoveryEndpoints": {
|
|
"properties": {
|
|
"admin_ui_disabled": {
|
|
"title": "Admin Ui Disabled",
|
|
"type": "boolean"
|
|
},
|
|
"auto_redirect_to_sso": {
|
|
"title": "Auto Redirect To Sso",
|
|
"type": "boolean"
|
|
},
|
|
"hide_default_credentials_hint": {
|
|
"default": false,
|
|
"title": "Hide Default Credentials Hint",
|
|
"type": "boolean"
|
|
},
|
|
"is_control_plane": {
|
|
"default": false,
|
|
"title": "Is Control Plane",
|
|
"type": "boolean"
|
|
},
|
|
"proxy_base_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Proxy Base Url"
|
|
},
|
|
"server_root_path": {
|
|
"title": "Server Root Path",
|
|
"type": "string"
|
|
},
|
|
"sso_configured": {
|
|
"title": "Sso Configured",
|
|
"type": "boolean"
|
|
},
|
|
"workers": {
|
|
"default": [],
|
|
"items": {
|
|
"$ref": "#/components/schemas/WorkerRegistryEntry"
|
|
},
|
|
"title": "Workers",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"server_root_path",
|
|
"proxy_base_url",
|
|
"auto_redirect_to_sso",
|
|
"admin_ui_disabled",
|
|
"sso_configured"
|
|
],
|
|
"title": "UiDiscoveryEndpoints",
|
|
"type": "object"
|
|
},
|
|
"UnblockUsersResponse": {
|
|
"properties": {
|
|
"blocked_users": {
|
|
"description": "User IDs that remain blocked after this unblock call",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Blocked Users",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"blocked_users"
|
|
],
|
|
"title": "UnblockUsersResponse",
|
|
"type": "object"
|
|
},
|
|
"UpdateCustomerRequest": {
|
|
"description": "Update a Customer, use this to update customer budgets etc",
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"allowed_model_region": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"eu",
|
|
"us"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Model Region"
|
|
},
|
|
"blocked": {
|
|
"default": false,
|
|
"title": "Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Model"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id"
|
|
],
|
|
"title": "UpdateCustomerRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateGuardrailRequest": {
|
|
"properties": {
|
|
"guardrail": {
|
|
"$ref": "#/components/schemas/Guardrail"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail"
|
|
],
|
|
"title": "UpdateGuardrailRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateJWTKeyMappingRequest": {
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"is_active": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Is Active"
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key"
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "UpdateJWTKeyMappingRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateKeyRequest": {
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Aliases"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"allowed_passthrough_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Passthrough Routes"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Routes"
|
|
},
|
|
"allowed_vector_store_indexes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/AllowedVectorStoreIndexItem"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Vector Store Indexes"
|
|
},
|
|
"auto_rotate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auto Rotate"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Fallbacks"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Config"
|
|
},
|
|
"disable_global_guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Disable Global Guardrails"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"enforced_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Enforced Params"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Permissions"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"rotation_interval": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rotation Interval"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/UpdateRouterConfig"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"rpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit Type"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"tag_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Rpm Limit"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"temp_budget_expiry": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Temp Budget Expiry"
|
|
},
|
|
"temp_budget_increase": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Temp Budget Increase"
|
|
},
|
|
"throttle_on_budget_exceeded": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Throttle On Budget Exceeded"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"tpm_limit_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"guaranteed_throughput",
|
|
"best_effort_throughput",
|
|
"dynamic"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit Type"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"title": "UpdateKeyRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateMCPServerRequest": {
|
|
"properties": {
|
|
"alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Alias"
|
|
},
|
|
"allow_all_keys": {
|
|
"default": false,
|
|
"title": "Allow All Keys",
|
|
"type": "boolean"
|
|
},
|
|
"allowed_tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Tools"
|
|
},
|
|
"args": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Args",
|
|
"type": "array"
|
|
},
|
|
"auth_type": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"none",
|
|
"api_key",
|
|
"bearer_token",
|
|
"basic",
|
|
"authorization",
|
|
"oauth2",
|
|
"aws_sigv4",
|
|
"token"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auth Type"
|
|
},
|
|
"authorization_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Authorization Url"
|
|
},
|
|
"available_on_public_internet": {
|
|
"default": true,
|
|
"title": "Available On Public Internet",
|
|
"type": "boolean"
|
|
},
|
|
"byok_api_key_help_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Byok Api Key Help Url"
|
|
},
|
|
"byok_description": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Byok Description",
|
|
"type": "array"
|
|
},
|
|
"command": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Command"
|
|
},
|
|
"credentials": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/MCPCredentials"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"env": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"title": "Env",
|
|
"type": "object"
|
|
},
|
|
"extra_headers": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Extra Headers"
|
|
},
|
|
"instructions": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Instructions"
|
|
},
|
|
"is_byok": {
|
|
"default": false,
|
|
"title": "Is Byok",
|
|
"type": "boolean"
|
|
},
|
|
"mcp_access_groups": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Mcp Access Groups",
|
|
"type": "array"
|
|
},
|
|
"mcp_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Info"
|
|
},
|
|
"registration_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Registration Url"
|
|
},
|
|
"server_id": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
},
|
|
"server_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Server Name"
|
|
},
|
|
"source_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source Url"
|
|
},
|
|
"spec_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spec Path"
|
|
},
|
|
"static_headers": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Static Headers"
|
|
},
|
|
"token_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token Url"
|
|
},
|
|
"tool_name_to_description": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tool Name To Description"
|
|
},
|
|
"tool_name_to_display_name": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tool Name To Display Name"
|
|
},
|
|
"transport": {
|
|
"default": "sse",
|
|
"enum": [
|
|
"sse",
|
|
"http",
|
|
"stdio"
|
|
],
|
|
"title": "Transport",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Url"
|
|
}
|
|
},
|
|
"required": [
|
|
"server_id"
|
|
],
|
|
"title": "UpdateMCPServerRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateMCPToolsetRequest": {
|
|
"properties": {
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/MCPToolsetTool"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tools"
|
|
},
|
|
"toolset_id": {
|
|
"title": "Toolset Id",
|
|
"type": "string"
|
|
},
|
|
"toolset_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Toolset Name"
|
|
}
|
|
},
|
|
"required": [
|
|
"toolset_id"
|
|
],
|
|
"title": "UpdateMCPToolsetRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateModelGroupRequest": {
|
|
"properties": {
|
|
"model_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Ids"
|
|
},
|
|
"model_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Names"
|
|
}
|
|
},
|
|
"title": "UpdateModelGroupRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdatePluginRequest": {
|
|
"description": "Request body for replacing an existing plugin.\n\nThe plugin name is the resource identity and is supplied as the path\nparameter, so it cannot be changed here. This is a full replace: omitted\nfields reset to their defaults, so version is cleared rather than\ndefaulting to the create-time \"1.0.0\".",
|
|
"properties": {
|
|
"author": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/PluginAuthor"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin author"
|
|
},
|
|
"category": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin category",
|
|
"title": "Category"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin description",
|
|
"title": "Description"
|
|
},
|
|
"domain": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Skill domain (e.g., 'Productivity')",
|
|
"title": "Domain"
|
|
},
|
|
"homepage": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Plugin homepage URL",
|
|
"title": "Homepage"
|
|
},
|
|
"keywords": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Search keywords",
|
|
"title": "Keywords"
|
|
},
|
|
"namespace": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Skill namespace within domain (e.g., 'workflows')",
|
|
"title": "Namespace"
|
|
},
|
|
"source": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"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'}",
|
|
"title": "Source",
|
|
"type": "object"
|
|
},
|
|
"version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Semantic version; cleared if omitted",
|
|
"title": "Version"
|
|
}
|
|
},
|
|
"required": [
|
|
"source"
|
|
],
|
|
"title": "UpdatePluginRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateProjectRequest": {
|
|
"description": "Request model for POST /project/update",
|
|
"properties": {
|
|
"allowed_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Models"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"project_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Alias"
|
|
},
|
|
"project_id": {
|
|
"title": "Project Id",
|
|
"type": "string"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"required": [
|
|
"project_id"
|
|
],
|
|
"title": "UpdateProjectRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdatePublicModelGroupsRequest": {
|
|
"additionalProperties": false,
|
|
"description": "Request model for updating public model groups",
|
|
"properties": {
|
|
"model_groups": {
|
|
"description": "List of model group names to make public",
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Model Groups",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"model_groups"
|
|
],
|
|
"title": "UpdatePublicModelGroupsRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateRouterConfig": {
|
|
"description": "Set of params that you can modify via `router.update_settings()`.",
|
|
"properties": {
|
|
"allowed_fails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Fails"
|
|
},
|
|
"context_window_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Context Window Fallbacks"
|
|
},
|
|
"cooldown_time": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cooldown Time"
|
|
},
|
|
"enable_tag_filtering": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Enable Tag Filtering"
|
|
},
|
|
"fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fallbacks"
|
|
},
|
|
"max_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Retries"
|
|
},
|
|
"model_group_affinity_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Group Affinity Config"
|
|
},
|
|
"model_group_alias": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Model Group Alias"
|
|
},
|
|
"model_group_retry_policy": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"$ref": "#/components/schemas/RetryPolicy"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Group Retry Policy"
|
|
},
|
|
"num_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Num Retries"
|
|
},
|
|
"retry_after": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Retry After"
|
|
},
|
|
"retry_policy": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/RetryPolicy"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"routing_groups": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/RoutingGroup"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Routing Groups"
|
|
},
|
|
"routing_strategy": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Routing Strategy"
|
|
},
|
|
"routing_strategy_args": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Routing Strategy Args"
|
|
},
|
|
"timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Timeout"
|
|
}
|
|
},
|
|
"title": "UpdateRouterConfig",
|
|
"type": "object"
|
|
},
|
|
"UpdateSearchToolRequest": {
|
|
"properties": {
|
|
"search_tool": {
|
|
"$ref": "#/components/schemas/SearchTool"
|
|
}
|
|
},
|
|
"required": [
|
|
"search_tool"
|
|
],
|
|
"title": "UpdateSearchToolRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateTeamMemberPermissionsRequest": {
|
|
"description": "Request to update the team member permissions for a team",
|
|
"properties": {
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"team_member_permissions": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Team Member Permissions",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id",
|
|
"team_member_permissions"
|
|
],
|
|
"title": "UpdateTeamMemberPermissionsRequest",
|
|
"type": "object"
|
|
},
|
|
"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",
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"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"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"default_team_member_models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Team Member Models"
|
|
},
|
|
"disable_global_guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Disable Global Guardrails"
|
|
},
|
|
"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"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Aliases"
|
|
},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"organization_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"secret_manager_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Secret Manager Settings"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_id": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
},
|
|
"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_key_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Key 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"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
}
|
|
},
|
|
"required": [
|
|
"team_id"
|
|
],
|
|
"title": "UpdateTeamRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateUsefulLinksRequest": {
|
|
"properties": {
|
|
"useful_links": {
|
|
"additionalProperties": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
}
|
|
]
|
|
},
|
|
"title": "Useful Links",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"required": [
|
|
"useful_links"
|
|
],
|
|
"title": "UpdateUsefulLinksRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateUserBannerResponse": {
|
|
"properties": {
|
|
"banner": {
|
|
"$ref": "#/components/schemas/UserBanner"
|
|
},
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"banner"
|
|
],
|
|
"title": "UpdateUserBannerResponse",
|
|
"type": "object"
|
|
},
|
|
"UpdateUserRequest": {
|
|
"properties": {
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Aliases"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Fallbacks"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Config"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"password": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Password"
|
|
},
|
|
"permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Permissions"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"tag_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Rpm Limit"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"user_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Alias"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"proxy_admin",
|
|
"proxy_admin_viewer",
|
|
"internal_user",
|
|
"internal_user_viewer"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"title": "UpdateUserRequest",
|
|
"type": "object"
|
|
},
|
|
"UpdateUserRequestNoUserIDorEmail": {
|
|
"properties": {
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Aliases"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Fallbacks"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"$ref": "#/components/schemas/BudgetLimitEntry"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Config"
|
|
},
|
|
"duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Duration"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrails"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"mcp_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mcp Rpm Limit"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"model_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"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"
|
|
},
|
|
"models": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Models"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionBase"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"password": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Password"
|
|
},
|
|
"permissions": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": {},
|
|
"title": "Permissions"
|
|
},
|
|
"policies": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policies"
|
|
},
|
|
"prompts": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Prompts"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Spend"
|
|
},
|
|
"tag_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Rpm Limit"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"user_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Alias"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"proxy_admin",
|
|
"proxy_admin_viewer",
|
|
"internal_user",
|
|
"internal_user_viewer"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"title": "UpdateUserRequestNoUserIDorEmail",
|
|
"type": "object"
|
|
},
|
|
"UsageAIChatRequest": {
|
|
"properties": {
|
|
"messages": {
|
|
"description": "Chat messages (user/assistant history)",
|
|
"items": {
|
|
"$ref": "#/components/schemas/ChatMessage"
|
|
},
|
|
"title": "Messages",
|
|
"type": "array"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Model to use for AI chat",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
"required": [
|
|
"messages"
|
|
],
|
|
"title": "UsageAIChatRequest",
|
|
"type": "object"
|
|
},
|
|
"UsageChartPoint": {
|
|
"properties": {
|
|
"blocked": {
|
|
"title": "Blocked",
|
|
"type": "integer"
|
|
},
|
|
"date": {
|
|
"title": "Date",
|
|
"type": "string"
|
|
},
|
|
"passed": {
|
|
"title": "Passed",
|
|
"type": "integer"
|
|
},
|
|
"score": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Score"
|
|
}
|
|
},
|
|
"required": [
|
|
"date",
|
|
"passed",
|
|
"blocked"
|
|
],
|
|
"title": "UsageChartPoint",
|
|
"type": "object"
|
|
},
|
|
"UsageDetailResponse": {
|
|
"properties": {
|
|
"avgLatency": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avglatency"
|
|
},
|
|
"avgScore": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avgscore"
|
|
},
|
|
"description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Description"
|
|
},
|
|
"failRate": {
|
|
"title": "Failrate",
|
|
"type": "number"
|
|
},
|
|
"guardrail_id": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
},
|
|
"guardrail_name": {
|
|
"title": "Guardrail Name",
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"title": "Provider",
|
|
"type": "string"
|
|
},
|
|
"requestsEvaluated": {
|
|
"title": "Requestsevaluated",
|
|
"type": "integer"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"time_series": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Time Series",
|
|
"type": "array"
|
|
},
|
|
"trend": {
|
|
"title": "Trend",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"guardrail_id",
|
|
"guardrail_name",
|
|
"type",
|
|
"provider",
|
|
"requestsEvaluated",
|
|
"failRate",
|
|
"avgScore",
|
|
"avgLatency",
|
|
"status",
|
|
"trend",
|
|
"description",
|
|
"time_series"
|
|
],
|
|
"title": "UsageDetailResponse",
|
|
"type": "object"
|
|
},
|
|
"UsageLogEntry": {
|
|
"properties": {
|
|
"action": {
|
|
"title": "Action",
|
|
"type": "string"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"input_snippet": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Snippet"
|
|
},
|
|
"latency_ms": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Latency Ms"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"output_snippet": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Snippet"
|
|
},
|
|
"reason": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Reason"
|
|
},
|
|
"score": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Score"
|
|
},
|
|
"timestamp": {
|
|
"title": "Timestamp",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"timestamp",
|
|
"action",
|
|
"score",
|
|
"latency_ms",
|
|
"model",
|
|
"input_snippet",
|
|
"output_snippet",
|
|
"reason"
|
|
],
|
|
"title": "UsageLogEntry",
|
|
"type": "object"
|
|
},
|
|
"UsageLogsResponse": {
|
|
"properties": {
|
|
"logs": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/UsageLogEntry"
|
|
},
|
|
"title": "Logs",
|
|
"type": "array"
|
|
},
|
|
"page": {
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"logs",
|
|
"total",
|
|
"page",
|
|
"page_size"
|
|
],
|
|
"title": "UsageLogsResponse",
|
|
"type": "object"
|
|
},
|
|
"UsageOverviewResponse": {
|
|
"properties": {
|
|
"chart": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Chart",
|
|
"type": "array"
|
|
},
|
|
"passRate": {
|
|
"title": "Passrate",
|
|
"type": "number"
|
|
},
|
|
"rows": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/UsageOverviewRow"
|
|
},
|
|
"title": "Rows",
|
|
"type": "array"
|
|
},
|
|
"totalBlocked": {
|
|
"title": "Totalblocked",
|
|
"type": "integer"
|
|
},
|
|
"totalRequests": {
|
|
"title": "Totalrequests",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
"required": [
|
|
"rows",
|
|
"chart",
|
|
"totalRequests",
|
|
"totalBlocked",
|
|
"passRate"
|
|
],
|
|
"title": "UsageOverviewResponse",
|
|
"type": "object"
|
|
},
|
|
"UsageOverviewRow": {
|
|
"properties": {
|
|
"avgLatency": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avglatency"
|
|
},
|
|
"avgScore": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Avgscore"
|
|
},
|
|
"failRate": {
|
|
"title": "Failrate",
|
|
"type": "number"
|
|
},
|
|
"id": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
},
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"provider": {
|
|
"title": "Provider",
|
|
"type": "string"
|
|
},
|
|
"requestsEvaluated": {
|
|
"title": "Requestsevaluated",
|
|
"type": "integer"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"trend": {
|
|
"title": "Trend",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"title": "Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"name",
|
|
"type",
|
|
"provider",
|
|
"requestsEvaluated",
|
|
"failRate",
|
|
"avgScore",
|
|
"avgLatency",
|
|
"status",
|
|
"trend"
|
|
],
|
|
"title": "UsageOverviewRow",
|
|
"type": "object"
|
|
},
|
|
"UserAPIKeyAuth": {
|
|
"description": "Return the row in the db",
|
|
"properties": {
|
|
"access_group_ids": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Access Group Ids"
|
|
},
|
|
"agent_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Id"
|
|
},
|
|
"aliases": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Aliases",
|
|
"type": "object"
|
|
},
|
|
"allowed_cache_controls": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Cache Controls"
|
|
},
|
|
"allowed_model_region": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"eu",
|
|
"us"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Allowed Model Region"
|
|
},
|
|
"allowed_routes": {
|
|
"anyOf": [
|
|
{
|
|
"items": {},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": [],
|
|
"title": "Allowed Routes"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
},
|
|
"auto_rotate": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Auto Rotate"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_fallbacks": {
|
|
"additionalProperties": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
"default": {},
|
|
"title": "Budget Fallbacks",
|
|
"type": "object"
|
|
},
|
|
"budget_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Id"
|
|
},
|
|
"budget_limits": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Limits"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"config": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Config",
|
|
"type": "object"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"created_by_user": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By User"
|
|
},
|
|
"end_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End User Id"
|
|
},
|
|
"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"
|
|
},
|
|
"end_user_object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"end_user_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End User Rpm Limit"
|
|
},
|
|
"end_user_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End User Tpm Limit"
|
|
},
|
|
"expires": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Expires"
|
|
},
|
|
"is_session_token": {
|
|
"default": false,
|
|
"title": "Is Session Token",
|
|
"type": "boolean"
|
|
},
|
|
"jwt_claims": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Jwt Claims"
|
|
},
|
|
"key_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Alias"
|
|
},
|
|
"key_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Name"
|
|
},
|
|
"key_rotation_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Rotation At"
|
|
},
|
|
"key_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key Type"
|
|
},
|
|
"last_active": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Active"
|
|
},
|
|
"last_refreshed_at": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Refreshed At"
|
|
},
|
|
"last_rotation_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Last Rotation At"
|
|
},
|
|
"litellm_budget_table": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Budget Table"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_parallel_requests": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Parallel Requests"
|
|
},
|
|
"metadata": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Metadata",
|
|
"type": "object"
|
|
},
|
|
"model_max_budget": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Model Max Budget",
|
|
"type": "object"
|
|
},
|
|
"model_spend": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Model Spend",
|
|
"type": "object"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Object Permission Id"
|
|
},
|
|
"org_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Org Id"
|
|
},
|
|
"organization_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Alias"
|
|
},
|
|
"organization_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Max Budget"
|
|
},
|
|
"organization_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Metadata"
|
|
},
|
|
"organization_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Rpm Limit"
|
|
},
|
|
"organization_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Tpm Limit"
|
|
},
|
|
"parent_otel_span": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Parent Otel Span"
|
|
},
|
|
"permissions": {
|
|
"additionalProperties": true,
|
|
"default": {},
|
|
"title": "Permissions",
|
|
"type": "object"
|
|
},
|
|
"project_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Alias"
|
|
},
|
|
"project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Id"
|
|
},
|
|
"project_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Project Metadata"
|
|
},
|
|
"request_route": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Request Route"
|
|
},
|
|
"rotation_count": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0,
|
|
"title": "Rotation Count"
|
|
},
|
|
"rotation_interval": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rotation Interval"
|
|
},
|
|
"router_settings": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Router Settings"
|
|
},
|
|
"rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit"
|
|
},
|
|
"rpm_limit_per_model": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm Limit Per Model"
|
|
},
|
|
"soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Soft Budget"
|
|
},
|
|
"soft_budget_cooldown": {
|
|
"default": false,
|
|
"title": "Soft Budget Cooldown",
|
|
"type": "boolean"
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"team_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Alias"
|
|
},
|
|
"team_blocked": {
|
|
"default": false,
|
|
"title": "Team Blocked",
|
|
"type": "boolean"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"team_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Max Budget"
|
|
},
|
|
"team_member": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/Member"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"team_member_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Member Rpm Limit"
|
|
},
|
|
"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_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Metadata"
|
|
},
|
|
"team_model_aliases": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Model Aliases"
|
|
},
|
|
"team_models": {
|
|
"default": [],
|
|
"items": {},
|
|
"title": "Team Models",
|
|
"type": "array"
|
|
},
|
|
"team_object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"team_object_permission_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Object Permission Id"
|
|
},
|
|
"team_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Rpm Limit"
|
|
},
|
|
"team_soft_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Soft Budget"
|
|
},
|
|
"team_spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Spend"
|
|
},
|
|
"team_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Tpm Limit"
|
|
},
|
|
"token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Token"
|
|
},
|
|
"tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit"
|
|
},
|
|
"tpm_limit_per_model": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": {
|
|
"type": "integer"
|
|
},
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm Limit Per Model"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
},
|
|
"user_max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Max Budget"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LitellmUserRoles"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"user_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Rpm Limit"
|
|
},
|
|
"user_spend": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Spend"
|
|
},
|
|
"user_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Tpm Limit"
|
|
}
|
|
},
|
|
"title": "UserAPIKeyAuth",
|
|
"type": "object"
|
|
},
|
|
"UserBanner": {
|
|
"properties": {
|
|
"enabled": {
|
|
"default": false,
|
|
"description": "If true, the banner is shown to all authenticated dashboard users.",
|
|
"title": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"default": "",
|
|
"description": "Banner text shown to dashboard users. Markdown is supported.",
|
|
"maxLength": 4000,
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"revision": {
|
|
"default": "",
|
|
"description": "Server-stamped opaque publish identity; a fresh value is generated on every update so clients re-surface dismissed banners on republish.",
|
|
"title": "Revision",
|
|
"type": "string"
|
|
},
|
|
"severity": {
|
|
"default": "info",
|
|
"description": "Visual style of the banner.",
|
|
"enum": [
|
|
"info",
|
|
"warning",
|
|
"error"
|
|
],
|
|
"title": "Severity",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "UserBanner",
|
|
"type": "object"
|
|
},
|
|
"UserBannerUpdate": {
|
|
"properties": {
|
|
"enabled": {
|
|
"default": false,
|
|
"description": "If true, the banner is shown to all authenticated dashboard users.",
|
|
"title": "Enabled",
|
|
"type": "boolean"
|
|
},
|
|
"message": {
|
|
"default": "",
|
|
"description": "Banner text shown to dashboard users. Markdown is supported.",
|
|
"maxLength": 4000,
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"severity": {
|
|
"default": "info",
|
|
"description": "Visual style of the banner.",
|
|
"enum": [
|
|
"info",
|
|
"warning",
|
|
"error"
|
|
],
|
|
"title": "Severity",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"title": "UserBannerUpdate",
|
|
"type": "object"
|
|
},
|
|
"UserHeaderMapping": {
|
|
"additionalProperties": false,
|
|
"description": "Map an incoming HTTP header to a LiteLLM user role.",
|
|
"properties": {
|
|
"header_name": {
|
|
"title": "Header Name",
|
|
"type": "string"
|
|
},
|
|
"litellm_user_role": {
|
|
"enum": [
|
|
"internal_user",
|
|
"customer"
|
|
],
|
|
"title": "Litellm User Role",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"header_name",
|
|
"litellm_user_role"
|
|
],
|
|
"title": "UserHeaderMapping",
|
|
"type": "object"
|
|
},
|
|
"UserInfoResponse": {
|
|
"properties": {
|
|
"keys": {
|
|
"items": {},
|
|
"title": "Keys",
|
|
"type": "array"
|
|
},
|
|
"teams": {
|
|
"items": {},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
},
|
|
"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"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id",
|
|
"user_info",
|
|
"keys",
|
|
"teams"
|
|
],
|
|
"title": "UserInfoResponse",
|
|
"type": "object"
|
|
},
|
|
"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.",
|
|
"properties": {
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"budget_reset_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Reset At"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"max_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"models": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Models",
|
|
"type": "array"
|
|
},
|
|
"object_permission": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ObjectPermissionTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"spend": {
|
|
"default": 0.0,
|
|
"title": "Spend",
|
|
"type": "number"
|
|
},
|
|
"sso_user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Sso User Id"
|
|
},
|
|
"teams": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Teams",
|
|
"type": "array"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"user_alias": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Alias"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"title": "User Id",
|
|
"type": "string"
|
|
},
|
|
"user_role": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Role"
|
|
}
|
|
},
|
|
"required": [
|
|
"user_id"
|
|
],
|
|
"title": "UserInfoV2Response",
|
|
"type": "object"
|
|
},
|
|
"UserListResponse": {
|
|
"description": "Response model for the user list endpoint",
|
|
"properties": {
|
|
"page": {
|
|
"title": "Page",
|
|
"type": "integer"
|
|
},
|
|
"page_size": {
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
},
|
|
"total": {
|
|
"title": "Total",
|
|
"type": "integer"
|
|
},
|
|
"total_pages": {
|
|
"title": "Total Pages",
|
|
"type": "integer"
|
|
},
|
|
"users": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_UserTableWithKeyCount"
|
|
},
|
|
"title": "Users",
|
|
"type": "array"
|
|
}
|
|
},
|
|
"required": [
|
|
"users",
|
|
"total",
|
|
"page",
|
|
"page_size",
|
|
"total_pages"
|
|
],
|
|
"title": "UserListResponse",
|
|
"type": "object"
|
|
},
|
|
"UserUpdateResult": {
|
|
"description": "Result of a single user update operation",
|
|
"properties": {
|
|
"error": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Error"
|
|
},
|
|
"success": {
|
|
"title": "Success",
|
|
"type": "boolean"
|
|
},
|
|
"updated_user": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated User"
|
|
},
|
|
"user_email": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Email"
|
|
},
|
|
"user_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"success"
|
|
],
|
|
"title": "UserUpdateResult",
|
|
"type": "object"
|
|
},
|
|
"ValidationError": {
|
|
"properties": {
|
|
"ctx": {
|
|
"title": "Context",
|
|
"type": "object"
|
|
},
|
|
"input": {
|
|
"title": "Input"
|
|
},
|
|
"loc": {
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "integer"
|
|
}
|
|
]
|
|
},
|
|
"title": "Location",
|
|
"type": "array"
|
|
},
|
|
"msg": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"type": {
|
|
"title": "Error Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"loc",
|
|
"msg",
|
|
"type"
|
|
],
|
|
"title": "ValidationError",
|
|
"type": "object"
|
|
},
|
|
"VantageDryRunRequest": {
|
|
"description": "Request model for Vantage dry-run operations (capped for preview)",
|
|
"properties": {
|
|
"limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 500,
|
|
"description": "Limit on number of records to preview (default: 500)",
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
"title": "VantageDryRunRequest",
|
|
"type": "object"
|
|
},
|
|
"VantageExportRequest": {
|
|
"description": "Request model for Vantage export operations (actual export, no default limit)",
|
|
"properties": {
|
|
"end_time_utc": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "End time for data export in UTC",
|
|
"title": "End Time Utc"
|
|
},
|
|
"limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional limit on number of records to export (default: no limit)",
|
|
"title": "Limit"
|
|
},
|
|
"start_time_utc": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Start time for data export in UTC",
|
|
"title": "Start Time Utc"
|
|
}
|
|
},
|
|
"title": "VantageExportRequest",
|
|
"type": "object"
|
|
},
|
|
"VantageExportResponse": {
|
|
"description": "Response model for Vantage export operations",
|
|
"properties": {
|
|
"dry_run_data": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Dry run data including usage data and FOCUS transformed data",
|
|
"title": "Dry Run Data"
|
|
},
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
},
|
|
"summary": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Summary statistics for dry run",
|
|
"title": "Summary"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"status"
|
|
],
|
|
"title": "VantageExportResponse",
|
|
"type": "object"
|
|
},
|
|
"VantageInitRequest": {
|
|
"description": "Request model for initializing Vantage settings",
|
|
"properties": {
|
|
"api_key": {
|
|
"description": "Vantage API key for authentication",
|
|
"title": "Api Key",
|
|
"type": "string"
|
|
},
|
|
"base_url": {
|
|
"default": "https://api.vantage.sh",
|
|
"description": "Vantage API base URL (default: https://api.vantage.sh)",
|
|
"title": "Base Url",
|
|
"type": "string"
|
|
},
|
|
"integration_token": {
|
|
"description": "Vantage integration token for the cost-import endpoint",
|
|
"title": "Integration Token",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"api_key",
|
|
"integration_token"
|
|
],
|
|
"title": "VantageInitRequest",
|
|
"type": "object"
|
|
},
|
|
"VantageInitResponse": {
|
|
"description": "Response model for Vantage initialization",
|
|
"properties": {
|
|
"message": {
|
|
"title": "Message",
|
|
"type": "string"
|
|
},
|
|
"status": {
|
|
"title": "Status",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"message",
|
|
"status"
|
|
],
|
|
"title": "VantageInitResponse",
|
|
"type": "object"
|
|
},
|
|
"VantageSettingsUpdate": {
|
|
"description": "Request model for updating Vantage settings",
|
|
"properties": {
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "New Vantage API key for authentication",
|
|
"title": "Api Key"
|
|
},
|
|
"base_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "New Vantage API base URL",
|
|
"title": "Base Url"
|
|
},
|
|
"integration_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "New Vantage integration token",
|
|
"title": "Integration Token"
|
|
}
|
|
},
|
|
"title": "VantageSettingsUpdate",
|
|
"type": "object"
|
|
},
|
|
"VantageSettingsView": {
|
|
"description": "Response model for viewing Vantage settings with masked API key",
|
|
"properties": {
|
|
"api_key_masked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Masked API key showing only first 4 and last 4 characters",
|
|
"title": "Api Key Masked"
|
|
},
|
|
"base_url": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Vantage API base URL",
|
|
"title": "Base Url"
|
|
},
|
|
"integration_token_masked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Masked integration token showing only first 4 and last 4 characters",
|
|
"title": "Integration Token Masked"
|
|
},
|
|
"status": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Configuration status",
|
|
"title": "Status"
|
|
}
|
|
},
|
|
"title": "VantageSettingsView",
|
|
"type": "object"
|
|
},
|
|
"VectorStoreDeleteRequest": {
|
|
"properties": {
|
|
"vector_store_id": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"vector_store_id"
|
|
],
|
|
"title": "VectorStoreDeleteRequest",
|
|
"type": "object"
|
|
},
|
|
"VectorStoreInfoRequest": {
|
|
"properties": {
|
|
"vector_store_id": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"vector_store_id"
|
|
],
|
|
"title": "VectorStoreInfoRequest",
|
|
"type": "object"
|
|
},
|
|
"VectorStoreUpdateRequest": {
|
|
"properties": {
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"vector_store_description": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Description"
|
|
},
|
|
"vector_store_id": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
},
|
|
"vector_store_metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Metadata"
|
|
},
|
|
"vector_store_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Name"
|
|
}
|
|
},
|
|
"required": [
|
|
"vector_store_id"
|
|
],
|
|
"title": "VectorStoreUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"WorkerRegistryEntry": {
|
|
"properties": {
|
|
"name": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
},
|
|
"url": {
|
|
"title": "Url",
|
|
"type": "string"
|
|
},
|
|
"worker_id": {
|
|
"title": "Worker Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"worker_id",
|
|
"name",
|
|
"url"
|
|
],
|
|
"title": "WorkerRegistryEntry",
|
|
"type": "object"
|
|
},
|
|
"WorkflowEventCreateRequest": {
|
|
"properties": {
|
|
"data": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Data"
|
|
},
|
|
"event_type": {
|
|
"title": "Event Type",
|
|
"type": "string"
|
|
},
|
|
"step_name": {
|
|
"title": "Step Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"event_type",
|
|
"step_name"
|
|
],
|
|
"title": "WorkflowEventCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"WorkflowMessageCreateRequest": {
|
|
"properties": {
|
|
"content": {
|
|
"title": "Content",
|
|
"type": "string"
|
|
},
|
|
"role": {
|
|
"title": "Role",
|
|
"type": "string"
|
|
},
|
|
"session_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Session Id"
|
|
}
|
|
},
|
|
"required": [
|
|
"role",
|
|
"content"
|
|
],
|
|
"title": "WorkflowMessageCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"WorkflowRunCreateRequest": {
|
|
"properties": {
|
|
"input": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"workflow_type": {
|
|
"title": "Workflow Type",
|
|
"type": "string"
|
|
}
|
|
},
|
|
"required": [
|
|
"workflow_type"
|
|
],
|
|
"title": "WorkflowRunCreateRequest",
|
|
"type": "object"
|
|
},
|
|
"WorkflowRunUpdateRequest": {
|
|
"properties": {
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Metadata"
|
|
},
|
|
"output": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output"
|
|
},
|
|
"status": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"pending",
|
|
"running",
|
|
"paused",
|
|
"completed",
|
|
"failed"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
}
|
|
},
|
|
"title": "WorkflowRunUpdateRequest",
|
|
"type": "object"
|
|
},
|
|
"litellm__proxy___types__ModelInfo": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"base_model": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"gpt-4-1106-preview",
|
|
"gpt-4-32k",
|
|
"gpt-4",
|
|
"gpt-3.5-turbo-16k",
|
|
"gpt-3.5-turbo",
|
|
"text-embedding-ada-002"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Base Model"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"input_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.0,
|
|
"title": "Input Cost Per Token"
|
|
},
|
|
"max_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 2048,
|
|
"title": "Max Tokens"
|
|
},
|
|
"mode": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"embedding",
|
|
"chat",
|
|
"completion"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mode"
|
|
},
|
|
"output_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 0.0,
|
|
"title": "Output Cost Per Token"
|
|
}
|
|
},
|
|
"required": [
|
|
"id",
|
|
"mode",
|
|
"base_model"
|
|
],
|
|
"title": "ModelInfo",
|
|
"type": "object"
|
|
},
|
|
"litellm__types__router__ModelInfo": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"base_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Base Model"
|
|
},
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"created_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created At"
|
|
},
|
|
"created_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Created By"
|
|
},
|
|
"db_model": {
|
|
"default": false,
|
|
"title": "Db Model",
|
|
"type": "boolean"
|
|
},
|
|
"id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Id"
|
|
},
|
|
"team_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
},
|
|
"team_public_model_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Public Model Name"
|
|
},
|
|
"tier": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"free",
|
|
"paid"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tier"
|
|
},
|
|
"updated_at": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated At"
|
|
},
|
|
"updated_by": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Updated By"
|
|
}
|
|
},
|
|
"required": [
|
|
"id"
|
|
],
|
|
"title": "ModelInfo",
|
|
"type": "object"
|
|
},
|
|
"updateDeployment": {
|
|
"properties": {
|
|
"blocked": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Blocked"
|
|
},
|
|
"litellm_params": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/updateLiteLLMParams"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"model_info": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/litellm__types__router__ModelInfo"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
]
|
|
},
|
|
"model_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Name"
|
|
}
|
|
},
|
|
"title": "updateDeployment",
|
|
"type": "object"
|
|
},
|
|
"updateLiteLLMParams": {
|
|
"additionalProperties": true,
|
|
"properties": {
|
|
"adaptive_router_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Adaptive Router Config"
|
|
},
|
|
"adaptive_router_default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Adaptive Router Default Model"
|
|
},
|
|
"annotation_cost_per_page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Annotation Cost Per Page"
|
|
},
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
},
|
|
"api_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Version"
|
|
},
|
|
"auto_router_config": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auto Router Config"
|
|
},
|
|
"auto_router_config_path": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auto Router Config Path"
|
|
},
|
|
"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"
|
|
},
|
|
"auto_router_max_input_chars": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Auto Router Max Input Chars"
|
|
},
|
|
"aws_access_key_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Access Key Id"
|
|
},
|
|
"aws_batch_role_arn": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Batch Role Arn"
|
|
},
|
|
"aws_bedrock_project_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Bedrock Project Id"
|
|
},
|
|
"aws_bedrock_runtime_endpoint": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Bedrock Runtime Endpoint"
|
|
},
|
|
"aws_region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Region Name"
|
|
},
|
|
"aws_secret_access_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Aws Secret Access Key"
|
|
},
|
|
"azure_ad_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Azure Ad Token"
|
|
},
|
|
"budget_duration": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Budget Duration"
|
|
},
|
|
"cache_creation_input_audio_token_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Audio Token Cost"
|
|
},
|
|
"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_token_cost_above_272k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Above 272K Tokens"
|
|
},
|
|
"cache_creation_input_token_cost_above_272k_tokens_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Above 272K Tokens Flex"
|
|
},
|
|
"cache_creation_input_token_cost_above_272k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Above 272K Tokens Priority"
|
|
},
|
|
"cache_creation_input_token_cost_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Flex"
|
|
},
|
|
"cache_creation_input_token_cost_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Creation Input Token Cost Priority"
|
|
},
|
|
"cache_read_input_audio_token_cost": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read 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_above_200k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 200K Tokens"
|
|
},
|
|
"cache_read_input_token_cost_above_200k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 200K Tokens Priority"
|
|
},
|
|
"cache_read_input_token_cost_above_272k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 272K Tokens"
|
|
},
|
|
"cache_read_input_token_cost_above_272k_tokens_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 272K Tokens Flex"
|
|
},
|
|
"cache_read_input_token_cost_above_272k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 272K Tokens Priority"
|
|
},
|
|
"cache_read_input_token_cost_above_512k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Cache Read Input Token Cost Above 512K Tokens"
|
|
},
|
|
"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"
|
|
},
|
|
"citation_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Citation Cost Per Token"
|
|
},
|
|
"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"
|
|
},
|
|
"configurable_clientside_auth_params": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ConfigurableClientsideParamsCustomAuth-Input"
|
|
}
|
|
]
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Configurable Clientside Auth Params"
|
|
},
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"default_api_key_rpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Api Key Rpm Limit"
|
|
},
|
|
"default_api_key_tpm_limit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Default Api Key Tpm Limit"
|
|
},
|
|
"gcs_bucket_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Gcs Bucket Name"
|
|
},
|
|
"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_audio_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Audio Token"
|
|
},
|
|
"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_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_image_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Image Token"
|
|
},
|
|
"input_cost_per_pixel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Pixel"
|
|
},
|
|
"input_cost_per_query": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Query"
|
|
},
|
|
"input_cost_per_second": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Second"
|
|
},
|
|
"input_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token"
|
|
},
|
|
"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_token_above_200k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 200K Tokens Priority"
|
|
},
|
|
"input_cost_per_token_above_272k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 272K Tokens"
|
|
},
|
|
"input_cost_per_token_above_272k_tokens_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 272K Tokens Flex"
|
|
},
|
|
"input_cost_per_token_above_272k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 272K Tokens Priority"
|
|
},
|
|
"input_cost_per_token_above_512k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Above 512K Tokens"
|
|
},
|
|
"input_cost_per_token_batches": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Batches"
|
|
},
|
|
"input_cost_per_token_cache_hit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Token Cache Hit"
|
|
},
|
|
"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"
|
|
},
|
|
"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_video_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Cost Per Video Token"
|
|
},
|
|
"itpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Itpm"
|
|
},
|
|
"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_budget": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Budget"
|
|
},
|
|
"max_file_size_mb": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max File Size Mb"
|
|
},
|
|
"max_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Max Retries"
|
|
},
|
|
"merge_reasoning_content_in_choices": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Merge Reasoning Content In Choices"
|
|
},
|
|
"milvus_db_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Milvus Db Name"
|
|
},
|
|
"milvus_partition_names": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Milvus Partition Names"
|
|
},
|
|
"milvus_text_field": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Milvus Text Field"
|
|
},
|
|
"mock_response": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"$ref": "#/components/schemas/ModelResponse"
|
|
},
|
|
{},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Mock Response"
|
|
},
|
|
"model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
},
|
|
"model_info": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Info"
|
|
},
|
|
"ocr_cost_per_credit": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ocr Cost Per Credit"
|
|
},
|
|
"ocr_cost_per_page": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Ocr Cost Per Page"
|
|
},
|
|
"organization": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization"
|
|
},
|
|
"otpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Otpm"
|
|
},
|
|
"output_cost_per_audio_per_second": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Audio Per Second"
|
|
},
|
|
"output_cost_per_audio_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Audio Token"
|
|
},
|
|
"output_cost_per_character": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Character"
|
|
},
|
|
"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_pixel": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Pixel"
|
|
},
|
|
"output_cost_per_reasoning_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Reasoning Token"
|
|
},
|
|
"output_cost_per_reasoning_token_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Reasoning Token Flex"
|
|
},
|
|
"output_cost_per_reasoning_token_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Reasoning Token Priority"
|
|
},
|
|
"output_cost_per_second": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Second"
|
|
},
|
|
"output_cost_per_second_1080p": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Second 1080P"
|
|
},
|
|
"output_cost_per_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per 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_token_above_200k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 200K Tokens Priority"
|
|
},
|
|
"output_cost_per_token_above_272k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 272K Tokens"
|
|
},
|
|
"output_cost_per_token_above_272k_tokens_flex": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 272K Tokens Flex"
|
|
},
|
|
"output_cost_per_token_above_272k_tokens_priority": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 272K Tokens Priority"
|
|
},
|
|
"output_cost_per_token_above_512k_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Token Above 512K Tokens"
|
|
},
|
|
"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_video_per_second": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Video Per Second"
|
|
},
|
|
"output_cost_per_video_token": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Cost Per Video Token"
|
|
},
|
|
"output_vector_size": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Output Vector Size"
|
|
},
|
|
"quality_router_config": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quality Router Config"
|
|
},
|
|
"quality_router_default_model": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Quality Router Default Model"
|
|
},
|
|
"region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Region Name"
|
|
},
|
|
"regional_processing_uplift_multiplier_eu": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Regional Processing Uplift Multiplier Eu"
|
|
},
|
|
"regional_processing_uplift_multiplier_us": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Regional Processing Uplift Multiplier Us"
|
|
},
|
|
"rpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Rpm"
|
|
},
|
|
"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"
|
|
},
|
|
"s3_region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "S3 Region Name"
|
|
},
|
|
"search_context_cost_per_query": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Context Cost Per Query"
|
|
},
|
|
"stream_timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Stream Timeout"
|
|
},
|
|
"tag_regex": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tag Regex"
|
|
},
|
|
"tags": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
},
|
|
"tiered_pricing": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tiered Pricing"
|
|
},
|
|
"timeout": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Timeout"
|
|
},
|
|
"tpm": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tpm"
|
|
},
|
|
"use_chat_completions_api": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Use Chat Completions Api"
|
|
},
|
|
"use_in_pass_through": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Use In Pass Through"
|
|
},
|
|
"use_litellm_proxy": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Use Litellm Proxy"
|
|
},
|
|
"use_xai_oauth": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Use stored xAI OAuth credentials when no xAI API key is configured.",
|
|
"title": "Use Xai Oauth"
|
|
},
|
|
"vector_store_id": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vector Store Id"
|
|
},
|
|
"vertex_credentials": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vertex Credentials"
|
|
},
|
|
"vertex_location": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vertex Location"
|
|
},
|
|
"vertex_project": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Vertex Project"
|
|
},
|
|
"watsonx_region_name": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Watsonx Region Name"
|
|
}
|
|
},
|
|
"title": "updateLiteLLMParams",
|
|
"type": "object"
|
|
}
|
|
},
|
|
"securitySchemes": {
|
|
"APIKeyHeader": {
|
|
"description": "Bearer token",
|
|
"in": "header",
|
|
"name": "x-litellm-api-key",
|
|
"type": "apiKey"
|
|
}
|
|
}
|
|
},
|
|
"info": {
|
|
"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)",
|
|
"title": "LiteLLM API",
|
|
"version": "1.97.0"
|
|
},
|
|
"openapi": "3.1.0",
|
|
"paths": {
|
|
"/": {
|
|
"get": {
|
|
"operationId": "home__get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Home"
|
|
}
|
|
},
|
|
"/.well-known/litellm-ui-config": {
|
|
"get": {
|
|
"operationId": "get_ui_config__well_known_litellm_ui_config_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UiDiscoveryEndpoints"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Ui Config"
|
|
}
|
|
},
|
|
"/a2a/{agent_id}": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Invoke Agent A2A",
|
|
"tags": [
|
|
"a2a"
|
|
]
|
|
}
|
|
},
|
|
"/a2a/{agent_id}/.well-known/agent-card.json": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Agent Card",
|
|
"tags": [
|
|
"a2a"
|
|
]
|
|
}
|
|
},
|
|
"/a2a/{agent_id}/.well-known/agent.json": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Agent Card",
|
|
"tags": [
|
|
"a2a"
|
|
]
|
|
}
|
|
},
|
|
"/a2a/{agent_id}/message/send": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Invoke Agent A2A",
|
|
"tags": [
|
|
"a2a"
|
|
]
|
|
}
|
|
},
|
|
"/access_group/list": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListAccessGroupsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Access Groups",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/access_group/new": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewModelGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Model Group",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/access_group/{access_group}/delete": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteModelGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Access Group",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/access_group/{access_group}/info": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupInfo"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Access Group Info",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/access_group/{access_group}/update": {
|
|
"put": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateModelGroupRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewModelGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Access Group",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/active/callbacks": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Active Callbacks",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/adaptive_router/state": {
|
|
"get": {
|
|
"description": "Return live bandit posteriors + queue depth for every configured adaptive router.\n\nAdmin-only. Returns 404 if no adaptive router is configured.\n\nResponse shape: `{\"routers\": [<snapshot>, ...]}` \u2014 one snapshot per\nadaptive-router deployment. Each snapshot's `router_name` field identifies\nwhich deployment it came from.",
|
|
"operationId": "get_adaptive_router_state_adaptive_router_state_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Adaptive Router State",
|
|
"tags": [
|
|
"adaptive_router"
|
|
]
|
|
}
|
|
},
|
|
"/add/allowed_ip": {
|
|
"post": {
|
|
"operationId": "add_allowed_ip_add_allowed_ip_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/IPAddress"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Add Allowed Ip",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/agent/daily/activity": {
|
|
"get": {
|
|
"description": "Get daily activity for specific agents or all accessible agents.",
|
|
"operationId": "get_agent_daily_activity_agent_daily_activity_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "agent_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Agent Ids"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "exclude_agent_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Exclude Agent Ids"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Agent Daily Activity",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
}
|
|
},
|
|
"/alerting/settings": {
|
|
"get": {
|
|
"description": "Return the configurable alerting param, description, and current value",
|
|
"operationId": "alerting_settings_alerting_settings_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Alerting Settings",
|
|
"tags": [
|
|
"alerting"
|
|
]
|
|
}
|
|
},
|
|
"/anthropic/{endpoint}": {
|
|
"delete": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)",
|
|
"operationId": "anthropic_proxy_route_anthropic__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Anthropic Proxy Route",
|
|
"tags": [
|
|
"Anthropic Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)",
|
|
"operationId": "anthropic_proxy_route_anthropic__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Anthropic Proxy Route",
|
|
"tags": [
|
|
"Anthropic Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)",
|
|
"operationId": "anthropic_proxy_route_anthropic__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Anthropic Proxy Route",
|
|
"tags": [
|
|
"Anthropic Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)",
|
|
"operationId": "anthropic_proxy_route_anthropic__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Anthropic Proxy Route",
|
|
"tags": [
|
|
"Anthropic Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/anthropic_completion)",
|
|
"operationId": "anthropic_proxy_route_anthropic__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Anthropic Proxy Route",
|
|
"tags": [
|
|
"Anthropic Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/api/event_logging/batch": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Event Logging Batch",
|
|
"tags": [
|
|
"anthropic_passthrough"
|
|
]
|
|
}
|
|
},
|
|
"/api/plugins": {
|
|
"get": {
|
|
"description": "Return registered plugins for authenticated UI callers.\n\nplugin_key is never returned \u2014 the browser never needs it (the proxy injects\nit server-side from the registry), and exposing it here would leak the\ncredential into React state and DevTools. Admin key management goes through\nthe redacted /config/field/info path instead.",
|
|
"operationId": "list_plugins_api_plugins_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"additionalProperties": {
|
|
"type": "string"
|
|
},
|
|
"type": "object"
|
|
},
|
|
"title": "Response List Plugins Api Plugins Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Plugins",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
}
|
|
},
|
|
"/api/plugins/auth-token": {
|
|
"get": {
|
|
"description": "Issue a short-lived, audience-scoped plugin session claim.\n\nThe claim contains {user_id, user_role, plugin, exp}. It does NOT\ncontain the caller's litellm bearer token \u2014 a compromised plugin can\nonly learn the caller's identity, not impersonate them against the proxy.\n\nEncrypted with a key derived from HMAC(LITELLM_SALT_KEY, plugin_name),\nso each plugin holds only its own key and cannot forge claims for others.\n\nRequires LITELLM_SALT_KEY to be set; returns 503 otherwise.",
|
|
"operationId": "plugin_auth_token_api_plugins_auth_token_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "plugin_name",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "litellm-platform-plugin",
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Plugin Auth Token Api Plugins Auth Token Get",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Plugin Auth Token",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
}
|
|
},
|
|
"/apply_guardrail": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ApplyGuardrailResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Apply Guardrail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/assemblyai/{endpoint}": {
|
|
"delete": {
|
|
"operationId": "assemblyai_proxy_route_assemblyai__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "assemblyai_proxy_route_assemblyai__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"operationId": "assemblyai_proxy_route_assemblyai__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "assemblyai_proxy_route_assemblyai__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"operationId": "assemblyai_proxy_route_assemblyai__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/assistants": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Assistants",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create assistant\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/createAssistant",
|
|
"operationId": "create_assistant_assistants_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Assistant",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/assistants/{assistant_id}": {
|
|
"delete": {
|
|
"description": "Delete assistant\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/createAssistant",
|
|
"operationId": "delete_assistant_assistants__assistant_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "assistant_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Assistant Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Assistant",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/audio/speech": {
|
|
"post": {
|
|
"description": "Same params as:\n\nhttps://platform.openai.com/docs/api-reference/audio/createSpeech",
|
|
"operationId": "audio_speech_audio_speech_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Audio Speech",
|
|
"tags": [
|
|
"audio"
|
|
]
|
|
}
|
|
},
|
|
"/audio/transcriptions": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Audio Transcriptions",
|
|
"tags": [
|
|
"audio"
|
|
]
|
|
}
|
|
},
|
|
"/audit": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by user or system that performed the action",
|
|
"in": "query",
|
|
"name": "changed_by",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by user or system that performed the action",
|
|
"title": "Changed By"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by API key hash that performed the action",
|
|
"in": "query",
|
|
"name": "changed_by_api_key",
|
|
"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 action type (create, update, delete)",
|
|
"in": "query",
|
|
"name": "action",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by action type (create, update, delete)",
|
|
"title": "Action"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by table name that was modified",
|
|
"in": "query",
|
|
"name": "table_name",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by table name that was modified",
|
|
"title": "Table Name"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by ID of the object that was modified",
|
|
"in": "query",
|
|
"name": "object_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by ID of the object that was modified",
|
|
"title": "Object Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs after this date",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs after this date",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs before this date",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs before this date",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by team_id present in before_value or updated_values JSON (PostgreSQL only)",
|
|
"in": "query",
|
|
"name": "object_team_id",
|
|
"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 token (key hash) present in before_value or updated_values JSON (PostgreSQL only)",
|
|
"in": "query",
|
|
"name": "object_key_hash",
|
|
"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": "Column to sort by (e.g. 'updated_at', 'action', 'table_name')",
|
|
"in": "query",
|
|
"name": "sort_by",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Column to sort by (e.g. 'updated_at', 'action', 'table_name')",
|
|
"title": "Sort By"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort order ('asc' or 'desc')",
|
|
"in": "query",
|
|
"name": "sort_order",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "desc",
|
|
"description": "Sort order ('asc' or 'desc')",
|
|
"title": "Sort Order",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PaginatedAuditLogResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Audit Logs",
|
|
"tags": [
|
|
"Audit Logging"
|
|
]
|
|
}
|
|
},
|
|
"/audit/{id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AuditLogResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"404": {
|
|
"description": "Audit log not found"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
},
|
|
"500": {
|
|
"description": "Database connection error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Audit Log By Id",
|
|
"tags": [
|
|
"Audit Logging"
|
|
]
|
|
}
|
|
},
|
|
"/auto_router/benchmarks": {
|
|
"get": {
|
|
"description": "Benchmarks for the auto-router dashboard: session shape, savings against the configured\nbaseline, and prompt-caching behaviour bucketed by what the router did.\n\nReads the LiteLLM_AutoRouterSession rollup, folded once per request at spend-write time,\nso this endpoint never scans LiteLLM_SpendLogs. A session is in the window when it\noverlaps it: its last turn is on or after start_date and its first turn is on or before\nend_date. Overall hit rate is over telemetry-bearing turns; each bucket's hit rate is\nover that bucket's turns.",
|
|
"operationId": "get_auto_router_benchmarks_auto_router_benchmarks_get",
|
|
"parameters": [
|
|
{
|
|
"description": "YYYY-MM-DD UTC, inclusive (defaults to 30 days before end_date)",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD UTC, inclusive (defaults to 30 days before end_date)",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "YYYY-MM-DD UTC, inclusive (defaults to today)",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD UTC, inclusive (defaults to today)",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AutoRouterBenchmarksResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Auto Router Benchmarks",
|
|
"tags": [
|
|
"auto router"
|
|
]
|
|
}
|
|
},
|
|
"/auto_router/classifier/default_prompt": {
|
|
"get": {
|
|
"description": "Get the built-in system prompt used by an auto-router's LLM classifier",
|
|
"operationId": "get_auto_router_classifier_default_prompt_auto_router_classifier_default_prompt_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "context_window_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 3,
|
|
"title": "Context Window Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "tier_labels",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tier Labels"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AutoRouterClassifierDefaultPromptResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Auto Router Classifier Default Prompt",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/auto_router/test_routing": {
|
|
"post": {
|
|
"description": "Route a single prompt through a complexity-router config and report where it landed.\n\nAnswers \"which model would this prompt get?\" for a config that only exists in a form,\nso an auto router can be checked before it is created. The prompt is classified by the\nsame pre-routing hook a live request runs, then dropped: nothing is sent to the model it\nrouted to, and no auto router is created. A heuristic config therefore spends nothing, while\nan `llm` classifier or semantic keyword matching bills its classifier/embedding call to the\ncalling key, like Test Connection does.\n\n**Example Request:**\n```json\n{\n \"prompt\": \"think step by step about how to shard this table\",\n \"complexity_router_config\": {\n \"tiers\": {\"SIMPLE\": [\"gpt-4o-mini\"], \"REASONING\": [\"o3\"]},\n \"classifier_type\": \"heuristic\"\n }\n}\n```",
|
|
"operationId": "preview_auto_router_routing_auto_router_test_routing_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AutoRouterRoutingTestRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AutoRouterRoutingTestResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Preview Auto Router Routing",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/azure/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/azure_ai/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Azure Proxy Route",
|
|
"tags": [
|
|
"Azure AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/batches": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "target_model_names",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Model Names"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Batches",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/batches/{batch_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "The ID of the batch to retrieve",
|
|
"in": "path",
|
|
"name": "batch_id",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "The ID of the batch to retrieve",
|
|
"title": "Batch ID to retrieve",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Retrieve Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/batches/{batch_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "batch_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Batch Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/bedrock/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bedrock Proxy Route",
|
|
"tags": [
|
|
"Bedrock Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bedrock Proxy Route",
|
|
"tags": [
|
|
"Bedrock Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bedrock Proxy Route",
|
|
"tags": [
|
|
"Bedrock Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bedrock Proxy Route",
|
|
"tags": [
|
|
"Bedrock Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bedrock Proxy Route",
|
|
"tags": [
|
|
"Bedrock Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/budget/delete": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Budget",
|
|
"tags": [
|
|
"budget management"
|
|
]
|
|
}
|
|
},
|
|
"/budget/info": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Info Budget",
|
|
"tags": [
|
|
"budget management"
|
|
]
|
|
}
|
|
},
|
|
"/budget/list": {
|
|
"get": {
|
|
"description": "List all the created budgets in proxy db. Used on Admin UI.",
|
|
"operationId": "list_budget_budget_list_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Budget",
|
|
"tags": [
|
|
"budget management"
|
|
]
|
|
}
|
|
},
|
|
"/budget/new": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New Budget",
|
|
"tags": [
|
|
"budget management"
|
|
]
|
|
}
|
|
},
|
|
"/budget/settings": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "budget_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Budget Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Budget Settings",
|
|
"tags": [
|
|
"budget management"
|
|
]
|
|
}
|
|
},
|
|
"/budget/update": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Budget",
|
|
"tags": [
|
|
"budget management"
|
|
]
|
|
}
|
|
},
|
|
"/cache/delete": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cache Delete",
|
|
"tags": [
|
|
"caching",
|
|
"caching"
|
|
]
|
|
}
|
|
},
|
|
"/cache/flushall": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cache Flushall",
|
|
"tags": [
|
|
"caching",
|
|
"caching"
|
|
]
|
|
}
|
|
},
|
|
"/cache/ping": {
|
|
"get": {
|
|
"description": "Endpoint for checking if cache can be pinged",
|
|
"operationId": "cache_ping_cache_ping_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CachePingResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cache Ping",
|
|
"tags": [
|
|
"caching"
|
|
]
|
|
}
|
|
},
|
|
"/cache/redis/info": {
|
|
"get": {
|
|
"description": "Endpoint for getting /redis/info",
|
|
"operationId": "cache_redis_info_cache_redis_info_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cache Redis Info",
|
|
"tags": [
|
|
"caching"
|
|
]
|
|
}
|
|
},
|
|
"/cache/settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CacheSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Cache Settings",
|
|
"tags": [
|
|
"Cache Settings"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CacheSettingsUpdateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Cache Settings",
|
|
"tags": [
|
|
"Cache Settings"
|
|
]
|
|
}
|
|
},
|
|
"/cache/settings/test": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CacheTestResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Cache Connection",
|
|
"tags": [
|
|
"Cache Settings"
|
|
]
|
|
}
|
|
},
|
|
"/callbacks/configs": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Callback Configs",
|
|
"tags": [
|
|
"Logging Callbacks"
|
|
]
|
|
}
|
|
},
|
|
"/callbacks/list": {
|
|
"get": {
|
|
"description": "View List of Active Logging Callbacks",
|
|
"operationId": "list_callbacks_callbacks_list_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CallbacksByType"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Callbacks",
|
|
"tags": [
|
|
"Logging Callbacks"
|
|
]
|
|
}
|
|
},
|
|
"/chat/completions": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"caching": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Caching"
|
|
},
|
|
"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"
|
|
},
|
|
"frequency_penalty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Frequency Penalty"
|
|
},
|
|
"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"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Guardrails"
|
|
},
|
|
"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"
|
|
},
|
|
"max_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Max Tokens"
|
|
},
|
|
"messages": {
|
|
"example": [
|
|
{
|
|
"content": "Hello, how are you?",
|
|
"role": "user"
|
|
}
|
|
],
|
|
"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"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Metadata"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"n": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "N"
|
|
},
|
|
"num_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Num Retries"
|
|
},
|
|
"parallel_tool_calls": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Parallel Tool Calls"
|
|
},
|
|
"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": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream"
|
|
},
|
|
"stream_options": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream Options"
|
|
},
|
|
"temperature": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Temperature"
|
|
},
|
|
"tool_choice": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tool Choice"
|
|
},
|
|
"tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tools"
|
|
},
|
|
"top_logprobs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top Logprobs"
|
|
},
|
|
"top_p": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top P"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"messages"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Chat Completion",
|
|
"tags": [
|
|
"chat/completions"
|
|
]
|
|
}
|
|
},
|
|
"/claude-code/marketplace.json": {
|
|
"get": {
|
|
"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 <url>\n- claude plugin install <name>@<marketplace>\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Marketplace",
|
|
"tags": [
|
|
"claude_code_marketplace"
|
|
]
|
|
}
|
|
},
|
|
"/claude-code/plugins": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "enabled_only",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"title": "Enabled Only",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListPluginsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Plugins",
|
|
"tags": [
|
|
"claude_code_marketplace"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Register a new 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\nThis endpoint is create-only and never overwrites. If a plugin with\nthe same name already exists it returns 409 Conflict; use\nPUT /claude-code/plugins/{plugin_name} to update an existing plugin.\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 (action is always \"created\") 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",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterPluginRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterPluginResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Register Plugin",
|
|
"tags": [
|
|
"claude_code_marketplace"
|
|
]
|
|
}
|
|
},
|
|
"/claude-code/plugins/{plugin_name}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Plugin",
|
|
"tags": [
|
|
"claude_code_marketplace"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Plugin",
|
|
"tags": [
|
|
"claude_code_marketplace"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Update an existing plugin in the LiteLLM marketplace.\n\nThe plugin is identified by its name in the path, which is the resource\nidentity and cannot be changed here. This is a full replace, not a merge:\nthe manifest is rebuilt from the request body, so any optional field left\nout is reset to its default (e.g. an omitted version is cleared, not kept).\nSend the full desired state.\n\nReturns 404 if no plugin with the given name exists; use\nPOST /claude-code/plugins to create a new plugin.\n\nParameters:\n - plugin_name: Name of the plugin to update (path parameter)\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 Update status (action is always \"updated\") and plugin information.\n\nExample:\n ```bash\n curl -X PUT http://localhost:4000/claude-code/plugins/my-plugin \\\n -H \"Authorization: Bearer sk-...\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\n \"source\": {\"source\": \"github\", \"repo\": \"org/my-plugin\"},\n \"version\": \"2.0.0\",\n \"description\": \"My awesome plugin\"\n }'\n ```",
|
|
"operationId": "update_plugin_claude_code_plugins__plugin_name__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdatePluginRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterPluginResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Plugin",
|
|
"tags": [
|
|
"claude_code_marketplace"
|
|
]
|
|
}
|
|
},
|
|
"/claude-code/plugins/{plugin_name}/disable": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Disable Plugin",
|
|
"tags": [
|
|
"claude_code_marketplace"
|
|
]
|
|
}
|
|
},
|
|
"/claude-code/plugins/{plugin_name}/enable": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Enable Plugin",
|
|
"tags": [
|
|
"claude_code_marketplace"
|
|
]
|
|
}
|
|
},
|
|
"/cloudzero/delete": {
|
|
"delete": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CloudZeroInitResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Cloudzero Settings",
|
|
"tags": [
|
|
"cloudzero"
|
|
]
|
|
}
|
|
},
|
|
"/cloudzero/dry-run": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CloudZeroExportResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cloudzero Dry Run Export",
|
|
"tags": [
|
|
"cloudzero"
|
|
]
|
|
}
|
|
},
|
|
"/cloudzero/export": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CloudZeroExportResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cloudzero Export",
|
|
"tags": [
|
|
"cloudzero"
|
|
]
|
|
}
|
|
},
|
|
"/cloudzero/init": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CloudZeroInitResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Init Cloudzero Settings",
|
|
"tags": [
|
|
"cloudzero"
|
|
]
|
|
}
|
|
},
|
|
"/cloudzero/settings": {
|
|
"get": {
|
|
"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 (Proxy Admin or Admin Viewer) can view CloudZero settings.",
|
|
"operationId": "get_cloudzero_settings_cloudzero_settings_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CloudZeroSettingsView"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Cloudzero Settings",
|
|
"tags": [
|
|
"cloudzero"
|
|
]
|
|
},
|
|
"put": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CloudZeroInitResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Cloudzero Settings",
|
|
"tags": [
|
|
"cloudzero"
|
|
]
|
|
}
|
|
},
|
|
"/cohere/{endpoint}": {
|
|
"delete": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)",
|
|
"operationId": "cohere_proxy_route_cohere__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cohere Proxy Route",
|
|
"tags": [
|
|
"Cohere Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)",
|
|
"operationId": "cohere_proxy_route_cohere__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cohere Proxy Route",
|
|
"tags": [
|
|
"Cohere Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)",
|
|
"operationId": "cohere_proxy_route_cohere__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cohere Proxy Route",
|
|
"tags": [
|
|
"Cohere Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)",
|
|
"operationId": "cohere_proxy_route_cohere__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cohere Proxy Route",
|
|
"tags": [
|
|
"Cohere Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/cohere)",
|
|
"operationId": "cohere_proxy_route_cohere__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cohere Proxy Route",
|
|
"tags": [
|
|
"Cohere Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/completions": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Completion",
|
|
"tags": [
|
|
"completions"
|
|
]
|
|
}
|
|
},
|
|
"/compliance/eu-ai-act": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ComplianceResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Check Eu Ai Act Compliance",
|
|
"tags": [
|
|
"compliance"
|
|
]
|
|
}
|
|
},
|
|
"/compliance/gdpr": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ComplianceResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Check Gdpr Compliance",
|
|
"tags": [
|
|
"compliance"
|
|
]
|
|
}
|
|
},
|
|
"/config/callback/delete": {
|
|
"post": {
|
|
"description": "Delete specific logging callback from configuration.",
|
|
"operationId": "delete_callback_config_callback_delete_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CallbackDelete"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Callback",
|
|
"tags": [
|
|
"config.yaml"
|
|
]
|
|
}
|
|
},
|
|
"/config/cost_discount_config": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Cost Discount Config",
|
|
"tags": [
|
|
"Cost Tracking"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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"
|
|
},
|
|
"title": "Cost Discount Config",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Cost Discount Config",
|
|
"tags": [
|
|
"Cost Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/config/cost_margin_config": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Cost Margin Config",
|
|
"tags": [
|
|
"Cost Tracking"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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"
|
|
}
|
|
]
|
|
},
|
|
"title": "Cost Margin Config",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Cost Margin Config",
|
|
"tags": [
|
|
"Cost Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/config/field/delete": {
|
|
"post": {
|
|
"description": "Delete the db value of this field in litellm general settings. Resets it to it's initial default value on litellm.",
|
|
"operationId": "delete_config_general_settings_config_field_delete_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfigFieldDelete"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Config General Settings",
|
|
"tags": [
|
|
"config.yaml"
|
|
]
|
|
}
|
|
},
|
|
"/config/field/info": {
|
|
"get": {
|
|
"operationId": "get_config_general_settings_config_field_info_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "field_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Field Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfigFieldInfo"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Config General Settings",
|
|
"tags": [
|
|
"config.yaml"
|
|
]
|
|
}
|
|
},
|
|
"/config/field/update": {
|
|
"post": {
|
|
"description": "Update a specific field in litellm general settings",
|
|
"operationId": "update_config_general_settings_config_field_update_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfigFieldUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Config General Settings",
|
|
"tags": [
|
|
"config.yaml"
|
|
]
|
|
}
|
|
},
|
|
"/config/list": {
|
|
"get": {
|
|
"description": "List the available fields + current values for a given type of setting (currently just 'general_settings'user_api_key_dict: UserAPIKeyAuth = Depends(user_api_key_auth),)",
|
|
"operationId": "get_config_list_config_list_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "config_type",
|
|
"required": true,
|
|
"schema": {
|
|
"const": "general_settings",
|
|
"title": "Config Type",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ConfigList"
|
|
},
|
|
"title": "Response Get Config List Config List Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Config List",
|
|
"tags": [
|
|
"config.yaml"
|
|
]
|
|
}
|
|
},
|
|
"/config/pass_through_endpoint": {
|
|
"delete": {
|
|
"description": "Delete a pass-through endpoint by ID.\n\nReturns - the deleted endpoint",
|
|
"operationId": "delete_pass_through_endpoints_config_pass_through_endpoint_delete",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "endpoint_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PassThroughEndpointResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Pass Through Endpoints"
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "endpoint_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endpoint Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PassThroughEndpointResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Pass Through Endpoints"
|
|
},
|
|
"post": {
|
|
"description": "Create new pass-through endpoint",
|
|
"operationId": "create_pass_through_endpoints_config_pass_through_endpoint_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PassThroughGenericEndpoint"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Pass Through Endpoints"
|
|
}
|
|
},
|
|
"/config/pass_through_endpoint/team/{team_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "team_id",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "endpoint_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endpoint Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PassThroughEndpointResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Pass Through Endpoints"
|
|
}
|
|
},
|
|
"/config/pass_through_endpoint/{endpoint_id}": {
|
|
"post": {
|
|
"description": "Update a pass-through endpoint by ID.",
|
|
"operationId": "update_pass_through_endpoints_config_pass_through_endpoint__endpoint_id__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PassThroughGenericEndpoint"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Pass Through Endpoints"
|
|
}
|
|
},
|
|
"/config/update": {
|
|
"post": {
|
|
"description": "For Admin UI - allows admin to update config via UI.\n\nWrites only the sections present in the request body to LiteLLM_Config rows\n(one row per top-level section). Sections the caller did not send are left\nuntouched \u2014 this endpoint never persists pre-existing YAML values to DB as\na side effect of an unrelated update.",
|
|
"operationId": "update_config_config_update_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfigYAML"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Config",
|
|
"tags": [
|
|
"config.yaml"
|
|
]
|
|
}
|
|
},
|
|
"/config/yaml": {
|
|
"get": {
|
|
"description": "This is a mock endpoint, to show what you can set in config.yaml details in the Swagger UI.\n\nParameters:\n\nThe config.yaml object has the following attributes:\n- **model_list**: *Optional[List[ModelParams]]* - A list of supported models on the server, along with model-specific configurations. ModelParams includes \"model_name\" (name of the model), \"litellm_params\" (litellm-specific parameters for the model), and \"model_info\" (additional info about the model such as id, mode, cost per token, etc).\n\n- **litellm_settings**: *Optional[dict]*: Settings for the litellm module. You can specify multiple properties like \"drop_params\", \"set_verbose\", \"api_base\", \"cache\".\n\n- **general_settings**: *Optional[ConfigGeneralSettings]*: General settings for the server like \"completion_model\" (default model for chat completion calls), \"use_azure_key_vault\" (option to load keys from azure key vault), \"master_key\" (key required for all calls to proxy), and others.\n\nPlease, refer to each class's description for a better understanding of the specific attributes within them.\n\nNote: This is a mock endpoint primarily meant for demonstration purposes, and does not actually provide or change any configurations.",
|
|
"operationId": "config_yaml_endpoint_config_yaml_get",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfigYAML"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Config Yaml Endpoint",
|
|
"tags": [
|
|
"config.yaml"
|
|
]
|
|
}
|
|
},
|
|
"/config_overrides/hashicorp_vault": {
|
|
"delete": {
|
|
"description": "Delete Hashicorp Vault configuration. Idempotent.",
|
|
"operationId": "delete_hashicorp_vault_config_config_overrides_hashicorp_vault_delete",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Hashicorp Vault Config",
|
|
"tags": [
|
|
"config_overrides"
|
|
]
|
|
},
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ConfigOverrideSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Hashicorp Vault Config",
|
|
"tags": [
|
|
"config_overrides"
|
|
]
|
|
},
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Hashicorp Vault Config",
|
|
"tags": [
|
|
"config_overrides"
|
|
]
|
|
}
|
|
},
|
|
"/config_overrides/hashicorp_vault/test_connection": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Hashicorp Vault Connection",
|
|
"tags": [
|
|
"config_overrides"
|
|
]
|
|
}
|
|
},
|
|
"/containers": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Containers",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
},
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Container",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/containers/{container_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Container",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Retrieve Container",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/containers/{container_id}/files": {
|
|
"get": {
|
|
"operationId": "handler_container_id_containers__container_id__files_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Container Id",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "handler_multipart_upload_containers__container_id__files_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Multipart Upload",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/containers/{container_id}/files/{file_id}": {
|
|
"delete": {
|
|
"operationId": "handler_container_file_containers__container_id__files__file_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Container File",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "handler_container_file_containers__container_id__files__file_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Container File",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/containers/{container_id}/files/{file_id}/content": {
|
|
"get": {
|
|
"operationId": "handler_binary_content_containers__container_id__files__file_id__content_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Binary Content",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/coordination_redis/settings": {
|
|
"get": {
|
|
"description": "Get the coordination Redis configuration and available settings.\n\nReturns:\n- values: current coordination Redis settings, with password/sentinel_password/url redacted\n- fields: all configurable settings with their metadata (type, description, default, section)\n- source: \"coordination_redis\" | \"cache_backend\" | \"environment\" | null",
|
|
"operationId": "get_coordination_redis_settings_coordination_redis_settings_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoordinationRedisSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Coordination Redis Settings",
|
|
"tags": [
|
|
"Coordination Redis Settings"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Save coordination Redis settings under `general_settings.coordination_redis`.\n\nParameters:\n- settings: dict - Redis connection params (host, port, username, password, url, ssl, startup_nodes, sentinel_nodes, sentinel_password, service_name). Values may be `os.environ/VAR` references, which are stored as written and resolved at startup\n\nThe settings are written to the `general_settings` row of LiteLLM_Config,\nwhich startup merges over the yaml config; the proxy picks them up on its\nnext restart.",
|
|
"operationId": "update_coordination_redis_settings_coordination_redis_settings_post",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoordinationRedisSettingsRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Update Coordination Redis Settings Coordination Redis Settings Post",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Coordination Redis Settings",
|
|
"tags": [
|
|
"Coordination Redis Settings"
|
|
]
|
|
}
|
|
},
|
|
"/coordination_redis/settings/test": {
|
|
"post": {
|
|
"description": "Test a coordination Redis connection with the provided credentials.\n\nParameters:\n- settings: dict - Redis connection params to test. Credential fields sent back as `***REDACTED***` fall back to the saved value\n\nBuilds a throwaway client (never touching global state) and pings it.",
|
|
"operationId": "check_coordination_redis_connection_coordination_redis_settings_test_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoordinationRedisSettingsRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CoordinationRedisTestResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Check Coordination Redis Connection",
|
|
"tags": [
|
|
"Coordination Redis Settings"
|
|
]
|
|
}
|
|
},
|
|
"/cost/estimate": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CostEstimateResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Estimate Cost",
|
|
"tags": [
|
|
"Cost Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/credentials": {
|
|
"get": {
|
|
"description": "[BETA] endpoint. This might change unexpectedly.",
|
|
"operationId": "get_credentials_credentials_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Credentials",
|
|
"tags": [
|
|
"credential management"
|
|
]
|
|
},
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Credential",
|
|
"tags": [
|
|
"credential management"
|
|
]
|
|
}
|
|
},
|
|
"/credentials/by_model/{model_id}": {
|
|
"get": {
|
|
"description": "[BETA] endpoint. This might change unexpectedly.",
|
|
"operationId": "get_credential_by_model_credentials_by_model__model_id__get",
|
|
"parameters": [
|
|
{
|
|
"description": "The model ID to look up credentials for",
|
|
"in": "path",
|
|
"name": "model_id",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "The model ID to look up credentials for",
|
|
"title": "Model Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CredentialItem"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Credential By Model",
|
|
"tags": [
|
|
"credential management"
|
|
]
|
|
}
|
|
},
|
|
"/credentials/by_name/{credential_name}": {
|
|
"get": {
|
|
"description": "[BETA] endpoint. This might change unexpectedly.",
|
|
"operationId": "get_credential_by_name_credentials_by_name__credential_name__get",
|
|
"parameters": [
|
|
{
|
|
"description": "The credential name, percent-decoded; may contain slashes",
|
|
"in": "path",
|
|
"name": "credential_name",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "The credential name, percent-decoded; may contain slashes",
|
|
"title": "Credential Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CredentialItem"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Credential By Name",
|
|
"tags": [
|
|
"credential management"
|
|
]
|
|
}
|
|
},
|
|
"/credentials/migrate-encryption": {
|
|
"post": {
|
|
"description": "Re-encrypt all at-rest credentials into the AES-256-GCM (``v2:gcm:``) format.\n\nAdmin only. Requires ``general_settings.encryption_algorithm: aes-256-gcm``.\nIdempotent and resumable \u2014 re-running skips already-migrated values. Pass\n``dry_run=true`` for a non-mutating scan (equivalent to ``--check``).",
|
|
"operationId": "migrate_encryption_endpoint_credentials_migrate_encryption_post",
|
|
"parameters": [
|
|
{
|
|
"description": "If true, scan and report without writing any changes.",
|
|
"in": "query",
|
|
"name": "dry_run",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"description": "If true, scan and report without writing any changes.",
|
|
"title": "Dry Run",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Migrate Encryption Endpoint",
|
|
"tags": [
|
|
"credential management"
|
|
]
|
|
}
|
|
},
|
|
"/credentials/migrate-encryption/check": {
|
|
"get": {
|
|
"description": "Read-only residual scan for compliance attestation. Reports how many at-rest\nvalues are still in the legacy format. ``residual_legacy == 0`` attests no\nlegacy ciphertext remains. Admin only; performs no writes.",
|
|
"operationId": "check_encryption_endpoint_credentials_migrate_encryption_check_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Check Encryption Endpoint",
|
|
"tags": [
|
|
"credential management"
|
|
]
|
|
}
|
|
},
|
|
"/credentials/{credential_name}": {
|
|
"delete": {
|
|
"description": "[BETA] endpoint. This might change unexpectedly.",
|
|
"operationId": "delete_credential_credentials__credential_name__delete",
|
|
"parameters": [
|
|
{
|
|
"description": "The credential name, percent-decoded; may contain slashes",
|
|
"in": "path",
|
|
"name": "credential_name",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "The credential name, percent-decoded; may contain slashes",
|
|
"title": "Credential Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Credential",
|
|
"tags": [
|
|
"credential management"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "[BETA] endpoint. This might change unexpectedly.",
|
|
"operationId": "update_credential_credentials__credential_name__patch",
|
|
"parameters": [
|
|
{
|
|
"description": "The credential name, percent-decoded; may contain slashes",
|
|
"in": "path",
|
|
"name": "credential_name",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "The credential name, percent-decoded; may contain slashes",
|
|
"title": "Credential Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CredentialItem"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Credential",
|
|
"tags": [
|
|
"credential management"
|
|
]
|
|
}
|
|
},
|
|
"/cursor/chat/completions": {
|
|
"post": {
|
|
"description": "Cursor BYOK endpoint. Accepts both request shapes Cursor sends to its OpenAI-compatible\nbase URL and always answers in chat completions format.\n\nCursor agent mode sends Responses API format bodies (`input`, flat tool defs, `reasoning`,\ncustom tools) to the chat/completions path while expecting chat completions responses;\nthose are routed through the Responses API pipeline and converted back. Genuine chat\ncompletions bodies (`messages` present) are routed through the standard chat completions\npipeline, after normalizing each level of the `tools` array and `tool_choice` to the chat\ncompletions shapes OpenAI requires. Cursor mixes Responses API shapes into chat bodies\nper level, independently: a flat tool def (`{\"type\": \"custom\", \"name\": \"ApplyPatch\", ...}`)\ngets nested under `custom`, and a flat grammar format\n(`{\"type\": \"grammar\", \"definition\", \"syntax\"}`) gets wrapped as\n`{\"type\": \"grammar\", \"grammar\": {...}}` wherever it appears, including inside tool defs\nCursor already sent pre-nested.\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cursor Chat Completions",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/cursor/models": {
|
|
"get": {
|
|
"description": "OpenAI-compatible model listing for the Cursor BYOK base URL.\n\nClients pointed at `<proxy>/cursor` as an OpenAI-compatible base URL resolve and\nverify models via `GET {base}/models` (the OpenAI SDK contract). Without this\nroute those requests fall through to the Cursor Cloud Agents passthrough, which\ndemands a Cursor API key and 401s, so key verification silently fails before any\nchat request is ever sent. Delegates to the standard `/v1/models` handler.",
|
|
"operationId": "cursor_model_list_cursor_models_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cursor Model List",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/cursor/v1/models": {
|
|
"get": {
|
|
"description": "OpenAI-compatible model listing for the Cursor BYOK base URL.\n\nClients pointed at `<proxy>/cursor` as an OpenAI-compatible base URL resolve and\nverify models via `GET {base}/models` (the OpenAI SDK contract). Without this\nroute those requests fall through to the Cursor Cloud Agents passthrough, which\ndemands a Cursor API key and 401s, so key verification silently fails before any\nchat request is ever sent. Delegates to the standard `/v1/models` handler.",
|
|
"operationId": "cursor_model_list_cursor_v1_models_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cursor Model List",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/cursor/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cursor Proxy Route",
|
|
"tags": [
|
|
"Cursor Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cursor Proxy Route",
|
|
"tags": [
|
|
"Cursor Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cursor Proxy Route",
|
|
"tags": [
|
|
"Cursor Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cursor Proxy Route",
|
|
"tags": [
|
|
"Cursor Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cursor Proxy Route",
|
|
"tags": [
|
|
"Cursor Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/customer/block": {
|
|
"post": {
|
|
"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\": [<user_id>, ...]\n }'\n ```",
|
|
"operationId": "block_user_customer_block_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockUsers"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockUsersResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Block User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/customer/daily/activity": {
|
|
"get": {
|
|
"description": "Get daily activity for specific organizations or all accessible organizations.",
|
|
"operationId": "get_customer_daily_activity_customer_daily_activity_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "end_user_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End User Ids"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "exclude_end_user_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Exclude End User Ids"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Customer Daily Activity",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/customer/delete": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteCustomersResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete End User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/customer/info": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "End User ID in the request parameters",
|
|
"in": "query",
|
|
"name": "end_user_id",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "End User ID in the request parameters",
|
|
"title": "End User Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CustomerResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "End User Info",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/customer/list": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CustomerResponse"
|
|
},
|
|
"title": "Response List End User Customer List Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List End User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/customer/new": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CustomerResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New End User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/customer/unblock": {
|
|
"post": {
|
|
"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\": [<user_id>, ...]\n}'\n```",
|
|
"operationId": "unblock_user_customer_unblock_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockUsers"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UnblockUsersResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Unblock User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/customer/update": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CustomerResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update End User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/debug/asyncio-tasks": {
|
|
"get": {
|
|
"description": "Returns:\ntotal_active_tasks: int\nby_name: { coroutine_name: count }",
|
|
"operationId": "get_active_tasks_stats_debug_asyncio_tasks_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Active Tasks Stats"
|
|
}
|
|
},
|
|
"/debug/memory/details": {
|
|
"get": {
|
|
"description": "Get detailed memory diagnostics for deep debugging.\n\nReturns:\n- worker_pid: Process ID\n- process_memory: RAM usage, virtual memory, file handles, threads\n- garbage_collector: GC thresholds, counts, collection history\n- objects: Total tracked objects and top object types\n- uncollectable: Objects that can't be garbage collected (potential leaks)\n- cache_memory: Memory usage of user_api_key, router, and logging caches\n- router_memory: Memory usage of router components (model_list, deployment_names, etc.)\n\nQuery Parameters:\n- top_n: Number of top object types to return (default: 20)\n- include_process_info: Include process-level memory info using psutil (default: true)\n\nExample usage:\ncurl \"http://localhost:4000/debug/memory/details?top_n=30\" -H \"Authorization: Bearer sk-1234\"\n\nAll memory sizes are reported in both bytes and MB.",
|
|
"operationId": "get_memory_details_debug_memory_details_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Number of top object types to return",
|
|
"in": "query",
|
|
"name": "top_n",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 20,
|
|
"description": "Number of top object types to return",
|
|
"title": "Top N",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Include process memory info",
|
|
"in": "query",
|
|
"name": "include_process_info",
|
|
"required": false,
|
|
"schema": {
|
|
"default": true,
|
|
"description": "Include process memory info",
|
|
"title": "Include Process Info",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Get Memory Details Debug Memory Details Get",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Memory Details"
|
|
}
|
|
},
|
|
"/debug/memory/gc/configure": {
|
|
"post": {
|
|
"description": "Configure Python garbage collection thresholds.\n\nLower thresholds mean more frequent GC cycles (less memory, more CPU overhead).\nHigher thresholds mean less frequent GC cycles (more memory, less CPU overhead).\n\nReturns:\n- message: Confirmation message\n- previous_thresholds: Old threshold values\n- new_thresholds: New threshold values\n- objects_awaiting_collection: Current object count in gen-0\n- tip: Hint about when next collection will occur\n\nQuery Parameters:\n- generation_0: Number of allocations before gen-0 collection (default: 700)\n- generation_1: Number of gen-0 collections before gen-1 collection (default: 10)\n- generation_2: Number of gen-1 collections before gen-2 collection (default: 10)\n\nExample for more aggressive collection:\ncurl -X POST \"http://localhost:4000/debug/memory/gc/configure?generation_0=500\" -H \"Authorization: Bearer sk-1234\"\n\nExample for less aggressive collection:\ncurl -X POST \"http://localhost:4000/debug/memory/gc/configure?generation_0=1000\" -H \"Authorization: Bearer sk-1234\"\n\nMonitor memory usage with GET /debug/memory/summary after changes.",
|
|
"operationId": "configure_gc_thresholds_endpoint_debug_memory_gc_configure_post",
|
|
"parameters": [
|
|
{
|
|
"description": "Generation 0 threshold (default: 700)",
|
|
"in": "query",
|
|
"name": "generation_0",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 700,
|
|
"description": "Generation 0 threshold (default: 700)",
|
|
"title": "Generation 0",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Generation 1 threshold (default: 10)",
|
|
"in": "query",
|
|
"name": "generation_1",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"description": "Generation 1 threshold (default: 10)",
|
|
"title": "Generation 1",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Generation 2 threshold (default: 10)",
|
|
"in": "query",
|
|
"name": "generation_2",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"description": "Generation 2 threshold (default: 10)",
|
|
"title": "Generation 2",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Configure Gc Thresholds Endpoint Debug Memory Gc Configure Post",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Configure Gc Thresholds Endpoint"
|
|
}
|
|
},
|
|
"/debug/memory/summary": {
|
|
"get": {
|
|
"description": "Get simplified memory usage summary for the proxy.\n\nReturns:\n- worker_pid: Process ID\n- status: Overall health based on memory usage\n- memory: Process memory usage and RAM info\n- caches: Cache item counts and descriptions\n- garbage_collector: GC status and pending object counts\n\nExample usage:\ncurl http://localhost:4000/debug/memory/summary -H \"Authorization: Bearer sk-1234\"\n\nFor detailed analysis, call GET /debug/memory/details\nFor cache management, use the cache management endpoints",
|
|
"operationId": "get_memory_summary_debug_memory_summary_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Get Memory Summary Debug Memory Summary Get",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Memory Summary"
|
|
}
|
|
},
|
|
"/delete/allowed_ip": {
|
|
"post": {
|
|
"operationId": "delete_allowed_ip_delete_allowed_ip_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/IPAddress"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Allowed Ip",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/email/event_settings": {
|
|
"get": {
|
|
"description": "Get all email event settings",
|
|
"operationId": "get_email_event_settings_email_event_settings_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/EmailEventSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Email Event Settings",
|
|
"tags": [
|
|
"email management"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Event Settings",
|
|
"tags": [
|
|
"email management"
|
|
]
|
|
}
|
|
},
|
|
"/email/event_settings/reset": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Reset Event Settings",
|
|
"tags": [
|
|
"email management"
|
|
]
|
|
}
|
|
},
|
|
"/embeddings": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Key"
|
|
},
|
|
"api_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Type"
|
|
},
|
|
"api_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Version"
|
|
},
|
|
"caching": {
|
|
"default": false,
|
|
"title": "Caching",
|
|
"type": "boolean"
|
|
},
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"input": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Input",
|
|
"type": "array"
|
|
},
|
|
"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"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"timeout": {
|
|
"default": 600,
|
|
"title": "Timeout",
|
|
"type": "integer"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Embeddings",
|
|
"tags": [
|
|
"embeddings"
|
|
]
|
|
}
|
|
},
|
|
"/end_user/block": {
|
|
"post": {
|
|
"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\": [<user_id>, ...]\n }'\n ```",
|
|
"operationId": "block_user_end_user_block_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockUsers"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Block User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/end_user/daily/activity": {
|
|
"get": {
|
|
"description": "Get daily activity for specific organizations or all accessible organizations.",
|
|
"operationId": "get_customer_daily_activity_end_user_daily_activity_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "end_user_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End User Ids"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "exclude_end_user_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Exclude End User Ids"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Customer Daily Activity",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/end_user/delete": {
|
|
"post": {
|
|
"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_end_user_delete_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteCustomerRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteCustomersResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete End User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/end_user/info": {
|
|
"get": {
|
|
"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_end_user_info_get",
|
|
"parameters": [
|
|
{
|
|
"description": "End User ID in the request parameters",
|
|
"in": "query",
|
|
"name": "end_user_id",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "End User ID in the request parameters",
|
|
"title": "End User Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CustomerResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "End User Info",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/end_user/list": {
|
|
"get": {
|
|
"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_end_user_list_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/CustomerResponse"
|
|
},
|
|
"title": "Response List End User End User List Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List End User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/end_user/new": {
|
|
"post": {
|
|
"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_end_user_new_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewCustomerRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CustomerResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New End User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/end_user/unblock": {
|
|
"post": {
|
|
"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\": [<user_id>, ...]\n}'\n```",
|
|
"operationId": "unblock_user_end_user_unblock_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockUsers"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Unblock User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/end_user/update": {
|
|
"post": {
|
|
"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_end_user_update_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateCustomerRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CustomerResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update End User",
|
|
"tags": [
|
|
"Customer Management"
|
|
]
|
|
}
|
|
},
|
|
"/engines/{model}/chat/completions": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"caching": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Caching"
|
|
},
|
|
"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"
|
|
},
|
|
"frequency_penalty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Frequency Penalty"
|
|
},
|
|
"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"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Guardrails"
|
|
},
|
|
"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"
|
|
},
|
|
"max_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Max Tokens"
|
|
},
|
|
"messages": {
|
|
"example": [
|
|
{
|
|
"content": "Hello, how are you?",
|
|
"role": "user"
|
|
}
|
|
],
|
|
"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"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Metadata"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"n": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "N"
|
|
},
|
|
"num_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Num Retries"
|
|
},
|
|
"parallel_tool_calls": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Parallel Tool Calls"
|
|
},
|
|
"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": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream"
|
|
},
|
|
"stream_options": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream Options"
|
|
},
|
|
"temperature": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Temperature"
|
|
},
|
|
"tool_choice": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tool Choice"
|
|
},
|
|
"tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tools"
|
|
},
|
|
"top_logprobs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top Logprobs"
|
|
},
|
|
"top_p": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top P"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"messages"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Chat Completion",
|
|
"tags": [
|
|
"chat/completions"
|
|
]
|
|
}
|
|
},
|
|
"/engines/{model}/completions": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Completion",
|
|
"tags": [
|
|
"completions"
|
|
]
|
|
}
|
|
},
|
|
"/engines/{model}/embeddings": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Key"
|
|
},
|
|
"api_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Type"
|
|
},
|
|
"api_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Version"
|
|
},
|
|
"caching": {
|
|
"default": false,
|
|
"title": "Caching",
|
|
"type": "boolean"
|
|
},
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"input": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Input",
|
|
"type": "array"
|
|
},
|
|
"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"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"timeout": {
|
|
"default": 600,
|
|
"title": "Timeout",
|
|
"type": "integer"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Embeddings",
|
|
"tags": [
|
|
"embeddings"
|
|
]
|
|
}
|
|
},
|
|
"/eu.assemblyai/{endpoint}": {
|
|
"delete": {
|
|
"operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI EU Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI EU Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI EU Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI EU Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"operationId": "assemblyai_proxy_route_eu_assemblyai__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Assemblyai Proxy Route",
|
|
"tags": [
|
|
"AssemblyAI EU Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/fallback": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FallbackResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Fallback",
|
|
"tags": [
|
|
"Fallback Management"
|
|
]
|
|
}
|
|
},
|
|
"/fallback/login": {
|
|
"get": {
|
|
"description": "Create Proxy API Keys using Google Workspace SSO. Requires setting PROXY_BASE_URL in .env\nPROXY_BASE_URL should be the your deployed proxy endpoint, e.g. PROXY_BASE_URL=\"https://litellm-production-7002.up.railway.app/\"\nExample:",
|
|
"operationId": "fallback_login_fallback_login_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Fallback Login",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/fallback/{model}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "fallback_type",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "general",
|
|
"enum": [
|
|
"general",
|
|
"context_window",
|
|
"content_policy"
|
|
],
|
|
"title": "Fallback Type",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FallbackDeleteResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Fallback",
|
|
"tags": [
|
|
"Fallback Management"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "fallback_type",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "general",
|
|
"enum": [
|
|
"general",
|
|
"context_window",
|
|
"content_policy"
|
|
],
|
|
"title": "Fallback Type",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FallbackGetResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Fallback",
|
|
"tags": [
|
|
"Fallback Management"
|
|
]
|
|
}
|
|
},
|
|
"/files": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "target_model_names",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Model Names"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "purpose",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Purpose"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Files",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_create_file_files_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"/files/{file_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"/files/{file_id}/content": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get File Content",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"/fine_tuning/jobs": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"openai",
|
|
"azure"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
},
|
|
{
|
|
"description": "Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini'",
|
|
"in": "query",
|
|
"name": "target_model_names",
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "\u2728 (Enterprise) List Fine-Tuning Jobs",
|
|
"tags": [
|
|
"fine-tuning"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLMFineTuningJobCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "\u2728 (Enterprise) Create Fine-Tuning Job",
|
|
"tags": [
|
|
"fine-tuning"
|
|
]
|
|
}
|
|
},
|
|
"/fine_tuning/jobs/{fine_tuning_job_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "fine_tuning_job_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Fine Tuning Job Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"openai",
|
|
"azure"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "\u2728 (Enterprise) Retrieve Fine-Tuning Job",
|
|
"tags": [
|
|
"fine-tuning"
|
|
]
|
|
}
|
|
},
|
|
"/fine_tuning/jobs/{fine_tuning_job_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "fine_tuning_job_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Fine Tuning Job Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "\u2728 (Enterprise) Cancel Fine-Tuning Jobs",
|
|
"tags": [
|
|
"fine-tuning"
|
|
]
|
|
}
|
|
},
|
|
"/gateway/daily/activity": {
|
|
"get": {
|
|
"description": "Successful and failed gateway requests, counted at the ASGI edge.\n\nDeployment-wide: the underlying table has no per-key or per-user dimension,\nso this is admin-only.",
|
|
"operationId": "get_gateway_daily_activity_gateway_daily_activity_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Start date in YYYY-MM-DD format",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Start date in YYYY-MM-DD format",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "End date in YYYY-MM-DD format",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "End date in YYYY-MM-DD format",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GatewayRequestActivityResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Gateway Daily Activity",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/gemini/{endpoint}": {
|
|
"delete": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)",
|
|
"operationId": "gemini_proxy_route_gemini__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Gemini Proxy Route",
|
|
"tags": [
|
|
"Google AI Studio Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)",
|
|
"operationId": "gemini_proxy_route_gemini__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Gemini Proxy Route",
|
|
"tags": [
|
|
"Google AI Studio Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)",
|
|
"operationId": "gemini_proxy_route_gemini__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Gemini Proxy Route",
|
|
"tags": [
|
|
"Google AI Studio Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)",
|
|
"operationId": "gemini_proxy_route_gemini__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Gemini Proxy Route",
|
|
"tags": [
|
|
"Google AI Studio Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/google_ai_studio)",
|
|
"operationId": "gemini_proxy_route_gemini__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Gemini Proxy Route",
|
|
"tags": [
|
|
"Google AI Studio Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/get/allowed_ips": {
|
|
"get": {
|
|
"operationId": "get_allowed_ips_get_allowed_ips_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Allowed Ips",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/get/config/callbacks": {
|
|
"get": {
|
|
"description": "For Admin UI - allows admin to view config via UI\n# return the callbacks and the env variables for the callback",
|
|
"operationId": "get_config_get_config_callbacks_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Config",
|
|
"tags": [
|
|
"config.yaml"
|
|
]
|
|
}
|
|
},
|
|
"/get/default_team_settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DefaultTeamSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Default Team Settings",
|
|
"tags": [
|
|
"SSO Settings"
|
|
]
|
|
}
|
|
},
|
|
"/get/internal_user_settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InternalUserSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Internal User Settings",
|
|
"tags": [
|
|
"SSO Settings"
|
|
]
|
|
}
|
|
},
|
|
"/get/mcp_semantic_filter_settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPSemanticFilterSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Mcp Semantic Filter Settings",
|
|
"tags": [
|
|
"Settings"
|
|
]
|
|
}
|
|
},
|
|
"/get/sso_settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SSOSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Sso Settings",
|
|
"tags": [
|
|
"SSO Settings"
|
|
]
|
|
}
|
|
},
|
|
"/get/ui_settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UISettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Ui Settings",
|
|
"tags": [
|
|
"UI Settings"
|
|
]
|
|
}
|
|
},
|
|
"/get/ui_theme_settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UIThemeSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Ui Theme Settings",
|
|
"tags": [
|
|
"UI Theme Settings"
|
|
]
|
|
}
|
|
},
|
|
"/get/user_banner": {
|
|
"get": {
|
|
"description": "Get the admin-published dashboard banner.\nReadable by any authenticated user; rendered on every dashboard page.",
|
|
"operationId": "get_user_banner_get_user_banner_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserBanner"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get User Banner",
|
|
"tags": [
|
|
"UI Settings"
|
|
]
|
|
}
|
|
},
|
|
"/get_favicon": {
|
|
"get": {
|
|
"description": "Get custom favicon for the admin UI.",
|
|
"operationId": "get_favicon_get_favicon_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Favicon"
|
|
}
|
|
},
|
|
"/get_image": {
|
|
"get": {
|
|
"description": "Get logo to show on admin UI",
|
|
"operationId": "get_image_get_image_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Image"
|
|
}
|
|
},
|
|
"/get_logo_url": {
|
|
"get": {
|
|
"description": "Get the current logo URL from environment.\n\nOnly HTTP(S) URLs are returned \u2014 those are intended to be loaded\ndirectly by the browser from a public/internal CDN. Local file\npaths set via ``UI_LOGO_PATH`` are NOT returned: they are admin-\nonly filesystem details, the dashboard falls back to ``/get_image``\nwhich serves the file only when it is a supported image. Without\nthis filter, the unauthenticated endpoint would disclose internal\nhostnames or filesystem paths to any caller.",
|
|
"operationId": "get_logo_url_get_logo_url_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Logo Url"
|
|
}
|
|
},
|
|
"/global/activity": {
|
|
"get": {
|
|
"description": "Get number of API Requests, total tokens through proxy\n\n{\n \"daily_data\": [\n const chartdata = [\n {\n date: 'Jan 22',\n api_requests: 10,\n total_tokens: 2000\n },\n {\n date: 'Jan 23',\n api_requests: 10,\n total_tokens: 12\n },\n ],\n \"sum_api_requests\": 20,\n \"sum_total_tokens\": 2012\n}",
|
|
"operationId": "get_global_activity_global_activity_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Get Global Activity Global Activity Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Global Activity",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/activity/cache_hits": {
|
|
"get": {
|
|
"description": "Cache activity for the Admin UI cache dashboard, aggregated per call_type:\ncache hits vs successful LLM API requests vs failed requests, plus totals\nfor the stat cards and the available key-alias/model filter options.",
|
|
"operationId": "get_global_activity_global_activity_cache_hits_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Time from which to start viewing spend",
|
|
"title": "Start Date",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Time till which to view spend",
|
|
"title": "End Date",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Only include spend from these key aliases",
|
|
"in": "query",
|
|
"name": "key_aliases",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Only include spend from these key aliases",
|
|
"title": "Key Aliases"
|
|
}
|
|
},
|
|
{
|
|
"description": "Only include spend for these models",
|
|
"in": "query",
|
|
"name": "models",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Only include spend for these models",
|
|
"title": "Models"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CacheActivityResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Global Activity",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/activity/exceptions": {
|
|
"get": {
|
|
"description": "Get number of API Requests, total tokens through proxy\n\n{\n \"daily_data\": [\n const chartdata = [\n {\n date: 'Jan 22',\n num_rate_limit_exceptions: 10,\n },\n {\n date: 'Jan 23',\n num_rate_limit_exceptions: 10,\n },\n ],\n \"sum_api_exceptions\": 20,\n}",
|
|
"operationId": "get_global_activity_exceptions_global_activity_exceptions_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter by model group",
|
|
"in": "query",
|
|
"name": "model_group",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Filter by model group",
|
|
"title": "Model Group",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time from which to start viewing spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Get Global Activity Exceptions Global Activity Exceptions Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Global Activity Exceptions",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/activity/exceptions/deployment": {
|
|
"get": {
|
|
"description": "Get number of 429 errors - Grouped by deployment\n\n[\n {\n \"deployment\": \"https://azure-us-east-1.openai.azure.com/\",\n \"daily_data\": [\n const chartdata = [\n {\n date: 'Jan 22',\n num_rate_limit_exceptions: 10\n },\n {\n date: 'Jan 23',\n num_rate_limit_exceptions: 12\n },\n ],\n \"sum_num_rate_limit_exceptions\": 20,\n\n },\n {\n \"deployment\": \"https://azure-us-east-1.openai.azure.com/\",\n \"daily_data\": [\n const chartdata = [\n {\n date: 'Jan 22',\n num_rate_limit_exceptions: 10,\n },\n {\n date: 'Jan 23',\n num_rate_limit_exceptions: 12\n },\n ],\n \"sum_num_rate_limit_exceptions\": 20,\n\n },\n]",
|
|
"operationId": "get_global_activity_exceptions_per_deployment_global_activity_exceptions_deployment_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter by model group",
|
|
"in": "query",
|
|
"name": "model_group",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Filter by model group",
|
|
"title": "Model Group",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time from which to start viewing spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Get Global Activity Exceptions Per Deployment Global Activity Exceptions Deployment Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Global Activity Exceptions Per Deployment",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/activity/model": {
|
|
"get": {
|
|
"description": "Get number of API Requests, total tokens through proxy - Grouped by MODEL\n\n[\n {\n \"model\": \"gpt-4\",\n \"daily_data\": [\n const chartdata = [\n {\n date: 'Jan 22',\n api_requests: 10,\n total_tokens: 2000\n },\n {\n date: 'Jan 23',\n api_requests: 10,\n total_tokens: 12\n },\n ],\n \"sum_api_requests\": 20,\n \"sum_total_tokens\": 2012\n\n },\n {\n \"model\": \"azure/gpt-4-turbo\",\n \"daily_data\": [\n const chartdata = [\n {\n date: 'Jan 22',\n api_requests: 10,\n total_tokens: 2000\n },\n {\n date: 'Jan 23',\n api_requests: 10,\n total_tokens: 12\n },\n ],\n \"sum_api_requests\": 20,\n \"sum_total_tokens\": 2012\n\n },\n]",
|
|
"operationId": "get_global_activity_model_global_activity_model_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Get Global Activity Model Global Activity Model Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Global Activity Model",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/all_end_users": {
|
|
"get": {
|
|
"description": "[BETA] This is a beta endpoint. It will change.\n\nUse this to just get all the unique `end_users`",
|
|
"operationId": "global_view_all_end_users_global_all_end_users_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global View All End Users",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend": {
|
|
"get": {
|
|
"description": "[BETA] This is a beta endpoint. It will change.\n\nView total spend across all proxy keys",
|
|
"operationId": "global_spend_global_spend_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Spend",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/all_tag_names": {
|
|
"get": {
|
|
"operationId": "global_get_all_tag_names_global_spend_all_tag_names_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Global Get All Tag Names Global Spend All Tag Names Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Get All Tag Names",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/end_users": {
|
|
"post": {
|
|
"description": "[BETA] This is a beta endpoint. It will change.\n\nUse this to get the top 'n' keys with the highest spend, ordered by spend.",
|
|
"operationId": "global_spend_end_users_global_spend_end_users_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GlobalEndUsersSpend"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Spend End Users",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/keys": {
|
|
"get": {
|
|
"description": "[BETA] This is a beta endpoint. It will change.\n\nUse this to get the top 'n' keys with the highest spend, ordered by spend.",
|
|
"operationId": "global_spend_keys_global_spend_keys_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Number of keys to get. Will return Top 'n' keys.",
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"description": "Number of keys to get. Will return Top 'n' keys.",
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Spend Keys",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/logs": {
|
|
"get": {
|
|
"description": "[BETA] This is a beta endpoint. It will change.\n\nUse this to get global spend (spend per day for last 30d). Admin-only endpoint\n\nMore efficient implementation of /spend/logs, by creating a view over the spend logs table.",
|
|
"operationId": "global_spend_logs_global_spend_logs_get",
|
|
"parameters": [
|
|
{
|
|
"description": "API Key to get global spend (spend per day for last 30d). Admin-only endpoint",
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "API Key to get global spend (spend per day for last 30d). Admin-only endpoint",
|
|
"title": "Api Key"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Spend Logs",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/models": {
|
|
"get": {
|
|
"description": "[BETA] This is a beta endpoint. It will change.\n\nUse this to get the top 'n' models with the highest spend, ordered by spend.",
|
|
"operationId": "global_spend_models_global_spend_models_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Number of models to get. Will return Top 'n' models.",
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"description": "Number of models to get. Will return Top 'n' models.",
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Spend Models",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/provider": {
|
|
"get": {
|
|
"description": "Get breakdown of spend per provider\n[\n {\n \"provider\": \"Azure OpenAI\",\n \"spend\": 20\n },\n {\n \"provider\": \"OpenAI\",\n \"spend\": 10\n },\n {\n \"provider\": \"VertexAI\",\n \"spend\": 30\n }\n]",
|
|
"operationId": "get_global_spend_provider_global_spend_provider_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Get Global Spend Provider Global Spend Provider Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Global Spend Provider",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/refresh": {
|
|
"post": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nGlobally refresh spend MonthlyGlobalSpend view",
|
|
"operationId": "global_spend_refresh_global_spend_refresh_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Spend Refresh",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/report": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Group spend by internal team or customer or api_key",
|
|
"in": "query",
|
|
"name": "group_by",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"team",
|
|
"customer",
|
|
"api_key"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "team",
|
|
"description": "Group spend by internal team or customer or api_key",
|
|
"title": "Group By"
|
|
}
|
|
},
|
|
{
|
|
"description": "View spend for a specific api_key. Example api_key='sk-1234",
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"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 internal_user_id. Example internal_user_id='1234",
|
|
"in": "query",
|
|
"name": "internal_user_id",
|
|
"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 team_id. Example team_id='1234",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"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 customer_id. Example customer_id='1234. Can be used in conjunction with team_id as well.",
|
|
"in": "query",
|
|
"name": "customer_id",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Get Global Spend Report Global Spend Report Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Global Spend Report",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/reset": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Spend Reset",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/tags": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing key spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing key spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view key spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view key spend",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "comman separated tags to filter on",
|
|
"in": "query",
|
|
"name": "tags",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "comman separated tags to filter on",
|
|
"title": "Tags"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Global View Spend Tags Global Spend Tags Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global View Spend Tags",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/global/spend/teams": {
|
|
"get": {
|
|
"description": "[BETA] This is a beta endpoint. It will change.\n\nUse this to get daily spend, grouped by `team_id` and `date`",
|
|
"operationId": "global_spend_per_team_global_spend_teams_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Global Spend Per Team",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Guardrail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/apply_guardrail": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ApplyGuardrailResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Apply Guardrail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/list": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListGuardrailsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Guardrails",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/register": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RegisterGuardrailResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Register Guardrail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/submissions": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "status",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "search",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListGuardrailSubmissionsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Guardrail Submissions",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/submissions/{guardrail_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GuardrailSubmissionItem"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Guardrail Submission",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/submissions/{guardrail_id}/approve": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Approve Guardrail Submission",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/submissions/{guardrail_id}/reject": {
|
|
"post": {
|
|
"description": "Reject a guardrail submission (admin only).",
|
|
"operationId": "reject_guardrail_submission_guardrails_submissions__guardrail_id__reject_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Reject Guardrail Submission",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/test_custom_code": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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 (<guardrail>, 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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TestCustomCodeGuardrailResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Custom Code Guardrail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/ui/add_guardrail_settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Guardrail Ui Settings",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/ui/category_yaml/{category_name}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "category_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Category Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Category Yaml",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/ui/major_airlines": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Major Airlines",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/ui/provider_specific_params": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Provider Specific Params",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/usage/detail/{guardrail_id}": {
|
|
"get": {
|
|
"description": "Return single guardrail usage metrics and time series.",
|
|
"operationId": "guardrails_usage_detail_guardrails_usage_detail__guardrail_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UsageDetailResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Guardrails Usage Detail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/usage/logs": {
|
|
"get": {
|
|
"description": "Return paginated run logs for a guardrail (or policy) from SpendLogs via index.",
|
|
"operationId": "guardrails_usage_logs_guardrails_usage_logs_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "guardrail_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Guardrail Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "policy_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Policy Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "action",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Action"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UsageLogsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Guardrails Usage Logs",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/usage/overview": {
|
|
"get": {
|
|
"description": "Return guardrail performance overview for the dashboard.",
|
|
"operationId": "guardrails_usage_overview_guardrails_usage_overview_get",
|
|
"parameters": [
|
|
{
|
|
"description": "YYYY-MM-DD",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "YYYY-MM-DD",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UsageOverviewResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Guardrails Usage Overview",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/validate_blocked_words_file": {
|
|
"post": {
|
|
"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"
|
|
},
|
|
"title": "Request",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Validate Blocked Words File",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/{guardrail_id}": {
|
|
"delete": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Guardrail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
},
|
|
"get": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Guardrail Info",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchGuardrailRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Patch Guardrail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
},
|
|
"put": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateGuardrailRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Guardrail",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/guardrails/{guardrail_id}/info": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "guardrail_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Guardrail Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Guardrail Info",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/health": {
|
|
"get": {
|
|
"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.\n\nTo skip deployments that set ``model_info.disable_background_health_check: true``\non ``GET /health`` as well as in the background loop, set\n``general_settings.health_check_skip_disabled_background_models: true``.",
|
|
"operationId": "health_endpoint_health_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Specify the model name (optional)",
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Specify the model name (optional)",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"description": "Specify the model ID (optional)",
|
|
"in": "query",
|
|
"name": "model_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Specify the model ID (optional)",
|
|
"title": "Model Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Health Endpoint",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/backlog": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Health Backlog",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/drain": {
|
|
"get": {
|
|
"description": "Graceful-drain probe for Kubernetes ``preStop`` hooks.\n\nDisabled by default and returns 404 unless ``general_settings`` sets\n``enable_drain_endpoint: true``. Calling it flips a process-wide\nshutting-down flag, so a successful call permanently takes the worker out\nof rotation until the pod restarts.\n\nBecause the kubelet calls preStop hooks without proxy credentials, the\nendpoint does not require ``user_api_key_auth``. To prevent any\npod-reachable caller from triggering shutdown, set\n``general_settings.drain_endpoint_token`` (or the ``DRAIN_ENDPOINT_TOKEN``\nenv var) and supply the same value on the ``X-Drain-Token`` header from\nthe preStop hook. Calls without the header (or with a wrong value) get a\n401 and have no side effect.\n\nWhen enabled, it marks the worker as shutting down (so /health/readiness\nand /health/liveliness immediately start returning 503, removing the pod\nfrom service) and blocks until the in-flight request counter drains to\nzero or ``GRACEFUL_SHUTDOWN_TIMEOUT`` elapses. Unlike a fixed ``sleep``,\nthis returns as soon as real in-flight work is done.\n\nWire it up as:\n\n```yaml\nlifecycle:\n preStop:\n httpGet:\n path: /health/drain\n port: 4000\n httpHeaders:\n - name: X-Drain-Token\n value: <same value as drain_endpoint_token>\n```",
|
|
"operationId": "health_drain_health_drain_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Health Drain",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/history": {
|
|
"get": {
|
|
"description": "Get health check history for models\n\nReturns historical health check data with optional filtering.",
|
|
"operationId": "health_check_history_endpoint_health_history_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter by specific model name",
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific model name",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by status (healthy/unhealthy)",
|
|
"in": "query",
|
|
"name": "status_filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by status (healthy/unhealthy)",
|
|
"title": "Status Filter"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of records to return",
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 100,
|
|
"description": "Number of records to return",
|
|
"maximum": 1000,
|
|
"minimum": 1,
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of records to skip",
|
|
"in": "query",
|
|
"name": "offset",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 0,
|
|
"description": "Number of records to skip",
|
|
"minimum": 0,
|
|
"title": "Offset",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Health Check History Endpoint",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/latest": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Latest Health Checks Endpoint",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/license": {
|
|
"get": {
|
|
"description": "Return metadata about the configured LiteLLM license without exposing the key.",
|
|
"operationId": "health_license_endpoint_health_license_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Health License Endpoint",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/liveliness": {
|
|
"get": {
|
|
"description": "Unprotected endpoint for checking if worker is alive.\n\nReturns 503 once graceful shutdown has begun so Kubernetes stops counting\nthe draining pod as live and terminates it on schedule.",
|
|
"operationId": "health_liveliness_health_liveliness_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Health Liveliness",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
},
|
|
"options": {
|
|
"description": "Options endpoint for health/liveliness check.",
|
|
"operationId": "health_liveliness_options_health_liveliness_options",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Health Liveliness Options",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/liveness": {
|
|
"get": {
|
|
"description": "Unprotected endpoint for checking if worker is alive.\n\nReturns 503 once graceful shutdown has begun so Kubernetes stops counting\nthe draining pod as live and terminates it on schedule.",
|
|
"operationId": "health_liveliness_health_liveness_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Health Liveliness",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
},
|
|
"options": {
|
|
"description": "Options endpoint for health/liveliness check.",
|
|
"operationId": "health_liveliness_options_health_liveness_options",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Health Liveliness Options",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/readiness": {
|
|
"get": {
|
|
"description": "Public readiness probe. Returns a low-detail payload safe to expose to\nunauthenticated load balancers \u2014 `status` plus `db` so orchestrators and\nexternal probes can distinguish \"healthy\" from \"DB unreachable\" without a\ncredential. Admins can opt into the legacy detailed payload with\ngeneral_settings.allow_public_health_readiness_details.",
|
|
"operationId": "health_readiness_health_readiness_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Health Readiness",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
},
|
|
"options": {
|
|
"description": "Options endpoint for health/readiness check.",
|
|
"operationId": "health_readiness_options_health_readiness_options",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Health Readiness Options",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/readiness/details": {
|
|
"get": {
|
|
"description": "Authenticated readiness diagnostics with DB/cache/callback metadata.",
|
|
"operationId": "health_readiness_details_health_readiness_details_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Health Readiness Details",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/services": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Specify the service being hit.",
|
|
"in": "query",
|
|
"name": "service",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"slack_budget_alerts",
|
|
"langfuse",
|
|
"langfuse_otel",
|
|
"slack",
|
|
"openmeter",
|
|
"webhook",
|
|
"email",
|
|
"braintrust",
|
|
"datadog",
|
|
"datadog_llm_observability",
|
|
"generic_api",
|
|
"arize",
|
|
"galileo",
|
|
"newrelic",
|
|
"sqs"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "string"
|
|
}
|
|
],
|
|
"description": "Specify the service being hit.",
|
|
"title": "Service"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Health Services Endpoint",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/shared-status": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Shared Health Check Status Endpoint",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/health/test_connection": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Model Connection",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/images/edits": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Image Edit Api",
|
|
"tags": [
|
|
"images"
|
|
]
|
|
}
|
|
},
|
|
"/images/generations": {
|
|
"post": {
|
|
"operationId": "image_generation_images_generations_post",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Image Generation",
|
|
"tags": [
|
|
"images"
|
|
]
|
|
}
|
|
},
|
|
"/interactions": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Interaction",
|
|
"tags": [
|
|
"google genai endpoints",
|
|
"interactions"
|
|
]
|
|
}
|
|
},
|
|
"/interactions/{interaction_id}": {
|
|
"delete": {
|
|
"description": "Delete an interaction by ID.\n\nPer OpenAPI spec: DELETE /{api_version}/interactions/{interaction_id}",
|
|
"operationId": "delete_interaction_interactions__interaction_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "interaction_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Interaction Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Interaction",
|
|
"tags": [
|
|
"google genai endpoints",
|
|
"interactions"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Get an interaction by ID.\n\nPer OpenAPI spec: GET /{api_version}/interactions/{interaction_id}",
|
|
"operationId": "get_interaction_interactions__interaction_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "interaction_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Interaction Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Interaction",
|
|
"tags": [
|
|
"google genai endpoints",
|
|
"interactions"
|
|
]
|
|
}
|
|
},
|
|
"/interactions/{interaction_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "interaction_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Interaction Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Interaction",
|
|
"tags": [
|
|
"google genai endpoints",
|
|
"interactions"
|
|
]
|
|
}
|
|
},
|
|
"/invitation/delete": {
|
|
"post": {
|
|
"description": "Delete invitation link\n\n```\ncurl -X POST 'http://localhost:4000/invitation/delete' -H 'Content-Type: application/json' -d '{\n \"invitation_id\": \"1234\" // \ud83d\udc48 id of invitation in 'LiteLLM_InvitationTable'\n }'\n```",
|
|
"operationId": "invitation_delete_invitation_delete_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InvitationDelete"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InvitationModel"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Invitation Delete",
|
|
"tags": [
|
|
"Invite Links"
|
|
]
|
|
}
|
|
},
|
|
"/invitation/info": {
|
|
"get": {
|
|
"description": "Allow admin to create invite links, to onboard new users to Admin UI.\n\n```\ncurl -X POST 'http://localhost:4000/invitation/new' -H 'Content-Type: application/json' -d '{\n \"user_id\": \"1234\" // \ud83d\udc48 id of user in 'LiteLLM_UserTable'\n }'\n```",
|
|
"operationId": "invitation_info_invitation_info_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "invitation_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Invitation Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InvitationModel"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Invitation Info",
|
|
"tags": [
|
|
"Invite Links"
|
|
]
|
|
}
|
|
},
|
|
"/invitation/new": {
|
|
"post": {
|
|
"description": "Allow admin to create invite links, to onboard new users to Admin UI.\n\n```\ncurl -X POST 'http://localhost:4000/invitation/new' -H 'Content-Type: application/json' -d '{\n \"user_id\": \"1234\" // \ud83d\udc48 id of user in 'LiteLLM_UserTable'\n }'\n```",
|
|
"operationId": "new_invitation_invitation_new_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InvitationNew"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InvitationModel"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New Invitation",
|
|
"tags": [
|
|
"Invite Links"
|
|
]
|
|
}
|
|
},
|
|
"/invitation/update": {
|
|
"post": {
|
|
"description": "Update when invitation is accepted\n\n```\ncurl -X POST 'http://localhost:4000/invitation/update' -H 'Content-Type: application/json' -d '{\n \"invitation_id\": \"1234\" // \ud83d\udc48 id of invitation in 'LiteLLM_InvitationTable'\n \"is_accepted\": True // when invitation is accepted\n }'\n```",
|
|
"operationId": "invitation_update_invitation_update_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InvitationUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InvitationModel"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Invitation Update",
|
|
"tags": [
|
|
"Invite Links"
|
|
]
|
|
}
|
|
},
|
|
"/jwt/key/mapping/delete": {
|
|
"post": {
|
|
"operationId": "delete_jwt_key_mapping_jwt_key_mapping_delete_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteJWTKeyMappingRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Jwt Key Mapping",
|
|
"tags": [
|
|
"jwt_mappings"
|
|
]
|
|
}
|
|
},
|
|
"/jwt/key/mapping/info": {
|
|
"get": {
|
|
"operationId": "info_jwt_key_mapping_jwt_key_mapping_info_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/JWTKeyMappingResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Info Jwt Key Mapping",
|
|
"tags": [
|
|
"jwt_mappings"
|
|
]
|
|
}
|
|
},
|
|
"/jwt/key/mapping/list": {
|
|
"get": {
|
|
"operationId": "list_jwt_key_mappings_jwt_key_mapping_list_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Page number",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page size",
|
|
"in": "query",
|
|
"name": "size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Page size",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Jwt Key Mappings",
|
|
"tags": [
|
|
"jwt_mappings"
|
|
]
|
|
}
|
|
},
|
|
"/jwt/key/mapping/new": {
|
|
"post": {
|
|
"operationId": "create_jwt_key_mapping_jwt_key_mapping_new_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CreateJWTKeyMappingRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/JWTKeyMappingResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Jwt Key Mapping",
|
|
"tags": [
|
|
"jwt_mappings"
|
|
]
|
|
}
|
|
},
|
|
"/jwt/key/mapping/update": {
|
|
"post": {
|
|
"operationId": "update_jwt_key_mapping_jwt_key_mapping_update_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateJWTKeyMappingRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/JWTKeyMappingResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Jwt Key Mapping",
|
|
"tags": [
|
|
"jwt_mappings"
|
|
]
|
|
}
|
|
},
|
|
"/key/aliases": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Page number",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page size",
|
|
"in": "query",
|
|
"name": "size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Page size",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Search key aliases (case-insensitive partial match)",
|
|
"in": "query",
|
|
"name": "search",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Search key aliases (case-insensitive partial match)",
|
|
"title": "Search"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter aliases to keys belonging to this team",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter aliases to keys belonging to this team",
|
|
"title": "Team Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Key Aliases Key Aliases Get",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Key Aliases",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/block": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockKeyRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_VerificationToken"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Response Block Key Key Block Post"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Block Key",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/bulk_update": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateKeyRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateKeyResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bulk Update Keys",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/delete": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KeyRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Key Fn",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/generate": {
|
|
"post": {
|
|
"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. Must start with 'sk-' and be at least 16 characters long. 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- throttle_on_budget_exceeded: Optional[bool] - When the key exceeds its max_budget, throttle its tpm/rpm to the global budget_exceeded_throttle_percentage instead of blocking the key entirely.\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- budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {\"gpt-4o\": [\"gpt-4o-mini\"]}.\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- mcp_rpm_limit: Optional[dict] - key-specific per-MCP-server rpm limit, keyed by MCP server name (alias if set, else the configured name). Example - {\"github\": 100, \"slack\": 200}. IF null or {} then no MCP-specific rpm limit.\n- tag_rpm_limit: Optional[dict] - key-specific per-request-tag rpm limit, keyed by request tag. Example - {\"cell-1\": 1000, \"cell-2\": 500}. Each tag gets an independent counter; requests whose tag is absent fall back to the key-level rpm 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\": {\"gpt-4\": {\"RateLimitErrorRetries\": 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- budget_limits: Optional[list] - List of concurrent budget windows for the key. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{\"budget_limit\": 10.0, \"time_period\": \"1d\"}, {\"budget_limit\": 50.0, \"time_period\": \"7d\"}].\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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GenerateKeyRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GenerateKeyResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Generate Key Fn",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/health": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KeyHealthResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Key Health",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/info": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Key in the request parameters",
|
|
"in": "query",
|
|
"name": "key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Key in the request parameters",
|
|
"title": "Key"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Info Key Fn",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Page number",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page size",
|
|
"in": "query",
|
|
"name": "size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"description": "Page size",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by user ID. Exact match by default; set substring_matching=true (admin only) for case-insensitive substring matching.",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by user ID. Exact match by default; set substring_matching=true (admin only) for case-insensitive substring matching.",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by team ID",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by team ID",
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by organization ID",
|
|
"in": "query",
|
|
"name": "organization_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by organization ID",
|
|
"title": "Organization Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by key hash",
|
|
"in": "query",
|
|
"name": "key_hash",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by key hash",
|
|
"title": "Key Hash"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by key alias. Exact match by default; set substring_matching=true (admin only) for case-insensitive substring matching.",
|
|
"in": "query",
|
|
"name": "key_alias",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by key alias. Exact match by default; set substring_matching=true (admin only) for case-insensitive substring matching.",
|
|
"title": "Key Alias"
|
|
}
|
|
},
|
|
{
|
|
"description": "Return full key object",
|
|
"in": "query",
|
|
"name": "return_full_object",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"description": "Return full key object",
|
|
"title": "Return Full Object",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"description": "Include all keys for teams that user is an admin of.",
|
|
"in": "query",
|
|
"name": "include_team_keys",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"description": "Include all keys for teams that user is an admin of.",
|
|
"title": "Include Team Keys",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"description": "Include keys created by the user",
|
|
"in": "query",
|
|
"name": "include_created_by_keys",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"description": "Include keys created by the user",
|
|
"title": "Include Created By Keys",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"description": "Column to sort by (e.g. 'user_id', 'created_at', 'spend')",
|
|
"in": "query",
|
|
"name": "sort_by",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Column to sort by (e.g. 'user_id', 'created_at', 'spend')",
|
|
"title": "Sort By"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort order ('asc' or 'desc')",
|
|
"in": "query",
|
|
"name": "sort_order",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "desc",
|
|
"description": "Sort order ('asc' or 'desc')",
|
|
"title": "Sort Order",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Expand related objects (e.g. 'user')",
|
|
"in": "query",
|
|
"name": "expand",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Expand related objects (e.g. 'user')",
|
|
"title": "Expand"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by status (e.g. 'deleted')",
|
|
"in": "query",
|
|
"name": "status",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by status (e.g. 'deleted')",
|
|
"title": "Status"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by project ID",
|
|
"in": "query",
|
|
"name": "project_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by project ID",
|
|
"title": "Project Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by access group ID",
|
|
"in": "query",
|
|
"name": "access_group_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by access group ID",
|
|
"title": "Access Group Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by agent ID",
|
|
"in": "query",
|
|
"name": "agent_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by agent ID",
|
|
"title": "Agent Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "If true (proxy admins only), match user_id/key_alias as case-insensitive substrings instead of exact values. Defaults to false: /key/list matched these exactly before substring search was added, and an exact user_id/key_alias filter must never return another user's keys.",
|
|
"in": "query",
|
|
"name": "substring_matching",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"description": "If true (proxy admins only), match user_id/key_alias as case-insensitive substrings instead of exact values. Defaults to false: /key/list matched these exactly before substring search was added, and an exact user_id/key_alias filter must never return another user's keys.",
|
|
"title": "Substring Matching",
|
|
"type": "boolean"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter keys by expiration. 'expired' returns keys whose expires is in the past; 'active' returns keys that never expire or expire in the future. Omit to return keys regardless of expiration.",
|
|
"in": "query",
|
|
"name": "expires",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter keys by expiration. 'expired' returns keys whose expires is in the past; 'active' returns keys that never expire or expire in the future. Omit to return keys regardless of expiration.",
|
|
"title": "Expires"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/KeyListResponseObject"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Keys",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/regenerate": {
|
|
"post": {
|
|
"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. Must start with 'sk-' and be at least 16 characters long. 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_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {\"gpt-4o\": [\"gpt-4o-mini\"]}.\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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key"
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/RegenerateKeyRequest"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GenerateKeyResponse"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Response Regenerate Key Fn Key Regenerate Post"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Regenerate Key Fn",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/service-account/generate": {
|
|
"post": {
|
|
"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. Must start with 'sk-' and be at least 16 characters long. 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- budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {\"gpt-4o\": [\"gpt-4o-mini\"]}.\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- mcp_rpm_limit: Optional[dict] - key-specific per-MCP-server rpm limit, keyed by MCP server name (alias if set, else the configured name). Example - {\"github\": 100, \"slack\": 200}. IF null or {} then no MCP-specific rpm 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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GenerateKeyRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Generate Service Account Key Fn",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/spend/report": {
|
|
"get": {
|
|
"description": "Get spend for the calling api_key over a date range, with a per-model breakdown.\n\nSame row shape as `/global/spend/report?api_key=...`, but callable by any key:\nnon-admin callers are always scoped to their own api_key, while proxy admins\nmay pass `?api_key=` to view any key.",
|
|
"operationId": "get_key_spend_report_key_spend_report_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend (YYYY-MM-DD)",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend (YYYY-MM-DD)",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend (YYYY-MM-DD)",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend (YYYY-MM-DD)",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "View spend for a specific api_key. Proxy admin only; other callers are scoped to their own key.",
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "View spend for a specific api_key. Proxy admin only; other callers are scoped to their own key.",
|
|
"title": "Api Key"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Response Get Key Spend Report Key Spend Report Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Key Spend Report",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/key/unblock": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockKeyRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Unblock Key",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/update": {
|
|
"post": {
|
|
"description": "Update an existing API key's parameters.\n\nParameters:\n- key: Optional[str] - The key to update. Either key or key_alias must be provided.\n- key_alias: Optional[str] - User-friendly key alias. If key is omitted, also identifies the key to update (must match exactly one key, same as /key/delete's key_aliases)\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_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {\"gpt-4o\": [\"gpt-4o-mini\"]}.\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- mcp_rpm_limit: Optional[dict] - Per-MCP-server RPM limits, keyed by MCP server name {\"github\": 100, \"slack\": 200}\n- tag_rpm_limit: Optional[dict] - Per-request-tag RPM limits, keyed by request tag {\"cell-1\": 1000, \"cell-2\": 500}. Each tag gets an independent counter; absent tags fall back to the key-level rpm limit.\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- throttle_on_budget_exceeded: Optional[bool] - When the key exceeds its max_budget, throttle its tpm/rpm to the global budget_exceeded_throttle_percentage instead of blocking the key entirely.\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\": {\"gpt-4\": {\"RateLimitErrorRetries\": 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- budget_limits: Optional[list] - List of concurrent budget windows for the key. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{\"budget_limit\": 10.0, \"time_period\": \"1d\"}, {\"budget_limit\": 50.0, \"time_period\": \"7d\"}].\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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateKeyRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Key Fn",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/{key}/regenerate": {
|
|
"post": {
|
|
"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. Must start with 'sk-' and be at least 16 characters long. 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_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {\"gpt-4o\": [\"gpt-4o-mini\"]}.\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "key",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key"
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/RegenerateKeyRequest"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/GenerateKeyResponse"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Response Regenerate Key Fn Key Key Regenerate Post"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Regenerate Key Fn",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/key/{key}/reset_spend": {
|
|
"post": {
|
|
"operationId": "reset_key_spend_fn_key__key__reset_spend_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "key",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ResetSpendRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Reset Key Spend Fn Key Key Reset Spend Post",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Reset Key Spend Fn",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/langfuse/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Langfuse Proxy Route",
|
|
"tags": [
|
|
"langfuse_passthrough"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Langfuse Proxy Route",
|
|
"tags": [
|
|
"langfuse_passthrough"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Langfuse Proxy Route",
|
|
"tags": [
|
|
"langfuse_passthrough"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Langfuse Proxy Route",
|
|
"tags": [
|
|
"langfuse_passthrough"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Langfuse Proxy Route",
|
|
"tags": [
|
|
"langfuse_passthrough"
|
|
]
|
|
}
|
|
},
|
|
"/lazy/warm/{name}": {
|
|
"post": {
|
|
"operationId": "warm_lazy_warm__name__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Warm"
|
|
}
|
|
},
|
|
"/litellm/.well-known/litellm-ui-config": {
|
|
"get": {
|
|
"operationId": "get_ui_config_litellm__well_known_litellm_ui_config_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UiDiscoveryEndpoints"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Ui Config"
|
|
}
|
|
},
|
|
"/login": {
|
|
"post": {
|
|
"operationId": "login_login_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Login"
|
|
}
|
|
},
|
|
"/management/v1/budgets": {
|
|
"get": {
|
|
"description": "The budgets defined on this proxy, paged, sortable and filterable, for the\nBudgets page.\n\nReadable by a proxy admin or an admin viewer; anyone else is refused 403. The\nolder `/budget/list` answers with the whole table as a bare array and has no\nway to page, sort or filter it.\n\n`sort` takes a comma-separated list of `budget_id`, `max_budget`, `tpm_limit`,\n`rpm_limit` or `created_at`, each optionally prefixed with `-` for descending,\nand defaults to `-created_at`. `budget_id` is appended to every sort as the\ntiebreaker. `q` is a case-insensitive substring match on `budget_id`.\n`page_size` defaults to 50 and is capped at 100. Filters are\n`filter[budget_duration][in|is_null]`, `filter[max_budget][gte|lte|is_null]`\nand `filter[created_at][gte|lte]`.\n\nExample curl:\n```\ncurl --location --globoff 'http://0.0.0.0:4000/management/v1/budgets?sort=-max_budget&filter[budget_duration][in]=7d,30d&page_size=25' --header 'Authorization: Bearer sk-1234'\n```",
|
|
"operationId": "list_budgets_management_v1_budgets_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListResponse_BudgetListItem_"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Budgets",
|
|
"tags": [
|
|
"budget management"
|
|
]
|
|
}
|
|
},
|
|
"/management/v1/spend_logs/end_users": {
|
|
"get": {
|
|
"description": "The distinct end users appearing in spend logs over a time window, for the logs\npage filter dropdown.\n\nScoped like `/spend/logs/ui`: a proxy admin sees every end user in the window,\nanyone else sees only end users from their own requests or from teams they\nadminister (or hold the `/spend/logs` permission on).\n\nThe window is required and the inner scan is capped at SPEND_LOGS_FACET_SCAN_CAP\nrows, so the query cannot degrade into a full-table scan the way\n`/global/all_end_users` does.\n\nExample curl:\n```\ncurl --location --globoff 'http://0.0.0.0:4000/management/v1/spend_logs/end_users?filter[startTime][gte]=2026-07-23T00:00:00Z&filter[startTime][lte]=2026-07-24T00:00:00Z&page_size=50&q=acme' --header 'Authorization: Bearer sk-1234'\n```",
|
|
"operationId": "list_spend_log_end_users_management_v1_spend_logs_end_users_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Window start (UTC when no offset is given)",
|
|
"in": "query",
|
|
"name": "filter[startTime][gte]",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Window start (UTC when no offset is given)",
|
|
"format": "date-time",
|
|
"title": "Filter[Starttime][Gte]",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Window end (UTC when no offset is given)",
|
|
"in": "query",
|
|
"name": "filter[startTime][lte]",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Window end (UTC when no offset is given)",
|
|
"format": "date-time",
|
|
"title": "Filter[Starttime][Lte]",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Case-insensitive partial match on the end user id",
|
|
"in": "query",
|
|
"name": "q",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Case-insensitive partial match on the end user id",
|
|
"title": "Q"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page size",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Page size",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/FacetListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Spend Log End Users",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/mcp-rest/test/connection": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Connection",
|
|
"tags": [
|
|
"mcp_rest"
|
|
]
|
|
}
|
|
},
|
|
"/mcp-rest/test/tools/list": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Tools List",
|
|
"tags": [
|
|
"mcp_rest"
|
|
]
|
|
}
|
|
},
|
|
"/mcp-rest/tools/call": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Call Tool Rest Api",
|
|
"tags": [
|
|
"mcp_rest"
|
|
]
|
|
}
|
|
},
|
|
"/mcp-rest/tools/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "The server id to list tools for",
|
|
"in": "query",
|
|
"name": "server_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "The server id to list tools for",
|
|
"title": "Server Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response List Tool Rest Api Mcp Rest Tools List Get",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Tool Rest Api",
|
|
"tags": [
|
|
"mcp_rest"
|
|
]
|
|
}
|
|
},
|
|
"/memory-usage-in-mem-cache": {
|
|
"get": {
|
|
"description": "1. user_api_key_cache\n2. router_cache\n3. proxy_logging_cache\n4. internal_usage_cache",
|
|
"operationId": "memory_usage_in_mem_cache_memory_usage_in_mem_cache_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Memory Usage In Mem Cache"
|
|
}
|
|
},
|
|
"/memory-usage-in-mem-cache-items": {
|
|
"get": {
|
|
"description": "1. user_api_key_cache\n2. router_cache\n3. proxy_logging_cache\n4. internal_usage_cache",
|
|
"operationId": "memory_usage_in_mem_cache_items_memory_usage_in_mem_cache_items_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Memory Usage In Mem Cache Items"
|
|
}
|
|
},
|
|
"/milvus/{endpoint}": {
|
|
"delete": {
|
|
"description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.",
|
|
"operationId": "milvus_proxy_route_milvus__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Milvus Proxy Route",
|
|
"tags": [
|
|
"Milvus Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.",
|
|
"operationId": "milvus_proxy_route_milvus__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Milvus Proxy Route",
|
|
"tags": [
|
|
"Milvus Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.",
|
|
"operationId": "milvus_proxy_route_milvus__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Milvus Proxy Route",
|
|
"tags": [
|
|
"Milvus Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.",
|
|
"operationId": "milvus_proxy_route_milvus__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Milvus Proxy Route",
|
|
"tags": [
|
|
"Milvus Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Enable using Milvus `/vectors` endpoint as a pass-through endpoint.",
|
|
"operationId": "milvus_proxy_route_milvus__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Milvus Proxy Route",
|
|
"tags": [
|
|
"Milvus Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/mistral/{endpoint}": {
|
|
"delete": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)",
|
|
"operationId": "mistral_proxy_route_mistral__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Mistral Proxy Route",
|
|
"tags": [
|
|
"Mistral Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)",
|
|
"operationId": "mistral_proxy_route_mistral__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Mistral Proxy Route",
|
|
"tags": [
|
|
"Mistral Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)",
|
|
"operationId": "mistral_proxy_route_mistral__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Mistral Proxy Route",
|
|
"tags": [
|
|
"Mistral Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)",
|
|
"operationId": "mistral_proxy_route_mistral__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Mistral Proxy Route",
|
|
"tags": [
|
|
"Mistral Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/mistral)",
|
|
"operationId": "mistral_proxy_route_mistral__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Mistral Proxy Route",
|
|
"tags": [
|
|
"Mistral Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/model/block": {
|
|
"post": {
|
|
"description": "Block a DB-stored model deployment from serving requests.\n\nParameters:\n- model_id: str - The model deployment id to block.",
|
|
"operationId": "block_model_model_block_post",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockModelRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ProxyModelTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Response Block Model Model Block Post"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Block Model",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/cost_map/source": {
|
|
"get": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nReturns information about where the current model cost/pricing data was loaded from.\n\nResponse fields:\n- source: \"local\" (bundled backup) or \"remote\" (fetched from URL)\n- url: the remote URL that was attempted (null when env-forced local)\n- is_env_forced: true if LITELLM_LOCAL_MODEL_COST_MAP=True forced local usage\n- fallback_reason: human-readable reason why remote failed (null on success)\n- model_count: number of models in the currently loaded cost map",
|
|
"operationId": "get_model_cost_map_source_model_cost_map_source_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Model Cost Map Source",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/delete": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Model",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/info": {
|
|
"get": {
|
|
"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 - include_team_models: When true, filter to deployments the caller can use (same as /v2/model/info).\n - teamId: Filter to models accessible by the given team.\n\nEach model in the list response includes `model_info.access_via_team_ids` and\n`model_info.direct_access` when the proxy database is connected.\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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "litellm_model_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Model Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "When true, filter to deployments the caller can use via direct access or team membership.",
|
|
"in": "query",
|
|
"name": "include_team_models",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "When true, filter to deployments the caller can use via direct access or team membership.",
|
|
"title": "Include Team Models"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids",
|
|
"in": "query",
|
|
"name": "teamId",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids",
|
|
"title": "Teamid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Info V1",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/metrics": {
|
|
"get": {
|
|
"description": "View number of requests & avg latency per model on config.yaml",
|
|
"operationId": "model_metrics_model_metrics_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "_selected_model_group",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "gpt-4-32k",
|
|
"title": " Selected Model Group"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "startTime",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Starttime"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "endTime",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endtime"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "customer",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Customer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Metrics",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/metrics/exceptions": {
|
|
"get": {
|
|
"description": "View number of failed requests per model on config.yaml",
|
|
"operationId": "model_metrics_exceptions_model_metrics_exceptions_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "_selected_model_group",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": " Selected Model Group"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "startTime",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Starttime"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "endTime",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endtime"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "customer",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Customer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Metrics Exceptions",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/metrics/slow_responses": {
|
|
"get": {
|
|
"description": "View number of hanging requests per model_group",
|
|
"operationId": "model_metrics_slow_responses_model_metrics_slow_responses_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "_selected_model_group",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "gpt-4-32k",
|
|
"title": " Selected Model Group"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "startTime",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Starttime"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "endTime",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endtime"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "customer",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Customer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Metrics Slow Responses",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/new": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Add New Model",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/settings": {
|
|
"get": {
|
|
"description": "Returns provider name, description, and required parameters for each provider",
|
|
"operationId": "model_settings_model_settings_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Settings",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/streaming_metrics": {
|
|
"get": {
|
|
"description": "View time to first token for models in spend logs",
|
|
"operationId": "model_streaming_metrics_model_streaming_metrics_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "_selected_model_group",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": " Selected Model Group"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "startTime",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Starttime"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "endTime",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"format": "date-time",
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Endtime"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Streaming Metrics",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/unblock": {
|
|
"post": {
|
|
"description": "Unblock a DB-stored model deployment so it can serve requests again.\n\nParameters:\n- model_id: str - The model deployment id to unblock.",
|
|
"operationId": "unblock_model_model_unblock_post",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlockModelRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/LiteLLM_ProxyModelTable"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Response Unblock Model Model Unblock Post"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Unblock Model",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/update": {
|
|
"post": {
|
|
"description": "Edit existing model params",
|
|
"operationId": "update_model_model_update_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/updateDeployment"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Model",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model/{model_id}/update": {
|
|
"patch": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/updateDeployment"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Patch Model",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model_group/info": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model_group",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model Group"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Group Info",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model_group/make_public": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Public Model Groups",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/model_hub/update_useful_links": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Useful Links",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/models": {
|
|
"get": {
|
|
"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.\n- healthy_only: When true, hide models whose backing deployments are all marked\n unhealthy by background health checks. Requires\n `background_health_checks: true` in general_settings; without\n health state the listing is returned unfiltered (fail open).\n Models expanded from wildcard routes (e.g. `openai/*`) are not\n filtered, and nothing is hidden when `allowed_fails_policy` is\n configured (cooldown remains the sole exclusion mechanism).\n Hiding is presentation-only: a hidden model can still be\n called directly.",
|
|
"operationId": "model_list_models_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "return_wildcard_routes",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Return Wildcard Routes"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "include_model_access_groups",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Include Model Access Groups"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "only_model_access_groups",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Only Model Access Groups"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "include_metadata",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Include Metadata"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "fallback_type",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fallback Type"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "scope",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Scope"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "healthy_only",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Healthy Only"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model List",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/models/{model_id}": {
|
|
"get": {
|
|
"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\n\nQuery parameters mirror `/v1/models` so the same caller context (team\nscoping, health filtering, paused deployments) drives both endpoints; the\nlisting's public id must resolve to the same internal deployment here.",
|
|
"operationId": "model_info_models__model_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "healthy_only",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Healthy Only"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Info",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/models/{model_name}:countTokens": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenCountDetailsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Google Count Tokens",
|
|
"tags": [
|
|
"google genai endpoints"
|
|
]
|
|
}
|
|
},
|
|
"/models/{model_name}:generateContent": {
|
|
"post": {
|
|
"operationId": "google_generate_content_models__model_name__generateContent_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Google Generate Content",
|
|
"tags": [
|
|
"google genai endpoints"
|
|
]
|
|
}
|
|
},
|
|
"/models/{model_name}:streamGenerateContent": {
|
|
"post": {
|
|
"operationId": "google_stream_generate_content_models__model_name__streamGenerateContent_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Google Stream Generate Content",
|
|
"tags": [
|
|
"google genai endpoints"
|
|
]
|
|
}
|
|
},
|
|
"/moderations": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Moderations",
|
|
"tags": [
|
|
"moderations"
|
|
]
|
|
}
|
|
},
|
|
"/ocr": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ocr",
|
|
"tags": [
|
|
"ocr"
|
|
]
|
|
}
|
|
},
|
|
"/onboarding/claim_token": {
|
|
"post": {
|
|
"description": "Special route. Allows UI link share user to update their password.\n\n- Get the invite link\n- Validate it's still 'valid'\n- Check if user within initial session (prevents abuse)\n- Get user from db\n- Update user password\n\nThis route can only update user password.",
|
|
"operationId": "claim_onboarding_link_onboarding_claim_token_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/InvitationClaim"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Claim Onboarding Link"
|
|
}
|
|
},
|
|
"/onboarding/get_token": {
|
|
"get": {
|
|
"description": "- Get the invite link\n- Validate it's still 'valid'\n- Return a short-lived onboarding token\n- Get user from db\n- Pass in user_email if set",
|
|
"operationId": "onboarding_onboarding_get_token_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "invite_link",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Invite Link",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Onboarding"
|
|
}
|
|
},
|
|
"/openai/deployments/{model}/chat/completions": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"caching": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Caching"
|
|
},
|
|
"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"
|
|
},
|
|
"frequency_penalty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Frequency Penalty"
|
|
},
|
|
"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"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Guardrails"
|
|
},
|
|
"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"
|
|
},
|
|
"max_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Max Tokens"
|
|
},
|
|
"messages": {
|
|
"example": [
|
|
{
|
|
"content": "Hello, how are you?",
|
|
"role": "user"
|
|
}
|
|
],
|
|
"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"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Metadata"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"n": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "N"
|
|
},
|
|
"num_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Num Retries"
|
|
},
|
|
"parallel_tool_calls": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Parallel Tool Calls"
|
|
},
|
|
"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": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream"
|
|
},
|
|
"stream_options": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream Options"
|
|
},
|
|
"temperature": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Temperature"
|
|
},
|
|
"tool_choice": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tool Choice"
|
|
},
|
|
"tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tools"
|
|
},
|
|
"top_logprobs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top Logprobs"
|
|
},
|
|
"top_p": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top P"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"messages"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful response"
|
|
},
|
|
"400": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "ContentPolicyViolationError"
|
|
},
|
|
"401": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "AuthenticationError"
|
|
},
|
|
"403": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "PermissionDeniedError"
|
|
},
|
|
"404": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "NotFoundError"
|
|
},
|
|
"408": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Timeout"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "UnprocessableEntityError"
|
|
},
|
|
"429": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Unified rate-limit error.\n\nEvery rate-limit condition surfaced by litellm \u2014 whether it originated from\nan upstream LLM provider, a vendor batch endpoint, or one of litellm's own\nproxy-side limiters (parallel-requests, dynamic-rate, batch-rate, budget,\nmax-iterations, etc.) \u2014 is raised as an instance of this class.\n\nThe :attr:`category` attribute lets callers distinguish the source. See\n:class:`RateLimitErrorCategory` for the available values."
|
|
},
|
|
"500": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "JSONSchemaValidationError"
|
|
},
|
|
"503": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ErrorResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "APIConnectionError"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Chat Completion",
|
|
"tags": [
|
|
"chat/completions"
|
|
]
|
|
}
|
|
},
|
|
"/openai/deployments/{model}/completions": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Completion",
|
|
"tags": [
|
|
"completions"
|
|
]
|
|
}
|
|
},
|
|
"/openai/deployments/{model}/embeddings": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Key"
|
|
},
|
|
"api_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Type"
|
|
},
|
|
"api_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Version"
|
|
},
|
|
"caching": {
|
|
"default": false,
|
|
"title": "Caching",
|
|
"type": "boolean"
|
|
},
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"input": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Input",
|
|
"type": "array"
|
|
},
|
|
"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"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"timeout": {
|
|
"default": 600,
|
|
"title": "Timeout",
|
|
"type": "integer"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Embeddings",
|
|
"tags": [
|
|
"embeddings"
|
|
]
|
|
}
|
|
},
|
|
"/openai/deployments/{model}/images/edits": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Image Edit Api",
|
|
"tags": [
|
|
"images"
|
|
]
|
|
}
|
|
},
|
|
"/openai/deployments/{model}/images/generations": {
|
|
"post": {
|
|
"operationId": "image_generation_openai_deployments__model__images_generations_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Image Generation",
|
|
"tags": [
|
|
"images"
|
|
]
|
|
}
|
|
},
|
|
"/openai/v1/realtime": {
|
|
"get": {
|
|
"description": "WebSocket connection endpoint",
|
|
"operationId": "websocket_realtime_websocket_endpoint_get_3",
|
|
"parameters": [],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket Protocol Switched"
|
|
}
|
|
},
|
|
"summary": "WebSocket: realtime_websocket_endpoint",
|
|
"tags": [
|
|
"WebSocket"
|
|
]
|
|
}
|
|
},
|
|
"/openai/v1/realtime/calls": {
|
|
"post": {
|
|
"operationId": "proxy_realtime_calls_openai_v1_realtime_calls_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Proxy Realtime Calls",
|
|
"tags": [
|
|
"realtime"
|
|
]
|
|
}
|
|
},
|
|
"/openai/v1/realtime/client_secrets": {
|
|
"post": {
|
|
"operationId": "create_realtime_client_secret_openai_v1_realtime_client_secrets_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RealtimeClientSecretResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Realtime Client Secret",
|
|
"tags": [
|
|
"realtime"
|
|
]
|
|
}
|
|
},
|
|
"/openai/v1/responses": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Responses Api",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/openai/v1/responses/compact": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Compact Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/openai/v1/responses/{response_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/openai/v1/responses/{response_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/openai/v1/responses/{response_id}/input_items": {
|
|
"get": {
|
|
"description": "List input items for a response.",
|
|
"operationId": "get_response_input_items_openai_v1_responses__response_id__input_items_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Response Input Items",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/openai/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/openai_passthrough/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Openai Proxy Route",
|
|
"tags": [
|
|
"OpenAI Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/organization/daily/activity": {
|
|
"get": {
|
|
"description": "Get daily activity for specific organizations or all accessible organizations.",
|
|
"operationId": "get_organization_daily_activity_organization_daily_activity_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "organization_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Ids"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "exclude_organization_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Exclude Organization Ids"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Organization Daily Activity",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/organization/delete": {
|
|
"delete": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers"
|
|
},
|
|
"title": "Response Delete Organization Organization Delete Delete",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Organization",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/organization/info": {
|
|
"get": {
|
|
"description": "Get the org specific information",
|
|
"operationId": "info_organization_organization_info_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "organization_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Organization Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Info Organization",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "DEPRECATED: Use GET /organization/info instead",
|
|
"operationId": "deprecated_info_organization_organization_info_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OrganizationRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Deprecated Info Organization",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/organization/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter organizations by exact organization_id match",
|
|
"in": "query",
|
|
"name": "org_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter organizations by exact organization_id match",
|
|
"title": "Org Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter organizations by partial organization_alias match. Supports case-insensitive search.",
|
|
"in": "query",
|
|
"name": "org_alias",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter organizations by partial organization_alias match. Supports case-insensitive search.",
|
|
"title": "Org Alias"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers"
|
|
},
|
|
"title": "Response List Organization Organization List Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Organization",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/organization/member_add": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OrganizationAddMemberResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Organization Member Add",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/organization/member_delete": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Organization Member Delete",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/organization/member_update": {
|
|
"patch": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationMembershipTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Organization Member Update",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/organization/new": {
|
|
"post": {
|
|
"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.\n- allowed_models: Optional[List[str]] - List of models the organization is allowed to access. If not set, defaults to the models field.\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewOrganizationResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New Organization",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/organization/spend/report": {
|
|
"get": {
|
|
"description": "Get spend for an organization over a date range, grouped by api_key with a per-model and per-team breakdown.\n\nCovers spend logged against the organization directly and against any of its\nteams. Callable by proxy admins (any organization) and org admins (their own\norganizations). Defaults to the calling key's organization_id when\n`?organization_id=` is omitted.",
|
|
"operationId": "get_organization_spend_report_organization_spend_report_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend (YYYY-MM-DD)",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend (YYYY-MM-DD)",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend (YYYY-MM-DD)",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend (YYYY-MM-DD)",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "View spend for a specific organization_id. Proxy admins may pass any organization; org admins are scoped to organizations they administer.",
|
|
"in": "query",
|
|
"name": "organization_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "View spend for a specific organization_id. Proxy admins may pass any organization; org admins are scoped to organizations they administer.",
|
|
"title": "Organization Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Response Get Organization Spend Report Organization Spend Report Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Organization Spend Report",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/organization/update": {
|
|
"patch": {
|
|
"description": "Update an organization",
|
|
"operationId": "update_organization_organization_update_patch",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Organization",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/otel-spans": {
|
|
"get": {
|
|
"operationId": "get_otel_spans_otel_spans_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Otel Spans"
|
|
}
|
|
},
|
|
"/plugin-proxy/{plugin_name}/{path}": {
|
|
"delete": {
|
|
"description": "Authenticated reverse-proxy to a registered plugin backend.\n\nRestricted to proxy_admin callers \u2014 the shared plugin_key must not be\nusable as a confused-deputy credential by regular users. Plugin UIs\ntalk to the plugin service directly via the iframe; this route is for\nadministrative and server-to-server access only.\n\nThe caller's litellm credential is stripped and replaced with the\nplugin's own plugin_key so plugins never receive a live litellm API key.",
|
|
"operationId": "plugin_proxy_plugin_proxy__plugin_name___path__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Plugin Proxy",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Authenticated reverse-proxy to a registered plugin backend.\n\nRestricted to proxy_admin callers \u2014 the shared plugin_key must not be\nusable as a confused-deputy credential by regular users. Plugin UIs\ntalk to the plugin service directly via the iframe; this route is for\nadministrative and server-to-server access only.\n\nThe caller's litellm credential is stripped and replaced with the\nplugin's own plugin_key so plugins never receive a live litellm API key.",
|
|
"operationId": "plugin_proxy_plugin_proxy__plugin_name___path__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Plugin Proxy",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
},
|
|
"head": {
|
|
"description": "Authenticated reverse-proxy to a registered plugin backend.\n\nRestricted to proxy_admin callers \u2014 the shared plugin_key must not be\nusable as a confused-deputy credential by regular users. Plugin UIs\ntalk to the plugin service directly via the iframe; this route is for\nadministrative and server-to-server access only.\n\nThe caller's litellm credential is stripped and replaced with the\nplugin's own plugin_key so plugins never receive a live litellm API key.",
|
|
"operationId": "plugin_proxy_plugin_proxy__plugin_name___path__head",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Plugin Proxy",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
},
|
|
"options": {
|
|
"description": "Authenticated reverse-proxy to a registered plugin backend.\n\nRestricted to proxy_admin callers \u2014 the shared plugin_key must not be\nusable as a confused-deputy credential by regular users. Plugin UIs\ntalk to the plugin service directly via the iframe; this route is for\nadministrative and server-to-server access only.\n\nThe caller's litellm credential is stripped and replaced with the\nplugin's own plugin_key so plugins never receive a live litellm API key.",
|
|
"operationId": "plugin_proxy_plugin_proxy__plugin_name___path__options",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Plugin Proxy",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "Authenticated reverse-proxy to a registered plugin backend.\n\nRestricted to proxy_admin callers \u2014 the shared plugin_key must not be\nusable as a confused-deputy credential by regular users. Plugin UIs\ntalk to the plugin service directly via the iframe; this route is for\nadministrative and server-to-server access only.\n\nThe caller's litellm credential is stripped and replaced with the\nplugin's own plugin_key so plugins never receive a live litellm API key.",
|
|
"operationId": "plugin_proxy_plugin_proxy__plugin_name___path__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Plugin Proxy",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Authenticated reverse-proxy to a registered plugin backend.\n\nRestricted to proxy_admin callers \u2014 the shared plugin_key must not be\nusable as a confused-deputy credential by regular users. Plugin UIs\ntalk to the plugin service directly via the iframe; this route is for\nadministrative and server-to-server access only.\n\nThe caller's litellm credential is stripped and replaced with the\nplugin's own plugin_key so plugins never receive a live litellm API key.",
|
|
"operationId": "plugin_proxy_plugin_proxy__plugin_name___path__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Plugin Proxy",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Authenticated reverse-proxy to a registered plugin backend.\n\nRestricted to proxy_admin callers \u2014 the shared plugin_key must not be\nusable as a confused-deputy credential by regular users. Plugin UIs\ntalk to the plugin service directly via the iframe; this route is for\nadministrative and server-to-server access only.\n\nThe caller's litellm credential is stripped and replaced with the\nplugin's own plugin_key so plugins never receive a live litellm API key.",
|
|
"operationId": "plugin_proxy_plugin_proxy__plugin_name___path__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "plugin_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Plugin Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "path",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Path",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Plugin Proxy",
|
|
"tags": [
|
|
"plugins"
|
|
]
|
|
}
|
|
},
|
|
"/policies": {
|
|
"post": {
|
|
"description": "Create a new policy.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies\" \\\n -H \"Authorization: Bearer <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Policy",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/attachments": {
|
|
"post": {
|
|
"description": "Create a new policy attachment.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/policies/attachments\" \\\n -H \"Authorization: Bearer <your_api_key>\" \\\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 <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyAttachmentDBResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Policy Attachment",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/attachments/estimate-impact": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AttachmentImpactResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Estimate Attachment Impact",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/attachments/list": {
|
|
"get": {
|
|
"description": "List all policy attachments from the database and config.yaml.\n\nConfig-defined attachments are returned with definition_location \"config\" and a\nsynthetic attachment_id (\"config-<index>\").\n\nExample Request:\n```bash\ncurl -X GET \"http://localhost:4000/policies/attachments/list\" \\\n -H \"Authorization: Bearer <your_api_key>\"\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyAttachmentListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Policy Attachments",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/attachments/{attachment_id}": {
|
|
"delete": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "attachment_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Attachment Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Policy Attachment",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
},
|
|
"get": {
|
|
"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 <your_api_key>\"\n```",
|
|
"operationId": "get_policy_attachment_policies_attachments__attachment_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "attachment_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Attachment Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyAttachmentDBResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Policy Attachment",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/compare": {
|
|
"get": {
|
|
"description": "Compare two policy versions. Query params: version_a, version_b (policy version IDs).",
|
|
"operationId": "compare_policy_versions_policies_compare_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "version_a",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Version A",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "version_b",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Version B",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyVersionCompareResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Compare Policy Versions",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/list": {
|
|
"get": {
|
|
"description": "List all policies from the database and config.yaml. Optionally filter by version_status.\n\nConfig-defined policies are returned with definition_location \"config\" and are treated\nas production versions. On a name conflict with a DB policy, only the DB policy is returned.\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 <your_api_key>\"\ncurl -X GET \"http://localhost:4000/policies/list?version_status=production\" \\\n -H \"Authorization: Bearer <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "version_status",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Version Status"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyListDBResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Policies",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/name/{policy_name}/all-versions": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete All Policy Versions",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/name/{policy_name}/versions": {
|
|
"get": {
|
|
"description": "List all versions of a policy by name, ordered by version_number descending.",
|
|
"operationId": "list_policy_versions_policies_name__policy_name__versions_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyVersionListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Policy Versions",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyVersionCreateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Policy Version",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/resolve": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"description": "Force a DB sync before resolving. Default uses in-memory cache.",
|
|
"in": "query",
|
|
"name": "force_sync",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"description": "Force a DB sync before resolving. Default uses in-memory cache.",
|
|
"title": "Force Sync",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyResolveRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyResolveResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Resolve Policies For Context",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/test-pipeline": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Pipeline",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/usage/overview": {
|
|
"get": {
|
|
"description": "Return policy performance overview for the dashboard.",
|
|
"operationId": "policies_usage_overview_policies_usage_overview_get",
|
|
"parameters": [
|
|
{
|
|
"description": "YYYY-MM-DD",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "YYYY-MM-DD",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UsageOverviewResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Policies Usage Overview",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/policies/{policy_id}": {
|
|
"delete": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Policy",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
},
|
|
"get": {
|
|
"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 <your_api_key>\"\n```",
|
|
"operationId": "get_policy_policies__policy_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Policy",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
},
|
|
"put": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyUpdateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Policy",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/{policy_id}/resolved-guardrails": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Resolved Guardrails",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policies/{policy_id}/status": {
|
|
"put": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyVersionStatusUpdateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyDBResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Policy Version Status",
|
|
"tags": [
|
|
"policy_engine"
|
|
]
|
|
}
|
|
},
|
|
"/policy/info/{policy_name}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "policy_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Policy Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyInfoResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Policy Info",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/policy/list": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Policies",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/policy/templates": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {},
|
|
"title": "Response Get Policy Templates Policy Templates Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Policy Templates",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/policy/templates/enrich": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Enrich Policy Template Policy Templates Enrich Post",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Enrich Policy Template",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/policy/templates/enrich/stream": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Enrich Policy Template Stream",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/policy/templates/suggest": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Suggest Policy Templates Policy Templates Suggest Post",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Suggest Policy Templates",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/policy/templates/test": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TestPolicyTemplateResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Policy Template",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/policy/test": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyTestResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Policy Matching",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/policy/validate": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PolicyValidationResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Validate Policy",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/project/delete": {
|
|
"delete": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_ProjectTable"
|
|
},
|
|
"title": "Response Delete Project Project Delete Delete",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Project",
|
|
"tags": [
|
|
"project management"
|
|
]
|
|
}
|
|
},
|
|
"/project/info": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "project_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Project Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_ProjectTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Project Info",
|
|
"tags": [
|
|
"project management"
|
|
]
|
|
}
|
|
},
|
|
"/project/list": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_ProjectTable"
|
|
},
|
|
"title": "Response List Projects Project List Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Projects",
|
|
"tags": [
|
|
"project management"
|
|
]
|
|
}
|
|
},
|
|
"/project/new": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewProjectResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New Project",
|
|
"tags": [
|
|
"project management"
|
|
]
|
|
}
|
|
},
|
|
"/project/update": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_ProjectTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Project",
|
|
"tags": [
|
|
"project management"
|
|
]
|
|
}
|
|
},
|
|
"/prompts": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Prompt",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
}
|
|
},
|
|
"/prompts/list": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "environment",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Environment"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListPromptsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Prompts",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
}
|
|
},
|
|
"/prompts/test": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Prompt",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
}
|
|
},
|
|
"/prompts/{prompt_id}": {
|
|
"delete": {
|
|
"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 <your_api_key>\"\n```\n\nExample Response:\n```json\n{\n \"message\": \"Prompt my_prompt_id deleted successfully\"\n}\n```",
|
|
"operationId": "delete_prompt_prompts__prompt_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "prompt_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Prompt Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "environment",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Environment"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Prompt",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
},
|
|
"get": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "prompt_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Prompt Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "environment",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Environment"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PromptInfoResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Prompt Info",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "prompt_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Prompt Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "environment",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Environment"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchPromptRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Patch Prompt",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
},
|
|
"put": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "prompt_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Prompt Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Prompt"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Prompt",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
}
|
|
},
|
|
"/prompts/{prompt_id}/info": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "prompt_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Prompt Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "environment",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Environment"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PromptInfoResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Prompt Info",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
}
|
|
},
|
|
"/prompts/{prompt_id}/versions": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "prompt_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Prompt Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "environment",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Environment"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListPromptsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Prompt Versions",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
}
|
|
},
|
|
"/provider/budgets": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ProviderBudgetResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Provider Budgets"
|
|
}
|
|
},
|
|
"/public/agent_hub": {
|
|
"get": {
|
|
"operationId": "get_agents_public_agent_hub_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentCard"
|
|
},
|
|
"title": "Response Get Agents Public Agent Hub Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Agents",
|
|
"tags": [
|
|
"[beta] Agents",
|
|
"public"
|
|
]
|
|
}
|
|
},
|
|
"/public/agents/fields": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentCreateInfo"
|
|
},
|
|
"title": "Response Get Agent Fields Public Agents Fields Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Agent Fields",
|
|
"tags": [
|
|
"public",
|
|
"[beta] Agents"
|
|
]
|
|
}
|
|
},
|
|
"/public/endpoints": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SupportedEndpointsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Supported Endpoints",
|
|
"tags": [
|
|
"public"
|
|
]
|
|
}
|
|
},
|
|
"/public/litellm_blog_posts": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BlogPostsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Litellm Blog Posts",
|
|
"tags": [
|
|
"public"
|
|
]
|
|
}
|
|
},
|
|
"/public/litellm_model_cost_map": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Litellm Model Cost Map",
|
|
"tags": [
|
|
"public",
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/public/mcp_hub": {
|
|
"get": {
|
|
"operationId": "get_mcp_servers_public_mcp_hub_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MCPPublicServer"
|
|
},
|
|
"title": "Response Get Mcp Servers Public Mcp Hub Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Mcp Servers",
|
|
"tags": [
|
|
"[beta] MCP",
|
|
"public"
|
|
]
|
|
}
|
|
},
|
|
"/public/model_hub": {
|
|
"get": {
|
|
"operationId": "public_model_hub_public_model_hub_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ModelGroupInfoProxy"
|
|
},
|
|
"title": "Response Public Model Hub Public Model Hub Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Public Model Hub",
|
|
"tags": [
|
|
"public",
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/public/model_hub/info": {
|
|
"get": {
|
|
"operationId": "public_model_hub_info_public_model_hub_info_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PublicModelHubInfo"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Public Model Hub Info",
|
|
"tags": [
|
|
"public",
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/public/providers": {
|
|
"get": {
|
|
"description": "Return a sorted list of all providers supported by LiteLLM.",
|
|
"operationId": "get_supported_providers_public_providers_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Response Get Supported Providers Public Providers Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Supported Providers",
|
|
"tags": [
|
|
"public",
|
|
"providers"
|
|
]
|
|
}
|
|
},
|
|
"/public/providers/fields": {
|
|
"get": {
|
|
"description": "Return provider metadata required by the dashboard create-model flow.",
|
|
"operationId": "get_provider_fields_public_providers_fields_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/ProviderCreateInfo"
|
|
},
|
|
"title": "Response Get Provider Fields Public Providers Fields Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Provider Fields",
|
|
"tags": [
|
|
"public",
|
|
"providers"
|
|
]
|
|
}
|
|
},
|
|
"/public/skill_hub": {
|
|
"get": {
|
|
"description": "Return enabled (public) Claude Code skills \u2014 no auth required.",
|
|
"operationId": "public_skill_hub_public_skill_hub_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Public Skill Hub",
|
|
"tags": [
|
|
"public",
|
|
"Claude Code Marketplace"
|
|
]
|
|
}
|
|
},
|
|
"/queue/chat/completions": {
|
|
"post": {
|
|
"operationId": "async_queue_request_queue_chat_completions_post",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Async Queue Request",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/rag/ingest": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Rag Ingest",
|
|
"tags": [
|
|
"rag"
|
|
]
|
|
}
|
|
},
|
|
"/rag/query": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Rag Query",
|
|
"tags": [
|
|
"rag"
|
|
]
|
|
}
|
|
},
|
|
"/realtime": {
|
|
"get": {
|
|
"description": "WebSocket connection endpoint",
|
|
"operationId": "websocket_realtime_websocket_endpoint_get",
|
|
"parameters": [],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket Protocol Switched"
|
|
}
|
|
},
|
|
"summary": "WebSocket: realtime_websocket_endpoint",
|
|
"tags": [
|
|
"WebSocket"
|
|
]
|
|
}
|
|
},
|
|
"/realtime/calls": {
|
|
"post": {
|
|
"operationId": "proxy_realtime_calls_realtime_calls_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Proxy Realtime Calls",
|
|
"tags": [
|
|
"realtime"
|
|
]
|
|
}
|
|
},
|
|
"/realtime/client_secrets": {
|
|
"post": {
|
|
"operationId": "create_realtime_client_secret_realtime_client_secrets_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RealtimeClientSecretResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Realtime Client Secret",
|
|
"tags": [
|
|
"realtime"
|
|
]
|
|
}
|
|
},
|
|
"/reload/anthropic_beta_headers": {
|
|
"post": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nManually reload the Anthropic beta headers configuration from the remote source.\nThis will fetch fresh configuration from the anthropic_beta_headers_config.json file.",
|
|
"operationId": "reload_anthropic_beta_headers_reload_anthropic_beta_headers_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Reload Anthropic Beta Headers",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/reload/model_cost_map": {
|
|
"post": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nManually reload the model cost map from the remote source.\nThis will fetch fresh pricing data from the model_prices_and_context_window.json file.",
|
|
"operationId": "reload_model_cost_map_reload_model_cost_map_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Reload Model Cost Map",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/rerank": {
|
|
"post": {
|
|
"operationId": "rerank_rerank_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Rerank",
|
|
"tags": [
|
|
"rerank"
|
|
]
|
|
}
|
|
},
|
|
"/responses": {
|
|
"get": {
|
|
"description": "WebSocket connection endpoint",
|
|
"operationId": "websocket_responses_websocket_endpoint_get",
|
|
"parameters": [],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket Protocol Switched"
|
|
}
|
|
},
|
|
"summary": "WebSocket: responses_websocket_endpoint",
|
|
"tags": [
|
|
"WebSocket"
|
|
]
|
|
},
|
|
"post": {
|
|
"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_responses_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Responses Api",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/responses/compact": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Compact Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/responses/{response_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/responses/{response_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/responses/{response_id}/input_items": {
|
|
"get": {
|
|
"description": "List input items for a response.",
|
|
"operationId": "get_response_input_items_responses__response_id__input_items_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Response Input Items",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/robots.txt": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Robots"
|
|
}
|
|
},
|
|
"/router/fields": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RouterFieldsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Router Fields",
|
|
"tags": [
|
|
"Router Settings"
|
|
]
|
|
}
|
|
},
|
|
"/router/settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RouterSettingsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Router Settings",
|
|
"tags": [
|
|
"Router Settings"
|
|
]
|
|
}
|
|
},
|
|
"/routes": {
|
|
"get": {
|
|
"description": "Get a list of available routes in the FastAPI application.",
|
|
"operationId": "get_routes_routes_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Routes"
|
|
}
|
|
},
|
|
"/schedule/anthropic_beta_headers_reload": {
|
|
"delete": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nCancel the scheduled periodic reload of the Anthropic beta headers configuration.",
|
|
"operationId": "cancel_anthropic_beta_headers_reload_schedule_anthropic_beta_headers_reload_delete",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Anthropic Beta Headers Reload",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nSchedule periodic reload of the Anthropic beta headers configuration.\nThis will create a background job that reloads the configuration every specified hours.",
|
|
"operationId": "schedule_anthropic_beta_headers_reload_schedule_anthropic_beta_headers_reload_post",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "hours",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Hours",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Schedule Anthropic Beta Headers Reload",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/schedule/anthropic_beta_headers_reload/status": {
|
|
"get": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nGet the status of the scheduled Anthropic beta headers reload job.",
|
|
"operationId": "get_anthropic_beta_headers_reload_status_schedule_anthropic_beta_headers_reload_status_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Anthropic Beta Headers Reload Status",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/schedule/model_cost_map_reload": {
|
|
"delete": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nCancel the scheduled periodic reload of the model cost map.",
|
|
"operationId": "cancel_model_cost_map_reload_schedule_model_cost_map_reload_delete",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Model Cost Map Reload",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nSchedule periodic reload of the model cost map.\nThis will create a background job that reloads the model cost map every specified hours.",
|
|
"operationId": "schedule_model_cost_map_reload_schedule_model_cost_map_reload_post",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "hours",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Hours",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Schedule Model Cost Map Reload",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/schedule/model_cost_map_reload/status": {
|
|
"get": {
|
|
"description": "ADMIN ONLY / MASTER KEY Only Endpoint\n\nGet the status of the scheduled model cost map reload job.",
|
|
"operationId": "get_model_cost_map_reload_status_schedule_model_cost_map_reload_status_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Model Cost Map Reload Status",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Scim Base",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/Groups": {
|
|
"get": {
|
|
"description": "Get a list of groups according to SCIM v2 protocol",
|
|
"operationId": "get_groups_scim_v2_Groups_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "startIndex",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"minimum": 1,
|
|
"title": "Startindex",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "count",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Count",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Filter"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Groups",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create a group according to SCIM v2 protocol",
|
|
"operationId": "create_group_scim_v2_Groups_post",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMGroup"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMGroup"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Group",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/Groups/{group_id}": {
|
|
"delete": {
|
|
"description": "Delete a group according to SCIM v2 protocol",
|
|
"operationId": "delete_group_scim_v2_Groups__group_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Group ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Group",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Get a single group by ID according to SCIM v2 protocol",
|
|
"operationId": "get_group_scim_v2_Groups__group_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Group ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMGroup"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Group",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "Patch a group according to SCIM v2 protocol",
|
|
"operationId": "patch_group_scim_v2_Groups__group_id__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Group ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMPatchOp"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMGroup"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Patch Group",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Update a group according to SCIM v2 protocol",
|
|
"operationId": "update_group_scim_v2_Groups__group_id__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Group ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMGroup"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMGroup"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Group",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/ResourceTypes": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Resource Types",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/ResourceTypes/{resource_type_id}": {
|
|
"get": {
|
|
"description": "Get a single ResourceType by ID per RFC 7644.",
|
|
"operationId": "get_resource_type_scim_v2_ResourceTypes__resource_type_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "resource_type_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "ResourceType ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Resource Type",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/Schemas": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Schemas",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/Schemas/{schema_id}": {
|
|
"get": {
|
|
"description": "Get a single Schema by its URI per RFC 7643 Section 7.",
|
|
"operationId": "get_schema_scim_v2_Schemas__schema_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "schema_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Schema URI",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Schema",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/ServiceProviderConfig": {
|
|
"get": {
|
|
"description": "Return SCIM Service Provider Configuration.",
|
|
"operationId": "get_service_provider_config_scim_v2_ServiceProviderConfig_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMServiceProviderConfig"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Service Provider Config",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/Users": {
|
|
"get": {
|
|
"description": "Get a list of users according to SCIM v2 protocol",
|
|
"operationId": "get_users_scim_v2_Users_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "startIndex",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"minimum": 1,
|
|
"title": "Startindex",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "count",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Count",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Filter"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Users",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create a user according to SCIM v2 protocol",
|
|
"operationId": "create_user_scim_v2_Users_post",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMUser"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMUser"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create User",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/scim/v2/Users/{user_id}": {
|
|
"delete": {
|
|
"description": "Delete a user according to SCIM v2 protocol",
|
|
"operationId": "delete_user_scim_v2_Users__user_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "user_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete User",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Get a single user by ID according to SCIM v2 protocol",
|
|
"operationId": "get_user_scim_v2_Users__user_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "user_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMUser"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get User",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "Patch a user according to SCIM v2 protocol",
|
|
"operationId": "patch_user_scim_v2_Users__user_id__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "user_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMPatchOp"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMUser"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Patch User",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Update a user according to SCIM v2 protocol (full replacement)",
|
|
"operationId": "update_user_scim_v2_Users__user_id__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "user_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "User ID",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "feature",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Feature"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMUser"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SCIMUser"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update User",
|
|
"tags": [
|
|
"scim"
|
|
]
|
|
}
|
|
},
|
|
"/search": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "search_tool_name",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tool Name"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Search",
|
|
"tags": [
|
|
"search"
|
|
]
|
|
}
|
|
},
|
|
"/search/tools": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Search Tools",
|
|
"tags": [
|
|
"search"
|
|
]
|
|
}
|
|
},
|
|
"/search/{search_tool_name}": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "search_tool_name",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tool Name"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Search",
|
|
"tags": [
|
|
"search"
|
|
]
|
|
}
|
|
},
|
|
"/search_tools": {
|
|
"post": {
|
|
"description": "Create a new search tool.\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/search_tools\" \\\n -H \"Authorization: Bearer <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Search Tool",
|
|
"tags": [
|
|
"search_tools"
|
|
]
|
|
}
|
|
},
|
|
"/search_tools/list": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListSearchToolsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Search Tools",
|
|
"tags": [
|
|
"search_tools"
|
|
]
|
|
}
|
|
},
|
|
"/search_tools/test_connection": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Search Tool Connection",
|
|
"tags": [
|
|
"search_tools"
|
|
]
|
|
}
|
|
},
|
|
"/search_tools/ui/available_providers": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Available Search Providers",
|
|
"tags": [
|
|
"search_tools"
|
|
]
|
|
}
|
|
},
|
|
"/search_tools/{search_tool_id}": {
|
|
"delete": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "search_tool_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Search Tool Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Search Tool",
|
|
"tags": [
|
|
"search_tools"
|
|
]
|
|
},
|
|
"get": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "search_tool_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Search Tool Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Search Tool Info",
|
|
"tags": [
|
|
"search_tools"
|
|
]
|
|
},
|
|
"put": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "search_tool_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Search Tool Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateSearchToolRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Search Tool",
|
|
"tags": [
|
|
"search_tools"
|
|
]
|
|
}
|
|
},
|
|
"/settings": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Active Callbacks",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/spend/calculate": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"cost": {
|
|
"description": "The calculated cost",
|
|
"example": 0.0,
|
|
"type": "number"
|
|
}
|
|
},
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "The calculated cost"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Calculate Spend",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/spend/keys": {
|
|
"get": {
|
|
"description": "View keys created, ordered by spend.\n\n- Admin callers (PROXY_ADMIN / PROXY_ADMIN_VIEW_ONLY) see every key in\n the database.\n- All other callers (INTERNAL_USER / INTERNAL_USER_VIEW_ONLY, etc.) are\n scoped to keys they own (``user_id == caller``). A caller with no\n ``user_id`` has no scope and receives an empty list rather than the\n full table.\n\nExample Request:\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/keys\" -H \"Authorization: Bearer sk-1234\"\n```",
|
|
"operationId": "spend_key_fn_spend_keys_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Spend Key Fn",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/spend/logs": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Get spend logs based on api key",
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"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 user_id",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Get spend logs based on user_id",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "request_id to get spend logs for specific request_id. If none passed then pass spend logs for all requests",
|
|
"in": "query",
|
|
"name": "request_id",
|
|
"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": "Time from which to start viewing key spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing key spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view key spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view key spend",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "When start_date and end_date are provided, summarize=true returns aggregated data by date (legacy behavior), summarize=false returns filtered individual logs",
|
|
"in": "query",
|
|
"name": "summarize",
|
|
"required": false,
|
|
"schema": {
|
|
"default": true,
|
|
"description": "When start_date and end_date are provided, summarize=true returns aggregated data by date (legacy behavior), summarize=false returns filtered individual logs",
|
|
"title": "Summarize",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 View Spend Logs Spend Logs Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "View Spend Logs",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/spend/logs/session/ui": {
|
|
"get": {
|
|
"description": "Get paginated spend logs for a particular session.\n\nReturns:\n {\n \"data\": List[LiteLLM_SpendLogs],\n \"total\": int,\n \"page\": int,\n \"page_size\": int,\n \"total_pages\": int,\n }",
|
|
"operationId": "ui_view_session_spend_logs_spend_logs_session_ui_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Get all spend logs for a particular session",
|
|
"in": "query",
|
|
"name": "session_id",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Get all spend logs for a particular session",
|
|
"title": "Session Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number for pagination",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number for pagination",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of items per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Number of items per page",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Ui View Session Spend Logs Spend Logs Session Ui Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ui View Session Spend Logs",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/spend/logs/ui": {
|
|
"get": {
|
|
"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_ui_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Get spend logs based on api key",
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"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 user_id",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Get spend logs based on user_id",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "request_id to get spend logs for specific request_id",
|
|
"in": "query",
|
|
"name": "request_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "request_id to get spend logs for specific request_id",
|
|
"title": "Request Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter spend logs by session_id (partial string match)",
|
|
"in": "query",
|
|
"name": "session_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter spend logs by session_id (partial string match)",
|
|
"title": "Session Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter spend logs by team_id",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter spend logs by team_id",
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs with spend greater than or equal to this value",
|
|
"in": "query",
|
|
"name": "min_spend",
|
|
"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 less than or equal to this value",
|
|
"in": "query",
|
|
"name": "max_spend",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs with spend less than or equal to this value",
|
|
"title": "Max Spend"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time from which to start viewing key spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing key spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view key spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view key spend",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number for pagination",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number for pagination",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of items per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Number of items per page",
|
|
"maximum": 1000,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by status (e.g., success, failure)",
|
|
"in": "query",
|
|
"name": "status_filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by status (e.g., success, failure)",
|
|
"title": "Status Filter"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by model",
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by model",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by model ID (litellm model deployment id)",
|
|
"in": "query",
|
|
"name": "model_id",
|
|
"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 group",
|
|
"in": "query",
|
|
"name": "model_group",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by model group",
|
|
"title": "Model Group"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by key alias",
|
|
"in": "query",
|
|
"name": "key_alias",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by key alias",
|
|
"title": "Key Alias"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by end user",
|
|
"in": "query",
|
|
"name": "end_user",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by end user",
|
|
"title": "End User"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by error code (e.g., '404', '500')",
|
|
"in": "query",
|
|
"name": "error_code",
|
|
"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 message (partial string match)",
|
|
"in": "query",
|
|
"name": "error_message",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by error message (partial string match)",
|
|
"title": "Error Message"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort logs by field: spend, total_tokens, startTime, endTime, request_duration_ms, model, or ttft_ms",
|
|
"in": "query",
|
|
"name": "sort_by",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "startTime",
|
|
"description": "Sort logs by field: spend, total_tokens, startTime, endTime, request_duration_ms, model, or ttft_ms",
|
|
"title": "Sort By",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort order: asc or desc",
|
|
"in": "query",
|
|
"name": "sort_order",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "desc",
|
|
"description": "Sort order: asc or desc",
|
|
"title": "Sort Order"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 Ui View Spend Logs Spend Logs Ui Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ui View Spend Logs",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/spend/logs/ui/{request_id}": {
|
|
"get": {
|
|
"description": "View request / response for a specific request_id\n\n- goes through all callbacks, checks if any of them have a @property -> has_request_response_payload\n- if so, it will return the request and response payload",
|
|
"operationId": "ui_view_request_response_for_request_id_spend_logs_ui__request_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "request_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Request Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time from which to start viewing key spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing key spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view key spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view key spend",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ui View Request Response For Request Id",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/spend/logs/v2": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Get spend logs based on api key",
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"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 user_id",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Get spend logs based on user_id",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "request_id to get spend logs for specific request_id",
|
|
"in": "query",
|
|
"name": "request_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "request_id to get spend logs for specific request_id",
|
|
"title": "Request Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter spend logs by session_id (partial string match)",
|
|
"in": "query",
|
|
"name": "session_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter spend logs by session_id (partial string match)",
|
|
"title": "Session Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter spend logs by team_id",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter spend logs by team_id",
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs with spend greater than or equal to this value",
|
|
"in": "query",
|
|
"name": "min_spend",
|
|
"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 less than or equal to this value",
|
|
"in": "query",
|
|
"name": "max_spend",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs with spend less than or equal to this value",
|
|
"title": "Max Spend"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time from which to start viewing key spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing key spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view key spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view key spend",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number for pagination",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number for pagination",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of items per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Number of items per page",
|
|
"maximum": 1000,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by status (e.g., success, failure)",
|
|
"in": "query",
|
|
"name": "status_filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by status (e.g., success, failure)",
|
|
"title": "Status Filter"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by model",
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by model",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by model ID (litellm model deployment id)",
|
|
"in": "query",
|
|
"name": "model_id",
|
|
"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 group",
|
|
"in": "query",
|
|
"name": "model_group",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by model group",
|
|
"title": "Model Group"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by key alias",
|
|
"in": "query",
|
|
"name": "key_alias",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by key alias",
|
|
"title": "Key Alias"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by end user",
|
|
"in": "query",
|
|
"name": "end_user",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by end user",
|
|
"title": "End User"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter logs by error code (e.g., '404', '500')",
|
|
"in": "query",
|
|
"name": "error_code",
|
|
"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 message (partial string match)",
|
|
"in": "query",
|
|
"name": "error_message",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter logs by error message (partial string match)",
|
|
"title": "Error Message"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort logs by field: spend, total_tokens, startTime, endTime, request_duration_ms, model, or ttft_ms",
|
|
"in": "query",
|
|
"name": "sort_by",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "startTime",
|
|
"description": "Sort logs by field: spend, total_tokens, startTime, endTime, request_duration_ms, model, or ttft_ms",
|
|
"title": "Sort By",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort order: asc or desc",
|
|
"in": "query",
|
|
"name": "sort_order",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "desc",
|
|
"description": "Sort order: asc or desc",
|
|
"title": "Sort Order"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response 200 Ui View Spend Logs Spend Logs V2 Get",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ui View Spend Logs",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/spend/tags": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing key spend",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing key spend",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view key spend",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view key spend",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_SpendLogs"
|
|
},
|
|
"title": "Response 200 View Spend Tags Spend Tags Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "View Spend Tags",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/spend/users": {
|
|
"get": {
|
|
"description": "View users created, ordered by spend.\n\n- Admin callers (PROXY_ADMIN / PROXY_ADMIN_VIEW_ONLY) see every user, or\n a specific user when ``user_id`` is supplied.\n- All other callers may only read their own row. If they supply a\n ``user_id`` query parameter that does not match their authenticated\n ``user_id`` the request is rejected with HTTP 403; supplying their\n own id (or none at all) returns just their row. A caller with no\n ``user_id`` on their key has no scope and receives an empty list\n rather than the full table.\n\nExample Request:\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/users\" -H \"Authorization: Bearer sk-1234\"\n```\n\nView User Table row for user_id\n```\ncurl -X GET \"http://0.0.0.0:8000/spend/users?user_id=1234\" -H \"Authorization: Bearer sk-1234\"\n```",
|
|
"operationId": "spend_user_fn_spend_users_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Get User Table row for user_id",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Get User Table row for user_id",
|
|
"title": "User Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Spend User Fn",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/sso/callback": {
|
|
"get": {
|
|
"description": "Verify login",
|
|
"operationId": "auth_callback_sso_callback_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "state",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "State"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Auth Callback",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/cli/complete/{login_id}": {
|
|
"post": {
|
|
"operationId": "cli_sso_complete_sso_cli_complete__login_id__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "login_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Login Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Cli Sso Complete",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/cli/poll/{key_id}": {
|
|
"get": {
|
|
"description": "CLI polling endpoint - retrieves session from cache and generates JWT.\n\nFlow:\n1. First poll (no team_id): Returns teams list without generating JWT\n2. Second poll (with team_id): Generates JWT with selected team and deletes session\n\nArgs:\n key_id: The CLI login session ID\n team_id: Optional team ID to assign to the JWT. If provided, must be one of user's teams.",
|
|
"operationId": "cli_poll_key_sso_cli_poll__key_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "key_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Key Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "header",
|
|
"name": "x-litellm-cli-poll-secret",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "X-Litellm-Cli-Poll-Secret"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Cli Poll Key",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/cli/start": {
|
|
"post": {
|
|
"operationId": "cli_sso_start_sso_cli_start_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Cli Sso Start",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/debug/callback": {
|
|
"get": {
|
|
"description": "Returns the OpenID object returned by the SSO provider",
|
|
"operationId": "debug_sso_callback_sso_debug_callback_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Debug Sso Callback",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/debug/login": {
|
|
"get": {
|
|
"description": "Create Proxy API Keys using Google Workspace SSO. Requires setting PROXY_BASE_URL in .env\nPROXY_BASE_URL should be the your deployed proxy endpoint, e.g. PROXY_BASE_URL=\"https://litellm-production-7002.up.railway.app/\"\nExample:",
|
|
"operationId": "debug_sso_login_sso_debug_login_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Debug Sso Login",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/get/ui_settings": {
|
|
"get": {
|
|
"operationId": "get_ui_settings_sso_get_ui_settings_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Ui Settings",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/key/generate": {
|
|
"get": {
|
|
"description": "Create Proxy API Keys using Google Workspace SSO. Requires setting PROXY_BASE_URL in .env\nPROXY_BASE_URL should be the your deployed proxy endpoint, e.g. PROXY_BASE_URL=\"https://litellm-production-7002.up.railway.app/\"\nExample:",
|
|
"operationId": "google_login_sso_key_generate_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "source",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Source"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "existing_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Existing Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "return_to",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Return To"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "user_code",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "User Code"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Google Login",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/readiness": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Sso Readiness",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/saml/callback": {
|
|
"post": {
|
|
"description": "Assertion Consumer Service. Validates the IdP assertion and issues a UI session.",
|
|
"operationId": "saml_callback_sso_saml_callback_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Saml Callback",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/saml/login": {
|
|
"get": {
|
|
"description": "SP-initiated SAML login. Redirects the user to the configured IdP.",
|
|
"operationId": "saml_login_sso_saml_login_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "return_to",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Return To"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Saml Login",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/sso/saml/metadata": {
|
|
"get": {
|
|
"description": "Service Provider metadata XML, for registering this proxy at the IdP.",
|
|
"operationId": "saml_metadata_sso_saml_metadata_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Saml Metadata",
|
|
"tags": [
|
|
"experimental"
|
|
]
|
|
}
|
|
},
|
|
"/tag/daily/activity": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "tags",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Tags"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Tag Daily Activity",
|
|
"tags": [
|
|
"tag management"
|
|
]
|
|
}
|
|
},
|
|
"/tag/dau": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter by specific tag (optional)",
|
|
"in": "query",
|
|
"name": "tag_filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific tag (optional)",
|
|
"title": "Tag Filter"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"in": "query",
|
|
"name": "tag_filters",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"title": "Tag Filters"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ActiveUsersAnalyticsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Daily Active Users",
|
|
"tags": [
|
|
"tag management",
|
|
"user agent analytics"
|
|
]
|
|
}
|
|
},
|
|
"/tag/delete": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Tag",
|
|
"tags": [
|
|
"tag management"
|
|
]
|
|
}
|
|
},
|
|
"/tag/distinct": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DistinctTagsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Distinct User Agent Tags",
|
|
"tags": [
|
|
"tag management",
|
|
"user agent analytics"
|
|
]
|
|
}
|
|
},
|
|
"/tag/info": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Info Tag",
|
|
"tags": [
|
|
"tag management"
|
|
]
|
|
}
|
|
},
|
|
"/tag/list": {
|
|
"get": {
|
|
"description": "List all available tags with their budget information.",
|
|
"operationId": "list_tags_tag_list_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Optional start date (YYYY-MM-DD). When provided together with end_date, dynamic tags are limited to those active in the window. Stored tags are always returned.",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional start date (YYYY-MM-DD). When provided together with end_date, dynamic tags are limited to those active in the window. Stored tags are always returned.",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Optional end date (YYYY-MM-DD). Must be given with start_date.",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Optional end date (YYYY-MM-DD). Must be given with start_date.",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Tags",
|
|
"tags": [
|
|
"tag management"
|
|
]
|
|
}
|
|
},
|
|
"/tag/mau": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter by specific tag (optional)",
|
|
"in": "query",
|
|
"name": "tag_filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific tag (optional)",
|
|
"title": "Tag Filter"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"in": "query",
|
|
"name": "tag_filters",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"title": "Tag Filters"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ActiveUsersAnalyticsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Monthly Active Users",
|
|
"tags": [
|
|
"tag management",
|
|
"user agent analytics"
|
|
]
|
|
}
|
|
},
|
|
"/tag/new": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New Tag",
|
|
"tags": [
|
|
"tag management"
|
|
]
|
|
}
|
|
},
|
|
"/tag/summary": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Start date in YYYY-MM-DD format",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "Start date in YYYY-MM-DD format",
|
|
"title": "Start Date",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "End date in YYYY-MM-DD format",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "End date in YYYY-MM-DD format",
|
|
"title": "End Date",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by specific tag (optional)",
|
|
"in": "query",
|
|
"name": "tag_filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific tag (optional)",
|
|
"title": "Tag Filter"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"in": "query",
|
|
"name": "tag_filters",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"title": "Tag Filters"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TagSummaryResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Tag Summary",
|
|
"tags": [
|
|
"tag management",
|
|
"user agent analytics"
|
|
]
|
|
}
|
|
},
|
|
"/tag/update": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Tag",
|
|
"tags": [
|
|
"tag management"
|
|
]
|
|
}
|
|
},
|
|
"/tag/user-agent/per-user-analytics": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter by specific tag (optional)",
|
|
"in": "query",
|
|
"name": "tag_filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific tag (optional)",
|
|
"title": "Tag Filter"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"in": "query",
|
|
"name": "tag_filters",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"title": "Tag Filters"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number for pagination",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number for pagination",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Items per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Items per page",
|
|
"maximum": 1000,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PerUserAnalyticsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Per User Analytics",
|
|
"tags": [
|
|
"tag management",
|
|
"user agent analytics"
|
|
]
|
|
}
|
|
},
|
|
"/tag/wau": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter by specific tag (optional)",
|
|
"in": "query",
|
|
"name": "tag_filter",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific tag (optional)",
|
|
"title": "Tag Filter"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"in": "query",
|
|
"name": "tag_filters",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by multiple specific tags (optional, takes precedence over tag_filter)",
|
|
"title": "Tag Filters"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ActiveUsersAnalyticsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Weekly Active Users",
|
|
"tags": [
|
|
"tag management",
|
|
"user agent analytics"
|
|
]
|
|
}
|
|
},
|
|
"/team/available": {
|
|
"get": {
|
|
"operationId": "list_available_teams_team_available_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "response_model",
|
|
"required": false,
|
|
"schema": {
|
|
"title": "Response Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Available Teams"
|
|
}
|
|
},
|
|
"/team/block": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Block Team",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/bulk_member_add": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkTeamMemberAddResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bulk Team Member Add",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/daily/activity": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "team_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Ids"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "exclude_team_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Exclude Team Ids"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Team Daily Activity",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/delete": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteTeamRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Team",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/filter/ui": {
|
|
"get": {
|
|
"description": "[PROXY-ADMIN ONLY] Filter teams based on partial match of team_id or team_alias with pagination.\n\nArgs:\n user_id (Optional[str]): Partial user ID to search for\n user_email (Optional[str]): Partial email to search for\n page (int): Page number for pagination (starts at 1)\n page_size (int): Number of items per page (max 100)\n user_api_key_dict (UserAPIKeyAuth): User authentication information\n\nReturns:\n List[LiteLLM_SpendLogs]: Paginated list of matching user records",
|
|
"operationId": "ui_view_teams_team_filter_ui_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Team ID in the request parameters",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Team ID in the request parameters",
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Team alias in the request parameters",
|
|
"in": "query",
|
|
"name": "team_alias",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Team alias in the request parameters",
|
|
"title": "Team Alias"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number for pagination",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number for pagination",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of items per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Number of items per page",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_TeamTable"
|
|
},
|
|
"title": "Response 200 Ui View Teams Team Filter Ui Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ui View Teams",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/info": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Team ID in the request parameters",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"description": "Team ID in the request parameters",
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Limit the number of keys returned",
|
|
"in": "query",
|
|
"name": "key_limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"exclusiveMinimum": 0,
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Limit the number of keys returned",
|
|
"title": "Key Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Team Info",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/key/bulk_update": {
|
|
"post": {
|
|
"description": "Apply one update payload to many keys inside a single team.\n\nPass `team_id` plus either `key_ids` or `all_keys_in_team=True`. The\n`update_fields` payload is broadcast to every selected key. Per-key\nfailures are returned in `failed_updates` rather than aborting the batch.\n\nCallable by proxy admins, or by team admins with `KEY_UPDATE` permission.",
|
|
"operationId": "bulk_update_team_keys_team_key_bulk_update_post",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateTeamKeysRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateKeyResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bulk Update Team Keys",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/team/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Only return teams which this 'user_id' belongs to",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Only return teams which this 'user_id' belongs to",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "organization_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Organization Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Team",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/member_add": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TeamAddMemberResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Team Member Add",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/member_delete": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Team Member Delete",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/member_update": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TeamMemberUpdateResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Team Member Update",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/metadata_schema": {
|
|
"get": {
|
|
"description": "Get the team metadata fields declared in ``general_settings.team_metadata_schema``.\n\nThe UI uses this to prepopulate the team metadata form with the declared\nkeys. Returns an empty ``fields`` list when no schema is configured. This\nschema is advisory; server-side enforcement stays with\n``custom_team_metadata_validate``.",
|
|
"operationId": "get_team_metadata_schema_team_metadata_schema_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TeamMetadataSchemaResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Team Metadata Schema",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/model/add": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Team Model Add",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/model/delete": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Team Model Delete",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/new": {
|
|
"post": {
|
|
"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\": \"<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- mcp_rpm_limit: Optional[Dict[str, int]] - Per-MCP-server RPM limit for this team, keyed by MCP server name (alias if set, else the configured name). Example: {\"github\": 100, \"slack\": 200}. 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\": {\"gpt-4\": {\"RateLimitErrorRetries\": 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- budget_limits: Optional[list] - List of concurrent budget windows for the team. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{\"budget_limit\": 10.0, \"time_period\": \"1d\"}, {\"budget_limit\": 50.0, \"time_period\": \"7d\"}].\n- default_team_member_models: Optional[List[str]] - Default models assigned to new team members when they join this team. Must be a subset of the team's models.\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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewTeamRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_TeamTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New Team",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/permissions_bulk_update": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateTeamMemberPermissionsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bulk Update Team Member Permissions",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/permissions_list": {
|
|
"get": {
|
|
"description": "Get the team member permissions for a team",
|
|
"operationId": "team_member_permissions_team_permissions_list_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Team ID in the request parameters",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"description": "Team ID in the request parameters",
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/GetTeamMemberPermissionsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Team Member Permissions",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/permissions_update": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_TeamTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Team Member Permissions",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/spend/report": {
|
|
"get": {
|
|
"description": "Get spend for the calling key's team over a date range, grouped by api_key with a per-model breakdown.\n\nCallable by any key that belongs to a team: non-admin callers are always\nscoped to their key's team_id, while proxy admins may pass `?team_id=` to\nview any team.",
|
|
"operationId": "get_team_spend_report_team_spend_report_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend (YYYY-MM-DD)",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend (YYYY-MM-DD)",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend (YYYY-MM-DD)",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend (YYYY-MM-DD)",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "View spend for a specific team_id. Proxy admin only; other callers are scoped to their key's team.",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "View spend for a specific team_id. Proxy admin only; other callers are scoped to their key's team.",
|
|
"title": "Team Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Response Get Team Spend Report Team Spend Report Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Team Spend Report",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/team/unblock": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Unblock Team",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/update": {
|
|
"post": {
|
|
"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}\n- mcp_rpm_limit: Optional[Dict[str, int]] - Per-MCP-server RPM limit for this team, keyed by MCP server name (alias if set, else the configured name). Example: {\"github\": 100, \"slack\": 200}. Applied across all keys for this team.\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\": {\"gpt-4\": {\"RateLimitErrorRetries\": 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- budget_limits: Optional[list] - List of concurrent budget windows for the team. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{\"budget_limit\": 10.0, \"time_period\": \"1d\"}, {\"budget_limit\": 50.0, \"time_period\": \"7d\"}].\n- default_team_member_models: Optional[List[str]] - Default models assigned to new team members when they join this team. Must be a subset of the team's models.\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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateTeamRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Team",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/{team_id}": {
|
|
"patch": {
|
|
"description": "Partially update a team using RFC 7386 JSON Merge Patch semantics.\n\n`team_id` is taken from the path; a `team_id` in the body is accepted only when it\nmatches. `metadata` is merged with the team's stored metadata rather than replacing\nit: an omitted key is preserved, `key: null` deletes it, and any other value\noverwrites (recursing into nested objects). Every other field behaves exactly like\n`POST /team/update` (omitted preserves, a value overwrites). Returns the full\nupdated team.\n\n```\ncurl --location --request PATCH 'http://0.0.0.0:4000/team/8d916b1c-510d-4894-a334-1c16a93344f5' --header 'Authorization: Bearer sk-1234' --header 'Content-Type: application/json' --data-raw '{\n \"metadata\": {\"cost_center\": \"1234\", \"deprecated_key\": null}\n}'\n```",
|
|
"operationId": "patch_team_team__team_id__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "team_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchTeamRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_TeamTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Patch Team",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/{team_id}/callback": {
|
|
"get": {
|
|
"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\nCovers callbacks registered through POST /team/{team_id}/callback and the Admin UI as well as\nteams still on the deprecated callback_settings shape, resolved from the team's stored metadata\nwith the same precedence used at request time. A key-level logging config overrides the team's\nat request time and is not reflected here. Credential-bearing callback_vars are returned masked\nas `***REDACTED***`\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "team_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Team Callbacks",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "team_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AddTeamCallback"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Add Team Callbacks",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/{team_id}/disable_logging": {
|
|
"post": {
|
|
"description": "Disable all logging callbacks for a team\n\nCallbacks registered through POST /team/{team_id}/callback and the Admin UI are cleared, so\nre-enabling logging means registering them again with their callback_vars\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "team_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Disable Team Logging",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/team/{team_id}/members/me": {
|
|
"get": {
|
|
"description": "Get the caller's own team-membership row for the given team.\n\nUsed by internal users to view their own spend, budget, budget reset\ndate, rate limits, and role within a team \u2014 without exposing other\nmembers' data. The caller is resolved from their API key; the path\n`/members/me` always refers to that caller.\n\nReturns 404 if the caller is not a member of the team.\n\n```\ncurl --location 'http://localhost:4000/team/your_team_id/members/me' --header 'Authorization: Bearer your_api_key_here'\n```",
|
|
"operationId": "team_member_me_team__team_id__members_me_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "team_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Team Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TeamMemberInfoResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Team Member Me",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/test": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Endpoint",
|
|
"tags": [
|
|
"health"
|
|
]
|
|
}
|
|
},
|
|
"/threads": {
|
|
"post": {
|
|
"description": "Create a thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/threads/createThread",
|
|
"operationId": "create_threads_threads_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Threads",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/threads/{thread_id}": {
|
|
"get": {
|
|
"description": "Retrieves a thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/threads/getThread",
|
|
"operationId": "get_thread_threads__thread_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "thread_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Thread Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Thread",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/threads/{thread_id}/messages": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "thread_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Thread Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Messages",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create a message.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/messages/createMessage",
|
|
"operationId": "add_messages_threads__thread_id__messages_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "thread_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Thread Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Add Messages",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/threads/{thread_id}/runs": {
|
|
"post": {
|
|
"description": "Create a run.\n\nAPI Reference: https://platform.openai.com/docs/api-reference/runs/createRun",
|
|
"operationId": "run_thread_threads__thread_id__runs_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "thread_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Thread Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Run Thread",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/toolset/{toolset_name}/mcp": {
|
|
"delete": {
|
|
"description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset/<name>/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_delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Toolset Mcp Route"
|
|
},
|
|
"get": {
|
|
"description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset/<name>/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_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Toolset Mcp Route"
|
|
},
|
|
"head": {
|
|
"description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset/<name>/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_head",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Toolset Mcp Route"
|
|
},
|
|
"options": {
|
|
"description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset/<name>/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_options",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Toolset Mcp Route"
|
|
},
|
|
"patch": {
|
|
"description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset/<name>/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": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Toolset Mcp Route"
|
|
},
|
|
"post": {
|
|
"description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset/<name>/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_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Toolset Mcp Route"
|
|
},
|
|
"put": {
|
|
"description": "Namespace a toolset as its own MCP endpoint.\n\nConnecting to /toolset/<name>/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_put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Toolset Mcp Route"
|
|
}
|
|
},
|
|
"/update/default_team_settings": {
|
|
"patch": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Default Team Settings",
|
|
"tags": [
|
|
"SSO Settings"
|
|
]
|
|
}
|
|
},
|
|
"/update/internal_user_settings": {
|
|
"patch": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Internal User Settings",
|
|
"tags": [
|
|
"SSO Settings"
|
|
]
|
|
}
|
|
},
|
|
"/update/mcp_semantic_filter_settings": {
|
|
"patch": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Mcp Semantic Filter Settings",
|
|
"tags": [
|
|
"Settings"
|
|
]
|
|
}
|
|
},
|
|
"/update/sso_settings": {
|
|
"patch": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Sso Settings",
|
|
"tags": [
|
|
"SSO Settings"
|
|
]
|
|
}
|
|
},
|
|
"/update/ui_settings": {
|
|
"patch": {
|
|
"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": {
|
|
"additionalProperties": true,
|
|
"title": "Settings Body",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Ui Settings",
|
|
"tags": [
|
|
"UI Settings"
|
|
]
|
|
}
|
|
},
|
|
"/update/ui_theme_settings": {
|
|
"patch": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Ui Theme Settings",
|
|
"tags": [
|
|
"UI Theme Settings"
|
|
]
|
|
}
|
|
},
|
|
"/update/user_banner": {
|
|
"patch": {
|
|
"description": "Publish, edit, or unpublish the dashboard banner.\nOnly proxy admins are allowed to modify it.",
|
|
"operationId": "update_user_banner_update_user_banner_patch",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserBannerUpdate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserBannerResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update User Banner",
|
|
"tags": [
|
|
"UI Settings"
|
|
]
|
|
}
|
|
},
|
|
"/upload/logo": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Upload Logo",
|
|
"tags": [
|
|
"UI Theme Settings"
|
|
]
|
|
}
|
|
},
|
|
"/usage/ai/chat": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Usage Ai Chat",
|
|
"tags": [
|
|
"usage_ai"
|
|
]
|
|
}
|
|
},
|
|
"/user/available_roles": {
|
|
"get": {
|
|
"description": "Endpoint used by Admin UI to show all available roles to assign a user\nreturn {\n \"proxy_admin\": {\n \"description\": \"Proxy Admin role\",\n \"ui_label\": \"Admin\"\n }\n}",
|
|
"operationId": "ui_get_available_role_user_available_roles_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ui Get Available Role",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/available_users": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Available Enterprise Users",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/bulk_update": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateUserRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/BulkUpdateUserResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Bulk User Update",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/daily/activity": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Start date in YYYY-MM-DD format",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Start date in YYYY-MM-DD format",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "End date in YYYY-MM-DD format",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "End date in YYYY-MM-DD format",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by specific model",
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific model",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by specific API key",
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific API key",
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"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.",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"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": "Page number for pagination",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number for pagination",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Items per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Items per page",
|
|
"maximum": 1000,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Timezone offset in minutes from UTC (e.g., 480 for PST). Matches JavaScript's Date.getTimezoneOffset() convention.",
|
|
"in": "query",
|
|
"name": "timezone",
|
|
"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": "When the range ends on the caller's current local day, extend it to today's UTC bucket so spend written after the caller's local midnight (in UTC terms) is included. Requires the timezone parameter. Historical ranges are never extended.",
|
|
"in": "query",
|
|
"name": "include_current_utc_day",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"description": "When the range ends on the caller's current local day, extend it to today's UTC bucket so spend written after the caller's local midnight (in UTC terms) is included. Requires the timezone parameter. Historical ranges are never extended.",
|
|
"title": "Include Current Utc Day",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get User Daily Activity",
|
|
"tags": [
|
|
"Budget & Spend Tracking",
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/daily/activity/aggregated": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Start date in YYYY-MM-DD format",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Start date in YYYY-MM-DD format",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "End date in YYYY-MM-DD format",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "End date in YYYY-MM-DD format",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by specific model",
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific model",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by specific API key",
|
|
"in": "query",
|
|
"name": "api_key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by specific API key",
|
|
"title": "Api Key"
|
|
}
|
|
},
|
|
{
|
|
"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.",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"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": "Timezone offset in minutes from UTC (e.g., 480 for PST). Matches JavaScript's Date.getTimezoneOffset() convention.",
|
|
"in": "query",
|
|
"name": "timezone",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/SpendAnalyticsPaginatedResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get User Daily Activity Aggregated",
|
|
"tags": [
|
|
"Budget & Spend Tracking",
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/delete": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteUserRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete User",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/filter/ui": {
|
|
"get": {
|
|
"description": "Filter users based on partial match of user_id or email with pagination.\n\nBehaviour depends on the ``scope_user_search_to_org`` UI-setting flag\n(stored in the ``litellm_uisettings`` table):\n\n* **Flag OFF (default):** any authenticated user can search all users.\n* **Flag ON:**\n - Proxy admins see all users.\n - Org admins see only users in their org(s).\n - Team admins for an org-bound team see users in that org.\n - Others receive a 403.",
|
|
"operationId": "ui_view_users_user_filter_ui_get",
|
|
"parameters": [
|
|
{
|
|
"description": "User ID in the request parameters",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "User ID in the request parameters",
|
|
"title": "User Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "User email in the request parameters",
|
|
"in": "query",
|
|
"name": "user_email",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "User email in the request parameters",
|
|
"title": "User Email"
|
|
}
|
|
},
|
|
{
|
|
"description": "Team ID \u2014 used when a team admin searches for users to add to their team",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Team ID \u2014 used when a team admin searches for users to add to their team",
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number for pagination",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number for pagination",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of items per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Number of items per page",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_UserTableFiltered"
|
|
},
|
|
"title": "Response 200 Ui View Users User Filter Ui Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ui View Users",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/info": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "User ID in the request parameters",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "User ID in the request parameters",
|
|
"title": "User Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserInfoResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "User Info",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter users by role",
|
|
"in": "query",
|
|
"name": "role",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter users by role",
|
|
"title": "Role"
|
|
}
|
|
},
|
|
{
|
|
"description": "Get list of users by user_ids",
|
|
"in": "query",
|
|
"name": "user_ids",
|
|
"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 sso_user_id",
|
|
"in": "query",
|
|
"name": "sso_user_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Get list of users by sso_user_id",
|
|
"title": "Sso User Ids"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter users by partial email match",
|
|
"in": "query",
|
|
"name": "user_email",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter users by partial email match",
|
|
"title": "User Email"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter users by team id",
|
|
"in": "query",
|
|
"name": "team",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter users by team id",
|
|
"title": "Team"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of items per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 25,
|
|
"description": "Number of items per page",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Column to sort by (e.g. 'user_id', 'user_email', 'created_at', 'spend')",
|
|
"in": "query",
|
|
"name": "sort_by",
|
|
"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": "Sort order ('asc' or 'desc')",
|
|
"in": "query",
|
|
"name": "sort_order",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "asc",
|
|
"description": "Sort order ('asc' or 'desc')",
|
|
"title": "Sort Order",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter users by organization membership. Comma-separated list of org IDs.",
|
|
"in": "query",
|
|
"name": "organization_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter users by organization membership. Comma-separated list of org IDs.",
|
|
"title": "Organization Ids"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Users",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/new": {
|
|
"post": {
|
|
"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- budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {\"gpt-4o\": [\"gpt-4o-mini\"]}.\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- mcp_rpm_limit: Optional[dict] - Per-MCP-server rpm limit, keyed by MCP server name {\"github\": 100, \"slack\": 200}. Enforced for keys and teams only; values set on a user are stored but not enforced per user.\n- tag_rpm_limit: Optional[dict] - Per-request-tag rpm limit, keyed by request tag {\"cell-1\": 1000, \"cell-2\": 500}. Enforced for keys only; values set on a user are stored but not enforced per user.\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\"], \"mcp_servers\": [\"github\"], \"mcp_tool_permissions\": {\"github\": [\"list_issues\"]}}. The MCP grants act as a ceiling on every key this user holds. 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\n- budget_limits: Optional[list] - List of concurrent budget windows for the user. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{\"budget_limit\": 10.0, \"time_period\": \"1d\"}, {\"budget_limit\": 50.0, \"time_period\": \"7d\"}].\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewUserResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New User",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/user/spend/report": {
|
|
"get": {
|
|
"description": "Get spend for the calling user over a date range, grouped by api_key with a per-model breakdown.\n\nSame row shape as `/global/spend/report?internal_user_id=...`, but callable by\nany key with a user: non-admin callers are always scoped to their own user_id,\nwhile proxy admins may pass `?internal_user_id=` to view any user.",
|
|
"operationId": "get_user_spend_report_user_spend_report_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Time from which to start viewing spend (YYYY-MM-DD)",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time from which to start viewing spend (YYYY-MM-DD)",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "Time till which to view spend (YYYY-MM-DD)",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Time till which to view spend (YYYY-MM-DD)",
|
|
"title": "End Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "View spend for a specific internal_user_id. Proxy admin only; other callers are scoped to their own user_id.",
|
|
"in": "query",
|
|
"name": "internal_user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "View spend for a specific internal_user_id. Proxy admin only; other callers are scoped to their own user_id.",
|
|
"title": "Internal User Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"title": "Response Get User Spend Report User Spend Report Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get User Spend Report",
|
|
"tags": [
|
|
"Budget & Spend Tracking"
|
|
]
|
|
}
|
|
},
|
|
"/user/update": {
|
|
"post": {
|
|
"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 - budget_fallbacks: Optional[Dict[str, List[str]]] - Per-model fallback chain tried in order when that model's own `model_max_budget` is exceeded, e.g. {\"gpt-4o\": [\"gpt-4o-mini\"]}.\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 - mcp_rpm_limit: Optional[dict] - Per-MCP-server rpm limit, keyed by MCP server name {\"github\": 100, \"slack\": 200}. Enforced for keys and teams only; values set on a user are stored but not enforced per user.\n - tag_rpm_limit: Optional[dict] - Per-request-tag rpm limit, keyed by request tag {\"cell-1\": 1000, \"cell-2\": 500}. Enforced for keys only; values set on a user are stored but not enforced per user.\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\"], \"mcp_servers\": [\"github\"], \"mcp_tool_permissions\": {\"github\": [\"list_issues\"]}}. The MCP grants act as a ceiling on every key this user holds. 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 - budget_limits: Optional[list] - List of concurrent budget windows for the user. Each window specifies a budget_limit, time_period, and optional budget_duration. Example - [{\"budget_limit\": 10.0, \"time_period\": \"1d\"}, {\"budget_limit\": 50.0, \"time_period\": \"7d\"}].",
|
|
"operationId": "user_update_user_update_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateUserRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "User Update",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/utils/dotprompt_json_converter": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"additionalProperties": true,
|
|
"title": "Response Convert Prompt File To Json Utils Dotprompt Json Converter Post",
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Convert Prompt File To Json",
|
|
"tags": [
|
|
"prompts"
|
|
]
|
|
}
|
|
},
|
|
"/utils/supported_openai_params": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Supported Openai Params",
|
|
"tags": [
|
|
"llm utils"
|
|
]
|
|
}
|
|
},
|
|
"/utils/test_policies_and_guardrails": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Test Policies And Guardrails",
|
|
"tags": [
|
|
"policies"
|
|
]
|
|
}
|
|
},
|
|
"/utils/token_counter": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "call_endpoint",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"title": "Call Endpoint",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenCountRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenCountResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Token Counter",
|
|
"tags": [
|
|
"llm utils"
|
|
]
|
|
}
|
|
},
|
|
"/utils/transform_request": {
|
|
"post": {
|
|
"operationId": "transform_request_utils_transform_request_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TransformRequestBody"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RawRequestTypedDict"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Transform Request",
|
|
"tags": [
|
|
"llm utils"
|
|
]
|
|
}
|
|
},
|
|
"/v1/a2a/discover": {
|
|
"get": {
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
},
|
|
"summary": "a2a_registration",
|
|
"tags": [
|
|
"a2a_registration"
|
|
]
|
|
}
|
|
},
|
|
"/v1/a2a/{agent_id}/message/send": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Invoke Agent A2A",
|
|
"tags": [
|
|
"a2a"
|
|
]
|
|
}
|
|
},
|
|
"/v1/access_group": {
|
|
"get": {
|
|
"operationId": "list_access_groups_v1_access_group_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AccessGroupResponse"
|
|
},
|
|
"title": "Response List Access Groups V1 Access Group Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Access Groups",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "create_access_group_v1_access_group_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupCreateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Access Group",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
}
|
|
},
|
|
"/v1/access_group/{access_group_id}": {
|
|
"delete": {
|
|
"operationId": "delete_access_group_v1_access_group__access_group_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Access Group",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "get_access_group_v1_access_group__access_group_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Access Group",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
},
|
|
"put": {
|
|
"operationId": "update_access_group_v1_access_group__access_group_id__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupUpdateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Access Group",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
}
|
|
},
|
|
"/v1/agents": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"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.",
|
|
"in": "query",
|
|
"name": "health_check",
|
|
"required": false,
|
|
"schema": {
|
|
"default": false,
|
|
"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.",
|
|
"title": "Health Check",
|
|
"type": "boolean"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AgentResponse"
|
|
},
|
|
"title": "Response Get Agents V1 Agents Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Agents",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create a new agent\n\nExample Request:\n```bash\ncurl -X POST \"http://localhost:4000/v1/agents\" \\\n -H \"Authorization: Bearer <your_api_key>\" \\\n -H \"Content-Type: application/json\" \\\n -d '{\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```",
|
|
"operationId": "create_agent_v1_agents_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentConfig"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Agent",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
}
|
|
},
|
|
"/v1/agents/make_public": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentMakePublicResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Make Agents Public",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
}
|
|
},
|
|
"/v1/agents/{agent_id}": {
|
|
"delete": {
|
|
"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 <your_api_key>\"\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Agent",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
},
|
|
"get": {
|
|
"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 <your_api_key>\"\n```",
|
|
"operationId": "get_agent_by_id_v1_agents__agent_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Agent By Id",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/PatchAgentRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Patch Agent",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
},
|
|
"put": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentConfig"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Agent",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
}
|
|
},
|
|
"/v1/agents/{agent_id}/make_public": {
|
|
"post": {
|
|
"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 <your_api_key>\" \\\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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "agent_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Agent Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AgentMakePublicResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Make Agent Public",
|
|
"tags": [
|
|
"agents"
|
|
]
|
|
}
|
|
},
|
|
"/v1/assistants": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Assistants",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create assistant\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/createAssistant",
|
|
"operationId": "create_assistant_v1_assistants_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Assistant",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/v1/assistants/{assistant_id}": {
|
|
"delete": {
|
|
"description": "Delete assistant\n\nAPI Reference docs - https://platform.openai.com/docs/api-reference/assistants/createAssistant",
|
|
"operationId": "delete_assistant_v1_assistants__assistant_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "assistant_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Assistant Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Assistant",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/v1/audio/speech": {
|
|
"post": {
|
|
"description": "Same params as:\n\nhttps://platform.openai.com/docs/api-reference/audio/createSpeech",
|
|
"operationId": "audio_speech_v1_audio_speech_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Audio Speech",
|
|
"tags": [
|
|
"audio"
|
|
]
|
|
}
|
|
},
|
|
"/v1/audio/transcriptions": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Audio Transcriptions",
|
|
"tags": [
|
|
"audio"
|
|
]
|
|
}
|
|
},
|
|
"/v1/batches": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "target_model_names",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Model Names"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Batches",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/v1/batches/{batch_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "The ID of the batch to retrieve",
|
|
"in": "path",
|
|
"name": "batch_id",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "The ID of the batch to retrieve",
|
|
"title": "Batch ID to retrieve",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Retrieve Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/v1/batches/{batch_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "batch_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Batch Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/v1/chat/completions": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"caching": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Caching"
|
|
},
|
|
"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"
|
|
},
|
|
"frequency_penalty": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Frequency Penalty"
|
|
},
|
|
"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"
|
|
},
|
|
"guardrails": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Guardrails"
|
|
},
|
|
"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"
|
|
},
|
|
"max_tokens": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Max Tokens"
|
|
},
|
|
"messages": {
|
|
"example": [
|
|
{
|
|
"content": "Hello, how are you?",
|
|
"role": "user"
|
|
}
|
|
],
|
|
"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"
|
|
},
|
|
"metadata": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Metadata"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"n": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "N"
|
|
},
|
|
"num_retries": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Num Retries"
|
|
},
|
|
"parallel_tool_calls": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Parallel Tool Calls"
|
|
},
|
|
"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": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream"
|
|
},
|
|
"stream_options": {
|
|
"anyOf": [
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Stream Options"
|
|
},
|
|
"temperature": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Temperature"
|
|
},
|
|
"tool_choice": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tool Choice"
|
|
},
|
|
"tools": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Tools"
|
|
},
|
|
"top_logprobs": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top Logprobs"
|
|
},
|
|
"top_p": {
|
|
"anyOf": [
|
|
{
|
|
"type": "number"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Top P"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model",
|
|
"messages"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Chat Completion",
|
|
"tags": [
|
|
"chat/completions"
|
|
]
|
|
}
|
|
},
|
|
"/v1/completions": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Completion",
|
|
"tags": [
|
|
"completions"
|
|
]
|
|
}
|
|
},
|
|
"/v1/containers": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Containers",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
},
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Container",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/v1/containers/{container_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Container",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Retrieve Container",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/v1/containers/{container_id}/files": {
|
|
"get": {
|
|
"operationId": "handler_container_id_v1_containers__container_id__files_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Container Id",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "handler_multipart_upload_v1_containers__container_id__files_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Multipart Upload",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/v1/containers/{container_id}/files/{file_id}": {
|
|
"delete": {
|
|
"operationId": "handler_container_file_v1_containers__container_id__files__file_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Container File",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "handler_container_file_v1_containers__container_id__files__file_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Container File",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/v1/containers/{container_id}/files/{file_id}/content": {
|
|
"get": {
|
|
"operationId": "handler_binary_content_v1_containers__container_id__files__file_id__content_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "container_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Container Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Handler Binary Content",
|
|
"tags": [
|
|
"containers"
|
|
]
|
|
}
|
|
},
|
|
"/v1/embeddings": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"properties": {
|
|
"api_base": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Base"
|
|
},
|
|
"api_key": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Key"
|
|
},
|
|
"api_type": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Type"
|
|
},
|
|
"api_version": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Api Version"
|
|
},
|
|
"caching": {
|
|
"default": false,
|
|
"title": "Caching",
|
|
"type": "boolean"
|
|
},
|
|
"custom_llm_provider": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"additionalProperties": true,
|
|
"type": "object"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "Custom Llm Provider"
|
|
},
|
|
"input": {
|
|
"default": [],
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"title": "Input",
|
|
"type": "array"
|
|
},
|
|
"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"
|
|
},
|
|
"model": {
|
|
"title": "Model",
|
|
"type": "string"
|
|
},
|
|
"timeout": {
|
|
"default": 600,
|
|
"title": "Timeout",
|
|
"type": "integer"
|
|
},
|
|
"user": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": null,
|
|
"title": "User"
|
|
}
|
|
},
|
|
"required": [
|
|
"model"
|
|
],
|
|
"type": "object"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Embeddings",
|
|
"tags": [
|
|
"embeddings"
|
|
]
|
|
}
|
|
},
|
|
"/v1/evals": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "before",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "order",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Order"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "order_by",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Order By"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListEvalsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Evals",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Eval"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Eval",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
}
|
|
},
|
|
"/v1/evals/{eval_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteEvalResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Eval",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Eval"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Eval",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Eval"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Eval",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
}
|
|
},
|
|
"/v1/evals/{eval_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CancelEvalResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Eval",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
}
|
|
},
|
|
"/v1/evals/{eval_id}/runs": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "before",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "order",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Order"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListRunsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Runs",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Run"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Run",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
}
|
|
},
|
|
"/v1/evals/{eval_id}/runs/{run_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RunDeleteResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Run",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Run"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Run",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "eval_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Eval Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "openai",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CancelRunResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Run",
|
|
"tags": [
|
|
"evals"
|
|
]
|
|
}
|
|
},
|
|
"/v1/files": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "target_model_names",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Model Names"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "purpose",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Purpose"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Files",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_create_file_v1_files_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"/v1/files/{file_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"/v1/files/{file_id}/content": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get File Content",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"/v1/fine_tuning/jobs": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"openai",
|
|
"azure"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
},
|
|
{
|
|
"description": "Comma separated list of model names to filter by. Example: 'gpt-4o,gpt-4o-mini'",
|
|
"in": "query",
|
|
"name": "target_model_names",
|
|
"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"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Limit"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "\u2728 (Enterprise) List Fine-Tuning Jobs",
|
|
"tags": [
|
|
"fine-tuning"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLMFineTuningJobCreate"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "\u2728 (Enterprise) Create Fine-Tuning Job",
|
|
"tags": [
|
|
"fine-tuning"
|
|
]
|
|
}
|
|
},
|
|
"/v1/fine_tuning/jobs/{fine_tuning_job_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "fine_tuning_job_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Fine Tuning Job Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"openai",
|
|
"azure"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "\u2728 (Enterprise) Retrieve Fine-Tuning Job",
|
|
"tags": [
|
|
"fine-tuning"
|
|
]
|
|
}
|
|
},
|
|
"/v1/fine_tuning/jobs/{fine_tuning_job_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "fine_tuning_job_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Fine Tuning Job Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "\u2728 (Enterprise) Cancel Fine-Tuning Jobs",
|
|
"tags": [
|
|
"fine-tuning"
|
|
]
|
|
}
|
|
},
|
|
"/v1/images/edits": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Image Edit Api",
|
|
"tags": [
|
|
"images"
|
|
]
|
|
}
|
|
},
|
|
"/v1/images/generations": {
|
|
"post": {
|
|
"operationId": "image_generation_v1_images_generations_post",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Model"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Image Generation",
|
|
"tags": [
|
|
"images"
|
|
]
|
|
}
|
|
},
|
|
"/v1/indexes": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Index Create",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/access_groups": {
|
|
"get": {
|
|
"description": "Get all available MCP access groups from the database AND config",
|
|
"operationId": "get_mcp_access_groups_v1_mcp_access_groups_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Mcp Access Groups",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/discover": {
|
|
"get": {
|
|
"description": "Returns a curated list of well-known MCP servers for discovery UI",
|
|
"operationId": "discover_mcp_servers_v1_mcp_discover_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Search filter for server names and descriptions",
|
|
"in": "query",
|
|
"name": "query",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Search filter for server names and descriptions",
|
|
"title": "Query"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by category",
|
|
"in": "query",
|
|
"name": "category",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by category",
|
|
"title": "Category"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Discover Mcp Servers",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/make_public": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Make Mcp Servers Public",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/network/client-ip": {
|
|
"get": {
|
|
"description": "Returns the caller's IP address as seen by the proxy.",
|
|
"operationId": "get_client_ip_v1_mcp_network_client_ip_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Client Ip",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/openapi-registry": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Openapi Registry",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/registry.json": {
|
|
"get": {
|
|
"description": "MCP registry endpoint. Spec: https://github.com/modelcontextprotocol/registry",
|
|
"operationId": "get_mcp_registry_v1_mcp_registry_json_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Get Mcp Registry",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server": {
|
|
"get": {
|
|
"description": "Returns the mcp server list with associated teams",
|
|
"operationId": "fetch_all_mcp_servers_v1_mcp_server_get",
|
|
"parameters": [
|
|
{
|
|
"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.",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/LiteLLM_MCPServerTable"
|
|
},
|
|
"title": "Response Fetch All Mcp Servers V1 Mcp Server Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Fetch All Mcp Servers",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Allows creation of mcp servers",
|
|
"operationId": "add_mcp_server_v1_mcp_server_post",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewMCPServerRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MCPServerTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Add Mcp Server",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Allows deleting mcp serves in the db",
|
|
"operationId": "edit_mcp_server_v1_mcp_server_put",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateMCPServerRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"202": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MCPServerTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Edit Mcp Server",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/health": {
|
|
"get": {
|
|
"description": "Health check for MCP servers",
|
|
"operationId": "health_check_servers_v1_mcp_server_health_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Server IDs to check. If not provided, checks all accessible servers.",
|
|
"in": "query",
|
|
"name": "server_ids",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"items": {
|
|
"type": "string"
|
|
},
|
|
"type": "array"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Server IDs to check. If not provided, checks all accessible servers.",
|
|
"title": "Server Ids"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Health Check Servers",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/oauth/session": {
|
|
"post": {
|
|
"description": "Temporarily cache an MCP server in memory without writing to the database",
|
|
"operationId": "add_session_mcp_server_v1_mcp_server_oauth_session_post",
|
|
"parameters": [
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewMCPServerRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Add Session Mcp Server",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/register": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MCPServerTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Register Mcp Server",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/submissions": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPSubmissionsSummary"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Mcp Server Submissions",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/{server_id}": {
|
|
"delete": {
|
|
"description": "Allows deleting mcp serves in the db",
|
|
"operationId": "remove_mcp_server_v1_mcp_server__server_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"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",
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"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"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"202": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Remove Mcp Server",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Returns the mcp server info",
|
|
"operationId": "fetch_mcp_server_v1_mcp_server__server_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MCPServerTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Fetch Mcp Server",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/{server_id}/approve": {
|
|
"put": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MCPServerTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Approve Mcp Server Submission",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/{server_id}/oauth-user-credential": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPOAuthUserCredentialStatus"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Mcp Oauth User Credential",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPOAuthUserCredentialRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPOAuthUserCredentialStatus"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Store Mcp Oauth User Credential",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/{server_id}/oauth-user-credential/status": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPOAuthUserCredentialStatus"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Mcp Oauth User Credential Status",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/{server_id}/reject": {
|
|
"put": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RejectMCPServerRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MCPServerTable"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Reject Mcp Server Submission",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/server/{server_id}/user-credential": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPUserCredentialResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Mcp User Credential",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "server_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Server Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPUserCredentialRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MCPUserCredentialResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Store Mcp User Credential",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/tools": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Mcp Tools",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/toolset": {
|
|
"get": {
|
|
"description": "List MCP toolsets accessible to the calling key",
|
|
"operationId": "fetch_mcp_toolsets_v1_mcp_toolset_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Fetch Mcp Toolsets",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create a new MCP toolset (admin only)",
|
|
"operationId": "add_mcp_toolset_v1_mcp_toolset_post",
|
|
"parameters": [
|
|
{
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm-Changed-By"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/NewMCPToolsetRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Add Mcp Toolset",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Update an existing MCP toolset (admin only)",
|
|
"operationId": "edit_mcp_toolset_v1_mcp_toolset_put",
|
|
"parameters": [
|
|
{
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm-Changed-By"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UpdateMCPToolsetRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Edit Mcp Toolset",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/toolset/{toolset_id}": {
|
|
"delete": {
|
|
"description": "Delete an MCP toolset (admin only)",
|
|
"operationId": "remove_mcp_toolset_v1_mcp_toolset__toolset_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "header",
|
|
"name": "litellm-changed-by",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm-Changed-By"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"202": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Remove Mcp Toolset",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Get a specific MCP toolset by ID",
|
|
"operationId": "fetch_mcp_toolset_v1_mcp_toolset__toolset_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "toolset_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Toolset Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Fetch Mcp Toolset",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/mcp/user-credentials": {
|
|
"get": {
|
|
"description": "List all OAuth2 MCP credentials stored for the calling user",
|
|
"operationId": "list_mcp_user_credentials_v1_mcp_user_credentials_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/MCPUserCredentialListItem"
|
|
},
|
|
"title": "Response List Mcp User Credentials V1 Mcp User Credentials Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Mcp User Credentials",
|
|
"tags": [
|
|
"mcp_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/memory": {
|
|
"get": {
|
|
"description": "List memory entries visible to the caller.",
|
|
"operationId": "list_memory_v1_memory_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Filter by exact key match.",
|
|
"in": "query",
|
|
"name": "key",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by exact key match.",
|
|
"title": "Key"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by key prefix (Redis-style namespace scan). Mutually exclusive with `key`; if both are provided, `key_prefix` wins.",
|
|
"in": "query",
|
|
"name": "key_prefix",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by key prefix (Redis-style namespace scan). Mutually exclusive with `key`; if both are provided, `key_prefix` wins.",
|
|
"title": "Key Prefix"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"maximum": 500,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Memory",
|
|
"tags": [
|
|
"memory management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create a new memory entry for the caller (or, for admins, any scope).",
|
|
"operationId": "create_memory_v1_memory_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryCreateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MemoryRow"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Memory",
|
|
"tags": [
|
|
"memory management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/memory/{key}": {
|
|
"delete": {
|
|
"description": "Delete a memory entry by key, scoped to the caller.",
|
|
"operationId": "delete_memory_v1_memory__key__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "key",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryDeleteResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Memory",
|
|
"tags": [
|
|
"memory management"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Get a single memory entry by key, scoped to the caller.",
|
|
"operationId": "get_memory_v1_memory__key__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "key",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MemoryRow"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Memory",
|
|
"tags": [
|
|
"memory management"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Upsert a memory entry by key within the caller's scope.\n\nIf no row exists for (key, caller.user_id, caller.team_id), create one.\nIf one exists, update the value/metadata fields that were provided.",
|
|
"operationId": "upsert_memory_v1_memory__key__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "key",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Key",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/MemoryUpdateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_MemoryRow"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Upsert Memory",
|
|
"tags": [
|
|
"memory management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/messages": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Anthropic Response",
|
|
"tags": [
|
|
"anthropic_passthrough"
|
|
]
|
|
}
|
|
},
|
|
"/v1/messages/count_tokens": {
|
|
"post": {
|
|
"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\": <number>}",
|
|
"operationId": "count_tokens_v1_messages_count_tokens_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Count Tokens",
|
|
"tags": [
|
|
"anthropic_passthrough"
|
|
]
|
|
}
|
|
},
|
|
"/v1/model/info": {
|
|
"get": {
|
|
"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 - include_team_models: When true, filter to deployments the caller can use (same as /v2/model/info).\n - teamId: Filter to models accessible by the given team.\n\nEach model in the list response includes `model_info.access_via_team_ids` and\n`model_info.direct_access` when the proxy database is connected.\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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "litellm_model_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Litellm Model Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "When true, filter to deployments the caller can use via direct access or team membership.",
|
|
"in": "query",
|
|
"name": "include_team_models",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "When true, filter to deployments the caller can use via direct access or team membership.",
|
|
"title": "Include Team Models"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids",
|
|
"in": "query",
|
|
"name": "teamId",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids",
|
|
"title": "Teamid"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Info V1",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/models": {
|
|
"get": {
|
|
"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.\n- healthy_only: When true, hide models whose backing deployments are all marked\n unhealthy by background health checks. Requires\n `background_health_checks: true` in general_settings; without\n health state the listing is returned unfiltered (fail open).\n Models expanded from wildcard routes (e.g. `openai/*`) are not\n filtered, and nothing is hidden when `allowed_fails_policy` is\n configured (cooldown remains the sole exclusion mechanism).\n Hiding is presentation-only: a hidden model can still be\n called directly.",
|
|
"operationId": "model_list_v1_models_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "return_wildcard_routes",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Return Wildcard Routes"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "include_model_access_groups",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Include Model Access Groups"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "only_model_access_groups",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Only Model Access Groups"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "include_metadata",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Include Metadata"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "fallback_type",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Fallback Type"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "scope",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Scope"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "healthy_only",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Healthy Only"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model List",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/models/{model_id}": {
|
|
"get": {
|
|
"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\n\nQuery parameters mirror `/v1/models` so the same caller context (team\nscoping, health filtering, paused deployments) drives both endpoints; the\nlisting's public id must resolve to the same internal deployment here.",
|
|
"operationId": "model_info_v1_models__model_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "healthy_only",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Healthy Only"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Info",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/moderations": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Moderations",
|
|
"tags": [
|
|
"moderations"
|
|
]
|
|
}
|
|
},
|
|
"/v1/ocr": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ocr",
|
|
"tags": [
|
|
"ocr"
|
|
]
|
|
}
|
|
},
|
|
"/v1/rag/ingest": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Rag Ingest",
|
|
"tags": [
|
|
"rag"
|
|
]
|
|
}
|
|
},
|
|
"/v1/rag/query": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Rag Query",
|
|
"tags": [
|
|
"rag"
|
|
]
|
|
}
|
|
},
|
|
"/v1/realtime": {
|
|
"get": {
|
|
"description": "WebSocket connection endpoint",
|
|
"operationId": "websocket_realtime_websocket_endpoint_get_2",
|
|
"parameters": [],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket Protocol Switched"
|
|
}
|
|
},
|
|
"summary": "WebSocket: realtime_websocket_endpoint",
|
|
"tags": [
|
|
"WebSocket"
|
|
]
|
|
}
|
|
},
|
|
"/v1/realtime/calls": {
|
|
"post": {
|
|
"operationId": "proxy_realtime_calls_v1_realtime_calls_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Proxy Realtime Calls",
|
|
"tags": [
|
|
"realtime"
|
|
]
|
|
}
|
|
},
|
|
"/v1/realtime/client_secrets": {
|
|
"post": {
|
|
"operationId": "create_realtime_client_secret_v1_realtime_client_secrets_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/RealtimeClientSecretResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Realtime Client Secret",
|
|
"tags": [
|
|
"realtime"
|
|
]
|
|
}
|
|
},
|
|
"/v1/rerank": {
|
|
"post": {
|
|
"operationId": "rerank_v1_rerank_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Rerank",
|
|
"tags": [
|
|
"rerank"
|
|
]
|
|
}
|
|
},
|
|
"/v1/responses": {
|
|
"get": {
|
|
"description": "WebSocket connection endpoint",
|
|
"operationId": "websocket_responses_websocket_endpoint_get_2",
|
|
"parameters": [],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket Protocol Switched"
|
|
}
|
|
},
|
|
"summary": "WebSocket: responses_websocket_endpoint",
|
|
"tags": [
|
|
"WebSocket"
|
|
]
|
|
},
|
|
"post": {
|
|
"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_v1_responses_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Responses Api",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/v1/responses/compact": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Compact Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/v1/responses/{response_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/v1/responses/{response_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Response",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/v1/responses/{response_id}/input_items": {
|
|
"get": {
|
|
"description": "List input items for a response.",
|
|
"operationId": "get_response_input_items_v1_responses__response_id__input_items_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "response_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Response Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Response Input Items",
|
|
"tags": [
|
|
"responses"
|
|
]
|
|
}
|
|
},
|
|
"/v1/rust_control_plane/logs": {
|
|
"post": {
|
|
"description": "Replay a batch of finished logging payloads through the callback fan-out.\n\nAdmin-only: the payloads write spend logs and trigger every callback, so this\nis a trusted internal route, not a public surface.",
|
|
"operationId": "ingest_callback_logs_v1_rust_control_plane_logs_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CallbackLogsRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/CallbackLogsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Ingest Callback Logs",
|
|
"tags": [
|
|
"rust control plane"
|
|
]
|
|
}
|
|
},
|
|
"/v1/search": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "search_tool_name",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tool Name"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Search",
|
|
"tags": [
|
|
"search"
|
|
]
|
|
}
|
|
},
|
|
"/v1/search/tools": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Search Tools",
|
|
"tags": [
|
|
"search"
|
|
]
|
|
}
|
|
},
|
|
"/v1/search/{search_tool_name}": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "search_tool_name",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Search Tool Name"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Search",
|
|
"tags": [
|
|
"search"
|
|
]
|
|
}
|
|
},
|
|
"/v1/skills": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 10,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "after_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "before_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before Id"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "anthropic",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListSkillsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Skills",
|
|
"tags": [
|
|
"anthropic_skills"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "anthropic",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Skill"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Skill",
|
|
"tags": [
|
|
"anthropic_skills"
|
|
]
|
|
}
|
|
},
|
|
"/v1/skills/{skill_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "skill_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Skill Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "anthropic",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/DeleteSkillResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Skill",
|
|
"tags": [
|
|
"anthropic_skills"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "skill_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Skill Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "custom_llm_provider",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "anthropic",
|
|
"title": "Custom Llm Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Skill"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Skill",
|
|
"tags": [
|
|
"anthropic_skills"
|
|
]
|
|
}
|
|
},
|
|
"/v1/threads": {
|
|
"post": {
|
|
"description": "Create a thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/threads/createThread",
|
|
"operationId": "create_threads_v1_threads_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Threads",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/v1/threads/{thread_id}": {
|
|
"get": {
|
|
"description": "Retrieves a thread.\n\nAPI Reference - https://platform.openai.com/docs/api-reference/threads/getThread",
|
|
"operationId": "get_thread_v1_threads__thread_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "thread_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Thread Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Thread",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/v1/threads/{thread_id}/messages": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "thread_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Thread Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Messages",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "thread_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Thread Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Add Messages",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/v1/threads/{thread_id}/runs": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "thread_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Thread Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Run Thread",
|
|
"tags": [
|
|
"assistants"
|
|
]
|
|
}
|
|
},
|
|
"/v1/tool/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "input_policy",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"enum": [
|
|
"trusted",
|
|
"untrusted",
|
|
"blocked"
|
|
],
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Input Policy"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ToolListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Tools",
|
|
"tags": [
|
|
"tools"
|
|
]
|
|
}
|
|
},
|
|
"/v1/tool/policy": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ToolPolicyUpdateResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Tool Policy",
|
|
"tags": [
|
|
"tools"
|
|
]
|
|
}
|
|
},
|
|
"/v1/tool/policy/options": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ToolPolicyOptionsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Tool Policy Options",
|
|
"tags": [
|
|
"tools"
|
|
]
|
|
}
|
|
},
|
|
"/v1/tool/spend": {
|
|
"get": {
|
|
"description": "Spend attributed to each tool over a date range, for the Cost Optimization dashboard.\n\nReads the ``LiteLLM_DailyToolSpend`` rollup, written at request time from invoked\ntools only (MCP tool calls and response tool_calls; declaring a tool without\ninvoking it does not count). A request that invoked multiple tools counts its\nfull spend toward each of them, so per-tool numbers are attributions and do not\nsum to a deduplicated total.\n\n``by_tool`` is the top ``TOOL_SPEND_TOP_TOOLS`` tools by spend, aggregated in\nSQL, and ``daily`` covers only those tools, so the response is bounded by\ndays x TOOL_SPEND_TOP_TOOLS regardless of the requested range or how many\ndistinct tool names exist.",
|
|
"operationId": "get_tool_spend_v1_tool_spend_get",
|
|
"parameters": [
|
|
{
|
|
"description": "YYYY-MM-DD (defaults to 30 days ago)",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD (defaults to 30 days ago)",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "YYYY-MM-DD (defaults to today)",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD (defaults to today)",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ToolSpendResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Tool Spend",
|
|
"tags": [
|
|
"tools"
|
|
]
|
|
}
|
|
},
|
|
"/v1/tool/{tool_name}": {
|
|
"get": {
|
|
"description": "Get details for a single tool.",
|
|
"operationId": "get_tool_v1_tool__tool_name__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "tool_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_ToolTableRow"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Tool",
|
|
"tags": [
|
|
"tools"
|
|
]
|
|
}
|
|
},
|
|
"/v1/tool/{tool_name}/detail": {
|
|
"get": {
|
|
"description": "Get a single tool with its policy overrides (for UI detail view).",
|
|
"operationId": "get_tool_detail_v1_tool__tool_name__detail_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "tool_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ToolDetailResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Tool Detail",
|
|
"tags": [
|
|
"tools"
|
|
]
|
|
}
|
|
},
|
|
"/v1/tool/{tool_name}/logs": {
|
|
"get": {
|
|
"description": "Return paginated spend logs for requests that invoked this tool (from SpendLogToolIndex).\nDeclaring a tool in a request body without the model invoking it does not create an entry.",
|
|
"operationId": "get_tool_usage_logs_v1_tool__tool_name__logs_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "tool_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "YYYY-MM-DD",
|
|
"in": "query",
|
|
"name": "start_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD",
|
|
"title": "Start Date"
|
|
}
|
|
},
|
|
{
|
|
"description": "YYYY-MM-DD",
|
|
"in": "query",
|
|
"name": "end_date",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "YYYY-MM-DD",
|
|
"title": "End Date"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ToolUsageLogsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Tool Usage Logs",
|
|
"tags": [
|
|
"tools"
|
|
]
|
|
}
|
|
},
|
|
"/v1/tool/{tool_name}/overrides": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "tool_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Tool Name",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Team ID of the override to remove",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Team ID of the override to remove",
|
|
"title": "Team Id"
|
|
}
|
|
},
|
|
{
|
|
"description": "Key hash of the override to remove",
|
|
"in": "query",
|
|
"name": "key_hash",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Key hash of the override to remove",
|
|
"title": "Key Hash"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Tool Policy Override",
|
|
"tags": [
|
|
"tools"
|
|
]
|
|
}
|
|
},
|
|
"/v1/unified_access_group": {
|
|
"get": {
|
|
"operationId": "list_access_groups_v1_unified_access_group_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"items": {
|
|
"$ref": "#/components/schemas/AccessGroupResponse"
|
|
},
|
|
"title": "Response List Access Groups V1 Unified Access Group Get",
|
|
"type": "array"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Access Groups",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "create_access_group_v1_unified_access_group_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupCreateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"201": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Access Group",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
}
|
|
},
|
|
"/v1/unified_access_group/{access_group_id}": {
|
|
"delete": {
|
|
"operationId": "delete_access_group_v1_unified_access_group__access_group_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"204": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Access Group",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "get_access_group_v1_unified_access_group__access_group_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Access Group",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
},
|
|
"put": {
|
|
"operationId": "update_access_group_v1_unified_access_group__access_group_id__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "access_group_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Access Group Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupUpdateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/AccessGroupResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Access Group",
|
|
"tags": [
|
|
"access_groups"
|
|
]
|
|
}
|
|
},
|
|
"/v1/vector_store/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 100,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_ManagedVectorStoreListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Vector Stores",
|
|
"tags": [
|
|
"vector_store_management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/vector_stores": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "before",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "order",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "desc",
|
|
"title": "Order"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store List",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Create",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/v1/vector_stores/{vector_store_id}": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Delete",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Retrieve",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Update",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/v1/vector_stores/{vector_store_id}/files": {
|
|
"get": {
|
|
"operationId": "vector_store_file_list_v1_vector_stores__vector_store_id__files_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File List",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "vector_store_file_create_v1_vector_stores__vector_store_id__files_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Create",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/v1/vector_stores/{vector_store_id}/files/{file_id}": {
|
|
"delete": {
|
|
"operationId": "vector_store_file_delete_v1_vector_stores__vector_store_id__files__file_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Delete",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "vector_store_file_retrieve_v1_vector_stores__vector_store_id__files__file_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Retrieve",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "vector_store_file_update_v1_vector_stores__vector_store_id__files__file_id__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Update",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/v1/vector_stores/{vector_store_id}/files/{file_id}/content": {
|
|
"get": {
|
|
"operationId": "vector_store_file_content_v1_vector_stores__vector_store_id__files__file_id__content_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Content",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/v1/vector_stores/{vector_store_id}/search": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Search",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/v1/videos": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video List",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
},
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Generation",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/v1/videos/characters": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Create Character",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/v1/videos/characters/{character_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "character_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Character Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Get Character",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/v1/videos/edits": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Edit",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/v1/videos/extensions": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Extension",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/v1/videos/{video_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "video_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Video Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Status",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/v1/videos/{video_id}/content": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "video_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Video Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Content",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/v1/videos/{video_id}/remix": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "video_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Video Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Remix",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/v1/workflows/runs": {
|
|
"get": {
|
|
"description": "List workflow runs. Filter by workflow_type and/or status.\n\nNon-admin callers only see runs created by their own API key.",
|
|
"operationId": "list_workflow_runs_v1_workflows_runs_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "workflow_type",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Workflow Type"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "status",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Status"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"maximum": 250,
|
|
"minimum": 1,
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Workflow Runs",
|
|
"tags": [
|
|
"workflow management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Create a new workflow run. Returns run_id and session_id.\n\nThe caller's API key token is stored as created_by so that non-admin keys\ncan only see and modify their own runs.",
|
|
"operationId": "create_workflow_run_v1_workflows_runs_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowRunCreateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Workflow Run",
|
|
"tags": [
|
|
"workflow management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/workflows/runs/{run_id}": {
|
|
"get": {
|
|
"description": "Get a workflow run with its most recent event.",
|
|
"operationId": "get_workflow_run_v1_workflows_runs__run_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Workflow Run",
|
|
"tags": [
|
|
"workflow management"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "Update status, metadata, or output on a workflow run.",
|
|
"operationId": "update_workflow_run_v1_workflows_runs__run_id__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowRunUpdateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Workflow Run",
|
|
"tags": [
|
|
"workflow management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/workflows/runs/{run_id}/events": {
|
|
"get": {
|
|
"description": "Fetch event log for a run, ordered by sequence_number. Default limit 100, max 500.",
|
|
"operationId": "list_workflow_events_v1_workflows_runs__run_id__events_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 100,
|
|
"maximum": 500,
|
|
"minimum": 1,
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Workflow Events",
|
|
"tags": [
|
|
"workflow management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Append an event to the run's event log. Also updates run.status if event_type maps to a status.\n\nSequence numbers use optimistic concurrency: on a unique-constraint collision\n(concurrent append), retries up to _MAX_SEQUENCE_RETRIES times with a fresh MAX+1.\nThe event+status update is atomic in a single DB transaction.",
|
|
"operationId": "append_workflow_event_v1_workflows_runs__run_id__events_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowEventCreateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Append Workflow Event",
|
|
"tags": [
|
|
"workflow management"
|
|
]
|
|
}
|
|
},
|
|
"/v1/workflows/runs/{run_id}/messages": {
|
|
"get": {
|
|
"description": "Fetch conversation history for a run, ordered by sequence_number. Default limit 100, max 500.",
|
|
"operationId": "list_workflow_messages_v1_workflows_runs__run_id__messages_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 100,
|
|
"maximum": 500,
|
|
"minimum": 1,
|
|
"title": "Limit",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Workflow Messages",
|
|
"tags": [
|
|
"workflow management"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Append a conversation message. Stores full content (not truncated).\n\nUses optimistic concurrency for sequence numbers.",
|
|
"operationId": "append_workflow_message_v1_workflows_runs__run_id__messages_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "run_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Run Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/WorkflowMessageCreateRequest"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Append Workflow Message",
|
|
"tags": [
|
|
"workflow management"
|
|
]
|
|
}
|
|
},
|
|
"/v1beta/agents": {
|
|
"get": {
|
|
"responses": {
|
|
"200": {
|
|
"description": "OK"
|
|
}
|
|
},
|
|
"summary": "gemini_agents",
|
|
"tags": [
|
|
"gemini_agents"
|
|
]
|
|
}
|
|
},
|
|
"/v1beta/interactions": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Interaction",
|
|
"tags": [
|
|
"google genai endpoints",
|
|
"interactions"
|
|
]
|
|
}
|
|
},
|
|
"/v1beta/interactions/{interaction_id}": {
|
|
"delete": {
|
|
"description": "Delete an interaction by ID.\n\nPer OpenAPI spec: DELETE /{api_version}/interactions/{interaction_id}",
|
|
"operationId": "delete_interaction_v1beta_interactions__interaction_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "interaction_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Interaction Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Interaction",
|
|
"tags": [
|
|
"google genai endpoints",
|
|
"interactions"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Get an interaction by ID.\n\nPer OpenAPI spec: GET /{api_version}/interactions/{interaction_id}",
|
|
"operationId": "get_interaction_v1beta_interactions__interaction_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "interaction_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Interaction Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Interaction",
|
|
"tags": [
|
|
"google genai endpoints",
|
|
"interactions"
|
|
]
|
|
}
|
|
},
|
|
"/v1beta/interactions/{interaction_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "interaction_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Interaction Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Interaction",
|
|
"tags": [
|
|
"google genai endpoints",
|
|
"interactions"
|
|
]
|
|
}
|
|
},
|
|
"/v1beta/models/{model_name}:countTokens": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TokenCountDetailsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Google Count Tokens",
|
|
"tags": [
|
|
"google genai endpoints"
|
|
]
|
|
}
|
|
},
|
|
"/v1beta/models/{model_name}:generateContent": {
|
|
"post": {
|
|
"operationId": "google_generate_content_v1beta_models__model_name__generateContent_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Google Generate Content",
|
|
"tags": [
|
|
"google genai endpoints"
|
|
]
|
|
}
|
|
},
|
|
"/v1beta/models/{model_name}:streamGenerateContent": {
|
|
"post": {
|
|
"operationId": "google_stream_generate_content_v1beta_models__model_name__streamGenerateContent_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "model_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Model Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Google Stream Generate Content",
|
|
"tags": [
|
|
"google genai endpoints"
|
|
]
|
|
}
|
|
},
|
|
"/v2/guardrails/list": {
|
|
"get": {
|
|
"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 <your_api_key>\"\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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ListGuardrailsResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Guardrails V2",
|
|
"tags": [
|
|
"guardrails"
|
|
]
|
|
}
|
|
},
|
|
"/v2/key/info": {
|
|
"post": {
|
|
"description": "Retrieve information about a list of keys.\n\n**New endpoint**. Currently admin only.\nParameters:\n keys: Optional[list] = body parameter representing the key(s) 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\" -H \"Authorization: Bearer sk-1234\" -d {\"keys\": [\"sk-1\", \"sk-2\", \"sk-3\"]}\n```",
|
|
"operationId": "info_key_fn_v2_v2_key_info_post",
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"$ref": "#/components/schemas/KeyRequest"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Data"
|
|
}
|
|
}
|
|
}
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Info Key Fn V2",
|
|
"tags": [
|
|
"key management"
|
|
]
|
|
}
|
|
},
|
|
"/v2/login": {
|
|
"post": {
|
|
"operationId": "login_v2_v2_login_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Login V2"
|
|
}
|
|
},
|
|
"/v2/model/info": {
|
|
"get": {
|
|
"description": "Paginated model metadata for proxy deployments (pricing, provider, team access).\n\nReturns configured router deployments with enriched `model_info` (costs, provider,\ncontext window, etc.). Sensitive fields such as API keys and api_base are omitted.\n\nQuery parameters:\n model: Filter to a single public `model_name`.\n user_models_only: When true, only return models created by the calling user.\n include_team_models: When true, populate `access_via_team_ids` and `direct_access`\n on each model and filter to deployments the caller can use.\n page / size: Pagination controls (defaults: page=1, size=50).\n search: Case-insensitive partial match on model name or team public name.\n modelId: Return a single deployment by LiteLLM model id.\n teamId: Filter to models with direct access or team membership for this team id.\n sortBy / sortOrder: Sort by model_name, created_at, updated_at, costs, or status.\n\nExample request:\n```\ncurl -X GET 'http://localhost:4000/v2/model/info?include_team_models=true&page=1&size=50' \\\n--header 'Authorization: Bearer sk-1234'\n```\n\nExample response:\n```json\n{\n \"data\": [\n {\n \"model_name\": \"gpt-4\",\n \"litellm_params\": {\"model\": \"openai/gpt-4.1\"},\n \"model_info\": {\n \"id\": \"abc123\",\n \"litellm_provider\": \"openai\",\n \"access_via_team_ids\": [\"team-1\"],\n \"direct_access\": true\n }\n }\n ],\n \"total_count\": 1,\n \"current_page\": 1,\n \"total_pages\": 1,\n \"size\": 50\n}\n```",
|
|
"operationId": "model_info_v2_v2_model_info_get",
|
|
"parameters": [
|
|
{
|
|
"description": "Specify the model name (optional)",
|
|
"in": "query",
|
|
"name": "model",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Specify the model name (optional)",
|
|
"title": "Model"
|
|
}
|
|
},
|
|
{
|
|
"description": "Only return models added by this user",
|
|
"in": "query",
|
|
"name": "user_models_only",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Only return models added by this user",
|
|
"title": "User Models Only"
|
|
}
|
|
},
|
|
{
|
|
"description": "Return all models across all teams user is in.",
|
|
"in": "query",
|
|
"name": "include_team_models",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Return all models across all teams user is in.",
|
|
"title": "Include Team Models"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "debug",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"title": "Debug"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page size",
|
|
"in": "query",
|
|
"name": "size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 50,
|
|
"description": "Page size",
|
|
"minimum": 1,
|
|
"title": "Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Search model names (case-insensitive partial match)",
|
|
"in": "query",
|
|
"name": "search",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Search model names (case-insensitive partial match)",
|
|
"title": "Search"
|
|
}
|
|
},
|
|
{
|
|
"description": "Search for a specific model by its unique ID",
|
|
"in": "query",
|
|
"name": "modelId",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Search for a specific model by its unique ID",
|
|
"title": "Modelid"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids",
|
|
"in": "query",
|
|
"name": "teamId",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter models by team ID. Returns models with direct_access=True or teamId in access_via_team_ids",
|
|
"title": "Teamid"
|
|
}
|
|
},
|
|
{
|
|
"description": "Field to sort by. Options: model_name, created_at, updated_at, costs, status",
|
|
"in": "query",
|
|
"name": "sortBy",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Field to sort by. Options: model_name, created_at, updated_at, costs, status",
|
|
"title": "Sortby"
|
|
}
|
|
},
|
|
{
|
|
"description": "Sort order. Options: asc, desc",
|
|
"in": "query",
|
|
"name": "sortOrder",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "asc",
|
|
"description": "Sort order. Options: asc, desc",
|
|
"title": "Sortorder"
|
|
}
|
|
},
|
|
{
|
|
"description": "Omit auto-router deployments (litellm model prefixed `auto_router/`). They select among deployments rather than being deployments themselves, so a caller rendering a deployment list can leave them out. Defaults to false, so existing callers are unaffected",
|
|
"in": "query",
|
|
"name": "exclude_auto_routers",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "boolean"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": false,
|
|
"description": "Omit auto-router deployments (litellm model prefixed `auto_router/`). They select among deployments rather than being deployments themselves, so a caller rendering a deployment list can leave them out. Defaults to false, so existing callers are unaffected",
|
|
"title": "Exclude Auto Routers"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Model Info V2",
|
|
"tags": [
|
|
"model management"
|
|
]
|
|
}
|
|
},
|
|
"/v2/organization/{organization_id}": {
|
|
"patch": {
|
|
"description": "Partial update of an organization (RESTful PATCH, RFC 7396 merge-patch semantics).\n\nA sent field is written and an omitted one is left untouched (presence is read from\n``model_fields_set``). Clear tokens are per field: budget limits and ``metadata`` clear with\n``null``, ``models`` with ``[]``, and ``object_permission`` with ``null`` (it merges when sent,\nso an empty ``{}`` is rejected). ``organization_alias`` is required and cannot be cleared.\nValidation failures return 422; the object-permission upsert, budget-row write, and\norg-row write are one transaction.",
|
|
"operationId": "update_organization_v2_v2_organization__organization_id__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "organization_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Organization Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/OrganizationUpdateRequestV2"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_OrganizationTableWithMembers"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Organization V2",
|
|
"tags": [
|
|
"organization management"
|
|
]
|
|
}
|
|
},
|
|
"/v2/rerank": {
|
|
"post": {
|
|
"operationId": "rerank_v2_rerank_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Rerank",
|
|
"tags": [
|
|
"rerank"
|
|
]
|
|
}
|
|
},
|
|
"/v2/team/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "Only return teams which this 'user_id' belongs to",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"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 'organization_id' belongs to",
|
|
"in": "query",
|
|
"name": "organization_id",
|
|
"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 'team_id' belongs to",
|
|
"in": "query",
|
|
"name": "team_id",
|
|
"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_alias' belongs to. Supports partial matching.",
|
|
"in": "query",
|
|
"name": "team_alias",
|
|
"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": "Combined search: matches teams whose 'team_id' matches the value OR whose 'team_alias' contains it (case-insensitive).",
|
|
"in": "query",
|
|
"name": "search",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Combined search: matches teams whose 'team_id' matches the value OR whose 'team_alias' contains it (case-insensitive).",
|
|
"title": "Search"
|
|
}
|
|
},
|
|
{
|
|
"description": "How 'search' matches 'team_id': 'exact' (default) or 'prefix' for a case-sensitive prefix match.",
|
|
"in": "query",
|
|
"name": "search_team_id_match",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "exact",
|
|
"description": "How 'search' matches 'team_id': 'exact' (default) or 'prefix' for a case-sensitive prefix match.",
|
|
"enum": [
|
|
"exact",
|
|
"prefix"
|
|
],
|
|
"title": "Search Team Id Match",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Page number for pagination",
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"description": "Page number for pagination",
|
|
"minimum": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Number of teams per page",
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 10,
|
|
"description": "Number of teams per page",
|
|
"maximum": 100,
|
|
"minimum": 1,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"description": "Column to sort by (e.g. 'team_id', 'team_alias', 'created_at')",
|
|
"in": "query",
|
|
"name": "sort_by",
|
|
"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": "Sort order ('asc' or 'desc')",
|
|
"in": "query",
|
|
"name": "sort_order",
|
|
"required": false,
|
|
"schema": {
|
|
"default": "asc",
|
|
"description": "Sort order ('asc' or 'desc')",
|
|
"title": "Sort Order",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"description": "Filter by status (e.g. 'deleted')",
|
|
"in": "query",
|
|
"name": "status",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "Filter by status (e.g. 'deleted')",
|
|
"title": "Status"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/TeamListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Team V2",
|
|
"tags": [
|
|
"team management"
|
|
]
|
|
}
|
|
},
|
|
"/v2/user/info": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"description": "User ID in the request parameters",
|
|
"in": "query",
|
|
"name": "user_id",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"description": "User ID in the request parameters",
|
|
"title": "User Id"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/UserInfoV2Response"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "User Info V2",
|
|
"tags": [
|
|
"Internal User management"
|
|
]
|
|
}
|
|
},
|
|
"/v3/login": {
|
|
"post": {
|
|
"operationId": "login_v3_v3_login_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Login V3"
|
|
}
|
|
},
|
|
"/v3/login/exchange": {
|
|
"post": {
|
|
"operationId": "login_v3_exchange_v3_login_exchange_post",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"summary": "Login V3 Exchange"
|
|
}
|
|
},
|
|
"/vantage/delete": {
|
|
"delete": {
|
|
"description": "Delete Vantage settings from the database.\n\nOnly admin users can delete Vantage settings.",
|
|
"operationId": "delete_vantage_settings_vantage_delete_delete",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VantageInitResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Vantage Settings",
|
|
"tags": [
|
|
"vantage"
|
|
]
|
|
}
|
|
},
|
|
"/vantage/dry-run": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VantageExportResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vantage Dry Run Export",
|
|
"tags": [
|
|
"vantage"
|
|
]
|
|
}
|
|
},
|
|
"/vantage/export": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VantageExportResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vantage Export",
|
|
"tags": [
|
|
"vantage"
|
|
]
|
|
}
|
|
},
|
|
"/vantage/init": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VantageInitResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Init Vantage Settings",
|
|
"tags": [
|
|
"vantage"
|
|
]
|
|
}
|
|
},
|
|
"/vantage/settings": {
|
|
"get": {
|
|
"description": "View current Vantage settings.\n\nReturns the current Vantage configuration with the API key masked for security.\nOnly admin users (Proxy Admin or Admin Viewer) can view Vantage settings.",
|
|
"operationId": "get_vantage_settings_vantage_settings_get",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VantageSettingsView"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Vantage Settings",
|
|
"tags": [
|
|
"vantage"
|
|
]
|
|
},
|
|
"put": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/VantageInitResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Vantage Settings",
|
|
"tags": [
|
|
"vantage"
|
|
]
|
|
}
|
|
},
|
|
"/vector_store/delete": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete Vector Store",
|
|
"tags": [
|
|
"vector_store_management"
|
|
]
|
|
}
|
|
},
|
|
"/vector_store/info": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/ResponseLiteLLM_ManagedVectorStore"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get Vector Store Info",
|
|
"tags": [
|
|
"vector_store_management"
|
|
]
|
|
}
|
|
},
|
|
"/vector_store/list": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "page",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 1,
|
|
"title": "Page",
|
|
"type": "integer"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "page_size",
|
|
"required": false,
|
|
"schema": {
|
|
"default": 100,
|
|
"title": "Page Size",
|
|
"type": "integer"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/LiteLLM_ManagedVectorStoreListResponse"
|
|
}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Vector Stores",
|
|
"tags": [
|
|
"vector_store_management"
|
|
]
|
|
}
|
|
},
|
|
"/vector_store/new": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "New Vector Store",
|
|
"tags": [
|
|
"vector_store_management"
|
|
]
|
|
}
|
|
},
|
|
"/vector_store/update": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Update Vector Store",
|
|
"tags": [
|
|
"vector_store_management"
|
|
]
|
|
}
|
|
},
|
|
"/vector_stores": {
|
|
"get": {
|
|
"description": "List vector stores.\n\nAPI Reference:\nhttps://platform.openai.com/docs/api-reference/vector-stores/list",
|
|
"operationId": "vector_store_list_vector_stores_get",
|
|
"parameters": [
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "before",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Before"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": 20,
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "order",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"default": "desc",
|
|
"title": "Order"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store List",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Create",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/vector_stores/{vector_store_id}": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Delete",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Retrieve",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Update",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/vector_stores/{vector_store_id}/files": {
|
|
"get": {
|
|
"operationId": "vector_store_file_list_vector_stores__vector_store_id__files_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File List",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "vector_store_file_create_vector_stores__vector_store_id__files_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Create",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/vector_stores/{vector_store_id}/files/{file_id}": {
|
|
"delete": {
|
|
"operationId": "vector_store_file_delete_vector_stores__vector_store_id__files__file_id__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Delete",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"get": {
|
|
"operationId": "vector_store_file_retrieve_vector_stores__vector_store_id__files__file_id__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Retrieve",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
},
|
|
"post": {
|
|
"operationId": "vector_store_file_update_vector_stores__vector_store_id__files__file_id__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Update",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/vector_stores/{vector_store_id}/files/{file_id}/content": {
|
|
"get": {
|
|
"operationId": "vector_store_file_content_vector_stores__vector_store_id__files__file_id__content_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store File Content",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/vector_stores/{vector_store_id}/search": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "vector_store_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Vector Store Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vector Store Search",
|
|
"tags": [
|
|
"vector_stores"
|
|
]
|
|
}
|
|
},
|
|
"/vertex-ai/{endpoint}": {
|
|
"delete": {
|
|
"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__delete_2",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get_2",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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_2",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post_2",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put_2",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/vertex_ai/discovery/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Vertex Discovery Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Vertex Discovery Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Vertex Discovery Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Vertex Discovery Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Vertex Discovery Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/vertex_ai/live": {
|
|
"get": {
|
|
"description": "WebSocket connection endpoint",
|
|
"operationId": "websocket_vertex_ai_live_passthrough_endpoint",
|
|
"parameters": [],
|
|
"responses": {
|
|
"101": {
|
|
"description": "WebSocket Protocol Switched"
|
|
}
|
|
},
|
|
"summary": "WebSocket: vertex_ai_live_passthrough_endpoint",
|
|
"tags": [
|
|
"WebSocket"
|
|
]
|
|
}
|
|
},
|
|
"/vertex_ai/{endpoint}": {
|
|
"delete": {
|
|
"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__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"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__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"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__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"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__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vertex Proxy Route",
|
|
"tags": [
|
|
"Vertex AI Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/videos": {
|
|
"get": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video List",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
},
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Generation",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/videos/characters": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Create Character",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/videos/characters/{character_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "character_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Character Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Get Character",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/videos/edits": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Edit",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/videos/extensions": {
|
|
"post": {
|
|
"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": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Extension",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/videos/{video_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "video_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Video Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Status",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/videos/{video_id}/content": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "video_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Video Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Content",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/videos/{video_id}/remix": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "video_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Video Id",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Video Remix",
|
|
"tags": [
|
|
"videos"
|
|
]
|
|
}
|
|
},
|
|
"/vllm/{endpoint}": {
|
|
"delete": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)",
|
|
"operationId": "vllm_proxy_route_vllm__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vllm Proxy Route",
|
|
"tags": [
|
|
"VLLM Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)",
|
|
"operationId": "vllm_proxy_route_vllm__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vllm Proxy Route",
|
|
"tags": [
|
|
"VLLM Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)",
|
|
"operationId": "vllm_proxy_route_vllm__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vllm Proxy Route",
|
|
"tags": [
|
|
"VLLM Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)",
|
|
"operationId": "vllm_proxy_route_vllm__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vllm Proxy Route",
|
|
"tags": [
|
|
"VLLM Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "[Docs](https://docs.litellm.ai/docs/pass_through/vllm)",
|
|
"operationId": "vllm_proxy_route_vllm__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Vllm Proxy Route",
|
|
"tags": [
|
|
"VLLM Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/watsonx/{endpoint}": {
|
|
"delete": {
|
|
"description": "Watsonx pass-through endpoint.\nAllows using Watsonx APIs with automatic IAM token management and version parameter injection.\n\nExample:\n POST /watsonx/ml/v1/text/tokenization\n POST /watsonx/ml/v1/text/generation",
|
|
"operationId": "watsonx_proxy_route_watsonx__endpoint__delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Watsonx Proxy Route",
|
|
"tags": [
|
|
"Watsonx Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"get": {
|
|
"description": "Watsonx pass-through endpoint.\nAllows using Watsonx APIs with automatic IAM token management and version parameter injection.\n\nExample:\n POST /watsonx/ml/v1/text/tokenization\n POST /watsonx/ml/v1/text/generation",
|
|
"operationId": "watsonx_proxy_route_watsonx__endpoint__get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Watsonx Proxy Route",
|
|
"tags": [
|
|
"Watsonx Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"patch": {
|
|
"description": "Watsonx pass-through endpoint.\nAllows using Watsonx APIs with automatic IAM token management and version parameter injection.\n\nExample:\n POST /watsonx/ml/v1/text/tokenization\n POST /watsonx/ml/v1/text/generation",
|
|
"operationId": "watsonx_proxy_route_watsonx__endpoint__patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Watsonx Proxy Route",
|
|
"tags": [
|
|
"Watsonx Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"post": {
|
|
"description": "Watsonx pass-through endpoint.\nAllows using Watsonx APIs with automatic IAM token management and version parameter injection.\n\nExample:\n POST /watsonx/ml/v1/text/tokenization\n POST /watsonx/ml/v1/text/generation",
|
|
"operationId": "watsonx_proxy_route_watsonx__endpoint__post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Watsonx Proxy Route",
|
|
"tags": [
|
|
"Watsonx Pass-through",
|
|
"pass-through"
|
|
]
|
|
},
|
|
"put": {
|
|
"description": "Watsonx pass-through endpoint.\nAllows using Watsonx APIs with automatic IAM token management and version parameter injection.\n\nExample:\n POST /watsonx/ml/v1/text/tokenization\n POST /watsonx/ml/v1/text/generation",
|
|
"operationId": "watsonx_proxy_route_watsonx__endpoint__put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "endpoint",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Endpoint",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Watsonx Proxy Route",
|
|
"tags": [
|
|
"Watsonx Pass-through",
|
|
"pass-through"
|
|
]
|
|
}
|
|
},
|
|
"/{mcp_server_name}/mcp": {
|
|
"delete": {
|
|
"description": "Handle /{name}/mcp for MCP server aliases, toolsets, MCP access group tags, and comma-separated lists.\n\nResolution order:\n1. Registered MCP server alias / name\n2. Comma-separated list (short-circuits before any DB call)\n3. Toolset name (DB lookup, cached)\n4. MCP access group tag (DB lookup, cached)",
|
|
"operationId": "dynamic_mcp_route__mcp_server_name__mcp_delete",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "mcp_server_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Mcp Server Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Dynamic Mcp Route"
|
|
},
|
|
"get": {
|
|
"description": "Handle /{name}/mcp for MCP server aliases, toolsets, MCP access group tags, and comma-separated lists.\n\nResolution order:\n1. Registered MCP server alias / name\n2. Comma-separated list (short-circuits before any DB call)\n3. Toolset name (DB lookup, cached)\n4. MCP access group tag (DB lookup, cached)",
|
|
"operationId": "dynamic_mcp_route__mcp_server_name__mcp_get",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "mcp_server_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Mcp Server Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Dynamic Mcp Route"
|
|
},
|
|
"head": {
|
|
"description": "Handle /{name}/mcp for MCP server aliases, toolsets, MCP access group tags, and comma-separated lists.\n\nResolution order:\n1. Registered MCP server alias / name\n2. Comma-separated list (short-circuits before any DB call)\n3. Toolset name (DB lookup, cached)\n4. MCP access group tag (DB lookup, cached)",
|
|
"operationId": "dynamic_mcp_route__mcp_server_name__mcp_head",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "mcp_server_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Mcp Server Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Dynamic Mcp Route"
|
|
},
|
|
"options": {
|
|
"description": "Handle /{name}/mcp for MCP server aliases, toolsets, MCP access group tags, and comma-separated lists.\n\nResolution order:\n1. Registered MCP server alias / name\n2. Comma-separated list (short-circuits before any DB call)\n3. Toolset name (DB lookup, cached)\n4. MCP access group tag (DB lookup, cached)",
|
|
"operationId": "dynamic_mcp_route__mcp_server_name__mcp_options",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "mcp_server_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Mcp Server Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Dynamic Mcp Route"
|
|
},
|
|
"patch": {
|
|
"description": "Handle /{name}/mcp for MCP server aliases, toolsets, MCP access group tags, and comma-separated lists.\n\nResolution order:\n1. Registered MCP server alias / name\n2. Comma-separated list (short-circuits before any DB call)\n3. Toolset name (DB lookup, cached)\n4. MCP access group tag (DB lookup, cached)",
|
|
"operationId": "dynamic_mcp_route__mcp_server_name__mcp_patch",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "mcp_server_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Mcp Server Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Dynamic Mcp Route"
|
|
},
|
|
"post": {
|
|
"description": "Handle /{name}/mcp for MCP server aliases, toolsets, MCP access group tags, and comma-separated lists.\n\nResolution order:\n1. Registered MCP server alias / name\n2. Comma-separated list (short-circuits before any DB call)\n3. Toolset name (DB lookup, cached)\n4. MCP access group tag (DB lookup, cached)",
|
|
"operationId": "dynamic_mcp_route__mcp_server_name__mcp_post",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "mcp_server_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Mcp Server Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Dynamic Mcp Route"
|
|
},
|
|
"put": {
|
|
"description": "Handle /{name}/mcp for MCP server aliases, toolsets, MCP access group tags, and comma-separated lists.\n\nResolution order:\n1. Registered MCP server alias / name\n2. Comma-separated list (short-circuits before any DB call)\n3. Toolset name (DB lookup, cached)\n4. MCP access group tag (DB lookup, cached)",
|
|
"operationId": "dynamic_mcp_route__mcp_server_name__mcp_put",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "mcp_server_name",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Mcp Server Name",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"summary": "Dynamic Mcp Route"
|
|
}
|
|
},
|
|
"/{provider}/v1/batches": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "limit",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "integer"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Limit"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "after",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "After"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "target_model_names",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Model Names"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Batches",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/{provider}/v1/batches/{batch_id}": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
},
|
|
{
|
|
"description": "The ID of the batch to retrieve",
|
|
"in": "path",
|
|
"name": "batch_id",
|
|
"required": true,
|
|
"schema": {
|
|
"description": "The ID of the batch to retrieve",
|
|
"title": "Batch ID to retrieve",
|
|
"type": "string"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Retrieve Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/{provider}/v1/batches/{batch_id}/cancel": {
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "batch_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "Batch Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Cancel Batch",
|
|
"tags": [
|
|
"batch"
|
|
]
|
|
}
|
|
},
|
|
"/{provider}/v1/files": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "target_model_names",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Target Model Names"
|
|
}
|
|
},
|
|
{
|
|
"in": "query",
|
|
"name": "purpose",
|
|
"required": false,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Purpose"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "List Files",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
},
|
|
"post": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"requestBody": {
|
|
"content": {
|
|
"multipart/form-data": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/Body_create_file__provider__v1_files_post"
|
|
}
|
|
}
|
|
},
|
|
"required": true
|
|
},
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Create File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"/{provider}/v1/files/{file_id}": {
|
|
"delete": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Delete File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
},
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get File",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
},
|
|
"/{provider}/v1/files/{file_id}/content": {
|
|
"get": {
|
|
"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",
|
|
"parameters": [
|
|
{
|
|
"in": "path",
|
|
"name": "file_id",
|
|
"required": true,
|
|
"schema": {
|
|
"title": "File Id",
|
|
"type": "string"
|
|
}
|
|
},
|
|
{
|
|
"in": "path",
|
|
"name": "provider",
|
|
"required": true,
|
|
"schema": {
|
|
"anyOf": [
|
|
{
|
|
"type": "string"
|
|
},
|
|
{
|
|
"type": "null"
|
|
}
|
|
],
|
|
"title": "Provider"
|
|
}
|
|
}
|
|
],
|
|
"responses": {
|
|
"200": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {}
|
|
}
|
|
},
|
|
"description": "Successful Response"
|
|
},
|
|
"422": {
|
|
"content": {
|
|
"application/json": {
|
|
"schema": {
|
|
"$ref": "#/components/schemas/HTTPValidationError"
|
|
}
|
|
}
|
|
},
|
|
"description": "Validation Error"
|
|
}
|
|
},
|
|
"security": [
|
|
{
|
|
"APIKeyHeader": []
|
|
}
|
|
],
|
|
"summary": "Get File Content",
|
|
"tags": [
|
|
"files"
|
|
]
|
|
}
|
|
}
|
|
}
|
|
}
|