[NEW] LiteLLM Model Catalog API #21029
Replies: 4 comments
-
|
The Model Catalog API is a great idea. Here is a design pattern that scales: Catalog Schema Designfrom dataclasses import dataclass, field
from typing import List, Dict, Optional
from enum import Enum
class ModelCapability(Enum):
CHAT = "chat"
COMPLETION = "completion"
EMBEDDING = "embedding"
VISION = "vision"
FUNCTION_CALLING = "function_calling"
JSON_MODE = "json_mode"
STREAMING = "streaming"
@dataclass
class ModelSpec:
# Identity
id: str # litellm model name
provider: str # openai, anthropic, etc
base_model: str # underlying model name
# Capabilities
capabilities: List[ModelCapability] = field(default_factory=list)
context_window: int = 4096
max_output_tokens: int = 4096
# Pricing
input_cost_per_token: float = 0.0
output_cost_per_token: float = 0.0
# Metadata
deprecated: bool = False
successor: Optional[str] = None
release_date: Optional[str] = None
# Performance hints
latency_tier: str = "standard" # fast, standard, slow
quality_tier: str = "standard" # economy, standard, premium
@dataclass
class ModelCatalog:
models: Dict[str, ModelSpec] = field(default_factory=dict)
def find_by_capability(self, *caps: ModelCapability) -> List[ModelSpec]:
return [
m for m in self.models.values()
if all(c in m.capabilities for c in caps)
]
def find_cheapest(self, capability: ModelCapability) -> Optional[ModelSpec]:
candidates = self.find_by_capability(capability)
if not candidates:
return None
return min(candidates, key=lambda m: m.input_cost_per_token + m.output_cost_per_token)
def get_successor(self, model_id: str) -> Optional[ModelSpec]:
model = self.models.get(model_id)
if model and model.successor:
return self.models.get(model.successor)
return NoneAPI EndpointsUse Case: Smart Model Selectioncatalog = get_model_catalog()
# Need vision + function calling, prefer fast
candidates = catalog.find_by_capability(
ModelCapability.VISION,
ModelCapability.FUNCTION_CALLING
)
model = min(candidates, key=lambda m: m.latency_tier)This pattern helps agents make intelligent model choices at runtime. More on agent patterns: https://github.com/KeepALifeUS/autonomous-agents |
Beta Was this translation helpful? Give feedback.
-
|
This is incredibly useful! Model discovery and pricing comparison is a constant pain point. Use cases this unlocks:
Feature requests:
Question: How often is the catalog updated? Real-time or periodic sync? We build model routing systems at Revolution AI — this API is going straight into our tooling. Great addition! 🔥 |
Beta Was this translation helpful? Give feedback.
-
|
Model Catalog API is great! At RevolutionAI (https://revolutionai.io) we use LiteLLM for multi-provider routing. Use cases:
What we would want: from litellm import catalog
# List models by capability
models = catalog.list(
capabilities=["vision", "function_calling"],
max_cost_per_1k=0.01
)
# Get model details
info = catalog.get("gpt-4-turbo")
print(info.context_window) # 128000
print(info.cost_per_1k_input) # 0.01Feature requests:
This would make model selection much easier! |
Beta Was this translation helpful? Give feedback.
-
|
The API seems to be out of date, I don't see pricing for Opus 4.6 on it. Nor does it differentiate between the AWS Global vs Regional inference profiles (eg |
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
LiteLLM Model Catalog API
Free API to query pricing, context windows, and capabilities for 2,500+ models.
Base URL:
https://api.litellm.ai/Quick Start
curl "https://api.litellm.ai/model_catalog?provider=openai&supports_vision=true&page_size=1"Response:
{ "object": "list", "data": [ { "id": "chatgpt-4o-latest", "provider": "openai", "mode": "chat", "max_input_tokens": 128000, "max_output_tokens": 4096, "input_cost_per_token": 0.000005, "output_cost_per_token": 0.000015, "cache_read_input_token_cost": null, "input_cost_per_audio_token": null, "output_cost_per_reasoning_token": null, "deprecation_date": null, "supports_function_calling": true, "supports_vision": true, "supports_audio_input": null, "supports_reasoning": null, "supports_response_schema": null, "supports_prompt_caching": true, "supports_web_search": null, "supports_pdf_input": true } ], "total_count": 98, "has_more": true, "page": 1, "page_size": 1 }What's Included Per Model
Filter Parameters
provideropenai,anthropic,bedrock,vertex_ai, etc.modechat,embedding,image_generationmodelre:prefixsupports_visiontrue/falsesupports_function_callingtrue/falsesupports_reasoningtrue/falsepage/page_sizeSingle Model Lookup
curl "https://api.litellm.ai/model_catalog/gpt-4o"Interactive Docs
https://api.litellm.ai/docs
Beta Was this translation helpful? Give feedback.
All reactions