限制与余额
每个请求一视同仁。没有速率档位。没有单独的 API 配额。你已经为 tokens 付了费——想多快用就多快用。
本页说明你的余额由什么构成、一个请求会预留和花费什么、你可以发送多少请求,以及单个请求可能遇到的少数几项限制。
- 1M tokens 余额的价值
- $5.00
- 每日额度刷新
- 00:00 UTC
- 限流保护,按账户
- 120 请求 / 分钟
请求如何被处理
- 没有速率档位 — 只有一条规则限制请求到达的速度,且对每个账户、每个计划都相同:每分钟 120 个请求。对每分钟的 tokens 没有限制。
- 没有单独的 API 配额 — API 与聊天消耗同一份余额。计划决定当日额度的大小,而不决定请求速率。
- 想多快就多快 — 并行发送的请求会被接受并排队等待。它们不会因为并行而被拒绝。
你的余额
你的余额以 tokens 计算。1,000,000 tokens 的余额价值 $5.00,模型与定价页面上的每个价格都是相对于该价值的费率。
余额在任何时刻都是两部分之和。
- 当日计划额度 — 由你的计划设定的 tokens 数量。每天 00:00 UTC 刷新。一天结束时剩余的部分不会结转。
- 已购买的信用额度 — 你以套餐形式购买的 tokens。信用额度不会过期,并且适用于所有计划,包括 Free。
| 计划 | 每日 tokens | 价值 |
|---|---|---|
| Free | 30,000 | $0.15 |
| Plus | 80,000 | $0.40 |
| Standard | 265,000 | $1.325 |
| Pro | 665,000 | $3.325 |
- 消耗顺序 — 每个请求先消耗当日计划额度。只有超出当日额度的部分才会使用已购买的信用额度。
- 聊天与 API 共用 — 每个账户只有一份余额。API 密钥从拥有它的账户的余额中扣费,价格与聊天相同。
- 套餐 — 信用额度以 1,000,000 ($5.00)、2,000,000 ($10.00) 和 5,000,000 ($25.00) tokens 的套餐出售,也可以在 1,000,000 到 100,000,000 tokens 之间自选数量,价格为每 1,000,000 $5.00。
请求预留什么、花费什么
- 预留 — 请求到达时,它会从你的余额中预留自己的输出预算:
/v1/chat/completions和/v1/messages上是max_tokens,/v1/responses上是max_output_tokens。/v1/chat/completions也会读取max_completion_tokens。默认值为 4,096,范围是 1 到 65,536。 - 准入 — 只有当预留额度不超过你余额的剩余量时,请求才会被接受。余额大于零但小于输出预算时,会得到
Quota exceeded回复。发送较小的max_tokens即可用掉剩余部分。 - 结算 — 答案完成后,预留额度会被实际费用取代。实际费用可能低于也可能高于预留额度。
- 退回 — 以错误状态结束的请求会全额退回其预留额度。
实际费用取决于模型系列。
| 模型 | 收取的费用 |
|---|---|
| Shannon 模型 | usage.total_tokens 按模型每 1M 的价格计费。输入和输出使用同一费率。 |
| 托管开源权重模型 | 未缓存的输入按输入价格,缓存的输入按缓存价格,输出按输出价格。 |
以美元计的金额按每 1,000,000 $5.00 折算为 tokens,从你的余额中扣除,并取整为整数个 token。
使用 POST /v1/tokenize 或 POST /v1/messages/count_tokens 统计 tokens 是免费的,且不预留任何额度。 Token 计数
在哪里查看余额和用量
密钥与用量页面显示你当前可以花费的额度、当日计划额度、已购买的信用额度,以及过去 30 天的 API 支出。其下列出你的密钥发出的每个请求:时间、端点、模型、缓存输入、计费 tokens 和费用。 密钥与用量
每个回复还带有一个 usage 对象,包含该次调用的 token 计数。
| 端点 | usage 的字段 | 托管开源权重模型额外增加的字段 |
|---|---|---|
/v1/chat/completions | prompt_tokens, completion_tokens, total_tokens | prompt_tokens_details.cached_tokens, completion_tokens_details.reasoning_tokens |
/v1/messages | input_tokens, output_tokens | cache_read_input_tokens, cache_creation_input_tokens |
/v1/responses | input_tokens, output_tokens, total_tokens | input_tokens_details.cached_tokens, output_tokens_details.reasoning_tokens |
usage包含模型的 token 计数。从你的余额中扣除的数额不在回复中:它是密钥与用量中请求列表的 计费 tokens 一列。- 在
/v1/messages上使用托管开源权重模型时,input_tokens是输入中未缓存的部分,cache_read_input_tokens是已缓存的部分,cache_creation_input_tokens始终为0。 -
/v1/chat/completions上的流会在[DONE]之前的最后一个数据块中携带usage。 流式
余额用完时
预留额度超出你的余额的请求,会得到状态码 429、类型 rate_limit_error 和下面的消息。不会收取任何费用。当余额大于零但小于请求的输出预算时,也会发送同样的回复。
{
"error": {
"type": "rate_limit_error",
"message": "Quota exceeded. Upgrade your plan at shannon-ai.com/plan"
}
} {
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Quota exceeded. Upgrade your plan at shannon-ai.com/plan"
}
} 在 /v1/responses 上,error 对象还可以包含 code 和 param,两者均为 null。
你可以:
- 等待 00:00 UTC 的下一次计划额度。
- 充值信用额度。信用额度在计划额度之后消耗,并且不会过期。 充值
- 更换为每日额度更大的计划。 更改计划
- 如果还剩一些余额,请发送较小的
max_tokens:这样预留的额度会更小。
Shannon Coder 调用额度
/v1/chat/completions 和 /v1/messages 上的 shannon-coder-1 按调用次数而不是按 tokens 计数。每个计划在每个 4 小时窗口内包含一定数量的调用。一个请求就是一次调用。
| 计划 | 每个 4 小时窗口的调用次数 |
|---|---|
| Free | 3 |
| Plus | 20 |
| Standard | 40 |
| Pro | 60 |
- 窗口从 UTC 00:00, 04:00, 08:00, 12:00, 16:00, 20:00 开始。窗口结束时剩余的调用次数不会结转。
- 调用在请求被接受时、模型作答之前计数。之后失败的请求仍然算作一次调用。
- 这些调用不预留 tokens,也不从你的余额中扣除任何内容。密钥与用量中的请求列表会显示它们的 token 数及按标价折算的价值。
- 在这两个端点上,
shannon-coder-1的默认max_tokens为 65,536。 - 没有剩余调用次数时,回复的状态码为
429,类型为rate_limit_error,消息为Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan。 - 在
/v1/responses上,shannon-coder-1没有调用额度:与其他所有模型一样,按每 1M $8.00 从你的余额中按 tokens 扣费。
限流保护
一个账户每分钟可发送 120 个请求。这是对请求速率的唯一限制,且所有计划都相同。它的目的是阻止洪泛,而不是拖慢正常使用。
- 这一分钟是一个 60 秒的固定窗口,从你的第一个请求开始。窗口结束后,计数从零重新开始。
- 计数按账户进行,而不是按密钥,也不是按 IP 地址。轮换密钥不会开启新的窗口。
- 窗口内的第 121 个请求会得到状态码
429、类型rate_limit_error和消息Too many requests. Retry in <N>s.。N是距窗口结束的秒数,范围为 1 到 60。 - 限流保护在检查余额之前进行。被它拒绝的请求不预留任何额度,也不产生费用。
{
"error": {
"type": "rate_limit_error",
"message": "Too many requests. Retry in 37s."
}
} {
"type": "error",
"error": {
"type": "rate_limit_error",
"message": "Too many requests. Retry in 37s."
}
} | 请求 | 限流保护 |
|---|---|
POST /v1/chat/completions, POST /v1/messages, POST /v1/responses | 计数,每个请求计一次。 |
GET /v1/models, POST /v1/tokenize, POST /v1/messages/count_tokens | 不计数。 |
/v1/chat/completions 和 /v1/messages 上的 shannon-coder-1 | 改为按 Shannon Coder 调用额度计数。 |
得到 401 的请求,或因 model 未知而得到 400 的请求 | 不计数。 |
| 被限流保护拒绝的请求 | 计入窗口。不收取任何费用。 |
并行请求
账户同时打开的请求数量没有上限,并行发送请求也不会报错。无法立即开始的请求会排队,依次得到答复。
- 每个请求在到达时就计入每分钟 120 个的限额,无论之前的请求是否已完成。
- 每个请求在结束之前都持有自己的预留额度。二十个未完成的请求,在默认输出预算下,会占用 20 × 4,096 = 81,920 tokens 的余额。如果这些预留额度之和大于你的余额,下一个请求就会得到
Quota exceeded回复,即使已完成的调用实际花费更少。较小的max_tokens占用更少。 - 非流式请求在答案完成之前不会发送任何内容,因此请为客户端设置能覆盖等待时间的超时。流在等待期间会保持连接打开。 流式
单个请求的限制
| 限制 | 值 | 适用范围 | 达到限制时 |
|---|---|---|---|
| 请求体 | 32 MiB(33,554,432 字节) | 所有端点 | 状态码 413,类型 invalid_request_error。 |
输出预算:max_tokens、max_completion_tokens、max_output_tokens | 1 到 65,536。默认值为 4,096;/v1/chat/completions 和 /v1/messages 上的 shannon-coder-1 默认值为 65,536。 | 所有模型,作为从你的余额中预留的数量。作为答案长度的限制:托管开源权重模型、shannon-1.6-lite、shannon-1.6-pro 和 shannon-coder-1。 | 超出范围的值会被调整到范围内最近的端点值。不报错。 |
停止序列:stop、stop_sequences | 4 个字符串 | 托管开源权重模型 | 使用前 4 个非空字符串。 |
| 以 URL 给出的图片或文件 | 8 MiB,须在 20 秒内读取完毕,最多 5 次重定向,须为公网 http 或 https 地址 | 所有接受图片或文件的端点 | 请求将在没有该部分的情况下作答。不报错。 |
| 内联发送的图片或文件(base64) | 没有单独的限制。它计入 32 MiB 的请求体。 | 所有接受图片或文件的端点 | 整个请求返回状态码 413。 |
POST /v1/tokenize 的 text | 4,000,000 字节 | /v1/tokenize | 状态码 413,类型 invalid_request_error,消息 text too long。 |
POST /v1/tokenize 的 messages 以及 POST /v1/messages/count_tokens 的请求体 | 32 MiB 的请求体 | 两个计数端点 | 状态码 413。 |
| 上下文窗口 | 因模型而异:GET /v1/models 中的 context_window | 所有模型 | 更长对话的处理方式取决于模型。 模型与定价 |
网页搜索(web_search: true) | 按计划每天:Free 3、Plus 30、Standard 50、Pro 60。搜索找到结果的请求计一次搜索。 | 设置了 web_search: true 的请求 | 额度用完后,请求将在不搜索的情况下作答。不报错。 内置网页搜索 |
错误
本页的各个回复。在 /v1/messages 上,同一个 error 对象会被包装为 {"type": "error", "error": {…}}。
| 状态码 | 类型 | 消息 | 何时出现,以及如何处理 |
|---|---|---|---|
429 | rate_limit_error | Quota exceeded. Upgrade your plan at shannon-ai.com/plan | 请求的预留额度超出了你的余额。请等待 00:00 UTC、充值、更换计划,或发送较小的 max_tokens。 |
429 | rate_limit_error | Too many requests. Retry in <N>s. | 当前这一分钟内超过 120 个请求。请等待 N 秒后再发送。 |
429 | rate_limit_error | Shannon Coder call quota reached. Upgrade your plan at shannon-ai.com/plan | 当前 4 小时窗口内的 Shannon Coder 调用次数已用完。 |
429 | rate_limit_error | Shannon routes are temporarily busy. Please retry. | 模型此刻无法接受该请求。请稍作停顿后重新发送。 |
503 | api_error | Could not verify your quota right now. Please retry. | 无法读取你的余额。不会收取任何费用;请重新发送请求。在 /v1/responses 上使用 Shannon 模型时,状态码为 500。 |
413 | invalid_request_error | 请求体大于 32 MiB。在 OpenAI 格式的端点上,error 对象带有 code: "request_too_large"。 | |
413 | invalid_request_error | text too long | POST /v1/tokenize 的 text 超过 4,000,000 字节。 |