OpenRouter AI价格怎么算?计费方式与各模型词元价格对比

成本与用量

讲清 OpenRouter 的计费口径:费用由哪几块组成、怎么按 token 算、和多家模型词元单价对比时该对齐哪些字段。

你在 OpenRouter 上跑通了一个调用,账单出来却发现和按官方单价乘出来的数对不上——多半是没搞清它的收费结构。这篇把 OpenRouter 的费用拆成几块讲:模型本身的输入输出单价、平台侧的手续费口径、上下文长度和缓存对单价的影响,再给一份跨模型比价时可执行的对照流程。

你在 OpenRouter 上跑通了一个调用,账单出来却发现和按官方单价乘出来的数对不上——这种对不上,多半不是算错了,而是没搞清它的收费结构。OpenRouter 本质是一个聚合调度层,你付的钱由好几块拼起来,单看模型单价一定对不齐账。

这篇把它的费用拆成几块讲:模型本身的输入输出单价、平台侧的手续费口径、上下文长度和缓存对单价的影响,再给一份跨模型比价时可以照着走的对照流程。沿途需要看数字的地方,都告诉你去站内哪个页面核对当时的数字。

OpenRouter 的费用由哪几块组成

最省事的理解方式:把它当成一个转售层。模型单价来自上游厂商,平台在这个单价之上有自己的加价或手续费口径,两块要分开看。你看到的「模型价格」和最终扣费往往不是一个数,差额就出在平台这一层,以及路由到了哪一家上游。

  • 模型单价:跟着上游走,同一个模型名在不同供应商下单价可能不同,路由到谁直接影响这一单的价。
  • 平台侧口径:加价或手续费是平台自己的规则,不跟模型单价等比浮动,小额高频调用时它的相对占比更明显。
  • 上下文与缓存:超长上下文、缓存读写可能有独立单价,同一段提示词复用次数不同,实际单价也不同。
  • 结算相关:余额制、充值币种、结算汇率都会进最终账单,只对 token 数永远对不上。

想知道当前的口径,到 /openrouter 看榜面上的计费标注,再到 /price-watch 对一次历史变动,确认你记忆里的口径有没有过期。计费规则是会被调整的,别拿半年前的理解去算今天的账。

看词元价格时,必须对齐的几个字段

跨模型比价最容易踩的坑,是拿两个字段口径不一致的数直接相减。下面这几个字段,报价单上没写清楚的,先去问清楚再拿来比,否则比出来的结论方向都可能是反的。

字段为什么会影响你的账
输入价 / 输出价两者分开报,输出通常更贵;只写一个数的报价先问清是哪一个
上下文分档短上下文和超长上下文可能是两个价,跨过临界点单价会跳
缓存读 / 缓存写有独立单价时,长系统提示词复用多的场景差别很明显
多模态折算图片、音频按什么折算成 token,各家算法不一样,不能只比文字单价

还有一个容易忽略的点:同一个模型名可能挂着多个上游,价格和稳定性都不一样。比价时如果只记「模型名」不记「走哪家」,下次换个路由,你之前算的账就作废了。看模型单价时顺带记下供应商维度,到 /models 核对当时各家挂出来的数字。

跨模型比价的落地步骤

比价的目标不是找「最便宜的那个模型」,而是回答「我的这个任务,换一个模型跑一次大概贵多少」。围绕这个目标,下面四步可以照着走,每一步都有验证动作,不是凭感觉估。

  1. 固定任务样本同一段提示词、同一种输出格式、同一份输入数据。否则你比出来的只是任务难度差异,不是价格差异。用同一样本跑两三个模型,把输出长度也记下来。
  2. 把单价换成单次成本到 /tools/token-price-calculator 或 /tools/model-cost-calculator,用样本的输入输出 token 数把每百万 token 单价换成「跑一次多少钱」。光看每百万 token 的数字没有体感。
  3. 分档各算一遍按短上下文和长上下文各算一遍,看你的实际场景落在哪一档。如果你的提示词经常贴着上下文上限跑,长档那个数才是你要看的数。
  4. 记账并定期复核把结果记进 /usage 或自己的本地表里,隔一段时间用 /price-watch 复核一次。价格是会动的,一次算完就锁死结论不靠谱。

如果你在多个中转或聚合入口之间横跳,还要把每个入口的到账速度和扣费口径一起比较,只看单价会漏掉隐性成本。这类横向对比可以到 /sites 看各家当下的状态标注。

什么情况下这套比价方法不适用

上面那套流程有个前提:候选模型都能把任务跑通。这个前提不成立的时候,比价得出的结论会误导你,下面几种情况要单独判断,别硬套流程。

  • 任务有硬能力门槛时:便宜但跑不通或需要人工返工的模型,算下来实际更贵。先过能力关,再在过关的模型里比价。
  • 需要稳定复现或固定版本时:路由到哪家、走哪个快照会影响结果,此时价格不该排在第一优先级,先锁住可控性。
  • 有合规或数据出境要求时:可选范围本身就被砍掉一半,比价要在剩下的范围里做,别拿被排除的便宜模型当参照系。
  • 调用量很小时:平台手续费和最低充值额的影响可能超过单价差异,小体量阶段别过度优化单价。

一句话判断标准:比价只在「候选集合已经筛完、任务样本固定、你的调用量足够摊薄固定成本」这三件事都成立时才有意义。缺哪一件,先把那件补上再回来算。

下一步把你手头那个任务的实际 token 量代进去,换成单次成本,再看一眼价格历史有没有动过——这两步做完,你对 OpenRouter 账单的预期会准很多。

常见问题

OpenRouter 上的价格和模型官方价格是一回事吗?

不是。OpenRouter 是聚合转发层,模型单价来自上游供应商,平台在这之上还有自己的计费口径,同一个模型名路由到不同供应商时单价也可能不同。所以拿官方价直接乘用量对不上账很正常,要去 /openrouter 看它当时标的口径,别拿别处的数当基准。

为什么我按单价算出来的钱和实际扣费差挺多?

常见原因有三个:一是输入输出混着按一个价算了,输出通常明显更贵;二是上下文跨过了分档线,后半段单价跳了;三是多模态输入或缓存读写有单独的折算规则。建议先用 /tools/token-price-calculator 把一次任务的真实花费算出来,再和账单对照,差在哪一项就清楚了。

选便宜的模型就一定更省钱吗?

不一定。单价低但一次跑不对、要重试两三轮的模型,总成本往往高于贵一点但一次过的。而且成本不只是钱,还包括你盯着改提示词的时间。比较现实的做法是先按任务能力筛掉跑不通的,再在剩下的里面比单价,最后用真实用量复盘。

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