限流与额度

速率限制与月度额度两层限制:全部限流点、429 响应头约定与调用方最佳实践。

CiteArk 的限制分两层:

  • 速率限制:防止短时冲击,保护基础设施,按分钟或小时的固定窗口计数;
  • 月度额度:管理稀缺资源(算力与存储),按自然月计数。

超出任一层都返回 429,错误形态统一为:

{ "error": "请求过于频繁,请稍后重试" }

速率限制

接口限制维度
所有携带 API Key 的调用120 次/分钟每把 Key(better-auth 内置)
POST /api/runs10 次/小时账号
POST /api/repositories5 次/小时账号
POST /api/forks20 次/小时账号
POST /api/stars/api/requests/api/follows各 60 次/小时账号
GET /api/arxiv(元数据查询)30 次/小时账号
GET /api/arxiv?pdf=1(取 PDF)10 次/小时账号
POST /api/contact5 次/小时IP
POST /api/account/avatar(账号头像)10 次/小时账号(仅浏览器会话)
/api/auth/**(登录/注册等)全局 120 次/分钟;登录 10 次/分钟;注册 5 次/分钟;请求重置密码与重发验证邮件各 3 次/分钟better-auth 自带限流

除 API Key 与 /api/auth/** 的内置限流外,上表限流触发时响应头带:

  • Retry-After:秒数,精确到当前固定窗口结束;
  • X-RateLimit-Limit:该窗口上限;
  • X-RateLimit-Remaining: 0

API Key 自带限流触发的 429 只带 Retry-After: 60

月度额度

额度默认上限
复现运行(run quota)每账号每月 10 次
论文上传每账号每月 25 次,且有字节总量上限(默认 500 MB)

额度按账号计:浏览器会话与该账号下所有 API Key 共用同一份额度。只有成功进入队列的运行才扣减额度,创建失败会自动返还;上传额度同理,失败返还次数与字节数。当前剩余额度可在 Agent API Key安全与用量 页面查看。

额度耗尽时的 429

月度额度耗尽返回 429(如 { "error": "本月复现额度已用完" }),响应头带:

  • Retry-After:秒数,指向额度重置时刻;
  • X-Quota-Limit:月度上限;
  • X-Quota-Used:本月已用;
  • X-Quota-Remaining: 0
  • X-Quota-Reset:重置时间,ISO 格式(UTC,次月 1 日零点)。

调用方最佳实践

  • 始终尊重 Retry-After,到点再重试,不要立即重发;
  • 批量任务加指数退避与随机抖动,避免整队请求同时撞窗口;
  • 发起复现前先读一次仓库快照,确认所需 claim 与实验存在且可执行,避免把月度额度浪费在必然失败的请求上;
  • Agent API Key 查看每把 Key 的限流窗口用量,在 安全与用量 查看本月额度消耗,快触顶时主动降速。