AI Router came out of a concrete problem: paying a frontier model to answer “hello”. Instead of picking the model by hand at every point in the code, we moved the decision inside the endpoint.
The first commit is dated 21 April 2026: a router, a credit balance and a dashboard. The problem was already clear back then — in everyday code the model name is written by hand, and it stays that way even when the request does not need it.
We built AI Router the way we wanted it for ourselves: an OpenAI-compatible endpoint that reads the request, estimates its complexity with a model that costs nothing, and sends it to the cheapest model able to answer well. With a fallback when a provider goes down, and with the cost written into the response instead of into a spreadsheet.
Today the same endpoint speaks three languages — OpenAI, Anthropic and MCP — and every request leaves a readable line behind.
Right means the cheapest one that answers well. Everything else is spend that does not change the result.
Every response says which model answered, at which level, with how many credits, and whether a fallback fired. No black box.
We record metadata — model, tokens, cost, latency. The content of requests and responses never lands in our logs.
You can always force the level, pin the models with a preset, or call one exact model. The default is a convenience, not a cage.
When we say “up to 90%” it is an estimate on the price gap between models, and we say so. We do not pass it off as an SLA.
Router, credit balance, Stripe billing and dashboard: the first version already routes across several models.
shippedRouting stops depending on a single provider: several inference hubs, with automatic fallback between them.
shippedThe free tier stays on the Simple level; forcing a paid level returns a clear error, not a silent downgrade.
shippedYou pin the model for each level and assign the preset to an API key or to the MCP server. Twenty ready-made presets across nine categories.
shippedEvents on requests and credits, HMAC-SHA256 signature, delivery history and manual re-delivery.
shippedThe admin panel picks the models level by level; billing stops flattening onto a single level.
shipped/v1/messages and /v1/responses arrive alongside /v1/chat/completions, plus the memory store with full-text search.
shippedStreaming becomes native on all three surfaces, sharing one conduit core, with no buffering in between.
shipped“We did not want another SDK to learn. We wanted code that was already written to stop overpaying, without changing one more line.”
AI Router started because we did not want to pay frontier-model prices to answer “hello”.