# 计费说明
> 按 token 计费：token 量 × 单价 × 分组倍率
> 两个站点各自独立计价：api.oairoute.com 与 ark.oairoute.com
> 同一站点内额度是账户级余额，站内所有 Key 共用
:::cards
模型广场 | 查看全部模型的价格、分组倍率与能力标签 | https://api.oairoute.com/pricing | assets/brand-oairoute.svg
方舟全球模型广场 | Seedance 视频与 Seedream 图像，Key 与额度均不通用 | https://ark.oairoute.com/pricing | assets/brand-volcengine.png
## 按 token 计费的费用构成
这一节只讲**按 token 计费**的模型。图像、视频等按次、按量或按秒计费的模型不适用这套算法，各自的计价方式直接看对应的模型广场：
- api 站的模型看[模型广场](https://api.oairoute.com/pricing)
- Seedance 与 Seedream 系列看[ark 站模型广场](https://ark.oairoute.com/pricing)
**单价**是模型本身未含分组倍率的基准价。**分组倍率**是账号所在分组带来的系数。单价乘上分组倍率，才是你实际付的价格。
先把各项用量乘单价得到「费用」：
```text
费用 = 输入 token      × 输入单价
     + 输出 token      × 输出单价
     + 缓存写入 token  × 缓存写入单价
     + 缓存读取 token  × 缓存读取单价
```
再把费用乘上分组倍率，得到实际扣费：
```text
实际扣费 = 费用 × 分组倍率
```
### 单价是怎么定的
单价以模型的官方价格为基准，部分模型另有规则：
- **分级定价**：按用量分档，用得多单价越低，具体分档见 `billing_expr`
- **长上下文定价**：输入超过一定长度后按更高单价计，超长文档、整本书这类场景会触及
- **缓存写入与读取分开计价**：写入缓存按 `create_cache_ratio`，命中缓存读取按 `cache_ratio`，两个系数不同
> **Note:** 部分模型开启了高峰时段定价，在高峰窗口内调用会再乘一个系数，低峰时段按常规单价。具体时段与倍率以实际扣费为准。
分组同样影响最终价格：同一个模型，不同账号看到的价格可能不同——差的不是单价，是分组倍率。你的分组系数在[模型广场](https://api.oairoute.com/pricing)和 `GET /api/pricing` 的 `group_ratio` 里都能查到；不同分组的倍率不一样，可以在控制台里选适合自己的分组。
## 按什么计费
不同模态的计价单位不同：
| 类型 | 计费单位 | 说明 |
|---|---|---|
| 文本、对话 | 按 token | 输入与输出分别计价，输出通常按输入价的若干倍 |
| 图像 | 按次或按量 | 有的模型按张数固定计费，有的按分辨率等用量参数计费 |
| 视频 | 按量或按秒 | 多为按秒数乘分辨率档计费，带参考视频时秒数会累加 |
| 语音 | 按字符或按次 | 合成类按**输入字符数**计费，同样文本重复合成会重复计费；转录类按音频时长折算 |
具体到某个模型用哪一种，看模型广场上标注的计费方式，或 `GET /api/pricing` 里的 `quota_type` 与 `model_price`、`model_ratio` 字段，字段含义见[模型价格与分组接口](model-pricing.html)。
## 缓存能省钱
文本类模型大多支持上下文缓存。缓存分两步，各有一套价格：
- **写入缓存**：按 `create_cache_ratio` 计费，通常比正常输入价略高
- **命中缓存读取**：按 `cache_ratio` 计费，通常明显低于正常输入价
长对话、固定系统提示词这类反复出现的输入，写入一次后后续都按读取价算，省得最多。
两个系数在模型广场上标注了，也可以从 `/api/pricing` 里查。用法见[OpenAI 上下文缓存](text/cache-openai.html)。
## 什么时候扣
1. **调用前校验**：请求到达时先检查剩余额度。余额为 0 或已用完，产生费用的接口会被直接拒绝
2. **调用结束结算**：按实际用量扣费。流式请求在流结束时结算
3. **查询类接口不受影响**：查用量、查余额、列模型这类不产生费用的接口，余额为 0 时也能正常调用
被拒绝时返回的错误码与处理方式，见[错误码说明](../support/errors.html)。看到余额不足的提示，去控制台钱包页面充值后重试即可。
> **Note:** 站内所有金额均以**美元（USD）**计价与显示，充值、余额、用量、账单都不做货币换算。
## 在哪里看
- **[用量](https://api.oairoute.com/usage-logs)**：每条请求的模型、token、费用、耗时与状态
- **[仪表盘](https://api.oairoute.com/dashboard)**：当日与累计消耗
- **[订单](https://api.oairoute.com/wallet)**：充值与购买记录
也可以用接口查：
| 想看的 | 接口 |
|---|---|
| 单个 Key 的剩余额度 | [查询令牌余额](account/token-balance.html) |
| 整个账户的可用余额 | [查询用户余额](account/user-balance.html) |
| 详细调用记录 | [查询用量](account/usage.html) |
| 某个模型多少钱 | [模型广场](https://api.oairoute.com/pricing) |
## 怎么充值
在控制台[钱包](https://api.oairoute.com/wallet)页面点「添加资金」，可以选择固定金额、自定义金额，或者用兑换码冲抵。
付款方式支持微信支付、支付宝、Stripe，以及加密货币 BEP20、TRC20 两条链。到账后余额即时更新，页面顶部能看到订单历史。
> **Note:** 同一个站点内，额度是账户级的，不按 Key 分开。给不同项目建多个 Key 时，它们花的是同一笔余额。想按项目控制用量，可以在「令牌」页面给每个 Key 设额度上限。
> **Note:** 但两个站点之间是独立的。`api.oairoute.com` 与 `ark.oairoute.com` 各有自己的账号、Key 和余额，互不通用：一站的 Key 调不了另一站的接口，一站的余额也付不了另一站的费用。Seedance 系列与 Seedream 系列走 ark 站，需要在那边单独注册、单独充值和获取 Key。
## 两个站点的计费差异
| | api 站 | ark 站 |
|---|---|---|
| 地址 | `api.oairoute.com` | `ark.oairoute.com` |
| 承载 | 文本、语音、任务、账户，以及非火山的图像视频 | Seedream 图像、Seedance 视频 |
| Key | 本站控制台创建 | ark 站单独获取 |
| 余额 | 本站充值 | ark 站单独充值 |
| 模型广场 | [api.oairoute.com/pricing](https://api.oairoute.com/pricing) | [ark.oairoute.com/pricing](https://ark.oairoute.com/pricing) |
两边的算法相通，都是单价乘分组倍率（按 token 计费的还要乘 token 量），但单价、分组、余额都是分开的。ark 站的模型普遍采用阶梯计价，实际单价以各自模型广场为准，同一个模型名在两边也不共享额度。
