FreeLLMAPI vs 9Router: free tiers and routing
Compare FreeLLMAPI with 9Router, inspect the upstream project, and evaluate provider keys, quota limits, model discovery, routing, and migration requirements.
FreeLLMAPI is worth evaluating for personal experiments that combine provider allowances and automatic model selection. Its upstream README explicitly advises against production use and recommends paid API access before shipping a real product. A working 9Router route is the simpler choice when you already have the account, model and coding-client setup you need.
This is a comparison of tashfeenahmed/freellmapi with 9Router, reviewed October 23, 2026. The upstream suitability warning is distinct from the project’s MIT license; it is not a claim that the license prohibits commercial use. Neither gateway supplies unlimited provider access.
Compare the routing and maintenance model
| Question | FreeLLMAPI | 9Router |
|---|---|---|
| Where do model credentials go? | Provider keys are added in its dashboard; clients use its unified API key | Provider API keys/account connections live in the router; clients use a router-issued key |
| What is the basic route? | auto uses the active fallback chain; named profiles can select another chain | A client chooses an exposed model or a configured combo name |
| Can a request change selection policy? | auto:fast ranks enabled models for speed; it ignores the active chain order | Configure the desired explicit model/combo and inspect its selected route |
| What does model discovery mean? | Catalog includes unavailable entries; readiness filters exist | Use the router model list and connection state, then verify inference |
| What API surfaces are documented? | Chat, Responses, Anthropic Messages and Gemini-compatible surfaces | Client guides cover Chat Completions, Responses and Anthropic-style integrations |
| How do I see what answered? | Documents the X-Routed-Via response header | Inspect the router request record and serving provider usage |
| What is a critical backup dependency? | Keep its database and original encryption key together | Preserve the configured data directory and version before updates |
These are documented interfaces, not proof that every model supports every API feature. FreeLLMAPI’s auto:cheap is documented as using the balanced ranking currently; its name is not a promise of the lowest invoice. A comparison should record the actual serving model, not just the requested alias.
What “free” covers—and what it does not
FreeLLMAPI organizes access to provider allowances that have their own limits, eligibility and terms. Its free catalog updates can lag the signed catalog; optional premium catalog freshness is a separate product from inference credits. Buying a catalog update cannot make an exhausted provider key usable.
The project’s personal-use guidance matters if an outage would affect customers. For a production application, follow its recommendation to arrange suitable paid API access and evaluate reliability separately. Moving the same unstable free-tier accounts behind 9Router would not solve that underlying dependency.
Inspect availability before testing automatic routing
After following FreeLLMAPI’s own installation instructions, add your provider key in its dashboard and obtain its unified client key. The documented local API default is port 3001, distinct from 9Router’s 20128. Set FREELLMAPI_KEY locally and run:
curl --fail-with-body --noproxy '*' \
'http://localhost:3001/v1/models?execution_status=ready' \
-H "Authorization: Bearer $FREELLMAPI_KEY"
The filter applies to catalog models; router aliases such as auto and named profiles can still appear. A fresh, unprobed key can count as ready. Thus this response narrows your choices but does not prove a successful request.
For an experiment with automatic selection, first inspect which providers/models are enabled and their applicable limits. This request can use their quota or balance:
curl --fail-with-body --noproxy '*' -i \
http://localhost:3001/v1/chat/completions \
-H "Authorization: Bearer $FREELLMAPI_KEY" \
-H 'Content-Type: application/json' \
-d '{"model":"auto:fast","messages":[{"role":"user","content":"Give a short definition of a loop."}],"stream":false}'
Inspect X-Routed-Via and the chat body together. If you require a fixed model, request an eligible explicit ID instead. If you require your configured fallback-chain order, use plain auto rather than auto:fast. This Wiki has reviewed the request shape, not executed a funded provider comparison.
Which one should you choose?
Choose a FreeLLMAPI trial if your goal is personal exploration of available allowances, dynamic selection or named fallback profiles, and you can tolerate account-dependent interruptions. Keep a record of which provider actually answered, especially when comparing model quality.
Choose your existing 9Router setup if the main requirement is a known coding client and known provider/model, and that route already works. A catalog-oriented experiment is not by itself a reason to migrate a functioning setup. For an application with customer-facing reliability requirements, select suitable upstream service commitments first; neither project’s free software license provides them.
Migrate one client, with an explicit rollback
Use separate storage and API credentials. Recreate a single provider connection and discover its model ID in the new gateway. Change the test client’s base URL, local key and model together; a 9Router combo name is not automatically a FreeLLMAPI profile.
Test text, streaming and a harmless tool call. Compare the actual provider/model and usage, not a supposed savings percentage. Restore the three saved client settings if the task fails. Preserve FreeLLMAPI’s database with its original encryption key when backing up: replacing the key can make stored credentials unreadable. Do not copy databases between projects without a documented migration path.
References for this guide
Steps were checked against the linked documentation and source. Provider access and model availability depend on your account. We do not claim a completed live model test unless explicitly stated.