ORBOrbit Auto
Routing you can read.
Send model: "orbit/auto" and Orbit picks a model with a deterministic, heuristic router — then tells you exactly why. It is a cost/capability trade-off, not a promise of the objectively best model.
Try it
Preview a route.
This calls the public, rate-limited preview endpoint. It never calls a model and never charges anything.
Route preview
- Selected model
- —
- Estimated cost
- —
- Max (reserved)
- —
- Est. savings
- —
- LatencyNo verified latency data yet. Orbit will only show latency measured from its own request history.
- —
Preview only — no model is called. Execution happens in the playground (sign-in required).
Executecurl https://<your-orbit-host>/v1/route/preview \
-H "Content-Type: application/json" \
-d '{ "prompt": "Prove that the sum of two even numbers is even.", "mode": "auto" }'Rate limit
429 rate_limited beyond that. Authenticated callers get their own allowlists applied.1 · Modes
Six modes, one target tier.
| Mode | Behaviour | Target tier |
|---|---|---|
| auto | Classifies the prompt: code signals → coding; strong multi-step reasoning signals with enough complexity → reasoning; otherwise balanced. | derived |
| economy | Targets tier 1 and weighs cost heavily; prefers models tagged fast. | 1 |
| balanced | Tier follows complexity: < 0.30 → 1, < 0.55 → 2, otherwise 3. Prefers general models. | 1–3 |
| coding | Tier 2 below complexity 0.5, tier 3 above. Prefers models tagged coding. | 2–3 |
| reasoning | Tier 3 below complexity 0.6, tier 4 above. Prefers models tagged reasoning. | 3–4 |
| high_performance | Tier 4, with cost weighed very lightly. | 4 |
2 · Signals
Cheap, explainable signals.
Token estimate
~3.5 characters per token plus per-message overhead. Used for routing and reservations; billing uses provider-reported usage.
Code signals
Fenced code, language keywords, stack traces, refactor/unit-test vocabulary, trailing braces.
Reasoning signals
Proof, derivation, step-by-step, trade-off, optimisation and maths vocabulary or symbols.
Complexity 0–1
Combines length, code and reasoning signals, minus simple-request signals (greetings, translate, rephrase), plus tool use.
3 · Hard filters
Ineligible means ineligible.
Before ranking, any model failing one of these checks is excluded — and the preview lists the reason for each exclusion.
Provider not configured
The operator has no key for the model's provider.
Not in model allowlist
The API key or agent policy (intersected up the agent hierarchy) excludes it.
Context window too small
Estimated prompt tokens + max_tokens exceed the model's window.
No tool support
The request includes tools and the model cannot call them.
No image input
The request contains images and the model is text-only.
Exceeds per-request spend limit
The worst-case cost (incl. fee) is above the agent's per-request maximum.
4 · Ranking & fallbacks
Fit first, then price.
- Tier fit. Under-powered models are penalised more than over-powered ones (−1.4 per tier below target vs −0.6 per tier above).
- Strength match. +0.6 when the model is tagged with the mode's preferred strength; +0.4 for long-context models on long prompts.
- Cost. A log-scaled cost penalty, weighted 0.9 in economy, 0.05 in high_performance and 0.35 otherwise.
- Latency. Only Orbit's own observed p50, when enough history exists. Until then latency plays no part and is shown as “—”.
Fallbacks never cost more than the selection
Baseline for savings
5 · Transparency
Every response explains itself.
Chat completions include an orbit object alongside the standard OpenAI fields.
{
"id": "chatcmpl-…",
"object": "chat.completion",
"model": "anthropic/claude-sonnet-5.5",
"choices": [ … ],
"usage": { "prompt_tokens": 412, "completion_tokens": 288, "total_tokens": 700 },
"orbit": {
"request_id": "req_…",
"model": "anthropic/claude-sonnet-5.5",
"routing": { "mode": "coding", "tier": 3, "explanation": "auto → coding · …", "fallback_used": false },
"cost": { "estimated_usd": "…", "charged_usd": "…", "provider_cost_usd": "…", "fee_usd": "…" }
}
}- orbit.request_id
- Look the request up later with GET /v1/requests/:id
- orbit.model
- The model that actually served the request
- orbit.routing.mode / tier
- Effective mode and the selected model's tier
- orbit.routing.explanation
- The human-readable reasoning shown in previews
- orbit.routing.fallback_used
- true if a fallback served the request
- orbit.cost.estimated_usd
- Pre-flight estimate
- orbit.cost.charged_usd
- What your balance was charged (provider cost + fee)
- orbit.cost.provider_cost_usd / fee_usd
- The two parts of the charge