AI Router · one OpenAI-compatible endpoint · every request to the right model · up to 90% less spend · 500 welcome credits · no card required
AI Router · one OpenAI-compatible endpoint · every request to the right model · up to 90% less spend · 500 welcome credits · no card required
airouter
simple · 1 credit
0.9 s ✓
moderate · 3 credits
1.8 s
complex · 5 credits
3.4 s
classification · 0 credits
120 ms ✓
API v1 · SSE streaming on every surface

One line of code.
Every model.
Up to 90% less.

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.

request · 18 ms · TLS · routed
POST /v1/chat/completions
classified · simple level
routed · 1 credit
airouter.it/app/logs
request
AR
airouter-auto · last 60 minutes
1,284 requests · 4 providers
Routing
88%
request · classified
{ }"Write me a test for this function" → coding category, simple level. Model chosen gemini-flash
routing in progress…
REQUESTS
1,284
SAVINGS
68%
LATENCY
1.4s
sender · your app · OpenAI SDK
AI
Assistant · your app
gemini-flash · simple
today · 14:08
Hi! Can you write me a test for this function?
14:08
Sure — starting from the edge cases.
14:08 · just now
Here is the function in Python, with its tests 👇
14:08 · just now
Done: three green tests, zero regressions.
14:09 · just now
Perfect, thanks 🙌
14:09 ✓✓
Type a message…
3 replies
just now
receiver · reply · 1 credit
LIVE
{ } ✓✓
90% less spend
·
3 levels
·
20 ready-made presets
·
0 cr to classify
10 model families
one endpoint for all of them
OpenAI ANTHROPIC google gemini // meta llama QWEN Mistral DeepSeek xAI Cohere. NVIDIA
OpenAI ANTHROPIC google gemini // meta llama QWEN Mistral DeepSeek xAI Cohere. NVIDIA
— Manifesto

One endpoint
beats
ten SDKs.

“We stopped choosing the model by hand. The request chooses it.”

AR
The AI Router team
airouter.it · Italy
since 2026 API v1

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.

1
endpoint · every provider
0
credits to classify
3
levels · 1 · 3 · 5 credits
01
Feature one
Classification and routing
3 levels· classifying costs 0· category aliases· manual override

Every request to the cheapest model
that can actually answer it.

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.

AR
airouter-auto · last 60 minutes
1,284 requests · 3 levels · 4 providers
Routing
88%
level: simple category: coding provider: gemini stream: on fallback: ready
SIMPLE
71%
MODERATE
22%
COMPLEX
7%
CREDITS
1.4
SAVINGS
68%
Simple · gemini-flash chosen
1 credit · 0.9 s · full answer
Complex · premium model discarded
5 credits · 3.4 s · same answer
Routing by category
active
1:5credits · same outcome
  • codingsimple · qwen-coder
  • extractsimple · gemini-flash
  • reasoningcomplex · premium model
  • creativemoderate · claude
Every choice ends up in the request log.
Provider health · 24h
healthy
High· no throttling
  • Fallbacks used0.4%
  • Requests served99.2%
  • Automatic retryon
Inside this feature
  • 01
    Zero-cost classifier

    A Gemini Flash model reads the request and decides the level. It never costs you credits.

  • 02
    Three levels, one clear price

    Simple costs 1 credit, Moderate 3, Complex 5. The level chosen and the reason for it are written into the response.

  • 03
    Category aliases

    airouter-coding, -reasoning, -fast, -creative, -extract: you declare the use, not the model.

  • 04
    Multi-hub fallback

    If a provider is down or refuses, the request moves on to the next one. The response states whether that happened.

  • 05
    Override when you need it

    You can force the level or the model on a single request: the automation never locks you out.

  • 06
    Everything tracked per key

    Model actually used, tokens, credits, estimated cost and latency: for every request, for every API key.

Classification never consumes credits · on every request See the levels →
02
Feature two
The path of a request
classification 120 ms· 0 credits· automatic fallback· enriched response

You do not choose the model.
The classifier does, in 120 ms.

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.

