跳到正文
限制与余额

限制与余额

每个请求一视同仁。没有速率档位。没有单独的 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"
  }
}

在 /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."
  }
}
请求 限流保护
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 字节。