OpenRouter 推出 Batch API,批量请求可享约半价推理
Batch API: half-price inference by bundling requests
OpenRouter 推出 Batch API,批量提交的请求由提供商在 24 小时窗口内完成,通常按正常 per-token 价格的 50%(有时更低)计费,目前已支持 70 多个模型。
官方给出了折扣幅度和两周 beta 的实测完成时间分布,读者可据此判断哪些离线工作流适合迁移到批处理。
对于大批量的工作或不需要立即完成的请求,你现在可以使用新的 batch API。提交批次时,提供商可以在 24 小时窗口内自行选择何时完成请求,作为交换,他们通常收取正常每 token 价格的 50%(有时更低)。
它目前已在 70 多个模型上可用。在 Batch API 文档中了解如何使用它。
实际上,我们观察到你的等待时间很少接近 24 小时。在我们为期两周的测试期间完成的 23 万多个批次中,中位数在 7 分钟内完成,90% 在一小时内完成。
Batch 是一个异步 API,适用于你可以接受高度可变响应时间的工作负载,例如为语料库打标签、回填 embeddings、为评估集打分、汇总积压的工单,或在夜间对几千行数据运行相同的提示词。
Batch API 的工作原理
调用 api/v1/batches 并传入你的请求列表,同时指定要使用的端点形态。Chat completions、responses、messages 和 embeddings 均受支持。例如:
curl https://openrouter.ai/api/v1/batches \
-H "Content-Type: application/json" \
-H "Authorization: Bearer $OPENROUTER_API_KEY" \
-d '{
"endpoint": "/v1/chat/completions",
"model": "google/gemini-3.8-flash",
"requests": [
{ "custom_id": "ticket-0001", "body": { "messages": [{ "role": "user", "content": "Summarize this ticket in one sentence." }] } },
{ "custom_id": "ticket-0002", "body": { "messages": [{ "role": "user", "content": "Summarize this ticket in one sentence." }] } }
]
}'请求之后,开始轮询 GET /api/v1/batches/:id,直到状态为 completed、failed、expired 或 cancelled。已完成的批次会在同一响应中内联返回其结果。
大多数批次在几分钟内完成
我们查看了在为期两周的测试期间完成的批次,并测量了从接受到完成结果的时间。中位数为 7 分钟,第 90 百分位为 1.0 小时,第 99 百分位为 10.3 小时。我们还发现,你提交的时间点比发送的请求数量影响更大。

在太平洋时间凌晨 5 点到中午之间提交的批次明显比其他时段慢。最慢的十分之一需要 2 到 4.5 小时。在其他任何小时提交,第 90 百分位都会降到 1.1 小时以下,而在太平洋时间下午 6 点之后则低于 50 分钟。
单请求批次根据时段不同在 5 到 11 分钟内完成,而 1,000 个或更多请求的批次在 12 到 21 分钟内完成。大批次确实需要更长的处理时间。在太平洋时间午夜到中午之间提交的、超过 100 个请求的批次中,最慢的十分之一耗时长达 6.8 小时。

批次支持哪些功能
- 请求形态:你已发送给 OpenRouter 的任何文本请求体形态都将受支持,包括 chat completions、responses、messages 和 embeddings。
- 路由:每个批次在单个提供商上执行。默认情况下,在应用你的提供商允许列表、数据策略和 BYOK 设置后,我们会为该模型选择最便宜的批次端点。
- BYOK:配置了提供商密钥后,支持该功能的提供商上的批次会通过你的密钥路由,你只需支付 BYOK 费用。
- 逐请求结果:每个结果独立返回,因此少数坏行绝不会导致其余任务失败。
- 保留:输入和结果会保留 30 天,或直到你
DELETE该批次。 - 日志:每个批次都会显示在日志的 Batches 标签页中,包含模型、提供商、状态和成本。
- 定价:折扣适用于每 token 定价,并因模型而异。Web 搜索调用按标准费率计费。
- 输入:图片和文件必须是公开 URL。音频、视频以及 OpenRouter 自有的 web 搜索插件在批次中不可用(参见文档的限制部分)。
开始使用
选择一个支持批次的模型,获取一个 API 密钥,然后将你的第一个批次提交到 https://openrouter.ai/api/v1/batches。快速入门包含完整的请求和响应形态。
在 Discord 的 #feedback 中告诉我们你正在批量处理什么。
来源:OpenRouter:Announcements(RSS) · openrouter.ai