OpenRouter's model catalog is a public endpoint. No key, no account:
curl -s https://openrouter.ai/api/v1/models
As of 2026-08-28 that returns 387 models. The usual way to find the free ones is to filter on the :free suffix, which gives you 18. But filter on price instead and you get 21:
curl -s https://openrouter.ai/api/v1/models \
| jq -r '.data[] | select((.pricing.prompt|tonumber)==0 and (.pricing.completion|tonumber)==0) | .id'
The three the suffix misses are google/lyria-3-clip-preview, google/lyria-3-pro-preview, and — the interesting one — openrouter/free.
openrouter/free is a router. Its description calls it "the simplest way to get free inference": you pass that single ID and it picks a currently-free model for you. 200K context.
That matters more than it sounds, because the free roster churns hard. Every one of these, which you'll find in tutorials all over the place, returns nothing today:
meta-llama/llama-3.3-70b-instruct:free
deepseek/deepseek-r1:free
google/gemini-2.0-flash-exp:free
mistralai/mistral-7b-instruct:free
qwen/qwen3-coder:free
moonshotai/kimi-k2:free
OpenRouter still carries Llama 3.3 70B, Qwen3-Coder and seven Kimi variants — all paid. The current free list is a different cast entirely: Nemotron 3, GLM 5.2, Gemma 4, inkling, laguna.
So: hardcode a :free ID and you're signing up to re-check it every few months. Hardcode openrouter/free and the churn is someone else's problem.
I keep the current free list and its rate limits here: OpenRouter free models
Top comments (0)