openrouter/free: Which Model Answers? November 2026 Test
Jozo· 7 min read· 2026/11/11
OpenRouterFree AIModel RoutingAI Models2026

openrouter/free: Which Model Answers? November 2026 Test

Tested November 11, 2026: openrouter/free is OpenRouter's free router. You call it like a model, and it hands your request to one of the free models at random. We sent it 24 requests. All 24 came back with HTTP 200, from eight different models, and 20 of the 24 contained a usable answer. In the same quarter of an hour, 6 of 26 requests sent directly to individual free models failed with a 429 or 403.

So the router is the easiest way to get a free answer without checking which free model is up today. You pay for that with control: you can't choose the model, and a different one may answer the next request.

For the full list of free models with context windows and limits, see OpenRouter free models. For how each free model does on JSON, tool calls and code, see our free models benchmark.

What openrouter/free is

Model IDopenrouter/free
Name in the catalogFree Models Router
Listed sinceFebruary 1, 2026
Price$0 input, $0 output
Listed context200,000 tokens
Listed inputText and image
Works withChat Completions, Completions, Messages and Responses endpoints

As of 2026-11-11 from OpenRouter's models API.

OpenRouter's free router docs describe three steps. Your request is analyzed for the capabilities it needs. The free models are filtered to those that support them. Then "a model is randomly selected from the filtered pool". The docs also say plainly: "You cannot control which specific model is selected."

The 200,000-token context and the text-and-image input belong to the router's listing. The model that answers has its own limits. On November 11 the 13 free models ranged from a 65,536-token context to 1,048,576, and from 8,192 output tokens to 921,600.

Which models answered our 24 requests

Model that answeredRequestsShare
recursive/flint-v1.0:free521%
nvidia/nemotron-3.5-super-vl:free521%
nvidia/nemotron-3-nano-omni-30b-a3b-reasoning:free521%
dots-studio/dots-3-note-preview:free313%
nvidia/nemotron-3-ultra-550b-a55b:free28%
liquid/lfm-3-1.7b:free28%
nvidia/nemotron-3.5-lightning:free14%
baidu/ernie-5.5-flash-preview:free14%

As of 2026-11-11, 12:38 to 12:41 UTC. How we computed it: we counted the model field of each of the 24 responses.

Five of the 13 free models never answered: both Gemma 4 models, Inkling 2 Small, Cohere North Mini Code and LFM2.5-2.6B. With only 24 requests that can be chance. A model with a one-in-13 share is missed in 24 draws about 15% of the time. Three of the five were failing when called directly that day, though (see below), so the router may be skipping models that are rate-limited or blocked for the caller. OpenRouter's docs don't say, and our sample is too small to tell.

How it handled tools, images and JSON schemas

We sent four kinds of request, mixed through the run.

RequestnModels pickedUsable answers
Plain text question127 different models12 of 12
Image input (a red square)4Super VL ×2, Dots3-Note, Nano Omni4 of 4
Tool call (get_weather)4Nemotron 3 Ultra ×2, Nano Omni, Flint2 of 4
Strict JSON schema4Super VL, Nano Omni, Dots3-Note, LFM3-1.7B2 of 4

As of 2026-11-11. "Usable" means the reply had the correct city, the correct colour, a correct get_weather call, or JSON matching the schema. Every request had max_tokens set to 400.

Images: the filter worked. All four image requests went to models that list image input in the catalog. Six of the 13 free models do.

Tools: the filter worked, one model didn't. All four tool requests went to models that list tool calling, which all 13 do. Flint and Nano Omni made a correct call. Nemotron 3 Ultra got two requests and returned an empty message both times: once it stopped after 2 tokens, and once it used all 400 tokens without output.

JSON schema: the filter is looser than the catalog. Five free models list structured outputs. One of our four schema requests went to Nemotron 3 Nano Omni, which doesn't list them, and it returned valid JSON anyway. Dots3-Note and LFM3-1.7B do list them, and both used all 400 tokens without producing any content.

