🔀 OpenRouter · 💸 Free Models · ⏱️ 10 min read
OpenRouter Free Models: Limits, :free Tags and How to Use Them
OpenRouter's free models are probably the best deal in AI APIs right now, and also the most misread. People see a model with a :free tag, assume "unlimited," build something on it and hit a wall by lunchtime. Others never find out that a single $10 purchase changes the daily cap by a factor of twenty. This guide sorts out what the free tier really is, what trips people up, and how to find out which free models exist today instead of trusting a list that was stale the day it was posted.
Are OpenRouter free models really free?
Yes. Models whose ID ends in :free cost $0 per input and output token. They're limited by request counts instead: 20 requests per minute, and 50 per day until you've bought $10 of credits at some point, after which the daily cap rises to 1,000. These limits apply to your whole account, not to each model separately.
🚀 Quick Start: Create a key, pick any model ending in :free, and send a request to https://openrouter.ai/api/v1 with the OpenAI client. No card is needed for the 50-a-day tier. Use the calculator below to see what that buys.
The limits in one table
| Your account | Requests per minute | Requests per day | Watch out for |
|---|---|---|---|
| Under $10 of credits ever purchased | 20 | 50 | You'll use 50 requests faster than you think while testing |
| $10 or more of credits purchased | 20 | 1,000 | The per-minute cap doesn't change |
| Negative credit balance | Blocked | Blocked | You get a 402 error even on free models |
The per-minute number is the one that bites in practice. Twenty requests a minute sounds like plenty until an agent loop or a batch job fires them in a burst. If your workload needs more than that, free models aren't the answer, and the comparison in the best free LLM API guide shows where else to look.
Six things that trip people up
- Limits are account-wide. Making extra API keys doesn't add capacity, because all your keys share one pool.
- The $10 matters, and it sticks. As I read the documentation, the threshold depends on credits you've purchased, not the balance left. Confirm that in your own account, because the wording is easy to misread. One write-up also says the minimum purchase is $5, so reaching $10 may take two top-ups.
- Failed requests can still count. One comparison I read says errors can eat into your daily allowance. If that's true for you, a retry loop is an expensive habit.
- Free models rotate. Free capacity is lent by the upstream providers, and it comes and goes. One model I saw was listed as free only through July 21, 2026. Never hard-code a :free ID without a fallback.
- Nobody agrees on how many there are. Write-ups this year counted 17, about 25 and more than 28. All can be right on different dates. Check the live list instead.
- Privacy settings can hide free models. If a free model returns a strange "no endpoints" style error, look at your account's data policy settings before you blame your code.
Because free models can log or train on prompts under some providers' terms, keep customer data and anything private out of them. The same caution applies to Google's free tier, which the Gemini API free tier guide covers in detail.
List today's free models in ten lines
This is the most useful thing in the whole article, because it stays true after everything else here goes out of date. The models endpoint is public, so you don't need a key for it.
# pip install requests
import requests
models = requests.get("https://openrouter.ai/api/v1/models", timeout=20).json()["data"]
free = sorted(m["id"] for m in models if m["id"].endswith(":free"))
print(len(free), "free models right now")
for model_id in free:
print(" ", model_id)
To see your own status, call the key endpoint with your key. It reports usage and, according to the documentation, whether you're on the free tier.
import os, requests
r = requests.get(
"https://openrouter.ai/api/v1/key",
headers={"Authorization": "Bearer " + os.environ["OPENROUTER_API_KEY"]},
timeout=20,
)
print(r.json()) # look for usage and free-tier fields
Make your first call
# pip install openai
import os
from openai import OpenAI
client = OpenAI(
api_key=os.environ["OPENROUTER_API_KEY"],
base_url="https://openrouter.ai/api/v1",
)
reply = client.chat.completions.create(
model="PASTE_A_MODEL_ID_ENDING_IN_:free",
messages=[{"role": "user", "content": "Say hello in five words."}],
)
print(reply.choices[0].message.content)
What the errors usually mean
| Code | Likely meaning | What to do |
|---|---|---|
| 429 | You hit the per-minute or daily cap | Wait, slow down, or switch to another model |
| 402 | Your credit balance is negative | Top up, even for free models |
| 404 or no endpoints | That free model is gone or hidden by your settings | Re-list free models and check privacy settings |
| 503 or timeout | The upstream provider is busy | Retry briefly, then fall back |
OpenRouter's documentation also describes a Free Models Router that picks among available free models for you, which is a sensible default if you don't care which model answers. For anything where the model matters, keep your own short fallback list of three or four :free IDs and try them in order.
⚠️ Common Mistake: Treating the free tier as production infrastructure. A busy afternoon, a rotated model or a 50-request cap can break a live feature with no warning. Use free models for prototypes, side projects and staging.
How to spend 50 requests a day without wasting them
Fifty sounds small, and it is. The trick is not burning them while you debug. Most of the waste happens in the first hour, when a typo in your code sends the same failing request again and again.
| Habit | What it saves | How |
|---|---|---|
| Test with the smallest prompt possible | Requests and tokens | Use a one-line prompt until the plumbing works |
| Log every call and its status | Mystery losses | Print the model ID and response code |
| Stop on 402 and 404 instead of retrying | A chunk of the daily cap | Retry only on 429 and 503 |
| Cache answers while developing | Repeat requests | Save responses to a local file keyed by the prompt |
| Keep one tiny fallback list | Downtime | Three :free IDs, tried in order |
Do that for a week and the 50-request tier feels roomier than it looks. If you still keep hitting it, that's useful information: it means your project has outgrown a casual free tier.
Is the $10 worth it?
| Your situation | Buy the $10? | Reason |
|---|---|---|
| Trying a model once or twice | No | 50 a day is plenty |
| Building a personal tool that runs daily | Probably | 1,000 a day removes most friction |
| Need more than 20 requests a minute | No, it won't help | The per-minute cap stays the same |
| Planning a launch | Use paid models instead | You want predictable uptime and terms |
If rate limits are the whole problem, running a model on your own machine removes them. It costs setup time and gives you smaller models, and the LM Studio setup guide walks through it. For a faster hosted option with its own caps, the Groq API free limits guide shows what that tier allows.
Build your own free-model picker
Write a Python command-line tool called free_picker.py.
It should:
1. Fetch https://openrouter.ai/api/v1/models (no key needed).
2. Keep only models whose id ends with ":free".
3. Send each one the prompt "Reply with the single word OK" using my
OPENROUTER_API_KEY, with a 15-second timeout, one at a time with a
3-second pause so I stay under 20 requests a minute.
4. Print a table: model id, worked or failed, seconds taken, error code.
5. Save the working ids to working_free_models.json.
6. Stop early and explain clearly if I get a 402 or if I hit 40
requests, so I do not waste my daily allowance.
Use only the requests library. Comment every function.
How this guide was checked
I read OpenRouter's rate limit documentation and its free-model variant page, then compared them with three 2026 write-ups that disagreed about how many free models exist and whether failed calls count. Where they conflicted I said so. Run the code above for today's real list, since free models change quickly.
Frequently asked questions
Further reading
- OpenRouter limits documentation – the official page for rate limits, credits and the free-model caps.