即使模型 ID 完全有效,请求仍可能因 503 错误而失败,其原因通常是你所固定的交付层级。在我们的流水线中,当我们强制为不支持某个选项的模型选择该选项时,就遇到了这个问题。本指南解释了三种交付层级选项、设置应用的优先级,以及每种选项对账单的影响。以下所有事实均来自 TokenLab 文档和实时模型 API,观察时间为 2026-10-03。
关键要点
- 交付层级有三个值:
auto、verified和official。 - 请求标头(Header)会覆盖 API 密钥设置,而 API 密钥设置会覆盖工作区(Workspace)默认值。
- 如果请求的选项没有供应,你将收到
503 delivery_tier_unavailable。当retryable为false时,请勿重新发送相同的请求。 - 你只需为完成请求的那个选项付费。
- 在固定层级之前,请先检查
GET /v1/models/{model}。它是公开的,无需密钥。
三种交付层级选项
API 参考文档(观察时间 2026-10-03)定义了三个选项:
- Auto:在 TokenLab Verified 可用时使用它,必要时使用 Official。你只需为完成请求的选项付费。
- TokenLab Verified:由 TokenLab 验证交付。适用 TokenLab 价格。
- Official:基于模型制造商的公开价格。你在 TokenLab 上看到的价格即为你支付的价格。
生成请求接受标头 X-TokenLab-Delivery-Policy: auto | verified | official。无效的标头值会返回 400。
设置应用的优先级
可以在三个地方设置交付层级。记录的优先级顺序为:
- 请求标头。
- API 密钥设置。
- 工作区默认值。
标头覆盖密钥,密钥覆盖工作区。实时会话(Realtime sessions)是个例外:它们使用 API 密钥或工作区设置,且不接受查询字符串覆盖。
在请求中设置交付层级
以下是一个固定为 Official 交付的 Chat Completions 调用。模型 ID claude-sonnet-5 在实时模型 API 中列出,且两个选项均可用。请参阅模型页面。
curl https://api.tokenlab.sh/v1/chat/completions \
-H "Authorization: Bearer $TOKENLAB_API_KEY" \
-H "Content-Type: application/json" \
-H "X-TokenLab-Delivery-Policy: official" \
-d '{
"model": "claude-sonnet-5",
"messages": [
{"role": "user", "content": "Hello!"}
]
}'
相同的标头也适用于 Anthropic Messages 端点。对于 /v1/messages,密钥标头可以是 x-api-key,API 参考文档称 Anthropic Messages 接受该标头。
curl https://api.tokenlab.sh/v1/messages \
-H "x-api-key: $TOKENLAB_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "Content-Type: application/json" \
-H "X-TokenLab-Delivery-Policy: verified" \
-d '{
"model": "claude-sonnet-5",
"max_tokens": 512,
"messages": [{"role": "user", "content": "Hello!"}]
}'
在 API 密钥上设置交付层级
要将交付层级设为某个密钥的默认值,请使用带有管理令牌(mt-...)的管理 API。创建 API 密钥和更新 API 密钥页面(观察时间均为 2026-10-03)记录了 deliveryPolicy 字段。其值为 auto、verified、official 或 null。null 值将继承工作区策略。
此草图遵循记录的 PATCH 格式。密钥 ID 为文档示例值。
curl -X PATCH "https://api.tokenlab.sh/v1/management/api-keys/key_abc123def456" \
-H "Authorization: Bearer mt-your-management-token" \
-H "Content-Type: application/json" \
-d '{
"deliveryPolicy": "verified"
}'
更新操作至少需要一个字段,因此此主体本身是有效的。响应将设置报告为 delivery_policy,其中 null 表示该密钥继承工作区默认值。创建端点在其请求主体中接受相同的 deliveryPolicy 字段。在创建时省略它与记录的 null 继承一致,如创建示例响应显示 delivery_policy: null 所示。
当请求的选项不可用时
如果你请求的选项没有供应,TokenLab 将返回 503 delivery_tier_unavailable 和一个请求 ID。错误处理指南(观察时间 2026-10-03)解释了如何读取 retryable。
5xx 状态并不总是意味着临时中断。当所选操作在该层级没有供应时,retryable 为 false 且省略 retry_after。请勿在未做更改的情况下重复相同的请求。相反,请执行以下操作:
- 读取
code和retryable,而不是人类可读的message。 - 保存响应标头中的请求 ID。
- 在选择其他模型或层级之前,使用
GET /v1/models检查模型的交付可用性。
指南警告说,相似的模型名称并不能证明可用性。客户端应根据 code 进行分支处理,仅在 retryable 为 true 时重试 5xx 错误,并遵守 retry_after 并限制尝试次数。
检查模型拥有的选项
模型端点报告 delivery availability by option。这些值来自实时模型 API,观察时间为 2026-10-03:
| 模型 ID | Verified | Official | 模型页面 |
|---|---|---|---|
claude-sonnet-5 |
true | true | /models/claude-5/claude-sonnet-5 |
gpt-5.6-terra |
true | true | /models/gpt-5-6/gpt-5.6-terra |
deepseek-v4-flash |
false | true | /models/deepseek-v4/deepseek-v4-flash |
例如,在 deepseek-v4-flash 上固定 verified 就是那种会导致 delivery_tier_unavailable 的请求,因为 API 报告目前没有 Verified 供应。Official 和 Auto 在那里仍然有效。
你可以自行检查任何模型:
curl "https://api.tokenlab.sh/v1/models/deepseek-v4-flash"
可用性会在每个请求运行时进行检查,计费指南指出交付标签描述了支持的选项。将模型 API 视为快照,并在硬编码固定层级之前重新读取它。
选择如何影响你的费用
计费指南(观察时间 2026-10-03)指出,每个完成的请求都会被计费一次,费用取决于产生结果的选项:
TokenLab Verified使用 TokenLab 公开价格。Official使用基于模型制造商公开价格的 Official 价格层级。Auto收取完成请求的那个选项的费用。
对于付费生成,控制台(Console)在确认前显示最高预估值,而使用量(Usage)显示最终费用。任何未使用的预留金额将被释放。在模型页面上,TokenLab 价格列中的短横线表示目前没有 Verified 报价。这并不意味着免费。
指南未记录 Verified 和 Official 之间的固定价格差距,因此我们不会声称存在差距。对于 2026-10-02 更新的 claude-sonnet-5 的实时 TokenLab 价格,模型 API 列出的输入价格为每百万 token 0.9 美元,输出价格为 4.5 美元。作为估算,100,000 个输入 token 加上 10,000 个输出 token 为 0.09 + 0.045 = 0.135 美元。该数字仅使用列出的 TokenLab 价格。在比较之前,请阅读模型页面上的 Official 价格。
简短决策指南
- 默认使用 Auto,当你希望请求完成并能接受任一价格层级时。
- 固定 Verified,当你需要 TokenLab 价格且模型报告
verified: true时。 - 固定 Official,当你需要模型制造商的公开价格基准,或者模型没有 Verified 供应时。
- 设置密钥默认值,适用于总是需要相同层级的作业,并使用标头处理一次性的例外情况。
在固定之前,请阅读 GET /v1/models/{model}。进行小规模测试并在使用量中确认费用。
下一步:创建具有交付策略的密钥
在 控制台中创建 API 密钥,或使用管理令牌调用 POST /v1/management/api-keys 并在主体中设置 deliveryPolicy,如创建 API 密钥页面所述。然后使用上述标头发送一个小请求,并在使用量中检查费用。
常见问题解答
如果标头、API 密钥和工作区设置不一致,哪个设置生效?
请求标头生效。API 密钥设置会覆盖工作区默认值。实时会话会跳过标头,使用密钥或工作区设置。
为什么我收到 503 delivery_tier_unavailable,我应该重试吗?
你请求的层级在该操作中没有供应。读取 retryable:当它为 false 时,请勿重新发送相同的请求。使用 GET /v1/models 检查可用性并更改层级或模型。
Official 比 TokenLab Verified 更贵吗?
文档未说明固定的差异。Verified 使用 TokenLab 公开价格,Official 使用模型制造商的公开价格基准。请在模型页面上比较两者,并在使用量中确认最终费用。
我如何查看模型支持哪些交付选项?
调用 GET /v1/models/{model},无需密钥。目前 claude-sonnet-5 和 gpt-5.6-terra 报告 Verified 和 Official,而 deepseek-v4-flash 仅报告 Official。
我可以为实时会话设置交付选项吗?
可以,通过 API 密钥或工作区设置。实时会话不接受查询字符串覆盖。
来源
价格更新于 2026-10-03
- TokenLab Docs: API Reference资料更新于 2026-10-03
- TokenLab Docs: Billing and pricing资料更新于 2026-10-03
- TokenLab Docs: Handle API errors资料更新于 2026-10-03
- TokenLab Docs: Create API Key资料更新于 2026-10-03
- TokenLab Docs: Update API Key资料更新于 2026-10-03
- TokenLab Docs: Get a Model资料更新于 2026-10-03
- TokenLab live model API: claude-sonnet-5资料更新于 2026-10-03
- TokenLab live model API: gpt-5.6-terra资料更新于 2026-10-03


