One endpoint, six policies, 300+ models.
Point the OpenAI SDK at api.llmcloud.ai and swap the model string for an auto: policy. The router picks the upstream per request and streams back through the same connection.
auto:qualitydefaultWeights the request by task class (chat, code, extraction, agentic) and picks the highest-ranked model on the live leaderboard that fits your budget.
POST /v1/chat/completions
{ "model": "auto:quality", "messages": [...] }auto:cost$Picks the cheapest upstream that meets a minimum quality floor for the detected task. Great for background jobs, evals, and bulk extraction.
{ "model": "auto:cost", "messages": [...] }auto:speedmsOptimizes p50 latency to first token. Filters to Groq, Cerebras, SambaNova, and any provider currently hitting the SLO.
{ "model": "auto:speed", "messages": [...] }auto:reasoningthinkRoutes to a thinking model (o-series, Claude thinking, DeepSeek-R, Qwen-thinking). Reasoning trace normalized into a single reasoning[] field regardless of vendor.
{ "model": "auto:reasoning", "messages": [...] }auto:multimodalvisionFilters to models that accept the modalities present in the request (image, audio, PDF) and then ranks on quality within that pool.
{ "model": "auto:multimodal", "messages": [{ "role": "user", "content": [ {"type":"image_url", ...} ] }] }customyoursPin providers, exclude regions, cap price, require zero-retention. Policies are just JSON — commit them to your repo.
{ "model": "auto:cost", "route": { "allow": ["fireworks","together"], "max_price": 0.5, "zero_retention": true } }How it decides
Contextual bandit over live signals
Every request is scored on task class, prompt shape, modality, and cost ceiling. We then sample from the top-k models on the live leaderboard, weighted by recent success rate, p50 latency, and price. Losers are exponentially decayed; winners get more traffic. The same signal powers automatic failover mid-stream.