What an AI router does
An AI router sits between your tools and the model providers. Your tool sends every request to one address with one key, and the router decides which model answers. Done well, the hard requests still go to a strong model and the easy ones stop paying top model prices.
Most routers also add fallbacks when a provider errors, spend limits, and a log of what went where. The big differences are what they add to your token prices, whose keys they use, and who has to run the proxy.
How the options compare
A fair look at five common choices, on the three things that change your bill and your workload.
| Router | What it adds to token prices | Who runs it |
|---|---|---|
| OpenRouter | About 5.5% on the credits you buy | Hosted for you |
| Requesty | 5%, or 0% with your own keys | Hosted for you |
| Portkey | Priced by the logs you keep | Hosted for you |
| LiteLLM | Nothing. It is free and open source | You run it yourself |
| FUSR.ai | Nothing. Your own keys, and providers bill you directly | Hosted for you, on LiteLLM |
Fees change, so check each company's pricing page before you choose. FUSR.ai charges a flat plan instead: Free at $0, Pro at $29 a month, and Team at $149 a month. See pricing.
If you are happy to run a proxy, self hosted LiteLLM costs nothing on top. FUSR.ai is that same proxy, run for you, with routing, caching, caps, and a savings report added. Hosted LiteLLM, explained.
How FUSR.ai picks a model
Ask for the model fusr/auto. Each request is sorted into a task type in the proxy: coding, writing, images, long documents, or quick questions. FUSR.ai has a default order of models for each type, and your rules come before it. Here is what wins, from the top.
01A model you name
Ask for fusr/claude, fusr/openai, or fusr/grok and it goes there, with no fallback.
02Your cap
A model at a monthly cap you set is skipped.
03Room for the request
A model whose window is too small for the request is skipped.
04A pin
Pin a task type to a model and that model goes first.
05FUSR.ai's order for the task
Quick questions go to the cheapest connected model first. Turn on cheapest-good-enough and every task goes to the cheapest model rated good enough for it.
Every pick is logged with a one line reason on the Routing page. If the model errors, the next one in line takes over. A chat stays on the model whose prompt cache is warm, so routing does not throw away caching.
Use ChatGPT models and Claude together, through one key
OpenAI and Anthropic models are each good at different things, and that shifts with every release, so this page won't rank them. Connect both API keys, and one FUSR.ai key reaches either. fusr/auto picks per request, or you name one when you want it.
On Pro and Team, Compare sends one prompt to two of your connected models side by side, and you pick the better answer. That uses two requests, one on each key. Over time you learn which one you reach for to code, to write, and to think something through.
This is about API keys. Chat plans like ChatGPT Plus or Claude Pro are separate, and FUSR.ai does not use them.
What the router sees
The proxy reads the request to sort it by task, then sends the app only the task type, a rough size, and a few counts. Two keyed fingerprints let it tell when a request is sent again or belongs to the same chat. None of that can be turned back into text.
Prompts aren't stored, and neither are replies. See what we keep.
When a router is not worth it
If you use one model for everything and it is already cheap, a router adds little. If every request is hard, it all belongs on the top model anyway. In those cases caching, a cap per key, and trimming what you send help more. The cost guide covers each one.