参考
定价与积分
API 支出以 Caicaini 积分计价,从专属的 apiCredits 池中扣除。和对话产品使用同一种积分单位,但单价不同,且两个池子严格分开。
积分如何工作
- 每次模型调用都消耗积分。具体数值由输入和输出 token 数加上模型乘数计算得出。
- 积分永远是整数运算。任何取整都不会对你不利。
- 每个响应里的
usage.credits_consumed字段就是权威的扣减值。它写多少,我们就扣多少。 apiCredits池与你对话产品里的积分完全隔离。订阅积分和对话充值永远不会渗入 API 支出,反之亦然。
充值套餐
买积分最划算的方式是四档预设套餐。同一页的自定义金额滑块会在这些档位之间插值。
| 套餐 | 价格 | 积分 | 每美元积分 | 对比 starter |
|---|---|---|---|---|
| api_starter | $10 | 70,000 | 7,000 | — |
| api_builder | $50 | 380,000 | 7,600 | +8% |
| api_scale | $200 | 1,600,000 | 8,000 | +14% |
| api_enterprise | $1,000 | 8,500,000 | 8,500 | +21% |
自定义金额
如果套餐大小不合适,可以在控制台里输入 $10 到 $10,000 之间的任意金额,我们会按对应档位的费率计算积分。/developers/billing 上的滑块会实时预览计算结果;服务端为最终来源。
| 金额区间 | 每美元积分 | 等价套餐 |
|---|---|---|
| $10.00 – $49.99 | 7,000 | api_starter 费率 |
| $50.00 – $199.99 | 7,600 | api_builder 费率 |
| $200.00 – $999.99 | 8,000 | api_scale 费率 |
| $1,000.00+ | 8,500 | api_enterprise 费率 |
预览计算
控制台调用的预览端点和实际兑现走的是同一份服务端逻辑——所见即所得。
# Preview what $50 buys without creating a payment.
curl https://caicaini.com/api/developers/billing/preview \
-H "Authorization: Bearer YOUR_DASHBOARD_JWT" \
-H "Content-Type: application/json" \
-d '{"usdCents": 5000}'
# {
# "credits": 380000,
# "creditsPerDollar": 7600,
# "markupX": 1.32,
# "tier": "builder"
# }各模型成本
不同模型的每千 token 积分费率不同。更快、更小的模型每 token 更便宜;能力更强的模型更贵。当你没有强烈偏好时请用 caicaini/auto——路由会挑选能完成任务的最便宜模型。
caicaini/auto——按命中模型计费。Auto 很少挑最贵的。caicaini/opus——每 token 最贵,能力最强,约为caicaini/sonnet的 5 倍。caicaini/sonnet——中档。生产流量的默认。caicaini/haiku——便宜又快。约为sonnet的 1/3。caicaini/kimi——长上下文下每 token 最便宜。检索类工作负载优势明显。
预扣留
每次调用前,我们会按最坏情况估算成本(输入 + 全部 max_tokens 按该模型输出费率),并从你的 apiCredits 余额预留这么多积分。调用结束后释放预留,按实际成本扣减。如果你的可用余额不足以覆盖最坏情况,调用会在任何供应商工作之前返回 type 为 insufficient_quota 的 402。
发送前估算
// Quick budgeting: if you know average input/output tokens per turn,
// estimate credit cost before sending. Replace the rates with the values
// you read from the model row in GET /v1/models if you want exact numbers.
type Rates = { in_per_1k_credits: number; out_per_1k_credits: number };
function estimateCredits(inputTokens: number, outputTokens: number, r: Rates): number {
return Math.ceil((inputTokens / 1000) * r.in_per_1k_credits)
+ Math.ceil((outputTokens / 1000) * r.out_per_1k_credits);
}
// Then keep usage.credits_consumed from each response as the source of truth.退款
退款由管理员发起,且很少见。最常见的情形是:流式调用在任何输出送达之前就断开——这类会自动退款。其他情形请联系支持,并附上受影响响应的消息 id。默认可退款的范围见 错误。