What “free models” means on OpenRouter

OpenRouter free models are model entries whose inference price is zero. They are not a permanent guarantee of unlimited capacity, identical quality, or production-grade uptime. Free access still runs through providers, and providers can change availability, capacity, context limits, supported parameters, or routing eligibility.

Checked October 15, 2026: OpenRouter’s live pricing page lists 25+ free models and four free providers. Its limits documentation currently shows 20 requests per minute and a daily allowance of 50 requests when an account has purchased less than $10 of credits, rising to 1,000 requests per day after at least $10 has been purchased. These figures are operational settings, not a promise for all future accounts or use cases. Recheck the official limits documentation before designing around them.

Two ways to choose a free model

Use the Free Models Router

Set model to openrouter/free. The router analyzes the request, filters free models for capabilities such as image understanding, tool calling, and structured outputs, then selects a model from the filtered pool. The response’s model field tells you which model actually answered.

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openrouter/free",
    "messages": [
      {"role": "user", "content": "Give me three names for a weekly planning template."}
    ],
    "max_tokens": 80
  }'

This is the easiest way to experiment, but it gives up model identity. Two calls can land on different free models and therefore differ in style, latency, reasoning, or tool behavior. Log the returned model if the result is used for an evaluation or customer-facing workflow.

Use a specific :free variant

Append :free to a model ID only when that free catalog entry exists. Replace the illustrative ID below with an existing free variant from the live catalog:

{
  "model": "PROVIDER/MODEL:free",
  "messages": [
    {"role": "user", "content": "Return JSON with keys title and priority."}
  ]
}

The :free suffix is a catalog variant. OpenRouter documents that it appears as its own Models API entry with its own pricing, context length, endpoints, and rate limits. Do not assume that every paid model has a free sibling, or that a free sibling supports every paid model parameter.

How to find current free entries

Availability changes, so do not maintain a static list copied from an old article. Use the models browser’s free filter or query the Models API and inspect the returned objects. The model metadata includes the model ID, context length, supported parameters, pricing, provider information, and per-request limits when present.

For a capability-sensitive application, filter for supported parameters before choosing a model:

# Models that advertise tool support
curl "https://openrouter.ai/api/v1/models?supported_parameters=tools"

# Models sorted by current pricing metadata
curl "https://openrouter.ai/api/v1/models?sort=pricing-low-to-high"

The first command is more useful than sorting alone. A model with zero token pricing is still the wrong choice if your request requires tools, vision, a particular output modality, or a structured response format it does not support.

Current quota rules, without overpromising

The live limits table currently describes the following baseline:

Credits purchased Free-model requests per minute Free-model requests per day
Less than $10 20 50
At least $10 20 1,000

Use this as a dated snapshot, not a service-level agreement. OpenRouter also says the daily request count can include failed attempts, and a negative account balance can block free models until credits are added. A request can therefore fail even when its model price is zero. The account, key, model, and provider still have to be eligible.

The safest design reads the account’s live key information rather than showing users a hard-coded “remaining free requests” counter. The GET /api/v1/key response currently includes free_model_daily_requests.used, limit, and remaining for the key.

curl https://openrouter.ai/api/v1/key \
  -H "Authorization: Bearer $OPENROUTER_API_KEY"

Best uses for free models

  • Learning the API: validate authentication, message structure, parsing, streaming, and error handling.
  • Prompt prototyping: compare instruction wording and output schemas on low-stakes examples.
  • Internal utilities: draft labels, summarize short notes, or generate test fixtures where variability is acceptable.
  • Education and demos: show an API workflow without requiring a paid inference budget.
  • Fallback experiments: test how your application handles lower-capability models, timeouts, and changed model identity.

Free models are a poor default for irreversible actions, contractual content, safety-critical decisions, high-volume service, or anything that needs a stable model version and predictable latency.

Free router versus a pinned free variant

Choice Advantage Trade-off
openrouter/free Automatically chooses an eligible model. Identity and behavior can change.
family/model:free More reproducible selection. The variant may disappear or be unavailable.
Paid explicit model Better control over capability and capacity. Consumes credits.

Sample Python client with guardrails

import os
import requests

key = os.environ["OPENROUTER_API_KEY"]
body = {
    "model": "openrouter/free",
    "messages": [{"role": "user", "content": "Classify this note as work, personal, or unclear: Buy printer paper"}],
    "max_tokens": 30,
}

r = requests.post(
    "https://openrouter.ai/api/v1/chat/completions",
    headers={"Authorization": f"Bearer {key}", "Content-Type": "application/json"},
    json=body, timeout=30,
)

if r.status_code != 200:
    raise RuntimeError(f"OpenRouter error {r.status_code}: {r.text}")

data = r.json()
print("served model:", data.get("model"))
print("reply:", data["choices"][0]["message"]["content"])

Free-model troubleshooting

  • 429 after a few requests: check both per-minute and daily allowance; back off.
  • No endpoints or 404: query the live catalog.
  • Tools rejected: use a capability filter or pin a compatible model.
  • Quality changes: log data.model and pin a model for testing.
  • 402 on a free request: check account balance and key status.

A sensible free-model test plan

Build a small test set covering short and long prompts, ambiguous instructions, malformed input, structured output, and an example that must be escalated. Save model ID, response, usage, status, and timestamp. Promote a prototype only when schema validation and failure handling pass.

Limitations to state in your UI

  • Free does not mean unlimited.
  • Allowances can change.
  • The router may select different models.
  • Provider capabilities can change.
  • Review privacy before sending sensitive data.

OpenRouter free models FAQ

Are OpenRouter free models really free?

Eligible inference is priced at zero, but quotas, availability, account status, and provider capacity still apply.

Can I use free models in production?

Only when you can tolerate changing availability, latency, quotas, and behavior. Add validation and a paid or human fallback.

Is openrouter/free the same as :free?

No. The router selects among eligible free models; a :free variant identifies a particular catalog entry.

What should I read next?

Read our OpenRouter API guide, n8n credentials guide, and AI agent security checklist.

Official references

Documentation reviewed 15 October 2026. Examples illustrate the request pattern; confirm model availability and account settings before use. No uptime or performance benchmark is claimed.

Similar Posts