CL
Classifier · level choice
Gemini Flash · 0 credits
ready
request “Rewrite this SQL query so it uses the right index, and tell me in two lines what changed.”
decided in 120 ms
✓ moderate level · incoming request · classification · level moderate · model available? · upstream call · response enriched · …
Read the documentation →
request_path.v1 · same path for every call
5 steps 2 exits v1 · live
entry
POST /v1/chat/completions
OpenAI SDK
classification
Category and complexity
0 credits · 120 ms
level · model
moderate → 3 credits
cheapest model good enough
provider healthy · exit
Enriched response
model · cost · latency
if the provider refuses
Multi-hub fallback
fallback_used: true
entry · classification · routing · response
3
Levels

Simple, Moderate, Complex: 1, 3 and 5 credits. The classifier chooses, you can override.

0
Credits to decide

Classification runs on a free model inside the hub: it never touches your balance.

120ms
Decision

The time the classifier adds before routing. Below network noise.

v
Version control

Every save is a version. Roll back, diff, share previews with a link.

03
Feature three
Logs, costs and analytics
per API key· estimated cost· real latency· no prompt stored

You always know.
Including what you have spent.

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.

Views
All 14
This key3
With fallback5
Errors 2
Streaming8
Last hour 42
Levels
simple moderate complex alias
All · 1,284 last 24h
req_8f21c4simple
gemini-flash · 1 credit · 0.9 s
simplecomplex
req_8f21c3complex
premium model · 5 credits · 3.4 s
req_8f21c2moderate
claude · 3 credits · 1.8 s · fallback
req_8f21c1simple
qwen-coder · 1 credit · 0.7 s
req_8f21c0alias
airouter-coding · 1 credit · 1.1 s
#1
req_8f21c4 · airouter-auto
key “production” · simple · 1 credit · 0.9 s
served
incoming request · 412 tokens · streaming on
14:08
↳ classifier · gemini flash · 0 credits
category: coding · complexity: simple
14:08 ✓✓
routed to gemini-flash · 218 output tokens · no fallback
14:09 ✓✓
internal note · we keep no trace of the prompt
nothing of the content survives: only the metadata you see here.
+
Export the row · CSV or API
⌘↵
Request
Levelsimple
Tokens412 / 218
Cost$0.0004
Providergemini
Fallbackno
Timing
classification120 ms
total0.9 s
Key
PRproduction
01
Filter by key

Isolate the traffic of one project by looking at a single key.

02
Estimated costs

Credits and dollars per request, per day, per model.

03
No prompts

We record metadata, not the content of requests and responses.

04
Where the level came from

You know whether the classifier, an alias, a preset or you decided it.

05
Visible fallbacks

Every response states whether it went through a backup provider.

06
Webhooks on events

request.completed, credit.threshold, routing.fallback: HMAC-signed.

04
Feature four
Router presets
20 ready-made presets· 9 categories· per API key· or per MCP server

20 ready-made presets.
Assigned in one click.

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.

DEV
development · code
3 levels · assignable
active
Simple → qwen-coder
Moderate → claude · Complex → reasoning model.
development category
key “production” 1 · 3 · 5 credits
CNT
content · writing
3 levels · assignable
active
Simple → gemini-flash
Moderate → claude · Complex → premium
key “editorial” 1 · 3 · 5 credits
FREE
free models only
zero cost · variable quality
active
only_free on:
0 credits
The editor warns you: they can be unavailable.
development category
key “testing” 0 credits

How it works.

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.

Checks before saving
5 / 5 passed
  • One model for each of the three levels
  • Models the hub declares healthy right now
  • No model withdrawn from the catalog
  • Compatible with streaming and aliases
  • Target key or MCP server is valid
  1. A
    Start from a preset or duplicate your own

    20 ready-made presets across 9 categories: development, content, data, research, translation, conversation, professional, industry, general.

  2. B
    Pick the model for each level

    The menu offers only the models the hub declares healthy: withdrawn ones are marked, not hidden.

  3. C
    Save: we check before we write

    If a model can no longer be served we tell you when you save, not at the first error in production.

  4. D
    Assign it to a key or to the MCP server

    From there on that key uses your models. With no preset, it uses the curated default routing.

05
Feature five
Surfaces · 3 ways to call us
OpenAI· Anthropic· MCP· same balance

Three ways to connect.
One balance at the end.

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.

Recommended
WA
surface · 01
OpenAI

Chat Completions, drop-in.

