上限与速率限制
每把密钥的使用上限、余额不足时、速率限制、按模型的上限、请求大小的上限,以及超过时返回的错误。
Echo 的请求有下面 5 种上限。
| 上限 | 按什么设定 | 超过时的 HTTP 状态码 |
|---|---|---|
| 密钥的使用上限 | 每把密钥(设不设由你决定) | 403 或 401 |
| 余额 | 账号 | 403 |
| 速率限制(一定时间内能发送的请求数) | 账号、来源 IP 地址 | 429 |
| 按模型的上限(请求数、token 数、同时请求数) | 账号和模型的组合、模型整体 | 429 |
| 请求正文的大小 | 每个请求 | 400 |
密钥的使用上限
- 发行密钥时填了「利用上限(円)」(使用上限(日元)),这把密钥就能用到这个金额。没填的密钥,可以在账号余额的范围内使用
- 使用上限用多少减多少。不会按月等周期自动恢复
- 发送请求前,会比较估算的价格和密钥剩余的使用上限。估算的价格更多时,不发送,返回 403(
This API key has reached its spending limit) - 价格在回答结束后按实际 token 数确定,所以可能超过使用上限。同时发送多个请求时,每个请求都会各自通过上面的判断,超出的金额可能不止 1 次请求的量。超出的部分也会从余额中扣除。想让超出的金额尽量小,请减少同时发送的请求数
- 使用上限用完的密钥,会返回和密钥错误时一样的 401(
Invalid API key)。确认密钥没问题却出现 401 时,请在控制台的「APIキー」(API 密钥)里查看这把密钥的状态和剩余的使用上限 - 上限金额可以在控制台的「APIキー」里,对每把密钥用「利用上限を変更」(修改使用上限)修改。已达上限的密钥,调高上限后也会自动恢复。不需要更换程序里的密钥
发行密钥和查看列表的方法见API 密钥与使用情况。
余额不足时
余额用完后,会停止处理请求(HTTP 403,Insufficient balance)。不过,余额和密钥的使用上限一样,是在发送前按估算的价格判断的,所以价格有可能超过余额(同时发送多个请求时,超出的金额可能不止 1 次请求的量)。超出的部分会让余额变成负数,并从下一次充值中扣除。
充值并反映到余额后,就可以再次使用。余额更新可能需要几秒到 1 分钟左右。价格和充值的详情见价格与充值。
速率限制
| 按什么计数 | 上限(暂定) | 超过时 |
|---|---|---|
| 账号。同一账号的密钥合在一起计数 | 每分钟 60 次。Premium 会员每分钟 600 次 | 返回 429 和 Rate limit exceeded for your account, please retry after 60 seconds,带 Retry-After: 60 头 |
来源 IP 地址。对路径以 /v1 开头的请求计数 | 每分钟 3,000 次 | 返回 429 和 Too many requests from your IP address, please retry after the number of seconds in the Retry-After header,Retry-After 头里是要等待的秒数 |
上游 API(实际运行模型的各厂商的 API)也有速率限制。超过上游的速率限制时,返回 429 和 The model service is temporarily rate limited, please retry after 60 seconds,带 Retry-After: 60 头。
被速率限制拒绝的请求不收费。上游速率限制导致的 429 也不收费。
按模型的上限
部分模型在上面的速率限制之外,另有按模型的上限。计数的有下面 3 项。上限的数值因模型和账号而不同。
| 上限 | 怎么计数 |
|---|---|
| 每分钟请求数 | 最近 60 秒内受理的请求数 |
| 每分钟 token 数 | 最近 1 分钟内用掉的 token 数(输入和输出合计)。按实际用量判断,所以有约 10~20 秒的延迟 |
| 同时请求数 | 还没有回答完的请求数。流式输出在全部送达时算结束 |
上限分两层。超过任何一层都返回 429,Retry-After 头里是要等待的秒数。
| 超过的上限 | 返回的消息 |
|---|---|
| 你的账号在这个模型上能用的份额 | You have reached your rate limit for the model <模型 ID> (<上限的种类>), please retry after <秒数> seconds |
| 这个模型整体的上限(所有用户合计) | The model <模型 ID> is receiving too many requests right now (<上限的种类>), please retry after <秒数> seconds |
<上限的种类> 是 requests per minute、tokens per minute、concurrent requests 之一。错误正文的格式和其他 429 相同(/v1/messages 是 Anthropic 的格式,其余是 OpenAI 的格式,见错误与处理)。
重新发送前,请至少等待 Retry-After 的秒数。OpenAI 和 Anthropic 的 SDK 收到 429 后会按 Retry-After 自动重试。碰到同时请求数的上限时,请减少同时发送的数量,或等前一个请求结束后再发下一个。因按模型的上限被拒绝的请求不收费。
为了按模型计数,Echo 要先收完整个请求正文,再发给模型。正文发送得太慢时,返回 408 和 The request body was not received in time, please send the request again,不收费,请重新发送同一个请求。带大图片或文件的请求遇到这种情况时,请检查线路的上行速度,或减少一次请求里带的内容。
请求的大小
| 项目 | 内容 |
|---|---|
| 请求正文大小的上限 | 128 MB(暂定)。超过时返回 400 和 Invalid request: request body exceeds 128 MB: request body too large |
| 能输入的 token 数 | 最多到每个模型的上下文长度(一次能处理的 token 数)。列在模型一览的各模型页面 |
上游 API 也各有请求大小的上限。我们确认过,包含 4 MB base64 图片的请求可以原样送到上游。输入超过上下文长度时,上游 API 会返回 400。
信息来源
| 内容 | 来源 | 确认日期 |
|---|---|---|
| 速率限制的数值、请求正文大小的上限 | Echo 中转服务器的设置(2026-09-28 时) | 2026-09-28 |
估算价格超过使用上限时的 403、用完上限的密钥的 401、速率限制的 429 和 Retry-After、速率限制按账号计数、被速率限制拒绝的请求不收费、超过 128 MB 的请求的 400 | Echo 验证环境中的实测。使用与正式环境相同的中转设置,并用返回测试响应的服务器代替上游 API | 2026-09-28 |
| 同时发送的请求各自通过估算的判断、合计超过使用上限和余额,超出的部分也从余额中扣除 | Echo 验证环境中的实测(同上) | 2026-09-28 |
| 4 MB 的图片能送到 | Echo 验证环境中的实测(同上) | 2026-09-27 |
| 修改使用上限、已达上限的密钥恢复使用、余额变成负数时的处理 | Echo Token Station 的控制台(2026-09-28 时的页面) | 2026-09-28 |
超过按模型的上限时的 429 和两种消息、Retry-After、被拒绝的请求不收费、正文发送太慢时的 408 | Echo 验证环境中的实测(同上) | 2026-10-11 |