计费
价格与计费:AI 检测 API 单价、计费公式与成本算例
最近更新:
当前单价
下表直接读取当前生效的计价规则,与接口 GET /v1/pricing 返回的值同源。数字不写死在文案里, 改价不需要等发版;本页 HTML 在边缘缓存 60 秒,改价后一分钟内刷新即为最新。
| 检测类型 | 计价单位 | 单价 | 最低收费 | 计费方式 |
|---|---|---|---|---|
| AI 图片检测 | 每张 | ¥0.05 | ¥0.05 / 次 | 按次计费 |
| AI 文本检测 | 每 1000 字 | ¥0.06 | ¥0.06 / 次 | 按量计费 |
未开放的能力不会出现在上表,调用会返回 403(provider_disabled)。
计费公式
文本检测不是按「次」收固定价,而是按字符数折算成计价单位后向上取整,再用最低收费封底:
计价单位数 = ceil(字符数 / 每单位字符数),最少 1
单次费用 = max(最低收费, 计价单位数 × 单价)
图片检测恒为 1 个单位,单次费用等于单价与最低收费中的较大者。
字符数怎么算
按 Unicode 字符计,不是字节:一个汉字、一个英文字母、 一个标点都算 1 个。提交时会先剔除首尾空白,中间的空格、换行与标点照常计入。 单次上限 20000 字符,超出直接返回 400,请求在进入检测流程前就被拒绝,不扣费。
为什么向上取整而不是四舍五入
不足一个计价单位的部分同样占用了上游一次完整推理,成本不会因为差几十个字而减少。 向上取整也让计费可预测:同样长度的文本,无论怎么切分,总价只会更贵、不会更便宜—— 这反过来抑制了「把长文拆碎提交」这种既浪费配额又破坏分段结果的用法。
什么时候会触底到最低收费
当「计价单位数 × 单价」小于最低收费时。以默认规则为例,100 字与 800 字都只算 1 个计价单位, 因此两者费用相同——这也是为什么用短文本做检测「单价看起来更贵」:贵的是固定成本, 不是字数。需要压成本时,正确做法是给短内容设长度门槛(比如 200 字以下不送检), 而不是纠结于单价。
成本算例
下表用当前生效的单价现算,改价后自动跟着变。「1000 次合计」按同样长度连续调用 1000 次估算, 用于做预算时的心算锚点。
| 场景 | 计价单位数 | 单次费用 | 1000 次合计 |
|---|---|---|---|
| 短评 / 标题 100 字 | 1 | ¥0.06 | ¥60.00 |
| 常规文章 800 字 | 1 | ¥0.06 | ¥60.00 |
| 长文 2500 字 | 3 | ¥0.18 | ¥180.00 |
| 长文 8000 字 | 8 | ¥0.48 | ¥480.00 |
| 图片 1 张 | 1 | ¥0.05 | ¥50.00 |
注意配额上限:每日提交配额默认 1000 次,所以「1000 次合计」也是单账号一天的调用上限。 要处理更多内容,要么拆到多天,要么申请更高配额——单纯加并发不会突破这个上限, 只会更频繁地撞上 429。
退款与幂等
提交即扣费,所以「重试」是这一节的核心风险点。两条规则决定了会不会重复花钱:
哪些失败会自动全额退款
请求未被受理的失败不产生任务,也就不扣费:参数有误(400)、缺幂等键(400)、密钥无效(401)、 余额不足(402)、请求体过大(413)、触发限流(429)。已进入检测流程后失败的, 按任务级错误码区分——bad_request、rate_limited、service_unavailable 全额退款;service_error、detect_failed、timeout 不退款。是否退款以资金流水里的记录为准。
同一个幂等键只计一次费
幂等按「账号 + 幂等键」去重,重试时复用同一个键会直接返回上一次的任务,不新建任务、不重复扣费。 但服务端不校验请求内容:改了文本或改了 is_merge 却复用旧键,拿回的是上一次的结果。 规则是「一个逻辑请求一个键」——网络重试复用,改了参数换新。
轮询超时不等于失败
轮询等不到终态时,任务仍在服务端排队或执行。这时拿 task_id 继续查询即可,不要重新提交——重新提交就是重新扣一次费。 这也是批量任务最容易产生意外支出的地方。
充值、用量与配额
注册即赠体验金,可先把提交、轮询、取结果的全流程跑通再充值;充值后按量扣费, 余额不足时提交返回 402,不会透支。
| 项目 | 默认值 | 对成本的影响 |
|---|---|---|
| 提交频率 | 2 次/秒 | 吞吐上限,加线程不会更快 |
| 查询频率 | 10 次/秒 | 轮询间隔建议不小于 1 秒 |
| 每日提交配额 | 1000 次 | 按东八区日界重置,真正的总量上限 |
| 单次文本长度 | 20000 字符 | 超出需自行切分,每批独立计费 |
用量明细可通过用户中心或 GET /v1/usage 分页查询, 返回里带 total 便于翻页与对账。
需要更高配额(而不是更低价格)时可以直接联系我们,说明日均提交量与峰值即可。
常见问题
为什么每次调用有最低收费?+
因为上游按次结算:一次推理的固定开销与文本长短关系不大,短文本并不因为字少而更便宜。最低收费是成本封底,同时也避免「把一篇长文拆成几十个超短请求」反而比整篇提交更划算——那样既增加排队次数,也让分段结果失去参考价值。
价格会变吗?充值后按哪个价格扣?+
以调用发生时的实时计价规则为准,本页单价与首页价格区都直接读取当前规则,不写死在文案里。改价不会追溯已发生的扣费:账户里的历史记录按当时的价格结算,可在用量明细与资金流水中核对。
每次调用扣了多少钱,在哪里核对?+
三个地方:任务返回体里的 cost 字段(本次调用的扣费金额,单位元)、用户中心的用量明细页,以及接口 GET /v1/usage(分页返回调用记录与 total)。三者以资金流水为最终依据,返回体里的 cost 用于即时展示。
余额不足会怎样?会扣到负数吗?+
不会。余额不足时提交直接返回 HTTP 402(insufficient_balance),请求在进入检测流程之前就被拒绝,不产生任务、不扣费,也不占用每日配额。充值后用同一个幂等键重新提交即可。
调用失败了退不退款?+
分两种。请求未被受理(限流、参数有误、余额不足、请求体过大)不产生任务,自然不扣费;已进入检测流程后失败的,按任务级错误码区分:bad_request、rate_limited、service_unavailable 全额退款,service_error、detect_failed、timeout 不退款。是否退款以资金流水里的记录为准,那是对账的唯一权威。
有包月或不限量套餐吗?+
目前只有按量计费,没有包月套餐。每日提交配额默认 1000 次(按账号、东八区日界重置),提交频率默认 2 次/秒;批量场景需要更高配额可联系调整,配额调整不改变单价。
注册即赠体验金,先把全流程跑通再充值