← All guides · provider record →
OpenRouter (free models) — free tier setup
What you get free
Permanent free access to ~20-22 models carrying the :free suffix, through one OpenAI-compatible aggregator endpoint. Per the catalog: "20 requests/minute; 50 requests/day; up to 1000 requests/day with $10 lifetime topup. Models share a common quota. 'Making additional accounts or API keys will not affect your rate limits, as we govern capacity globally.'" The gotcha: 50 RPD across all free models combined is tiny — the single best upgrade is a one-time $10 credit purchase, which lifts you to 1,000 RPD forever without spending the credits.
Friction check
| Credit card | no (optional $10 topup for 1,000 RPD) |
| Phone verification | no |
| Org/membership | none |
| Est. time to first key | ~5m (3 steps) |
| Trains on your prompts | yes — "Free providers may log prompts for training"; varies by upstream provider; control routing via account data-policy settings |
Get a key
- Sign up at
openrouter.ai(email or OAuth). - Go to
openrouter.ai/keysand create a key (exact button label unconfirmed — verify on first signup). Copy it immediately. - Optional but recommended: in account settings, review your data policy settings — they control which upstream providers your requests may route to (free upstreams may log/train on prompts).
- Optional: buy $10 of credits once to raise free-model RPD from 50 to 1,000 (
FREE_MODEL_HAS_CREDITS_RPD=1000, per official limits docs).
First request
curl against the catalog base URL. Expected success shape: a JSON chat.completion object with choices[0].message.content.
export OPENROUTER_API_KEY="YOUR_KEY"
curl https://openrouter.ai/api/v1/chat/completions \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"model": "meta-llama/llama-3.3-70b-instruct:free",
"messages": [{"role": "user", "content": "ping"}],
"max_tokens": 16
}'
(Optional headers HTTP-Referer and X-OpenRouter-Title are only for app rankings on openrouter.ai.)
Limits that will bite you
- Shared pool: 20 RPM / 50 RPD across all
:freemodels combined — not per model (catalog:shared_pool: true). - $10 lifetime topup → 1,000 RPD; without it you will hit the daily wall almost immediately in any automated loop.
- Rate limits are governed globally: "Making additional accounts or API keys will not affect your rate limits."
- Negative credit balance breaks free models too: "If your account has a negative credit balance, you may see 402 errors, including for free models."
- Tool calling is model-dependent on free models. Free-model capacity is upstream-donated and can vanish or degrade without notice.
- Useful extras: Free Models Router (model id
openrouter/free) and model fallbacks for chaining.
Key rotation runbook
- Second key: create another key at
openrouter.ai/keys— but it buys you nothing for rate limits (global governance, see above). Rotation here is for credential hygiene, not quota. - Revoke: delete the key at
openrouter.ai/keys. - ModelHubby integration:
export OPENROUTER_API_KEY_2="..."— the key pool picks it up automatically; state machine cools down rate-limited keys per-key.
ModelHubby usage
pnpm mh show openrouter
pnpm mh probe --live --provider openrouter --apply