Three of the four empty replies ran out of tokens. Every free model lists reasoning support, and a reasoning model can spend a small output budget thinking. We saw the same pattern over 10 days in the benchmark. We didn't re-run with a larger budget, so we can't say how many of the four it would fix.

The router against calling free models directly

Our daily benchmark ran in the few minutes before the router test, from the same free-tier key.

RequestsHTTP 200Failed
Direct, two requests to each of 13 free models26204 × 429 (both Gemma 4 models), 2 × 403 (Inkling 2 Small, not available from our location)
openrouter/free2424None

As of 2026-11-11, 12:34 to 12:41 UTC, one free-tier key with no credits, no retries.

If you pick a free model by name, you have to know which ones answer today. The two Gemma 4 free models have returned a 429 on 59 of our 60 benchmark requests since October 28. The router didn't pick either of them in 24 requests.

Request time through the router ran from 0.5 to 14.0 seconds, with a median of 2.1 seconds, for these short non-streaming replies.

Limits

Router requests draw from the same free-model allowance as any :free ID. OpenRouter's limits page gives:

Requests per minuteRequests per day
Fewer than 10 credits ever purchased2050
10 credits or more purchased201,000

You can read your own counter. GET https://openrouter.ai/api/v1/key returns a free_model_daily_requests object with used, limit and remaining. On our key it read 20 of 50 before the router test and 42 of 50 after it. That is 22 for 24 requests, and we can't explain the two that weren't counted.

How to call it

curl -s https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "model": "openrouter/free",
    "max_tokens": 2000,
    "messages": [{"role": "user", "content": "Name the capital of Slovakia."}]
  }' | jq '{model, provider, answer: .choices[0].message.content}'

Three habits make it dependable enough for small jobs:

  1. Log the model field of every response. It is the only record of which model wrote the answer.
  2. Leave room in max_tokens. Our 400-token cap produced three empty replies from reasoning models.
  3. Check that the reply isn't empty before you use it, and retry if it is. A retry may reach a different model.

When to name a model instead

Use a specific :free ID when the model has to stay the same: evaluations, prompt tuning, a recurring job with a fixed output format, or work where you need to know which provider's data policy applies. Our coding guide lists which free endpoints train on your prompts.

If you want a fallback but also want to choose the candidates, send a models list. OpenRouter's model fallback docs say that if the first model returns an error, the next one in the list is tried, and that rate limits and downtime both count as errors.

{
  "models": [
    "nvidia/nemotron-3.5-super-vl:free",
    "recursive/flint-v1.0:free",
    "baidu/ernie-5.5-flash-preview:free"
  ],
  "messages": [{ "role": "user", "content": "..." }]
}

Keep every entry a :free ID. A request is billed at the price of the model that answered, so a paid model in the list turns a free request into a billed one when the free ones fail.

What this test doesn't show

  • It is 24 requests on one day, at one time of day, from one free-tier key in Europe. Shares in the first table will differ tomorrow.
  • It doesn't rank quality. The questions were trivial on purpose, to see which model answered.
  • It doesn't show how the router picks beyond what OpenRouter documents. Whether it skips rate-limited models is our guess from one day's data.

The raw rows are in the repo under docs/marketing/data/openrouter-free-router-2026/.

Run a model you chose on real work in Teamday

Neither openrouter/free nor any free model is in Teamday's model picker. Teamday's OpenRouter models are paid ones you pick by name, such as Kimi K3 and GLM-5.3 Flash, so an agent's scheduled task gets the same model every run. Save your OpenRouter key in runner settings and usage bills to your own OpenRouter account. See current pricing.

Give the same model a real task every time. Connect OpenRouter, pick GLM-5.3 Flash, and hand Sarah, Maya, or Max the job you were about to send to a random free model. Your token usage bills to your OpenRouter account.

Use my OpenRouter key in Teamday →