You change two lines: base_url to https://airouter.it/v1 and the model to airouter-auto. SSE streaming included, no refactor.

  • Setup time~2 min
  • Route/v1/chat/completions
  • Streamingnative SSE
  • Best forapps already in production
Tw
surface · 02
Anthropic

Messages API, same key.

The Anthropic SDK authenticates with x-api-key: you use your AI Router key and call /v1/messages as usual.

  • Setup time~2 min
  • Route/v1/messages
  • Authx-api-key
  • Best forstacks on the Anthropic SDK
for agents
QR
surface · 03
MCP

One tool for your agents.

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.

  • Setup time~1 min
  • Route/mcp
  • Dedicated presetyes
  • Best foragents · tools
08
By kind of workload
Use cases
4 typical workloads· same endpoint· measurable savings

Built for every
kind of workload.

i SaaS products

Chat and assistants
inside your product

  • Short answers at the Simple level
  • Automatic escalation when it is needed
  • SSE streaming already supported
  • Cost per conversation tracked
typical effect less spend per chat
ii Agencies and studios

One endpoint for
all your clients.

  • One API key per client
  • A different preset per project
  • Separate, readable costs
  • No contract per provider
typical effect one invoice only
iii Data pipelines

Extraction and
classification at scale.

  • airouter-extract and -fast aliases
  • Simple level on the bulk of the volume
  • Fallback if a provider goes down
  • Logs to reconcile the costs
typical effect volume at 1 credit
iv Agents and tools

MCP serveramp;
for your agents.

  • ask_airouter tool over HTTP
  • Same Bearer auth as the API
  • Preset dedicated to the MCP server
  • Budget and max_tokens per call
typical effect one tool, one balance
07
Pricing
You pay in credits, not per model
500 welcome credits· no card required· cancel anytime

Simple, honest,
in credits.

— Plan · 01
free

Free

To try the routing on real traffic.

€0 forever
Volume
  • 500 welcome credits
  • 1 API key
  • Simple level of the router
  • Moderate and Complex levels
Features
  • Automatic routing
  • Category aliases
  • SSE streaming
  • Router presets
  • Signed webhooks
  • MCP server
  • Memory store
Support
  • Docs and community
  • Priority support
Start free →
— Plan · 02

Starter

For your first project in production.

€19 /month
Volume
  • 10,000 credits / month
  • Up to 5 API keys
  • All three levels
  • 1,000 memory entries
Features
  • Automatic routing
  • Category aliases
  • SSE streaming
  • Router presets
  • Signed webhooks
  • MCP server
  • Memory store
Support
  • Docs and community
  • Priority support
Choose Starter →
— Plan · 03
recommended

Pro

For growing teams and agents in production.

€49 /month
Volume
  • 50,000 credits / month
  • Multiple API keys
  • All three levels
  • 10,000 memory entries
Features
  • Automatic routing
  • Category aliases
  • SSE streaming
  • Router presets
  • Signed webhooks
  • MCP server
  • Memory store
Support
  • Docs and community
  • Priority support
Choose Pro →
— Plan · 04

Business

For high volumes and several teams on the same key.

€149 /month
Volume
  • 200,000 credits / month
  • Multiple API keys
  • All three levels
  • 50,000 memory entries
Features
  • Automatic routing
  • Category aliases
  • SSE streaming
  • Router presets
  • Signed webhooks
  • MCP server
  • Memory store
Support
  • Docs and community
  • Priority support
Choose Business →
Honest pricing
You pay per request
Not per model. Never per seat.
Classifying costs 0
The level is decided by a model you never pay for.
Yearly = 2 months free
Twelve months at the price of ten.
Prices include VAT
What you see is what you pay.
FAQ

Common questions.

Not answered here? Write to info@airouter.it — a person replies.

Do I have to change SDK?

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.

How do you pick the model?

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.

What happens if a provider goes down?

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).

What happens to my data?

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.

Can I force a model or a level?

Yes. Use the category aliases (airouter-coding, airouter-reasoning, …) or force the level outright. On the free plan the level stays Simple.

How does payment work?

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.

— Start now

Stop overpaying
for AI.

One endpoint, every model, spend under control. Live in two minutes.

What you get right away
sk-
Your own API key
sk-airouter-… · live immediately
500
Welcome credits
when you verify your email
3
Compatible surfaces
OpenAI · Anthropic · MCP