
如何优雅地薅 OpenRouter 免费模型羊毛
数字折腾
OpenRouter 是一个模型聚合入口。你只记一个地址、一把 Key,就能调很多家模型。它上面还有一批价格为 0 的模型,ID 末尾带 :free。
我用它时最常踩的坑,不是「不会发请求」,而是把某一个免费模型 ID 写死。列表会变,下架后请求直接落空。今天这篇只讲 OpenRouter 免费模型怎么用。

封面:OpenRouter 免费模型入口与关键动作
第一步,注册并拿到 API Key
打开 https://openrouter.ai,注册登录后,到 Keys 页新建一把 Key。
调用时按 OpenAI 兼容格式来:
地址:
https://openrouter.ai/api/v1Header:
Authorization: Bearer <你的Key>聊天接口:
/chat/completions
新账号通常会有一点试用额度。免费模型本身不按 token 扣费,但账号状态仍会影响限流和可用性。OpenRouter 文档也写了:账户余额成负时,免费模型也可能报错;把余额补回正数后才能继续用。
第二步,先找到今天还能用的免费模型
别凭记忆抄模型名。先查列表。
网页入口:
https://openrouter.ai/models?max_price=0
接口入口:
https://openrouter.ai/api/v1/models

图 1:OpenRouter 免费模型列表页(按价格=0 筛选)
我今天拉取了一次接口,全部模型大约 463 个,其中以 :free 结尾的有 14 个。当天能看到的例子包括:
nvidia/nemotron-3-super-120b-a12b:freegoogle/gemma-4-31b-it:freegoogle/gemma-4-26b-a4b-it:freenvidia/nemotron-3.5-lightning:free
这个数字和名单都会变。以前我用智能体挂过 glm-4.5-air:free,模型从免费列表消失后,请求直接失败。所以配置里不要假设「今天还能用」。
如果你懒得挑具体模型,也可以用官方免费路由:
openrouter/free
它会自动挑一个当前可用的免费模型。适合先跑通,不适合要求固定模型能力的场景。
第三步,发一条最小请求
用 curl 先验证 Key 和模型都能通:
1 | curl https://openrouter.ai/api/v1/chat/completions \ |
想省事,把 model 换成 openrouter/free:
1 | curl https://openrouter.ai/api/v1/chat/completions \ |
如果你本来就在用 OpenAI SDK,把 base_url 指到 OpenRouter 即可:
1 | from openai import OpenAI |
验证标准很简单:HTTP 200,并且返回里有 choices。若是 401,先查 Key;若是 404 或模型不可用,先换一个今天列表里还在的 :free 模型,或改用 openrouter/free。
实测:openrouter/free 真的是「盲盒」

图 2:openrouter/free 三次调用返回的模型对比
我连发 3 次 openrouter/free,每次返回的模型都不一样:
| 调用 | 实际模型 | 参数量级 |
|---|---|---|
| 第 1 次 | liquid/lfm-2.5-2.6b:free |
2.6B |
| 第 2 次 | nvidia/nemotron-3-super-120b-a12b:free |
120B |
| 第 3 次 | nvidia/nemotron-3-ultra-550b-a55b:free |
550B |
同一会话里,能力跨度从 2.6B 到 550B。上下文长度、推理风格全随模型变。
对比下,指定单个模型 nvidia/nemotron-3-super-120b-a12b:free,三次调用全是它,能力固定。
当前免费池共 14 个模型(总模型 462 个),从 2.6B 到 550B 全覆盖。openrouter/free 就是在这 14 个里按策略轮换。
怎么选:别纠结,看需求

图 3:按需求选模型的决策表
| 你的需求 | 推荐写法 |
|---|---|
| 只要能回包、不在乎能力、先跑通链路 | openrouter/free |
| 要免费但想自己控制大致能力档次 | 手动从 /api/v1/models 拉当天 :free 列表,挑 1-2 个强的写死,加 fallback |
| 要固定能力、稳定上下文、可复现 | 写死具体模型 ID,并自己留备用模型(或在网关层做 fallback) |
| 本地已有 magpie/OmniRoute 等网关 | 在网关层配 openrouter/*:free 组 + routing=order,网关替你做自动切换;请求里只写组名 |
一句口诀
auto 省心但不省事(要守着账单);写死省事但不省心(要守着模型列表);免费路由最省心,但能力像盲盒。
第四步,看清免费边界,别当生产配额
OpenRouter FAQ 里明确说:免费模型限流偏低,通常不适合生产环境。限流档位跟你累计购买过的 credits 有关——买过一定额度后,每日免费请求上限会抬高;没买过时,上限更低。具体数字以 FAQ 和 Limits 页为准,页面上是动态值。
我这边实际体感还有两条:
01账户快没钱时,免费通道限流会明显变严。
02单个免费模型会下架。写死一个 ID,后面很容易突然断。
所以更稳的用法是:
日常试水、轻任务走
:free或openrouter/free需要稳定能力时,准备付费模型做备用
定期重新拉
/api/v1/models,别信任旧名单
查自己 Key 剩余额度,可以请求:
GET https://openrouter.ai/api/v1/key
返回里会有 credits 与免费模型日请求相关字段。
顺带一句:接到本地路由时怎么写
如果你本机已经在用 magpie 这类本地模型网关,把 OpenRouter 加进去时,模型名写成 openrouter/<模型ID>。免费模型就是 openrouter/xxx:free,免费路由则是 openrouter/free。
我自己会把一批 openrouter/*:free 放进一个组,前面挂掉再换后面。这是附加用法,不是上手必做。
短结论
OpenRouter 免费模型的用法就四件事:拿 Key、查今天的 :free 列表、用 OpenAI 兼容接口发请求、接受限流和下架是常态。想少操心,先用 openrouter/free;想固定能力,再挑具体模型,并自己留备用。
今天就能试:打开 https://openrouter.ai/models?max_price=0,抄一个还在的模型 ID,把上面那条 curl 跑通。