90 days of the enterprise, pro and team plans free, no card needed. See the plans
If you write the code
“How do I send one request and see why it went where it went?”pip or npm install, or just point your OpenAI client at a new base URL. Every answer carries the target, the confidence, the alternatives, the cost and a trace id; report the outcome and the next decision moves. Claude, Cursor and VS Code can call the same router over MCP.
from openai import OpenAI
client = OpenAI(
base_url="https://opensmartroute.ai/v1",
api_key=os.environ["OSR_API_KEY"],
)
reply = client.chat.completions.create(
model="auto", # the router picks
messages=[{"role": "user", "content": prompt}],
){
"model": "gpt-oss-20b",
"osr": {
"target": "llm-small",
"confidence": 0.94,
"cost_usd": 0.0021,
"reason": "short rewrite, general domain, no PII",
"trace": "/platform/dashboard/activity/req_8f3a"
}
}No application rewrite. The same call also speaks the Anthropic Messages API, and the Python and TypeScript SDKs return the full decision - ranked candidates, policy rejections, prices - when you want more than the answer.
How the promise is kept
Every line below names the page or endpoint that does the work. Open it before you believe it.
Python SDK with zero dependencies, TypeScript SDK typed to every endpoint, REST and OpenAI-compatible clients
SDKsType a request in the playground and watch signals, admissible targets, the ranking and the cost
PlaygroundA trace per request - what it saw, who was allowed to answer, how they ranked, why this one - and OpenTelemetry export
ObservabilityThe MCP server: route, estimate, explain, ask and feedback from any MCP client with your workspace key
MCPAgents, skills, personas, tools, prompts and templates from the marketplace join the routing pool like a model
Marketplace
What you leave with
A decision object: target, confidence, signals, policy rejections, ranked candidates with reasons, and the trace to replay it.
Photo: RDNE Stock project
The other readers
For the business
Same client, same code
The OpenAI-compatible endpoint answers your existing SDK calls; model=auto lets the router choose.
The SDKsOne URL, every vendor
Point your OpenAI-compatible client at one address; add, swap or retire providers in the catalogue without touching application code.
Every vendor side by sideNext eligible model answers
When a provider is down or over quota the request moves on; the trace says it did.
How the trace shows itThe free plan is enough to import a bill, route a first request and read its trace. When the numbers hold, the plans and the agreement follow.
Free plan, no card. Fifteen thousand decisions a month with the full trace.
Support assistant
Answers from the documentation; checking which model is on duty
Hi - I answer from the OpenSmartRoute documentation: routing, the API, plans and quotas, self-hosting. Ask away, or open a support ticket if you need a person.