:free suffix — through one API key and one OpenAI-compatible endpoint. No credit card, just an email sign-up. Free models cost $0 per token; the account-wide cap is 20 requests/minute and 50 requests/day, rising to 1,000/day once you've bought $10 of credits (one time, ever).Instead of signing up separately for GLM, Gemma, Nemotron, Qwen, and a dozen others, you manage everything in one place with automatic fallback if a provider goes down. This guide covers the best free models, how to call them in Python, how to wire OpenRouter into OpenClaw for a free agent, and when going direct beats it.
Best Free Models
OpenRouter marks free models with the :free suffix — no per-token cost, but they carry rate limits:
| Model ID | Context | Strengths |
|---|---|---|
z-ai/glm-5.2:free | 256K | Flagship-class reasoning model, best free all-rounder |
nvidia/nemotron-3-ultra-550b-a55b:free | 1M | Largest free model, massive context |
nvidia/nemotron-3-super-120b-a12b:free | 262K | Strong general model, efficient MoE |
google/gemma-4-31b-it:free | 262K | Light and fast, good multilingual |
cohere/north-mini-code:free | 256K | Coding-focused |
thinkingmachines/inkling:free | 1M | Small reasoning model |
openrouter/free | 200K | Router that picks a currently-free model for you — never goes stale |
Free-model limits are account-wide, quoted from OpenRouter's docs: 20 requests/minute, and 50 requests/day until your account has bought $10 of credits at some point — after that, 1,000/day. Filter for all of them at openrouter.ai/models (":free"). To get a key: sign in at openrouter.ai with Google/GitHub/email, go to Keys, click Create Key. No credit card needed — you only add credits for paid models.
Using the API with Python
OpenRouter is fully OpenAI-compatible — just change base_url and api_key:
from openai import OpenAI
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="YOUR_OPENROUTER_API_KEY"
)
response = client.chat.completions.create(
model="z-ai/glm-5.2:free",
messages=[
{"role": "user", "content": "Explain the difference between REST and GraphQL"}
]
)
print(response.choices[0].message.content)
Swap models by changing one string. For production, add fallback so your app survives a provider outage:
response = client.chat.completions.create(
model="z-ai/glm-5.2:free",
messages=[{"role": "user", "content": "Summarize the key features of Python 3.12"}],
extra_body={
"route": "fallback",
"models": [
"z-ai/glm-5.2:free",
"nvidia/nemotron-3-super-120b-a12b:free",
"google/gemma-4-31b-it:free"
]
}
)
print(response.choices[0].message.content)
print(f"Model used: {response.model}")
Streaming works the same way:
stream = client.chat.completions.create(
model="z-ai/glm-5.2:free",
messages=[{"role": "user", "content": "Solve: What is 17 multiplied by 43, step by step"}],
stream=True
)
for chunk in stream:
if chunk.choices[0].delta.content:
print(chunk.choices[0].delta.content, end="", flush=True)
Connect OpenRouter to OpenClaw (Free AI Agent)
Pair OpenRouter's free models with OpenClaw to build a free agent that uses tools and browses the web — switching models without code changes. Run npm install -g openclaw@latest && openclaw onboard, choose OpenAI-compatible, and enter the OpenRouter base URL and key. Or edit ~/.openclaw/openclaw.json:
{
"models": {
"mode": "merge",
"providers": {
"openrouter": {
"baseUrl": "https://openrouter.ai/api/v1",
"apiKey": "YOUR_OPENROUTER_API_KEY",
"api": "openai-completions",
"models": [
{
"id": "z-ai/glm-5.2:free",
"name": "GLM 5.2 (Free)",
"reasoning": true,
"input": ["text"],
"contextWindow": 256000,
"maxTokens": 8192
},
{
"id": "nvidia/nemotron-3-super-120b-a12b:free",
"name": "Nemotron 3 Super (Free)",
"reasoning": false,
"input": ["text"],
"contextWindow": 262144,
"maxTokens": 8192
},
{
"id": "google/gemma-4-31b-it:free",
"name": "Gemma 4 31B (Free)",
"reasoning": false,
"input": ["text"],
"contextWindow": 262144,
"maxTokens": 8192
}
]
}
}
},
"agents": {
"defaults": {
"model": {
"primary": "openrouter/z-ai/glm-5.2:free"
}
}
}
}
Now the agent can use GLM 5.2 for reasoning-heavy work, Nemotron for general tasks, and Gemma for quick light calls — all free.
OpenRouter vs Going Direct
| Feature | OpenRouter | Direct (e.g., DeepSeek) |
|---|---|---|
| Number of models | 200+ | 1 provider's models |
| API endpoints | One endpoint | Different URL per provider |
| Free models | ~18 models free | Only that provider's free tier |
| Automatic fallback | Yes | No |
| Rate limits (free) | 50 req/day (1,000 after a one-time $10 top-up) | Varies — often higher per model |
| Measured speed | 38 tok/s (we tested) | 33 tok/s on the identical model |
| Data privacy | Routes through OpenRouter | Direct to provider |
We tested the "proxy overhead" assumption — it was wrong
The obvious objection to any router is that the extra hop costs you latency. So we measured it, twice, on the fairest possible comparison: the identical model, nemotron-3-super-120b, on OpenRouter's free tier and on NVIDIA's own first-party endpoint, same machine, same prompt.
| Route | First token | Generation |
|---|---|---|
| OpenRouter (free) | 2.6 s | 38.1 tok/s |
| NVIDIA direct | 3.5 s | 33.3 tok/s |
OpenRouter was faster on both measures — and in an earlier run NVIDIA's endpoint returned an empty response for the same request while OpenRouter served it fine. Free capacity is shared and unevenly provisioned, so a router with spare headroom can beat the source. Measured 2026-08-31 with our open benchmark; see the full cross-platform results.
This doesn't make routing free in general — it means you should measure your specific model on both routes rather than assuming the vendor's own endpoint wins.
Verdict: OpenRouter wins for prototyping, research, and multi-model apps. For high-traffic production on a single model, direct is slightly better — lower latency and higher per-model limits.
OpenRouter vs Other Free AI APIs
| Feature | OpenRouter | Gemini Free | Groq Free | DeepSeek Free |
|---|---|---|---|---|
| Model variety | 400+ models | Several Gemini models | ~12 models | 2 models (v4-flash, v4-pro) |
| Free daily limit | 50/day (1,000 after $10) | Not published | 1,000 req/day (chat models) | None — top-up required |
| Best free model | GLM 5.2 | Gemini 2.5 Flash | gpt-oss-120b | deepseek-v4-flash (trial) |
| Reasoning model | Yes (GLM 5.2 free) | Yes (2.5 Pro) | Yes (gpt-oss) | Yes (v4 thinking mode) |
| Multi-provider | Yes | No | No | No |
| Credit card | No | No | No | No |
Handling Rate Limits
Free models share limits across all users, so peak-time throttling is common. Loop through fallbacks on a RateLimitError:
import time
from openai import OpenAI, RateLimitError
client = OpenAI(
base_url="https://openrouter.ai/api/v1",
api_key="YOUR_OPENROUTER_API_KEY"
)
FREE_MODELS = [
"z-ai/glm-5.2:free",
"nvidia/nemotron-3-super-120b-a12b:free",
"google/gemma-4-31b-it:free"
]
def chat_with_fallback(prompt, models=FREE_MODELS):
for model in models:
try:
response = client.chat.completions.create(
model=model,
messages=[{"role": "user", "content": prompt}]
)
return response.choices[0].message.content, model
except RateLimitError:
print(f"{model} rate limited, trying next...")
time.sleep(1)
return None, None
answer, used_model = chat_with_fallback("Explain async/await in Python")
print(f"Answer from {used_model}:n{answer}")
Frequently Asked Questions
Are OpenRouter's free models really free?
Yes — models with the :free suffix cost $0 per token with no credit card required. The only limit is rate, and it's account-wide: 20 requests/minute and 50 requests/day, rising to 1,000/day once your account has ever bought $10 of credits.
Do I need a credit card?
No. An email sign-up is enough to use every free model. You only add credits if you want to call paid models.
Is OpenRouter OpenAI-compatible?
Yes. It drops into existing OpenAI code — change only base_url to https://openrouter.ai/api/v1 and your api_key. The SDK, streaming, and message format are unchanged.
When should I go direct instead?
For high-traffic production on a single model, going direct to the provider gives lower latency and often higher per-model rate limits. OpenRouter wins for prototyping, benchmarking, and multi-model or fallback-dependent apps.
Final Thoughts
OpenRouter is the best choice when you want multiple AI models without juggling keys and endpoints. With around 18 genuinely free models — GLM 5.2, Nemotron 3 up to 550B, Gemma 4 — you get frontier-class AI at zero cost. The trade-offs are slightly lower per-model rate limits and a small routing latency, which are well worth it for building, testing, and prototyping. Get started: openrouter.ai — sign up free, grab your key, and explore 400+ models in minutes.