Skip to content

OpenRouter 按全局方式管理速率限制,多个账号或 API key 不会叠加提升上限。免费模型(:free 后缀)每分钟限 20 次请求,每日限 50~1000 次(取决于是否购买过信用额度)。通过 GET /api/v1/key 端点可查询当前 key 的剩余额度、用量统计(日/周/月)及速率限制信息。

OpenRouter API 速率限制

全局速率限制

OpenRouter 按全局方式管理速率限制——创建多个账号或 API key 不会增加你的请求配额,系统统一限速。

不同模型有不同的速率限制,可以通过分散到多个模型来分担压力。

免费模型限制

使用免费模型变体(model ID 以 :free 结尾)时,适用以下限制:

  • 每分钟最多 20 个请求
  • 每日请求限制
    • 购买不足 10 信用额度:每日最多 50 次 :free 模型请求
    • 购买至少 10 信用额度:每日最多 1000 次 :free 模型请求

查询 Key 用量与限制

https://openrouter.ai/api/v1/key 发送 GET 请求查询当前 key 的状态:

typescript
import { OpenRouter } from '@openrouter/sdk';

const openRouter = new OpenRouter({
  apiKey: '<OPENROUTER_API_KEY>',
});

const keyInfo = await openRouter.apiKeys.getCurrent();
console.log(keyInfo);

响应包含以下字段:

typescript
type Key = {
  data: {
    label: string;
    limit: number | null;           // 信用额度上限,null 表示无限制
    limit_reset: string | null;     // 额度重置类型,null 表示从不重置
    limit_remaining: number | null; // 剩余信用额度,null 表示无限制
    include_byok_in_limit: boolean; // 是否将 BYOK 用量计入额度限制

    usage: number;         // 历史累计用量(信用值)
    usage_daily: number;   // 当日用量(UTC)
    usage_weekly: number;  // 本周用量(UTC,从周一开始)
    usage_monthly: number; // 本月用量(UTC)

    byok_usage: number;         // BYOK 历史用量
    byok_usage_daily: number;
    byok_usage_weekly: number;
    byok_usage_monthly: number;

    is_free_tier: boolean; // 是否未购买过信用额度
  };
};

也可以直接使用 curl:

bash
curl https://openrouter.ai/api/v1/key \
  -H "Authorization: Bearer <OPENROUTER_API_KEY>"

DDoS 防护

Cloudflare 的 DDoS 防护会封锁显著超出合理用量的请求。

余额为负时的处理

如果账户余额为负,即使是免费模型也可能出现 402 错误。充值使余额回到零以上即可恢复正常使用。


常见问题

Q: 我设置了多个 API key,速率限制会叠加吗?

A: 不会。OpenRouter 按全局账户限速,多个 key 共享同一配额。

Q: 被速率限制了(429)怎么办?

A: 等待后重试,建议实现指数退避(exponential backoff)策略。也可以考虑切换到其他支持更高速率的模型。

Q: limit_reset 字段的值是什么意思?

A: 表示额度的重置周期类型(如按月重置)。null 表示额度不会自动重置,用完就是用完了。