Can someone make a dedicated guide for making combos for 9router, omnirouter, freellmapi etc that switch when a free llm hit limit? I tried watch a free youtube videos. They tell how to setup 9router, omniroute but not the combos.
Request someone from community to help out if possible.
A โcomboโ is just a list of providers in order.
The router tries #1. If it is full, it tries #2. Then #3.
You are ordering that list by best model. That is why it stalls.
Order it by refill speed instead.
Do this first, before any list
โRate limits are applied per project, not per API key.โ โ Google docs
10 keys in 1 project = 1 allowance.
10 projects = 10 allowances. Same account, one click each. Make them here
Do this before you touch any router. It is free size.
Then order the list by the clock
REFILLS WHO PUT IT
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโ
1 every minute Groq ยท NVIDIA NIM TOP โฒ
2 every day Cerebras ยท Gemini keys MIDDLE โ
3 every month Kiro ยท OpenRouter free BOTTOM โผ
4 never runs out OpenCode Free (no key) LAST โ
A monthly allowance on top is gone by day 3.
A monthly allowance at the bottom is still full when you reach it.
Rung 4 needs no key at all, so you are never fully stopped.
Inside one rung, add every account you own. The router rotates them.
Where you click
Start with OmniRoute. Build no list. Set your model to auto/offline.
It checks who has the most left and picks that, on every single request. how
9router โ Dashboard โ Combos โ Create New โ drag rows into the order above โ Strategy: Fallback. Then type your combo name where you used to type a model name. how
freellmapi โ Keys page โ drag the Fallback Chain into that order. how
How to see it working
freellmapi puts an X-Fallback-Trail header on every reply.
It lists the providers it actually walked through, in order.
That is your proof the ladder is live, not a guess.
Never hit the wall at all
Right now your router waits for the โslow downโ error, then moves on.
Every wall costs you one wasted request, forever.
- keymux โ checks who has room before sending. The error never happens.
- llm-keypool โ reads each providerโs real reset time instead of guessing a wait.
๐งฐ Ready-made lists, if you want to skip building one
- freellmpool โ 24 providers, least-used first
- llm-apipool โ 40+ providers, CLI / TUI / proxy
- llmux โ 5 orders to choose from, no database
- OpenRouter fallbacks โ
"models": ["a","b","c"], nothing to install
๐ฉ Old advice that is now wrong
โPollinations needs no keyโ โ not true any more. Their docs now require a key for everything. Some lists still show it as keyless.
Tools change every month. The clock order does not.
Thanks for response. I understand the math now of โ10 keys in one project = still one limit.โ But the question remains: how to make the combos for 9router of omnirouter or freelmmapi? I have free api keys from a few, now will make more per project. But combos - I canโt figure out. Which models/providers first.
All YT videos claim teach. They the npm command, show add one provider, say add more like this and END. Combos? None.
I was not able to understand what SRZโs English. I need a translator..
The answer above is now AI-improved by the Core-Community.
The combo order isnโt โbest model first.โ Itโs refill speed first.
(9router ยท OmniRoute ยท freellmapi)
Combo: "my-stack"
1. groq/llama-3.3 โ resets in minutes
2. glm/glm-5.1 โ resets daily
3. kiro/claude-sonnet โ resets monthly, use it last
Top model runs out fastest and comes back fastest. Bottom model is precious, so it sits behind everything else.
If you donโt want to order it by hand, OmniRoute (9routerโs bigger fork) has a reset-window / headroom strategy that sorts providers by โwho resets soonestโ automatically. 9router and freellmapi donโt have that yet โ still manual there.
(โ๏พใฎ๏พ)โ Three combos to paste, one order to copy โ fastest refill on top, no-key at the bottom, the switch happens by itself
A combo is a list. Provider 1 full โ provider 2. Provider 2 full โ provider 3. Fastest refill on top, the no-key one at the bottom.
# provider free quota (their page, 12 Sep 2026) refills
โก 1 Groq 30/min ยท 1,000/day ยท 200K tokens/day per model every minute
๐
2 SambaNova 20/min ยท 20/day ยท 200K tokens/day per model every day
๐
3 Gemini per project, numbers inside AI Studio midnight Pacific
๐
4 Cloudflare AI 10,000 neurons/day 00:00 UTC
โพ๏ธ 5 Z.ai GLM-Flash GLM-4.7-Flash ยท 4.5-Flash ยท 4.6V-Flash, priced Free
๐
6 OpenRouter :free 50/day (1,000/day once you ever bought $10) every day
๐๏ธ 7 Kiro 50 credits, Sonnet 4.5 + open models every month
๐ 8 LLM7.io key = the word unused ยท 10/min no key, always last
โก minute ๐
daily ๐๏ธ monthly โพ๏ธ always free ๐ no key
Keys and live quota pages: Groq ยท SambaNova ยท Gemini ยท Cloudflare ยท Z.ai ยท OpenRouter ยท Kiro ยท LLM7
Your routerโs drawer = one block to paste.
๐๏ธ OmniRoute โ one curl, strategy fill-first, type free-list as the model
Keys: Dashboard โ Providers โ Add Provider. Strategy fill-first = use the first target until itโs full, then the next.
curl -X POST http://localhost:20128/api/combos \
-H "Authorization: Bearer $OMNIROUTE_KEY" -H "Content-Type: application/json" \
-d '{
"name": "free-list",
"strategy": "fill-first",
"targets": [
{ "provider": "groq", "model": "openai/gpt-oss-120b" },
{ "provider": "google", "model": "gemini-2.5-flash" },
{ "provider": "openrouter", "model": "nvidia/nemotron-3-ultra-550b-a55b:free" },
{ "provider": "kiro", "model": "claude-sonnet-4.5" }
]
}'
Model name in Cline / Cursor / any client: free-list.
omniroute quotaโ remaining quota and reset time per provider.PUT /api/settings {"freeAccessPolicy":"strict"}โ paid tiers stay off.- Model name
autoskips your combos. Typefree-list.
๐งพ freellmapi โ one JSON file, called as auto:free-list
Save as freellmapi.config.json โ FREEAPI_CONFIG_PATH=/path/to/it โ restart (doc). fallback = the order.
{
"keys": [
{ "platform": "groq", "key": "gsk_...", "label": "main" },
{ "platform": "google", "key": "AIza..." },
{ "platform": "openrouter", "key": "sk-or-..." }
],
"fallback": [
{ "platform": "groq", "modelId": "openai/gpt-oss-120b", "priority": 1 },
{ "platform": "google", "modelId": "gemini-2.5-flash", "priority": 2 },
{ "platform": "openrouter", "modelId": "nvidia/nemotron-3-ultra-550b-a55b:free", "priority": 3 },
{ "platform": "llm7", "modelId": "default", "priority": 4 }
],
"routing": { "strategy": "priority" }
}
Model name: auto:free-list. Each reply shows X-Routed-Via: groq/...; after a switch, X-Fallback-Trail: groq/... key1=rate_limited; google/... key2=timeout (headers). Switch rules: daily 429 โ that model + key rests until UTC midnight ยท minute 429 โ 90 s ยท 402 โ key rests 24 h.
๐ข 9router โ Combos โ Create New, or one POST
9router uses its own provider codes (kr/ = Kiro, if/ = iFlow, qw/ = Qwen). Its free chain (combo docs):
Dashboard โ Combos โ Create New
Name: free-list
Models:
1. kr/claude-sonnet-4.5 (Kiro, 50 credits/month)
2. kr/glm-5 (Kiro)
3. if/kimi-k2-thinking (iFlow, the last one)
Strategy: Fallback โ try in order
Without the UI: POST http://localhost:20128/api/combos with {"name":"free-list","models":["kr/claude-sonnet-4.5","kr/glm-5","if/kimi-k2-thinking"]}. Entries = plain provider/model strings; no / in the combo name. Client: base URL http://localhost:20128/v1, model free-list.
๐งฏ Why it does not switch, and the fix
- OmniRoute ignores HTTP 402 (OpenRouter โcredits goneโ), so OpenRouter stays in the pool. Put OpenRouter in freellmapi, or below the daily providers in OmniRoute.
- OmniRoute reads Groqโs reset header
7.66sas7; freellmapi reads it right. Groq stays first either way, it refills in a minute. - 9router switches on every error: a wrong provider costs one request, never a stop.
๐งช See who has room before you send
- Groq:
curl -sI https://api.groq.com/openai/v1/models -H "Authorization: Bearer $GROQ_API_KEY"โ remaining-quota headers, zero tokens spent. - OpenRouter:
GET https://openrouter.ai/api/v1/keyreturnslimit_remaining. - All keys at once:
npx llm-limits-trackerโ paste keys โ remaining per minute and per day.
Groq on top, LLM7 with the word unused last. Paste your routerโs block, type free-list, done.
This is THE SHIT SRZ. TY Very Much!!!
Hehe, I sometime ask dumb questions but it help everybody ![]()
!