Paying frontier-model prices even to answer “hello”? AI Router reads every request, works out how hard it is and sends it to the right model — across Gemini, Qwen, Claude and GPT. Change the base_url and you are running.
“We stopped choosing the model by hand. The request chooses it.”
Most requests do not need the most expensive model — but the code calls it anyway, because switching case by case is work. We moved that decision inside the endpoint: the request is read, classified and routed to the cheapest model that can answer it. One key, one invoice, one log.
A light classifier reads the request and decides the level: Simple, Moderate or Complex. The router picks the most efficient model for that level, even across different providers. You keep calling one model name — and the decision ends up in the log, not in a guess.
A Gemini Flash model reads the request and decides the level. It never costs you credits.
Simple costs 1 credit, Moderate 3, Complex 5. The level chosen and the reason for it are written into the response.
airouter-coding, -reasoning, -fast, -creative, -extract: you declare the use, not the model.
If a provider is down or refuses, the request moves on to the next one. The response states whether that happened.
You can force the level or the model on a single request: the automation never locks you out.
Model actually used, tokens, credits, estimated cost and latency: for every request, for every API key.
From the moment a request comes in to the moment the answer goes out there are five steps, and you write none of them: classification, level choice, model choice, upstream call with fallback, response enriched with model, credits, cost and latency.
Simple, Moderate, Complex: 1, 3 and 5 credits. The classifier chooses, you can override.
Classification runs on a free model inside the hub: it never touches your balance.
The time the classifier adds before routing. Below network noise.
Every save is a version. Roll back, diff, share previews with a link.
Every request leaves one row: model actually used, level chosen and who chose it, input and output tokens, credits, estimated cost in dollars, latency, and whether a fallback kicked in. The prompt content, though, we do not keep.
Isolate the traffic of one project by looking at a single key.
Credits and dollars per request, per day, per model.
We record metadata, not the content of requests and responses.
You know whether the classifier, an alias, a preset or you decided it.
Every response states whether it went through a backup provider.
request.completed, credit.threshold, routing.fallback: HMAC-signed.
Happy with automatic routing? Good. Want control? A preset pins which model serves Simple, Moderate and Complex, and you assign it to a single API key or to your MCP server. The menu shows only the models the hub declares healthy at that moment.
Pick a preset from the gallery, change the models you want, save it and assign it to a key. From then on every request from that key uses your models, keeping the same levels and the same price in credits.
20 ready-made presets across 9 categories: development, content, data, research, translation, conversation, professional, industry, general.
The menu offers only the models the hub declares healthy: withdrawn ones are marked, not hidden.
If a model can no longer be served we tell you when you save, not at the first error in production.
From there on that key uses your models. With no preset, it uses the curated default routing.
Use the OpenAI SDK you already have, the Anthropic SDK if that is your stack, or the MCP server if the caller is an agent. Three surfaces, one key, one credit balance, the same routing underneath.
You change two lines: base_url to https://airouter.it/v1 and the model to airouter-auto. SSE streaming included, no refactor.
The Anthropic SDK authenticates with x-api-key: you use your AI Router key and call /v1/messages as usual.
Model Context Protocol over streamable HTTP, the same Bearer authentication as the API calls. It exposes one tool, ask_airouter, with a budget and max_tokens per call.
To try the routing on real traffic.
For your first project in production.
For growing teams and agents in production.
For high volumes and several teams on the same key.
No. You stay on the OpenAI SDK you already use: change base_url and the model name, and you are running. The Anthropic /v1/messages and OpenAI Responses /v1/responses surfaces are supported too.
A cheap classifier — a Gemini Flash model, which costs you 0 credits — reads the category and difficulty of the request; the router then sends it to the cheapest model good enough for that level: Simple, Moderate or Complex.
Automatic cross-hub fallback between our inference providers: the request moves on to the next one instead of failing. Every response states whether the fallback was used (fallback_used: true).
The content of requests and responses is not kept in our logs: we record metadata only — model, complexity, tokens, cost, latency. Prompts are passed to the AI providers in order to generate the answer. The Privacy Policy has the detail.
Yes. Use the category aliases (airouter-coding, airouter-reasoning, …) or force the level outright. On the free plan the level stays Simple.
In credits, through Stripe: a monthly or yearly subscription with recurring credits, or one-off credit packs. Prices include VAT. Simple costs 1 credit, Moderate 3, Complex 5, and classification 0.
One endpoint, every model, spend under control. Live in two minutes.