OpenRouter的API怎么调用?调用方式与免费模型用法说明

接入与开发

讲清 OpenRouter 的 API 调用方式:统一入口怎么发请求、免费模型怎么挑和怎么用、限流与额度去哪查,附排查顺序。

你在做接入,看中 OpenRouter 一家能调很多家的模型,甚至有一部分不花钱的位。但真动手时会卡在几个地方:请求该发到哪、模型名怎么写、免费位为什么一会儿能用一会儿报错。这篇只讲调用方式本身,给你一套能照着发的请求格式、挑免费模型的判断标准,以及出错时先查哪一步。具体价格、免费额度和可用模型清单都在变,正文里不写死,指到站内对应页面去核。

你在做接入,看中 OpenRouter 一家能调很多家的模型,甚至有一部分不花钱的位。真动手时容易卡在三件事:请求该发到哪、模型名怎么写、免费位为什么一会儿能用一会儿报错。这篇只讲调用方式本身,不铺概念,给你一套照着发的请求格式、挑免费位的判断标准,以及出错时的排查顺序。

先说清楚一点:具体价格、免费额度、可用模型清单都在变,正文里不写死任何数字,需要核对时到站内对应页面看当天状态。你要拿走的是方法,不是某一刻的数值。

一次请求长什么样:入口、鉴权与两套协议

统一入口加一个标准 Bearer 鉴权头,key 从账号后台拿。请求体结构和 OpenAI 那套兼容,所以现成的 SDK 大多改 base 地址就能用。模型名统一写成「厂商/模型」的两段式,不带斜杠的名字不用。有些名字后面会带日期或变体后缀,含义到站内 /models 与 /ai-dict 对照,别凭记忆拼。

curl https://openrouter.ai/api/v1/chat/completions \
  -H "Authorization: Bearer $OPENROUTER_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{"model":"厂商/模型","messages":[{"role":"user","content":"你好"}]}'
你要做的事判断标准去哪核对
key 放哪环境变量,不进前端、不进仓库账号后台的 key 管理页
base 地址写啥OpenAI 风格 SDK 改 base 即可站内 /base-url
模型名怎么定两段式,带斜杠站内 /models 与 /ai-dict
协议选哪套老代码用 Anthropic 协议就别硬改站内 /base-url 的兼容层说明

免费模型怎么挑、怎么用才不折腾

免费位的判断标准不是看名字里带没带 free,而是看当前页面标的计价方式和限流口径。免费位通常有两类限制叠加:每分钟请求数和每天额度上限,两类都要看,只盯一个很容易误判。当天的状态到站内 /openrouter 榜单与 /models 核对。

  • 先定任务类型:摘要、分类、简单对话这类容错高的,才适合先压免费位
  • 再在同一档免费位里挑上下文够用的,不要一上来看名字长就选
  • 把每分钟请求数和每天额度上限都记下来,换算成你自己的调用节奏
  • 提前准备一个付费位的兜底模型名,免费位限流时能立刻切
  • 别把免费位当唯一通道,生产任务从一开始就想好切换路径

什么情况下不适用:长期跑的生产任务、要求稳定首字延迟的场景、需要特定上下文长度的任务,都不建议压在免费位上。免费位的抖动是常态,把它当调试和验证通道更合适。

第一次调通的最小步骤清单

  1. 备齐三样东西key、一个合法模型名、一个能打印完整响应的小脚本。先确认这三样都在,再谈接项目。
  2. 发最短请求只发一条 user 消息,不加 system、不加额外参数,看能不能拿到正常返回。
  3. 逐个加变量返回正常后,依次加 system 提示、加参数、加流式,每加一项都重跑一次。
  4. 流式单独调先关流式确认通,再开流式看首字。出问题时能立刻判断是流式这一段还是前面的问题。
  5. 留档把完整请求体、响应状态、模型名记下来。后面排查全靠这份记录。

报错先查哪一步:一个排查顺序

顺序查什么看到什么就往下走
第一步状态码先分清鉴权类、额度类、限流类、上游故障类,含义完全不同
第二步模型名斜杠写错、后缀过期、当前不可用,都会返回看起来像「找不到」的错误
第三步限流免费位最易撞并发或频率上限,先降并发再加退避
第四步上游同模型换个时间点重试,或换个模型验证是不是只有它不通

这套顺序的价值在于省时间:大部分报错在前两步就能定位,不用一上来就怀疑网络。错误码含义和退避写法,站内 /api-errors 与 /429-concurrency-backoff 已经讲透,这里只给顺序索引。

补一句适用边界:如果你接的是多模型路由做负载均衡,前两步的结论要放到整个路由池里看,单看某一次请求容易误判成上游全局问题。

下一步把模型名、免费位状态和限流口径的当天数字对一遍,再决定你的调用策略。

常见问题

OpenRouter 需要单独装 SDK 吗?

基本不用。它的请求结构和 OpenAI 那套兼容,多数语言现成的客户端改一下 base 地址和 key 就能发。如果你现有代码是 Anthropic 协议写的,先确认兼容层怎么配,别自己手搓两套。

免费模型能直接用在我的产品里吗?

技术上能跑通,但不建议当生产主力。免费位一般有频率和每日额度限制,还可能随时调整或下线,用户量一上来就会大面积报错。适合做原型验证、内部小工具,或者当付费模型不可用时的临时兜底。

为什么同一个模型昨天能调,今天报错了?

三种常见原因:模型名或后缀变了、免费位被撤掉或限流收紧、上游短时故障。按「状态码 → 模型名 → 限流 → 上游」的顺序查一遍,先确认是哪一类,再决定是改名、换模型还是重试。当天的可用状态去站内页面核,不要凭印象。

本文依据各平台公开文档与官方公告整理,只做中文归纳;具体做法、参数与限制以官方文档为准。