UPDATED OCTOBER 2026
🔀 OpenRouter · 💸 Free Models · ⏱️ 10 min read

OpenRouter Free Models: Limits, :free Tags and How to Use Them

20
Requests Per Minute
50 / 1,000
Daily Cap by Tier
$10
Unlocks 1,000 a Day
Oct 2026
Last Checked
Prashant Lalwani
October 21, 2026 · NeuraPulse
AI Tools Developers
OpenRouter free models showing the :free tag on model names and the 20 requests per minute limit

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.

OpenRouter free models showing the :free tag on model names and the 20 requests per minute limit

The limits in one table

Your accountRequests per minuteRequests per dayWatch out for
Under $10 of credits ever purchased2050You'll use 50 requests faster than you think while testing
$10 or more of credits purchased201,000The per-minute cap doesn't change
Negative credit balanceBlockedBlockedYou 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

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

CodeLikely meaningWhat to do
429You hit the per-minute or daily capWait, slow down, or switch to another model
402Your credit balance is negativeTop up, even for free models
404 or no endpointsThat free model is gone or hidden by your settingsRe-list free models and check privacy settings
503 or timeoutThe upstream provider is busyRetry 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.

HabitWhat it savesHow
Test with the smallest prompt possibleRequests and tokensUse a one-line prompt until the plumbing works
Log every call and its statusMystery lossesPrint the model ID and response code
Stop on 402 and 404 instead of retryingA chunk of the daily capRetry only on 429 and 503
Cache answers while developingRepeat requestsSave responses to a local file keyed by the prompt
Keep one tiny fallback listDowntimeThree :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 situationBuy the $10?Reason
Trying a model once or twiceNo50 a day is plenty
Building a personal tool that runs dailyProbably1,000 a day removes most friction
Need more than 20 requests a minuteNo, it won't helpThe per-minute cap stays the same
Planning a launchUse paid models insteadYou 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

Yes. Models with the :free suffix cost $0 per token. They have request limits: 20 per minute and 50 per day, or 1,000 per day after you've purchased $10 of credits.
Request the public models endpoint and keep IDs that end in :free. The ten-line script above does it. The list changes often.
A negative credit balance can block requests, even to free models. Top up your account to clear it.
No. Limits apply to your whole account, so all keys share the same pool.
It's risky. Free capacity is lent by upstream providers and can change or disappear, so keep free models for prototypes and testing.

Further reading