Free models
Enable free chat, choose a free model or the Free Models Router, and understand privacy and shared capacity.
Free models cost $0, including inference fees. Use anonrouter/free to let
AnonRouter choose an available free model, or copy an exact
<creator>/<model>:free ID from the model catalog.
An eligible account can use them with an empty credit balance.
Free models use Anonymous routes
The upstream provider can see and may retain your prompts and responses. Free models do not provide the Private, TEE, or E2EE guarantees. AnonRouter's own content-handling boundary is described in the privacy model.
Enable free models
- Sign in to AnonRouter and open the dashboard Privacy page, a free model's page, or the Free Models Router page.
- Read the Anonymous-routing disclosure and enable free models for your account.
- Use an inference key with OpenAI-compatible access in an app, or use the private ticket flow in your own integration.
Eligibility normally requires a verified, non-disposable email on the eligible account for that inbox, or a credited purchase. An account that has made a credited purchase may qualify even if it is a private account. If the dashboard says the account is not eligible, complete the requirement it shows.
The account opt-in is your Anonymous consent. It applies to free requests
from every inference key on that account. You do not need to add a custom
provider field to a client that only accepts a URL, key, and model name.
provider.minimum_privacy: "anonymous" remains accepted, but does not replace
the account opt-in.
A workspace privacy boundary of Private or Maximum, or a request that
explicitly requires private, tee, or e2ee, still prevents free routing.
Enabling free models never weakens that boundary or changes how paid requests
are routed.
Choose a free model
| Model value | What happens |
|---|---|
anonrouter/free | Chooses an eligible free model for each request. The selected model can change between requests. |
Exact <creator>/<model>:free ID | Uses only free routes of that model. Copy a currently listed ID; adding :free to an arbitrary paid ID does not create a free offering. |
/auto or a paid router | Uses its own paid-model pool. Enabling free models does not add free routes to it. |
Free models serve chat completions. Streaming, tools, and image input depend on
the selected model's advertised capabilities; a free price does not imply
support. The Free Models Router does not accept explicit reasoning controls
such as reasoning_effort; choose an exact :free model whose advertised
capabilities support them. E2EE and a models fallback list are not supported
for free requests.
The advertised context and output limits belong to the free offering and can be smaller than those of its paid sibling. If you omit an output limit, the free output budget is at most 1,024 tokens, bounded by the selected route's maximum. An explicit output cap is not silently reduced; it must satisfy the route's limits. See context limits.
Make a request
With a compatibility-enabled key, use the ordinary chat endpoint:
curl https://api.anonrouter.ai/v1/chat/completions \
-H "Authorization: Bearer $ANONROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "anonrouter/free",
"max_tokens": 512,
"messages": [{ "role": "user", "content": "Explain a binary search." }]
}'For the private ticket flow, issue a ticket on
https://control.anonrouter.ai/v1/inference/tickets with the same model, output
limit, and provider policy, then send the chat to the API origin with that
ticket. Follow the quickstart for the complete flow.
Free usage is recorded at $0. The response reports the selected model and an Anonymous route; it is never relabeled as Private because you opted in.
Use free models in another app
For a client with OpenAI-compatible settings, enter:
| Setting | Value |
|---|---|
| Base URL | https://api.anonrouter.ai/v1 |
| API key | Your compatibility-enabled AnonRouter inference key |
| Model | anonrouter/free or an exact listed :free ID |
Some apps require the full chat URL instead of a base URL. For example,
Janitor AI uses
https://api.anonrouter.ai/v1/chat/completions. Keep the account opt-in enabled;
no additional Anonymous-consent field is needed in the app.
Shared capacity and retries
Free capacity is shared and availability can change as upstream allowances or promotions change. The standard account allowance is 20 requests per minute, 100,000 reserved tokens per minute, and 2 concurrent free requests, shared across its keys and free models. An active subscription raises these limits. Reserved tokens include input exposure and the authorized output budget; they are not just the tokens eventually generated. Shared upstream windows and account fair-share limits can stop requests before that allowance is reached.
When capacity is exhausted, use the response's Retry-After value when present
and wait before retrying. Changing keys does not reset the account allowance.
For an exact model that has exhausted its share, you can explicitly choose
another :free model or anonrouter/free; neither option guarantees capacity.
The Free Models Router can choose another eligible free model before inference starts. Once a concrete model is serving the request, provider fallback stays on that same free model, and no provider switch occurs after output starts. There is no paid fallback. To use a paid model, make a separate request with a paid model or router ID.
Workspace model pools
The Free Models Router respects your workspace privacy and provider settings.
A model pool that only names paid /auto models does not exclude free routing.
If the pool explicitly names free variants, it narrows the free candidates:
include keeps matching variants and exclude removes them. The
anonrouter/free pattern represents all free variants.
An exact :free request pins its model and does not use the automatic model
pool. Its privacy boundary, provider policy, account eligibility, and capacity
checks still apply.
Troubleshooting
| Status | Code | What to do |
|---|---|---|
403 | free_models_not_enabled | Enable free models for the account. |
403 | free_models_not_eligible | Follow the account eligibility requirement shown in the dashboard. |
403 | privacy_boundary_not_met | Use a paid route that meets the workspace boundary, or deliberately change that boundary if appropriate. |
400 | anonymous_consent_required | The request explicitly asks for a stronger privacy tier. Use a matching paid route, or remove that request constraint only if you intend Anonymous routing. |
400 | free_router_excluded_by_settings | Review the named model-pool, provider, or privacy setting in the error. |
400 | free_router_no_capable_model | No available free model supports this request's capabilities or size. Reduce the request or select a suitable model explicitly. |
429 | free_capacity_exhausted, free_account_capacity_exhausted, free_daily_capacity_exhausted | Wait for the indicated reset. Free capacity and account shares are independent of paid credit balance. |
503 | free_route_unavailable | Retry later or explicitly choose another available model. No paid fallback was used. |
For a context or output-cap error, reduce the request before trying again. Repeated unchanged retries can trigger a context-refusal cooldown.
Or hand the whole thing to your agent
One prompt carries the entire setup. Give it to your agent, review what it configures, and you are done.