Pika 把 API 用量拆成两层收费,官方定价页把两句写在同一屏里:$10/month membership fee 与 Pay as you go。会员费不管你当月生不生成都要付,用量费只落在跑成功的任务上。
Pika API 的两层计费

开发者 FAQ 用两行写清了这套模型。第一行是 Membership is $10/month and unlocks member (wholesale) pricing.,第二行是 Beyond the flat membership fee, model usage is pay-as-you-go. You only pay for what you actually generate, at member rates.
被读错的是第一行。那 10 美元不是一包可以慢慢扣的额度,它买的是一档费率——The membership fee is what allows Pika to negotiate better rates on your behalf and pass genuine wholesale pricing to our members rather than baking a hidden markup into every API call. 定价页给出的对照说法是对其他聚合平台 Up to 80% off。
两层结构在估算时最容易被压成一层。只看每秒费率,会漏掉无论用不用都要付的那 10 美元;只看会员费,又会以为额度是包月的。算总成本要把固定部分摊到生成量上:月生成量越小,会员费在单条成本里占的比重越大。
第一层:俱乐部会员费
固定收的是一笔费用,另给一笔是抵扣额度。Membership is $10/month and unlocks member (wholesale) pricing 说的是扣款,New members get a $10 credit toward their first month of usage 说的是返还。取消不附加条件——You can cancel anytime——开通也不需要审批,官方对整条流程的描述是 self-serve end to end. No sales contact, no waitlist, no manual provisioning.
再往上是企业档,包含 Volume pricing: committed-use discounts that improve as you scale (up to 70% off) 和更高并发,通过 dev.pika.art/enterprise#contact 谈。这一档没有公布价目表。
一笔固定费用会改变成本结构:低频使用者的单次成本被会员费抬高,高频使用者则被压低。官方给出的对照口径是会员费很快就能挣回来——You'd only need to generate three 15-second Seedance 2.0 videos to save more than the $10 membership fee——这是官方自己的算法和前提,不是独立测算,引用时要把前提一起带上。
第二层:一秒或一次调用多少钱
费率按模型逐个公布,计费单位则随调用类型变化。
按秒计费的模型
Pika 2.5 在图生视频和文生视频两条线上都标着 from $0.04 / sec。该操作的规范文档把这个区间拆成了几行:
720p: $0.04 per second1080p: $0.06 per second1080p · 5s: $0.09 per second
第三行给的是同一个接口、同一个分辨率配上一种时长后的更高单价,所以这个 API 没有哪一句头条报价能概括。Pika 2.5 Keyframe 只有两行,720p: $0.04 per second 与 1080p: $0.06 per second。
换算成单条成本只要乘时长:按 1080p: $0.06 per second 算,五秒是 $0.30;换成 1080p · 5s: $0.09 per second 那一行,同样的五秒就是 $0.45。这两行各自在什么条件下生效,规范文档没有说明。
按次与按分钟计费的模型
Pika 目录里其余模型按调用真正消耗的单位计价。
| 操作 | 单位 | 公布价格 |
|---|---|---|
Pikaffects — Image to Video | 每次 | $0.05 / request |
Pikadditions — Video to Video | 每次 | $0.03 / request |
Pikaswaps — Video to Video | 每次 | $0.03 / request |
Pika Soundtrack — Video to Video | 每秒 | $0.005 / sec |
Pika Music — Reference to Audio | 每分钟 | $0.015 / min |
Pika SFX — Text to Audio | 每秒 | $0.0002 / sec |
Pika Speech — Text to Audio | 每分钟 | $0.01 / min |
按次计费会直接掀翻按运行时长搭出来的成本模型:Pikaffects 一次收 $0.05,五秒和十秒落在同一行价格上。
提交之前先把费用算出来
有两个入口报价不花钱:公开目录 needs no API key,而报价和余额、消费的读取 are never charged。报价接口收的就是你准备提交的那份 body,所以它是一次真正的试跑,而不是照着表格估出来的数字。
# 目录不需要密钥。整条记录直接打出来,别猜字段名。
curl -s "https://api.dev.pika.art/catalog/apis/pika/pika-2.5/image-to-video?expand=inputs" | jq .
# 给准备提交的那份 body 报价,一分钱不花。
curl -s -X POST "https://api.dev.pika.art/catalog/apis/pika/pika-2.5/image-to-video/quote" \
-H "Content-Type: application/json" \
-d '{"resolution": "1080p", "duration_s": 5, "image": "https://example.com/frame.png"}' | jq .
按秒计费的模型,用费率乘时长就能得到同一个数;先读一遍余额,估算就变成了判断。
import os
import requests
BASE = "https://api.dev.pika.art"
HEADERS = {"X-API-Key": os.environ["PIKA_API_KEY"], "Content-Type": "application/json"}
# pika/pika-2.5/image-to-video 在 1080p 下公布的费率。
rate_per_second_usd = 0.06
planned = [{"resolution": "1080p", "duration_s": 5, "image": "https://example.com/a.png"}] * 3
estimate_usd = sum(rate_per_second_usd * job["duration_s"] for job in planned)
balance = requests.get(f"{BASE}/billing/balance", headers=HEADERS, timeout=30).json()
available_usd = balance["balance_micro_usd"] / 1_000_000
print(f"预计 ${estimate_usd:.2f},余额 ${available_usd:.2f}")
if estimate_usd > available_usd:
raise SystemExit("先充值:否则提交会以 insufficient_balance 失败")
从任务对象里读取实际扣费
跑完的任务带着两个成本对象,llms.txt 明确了该信哪个:Record spend from billing.charge_micro_usd only when billing.state is settled。usage 报的是上游给出的计量单位,may not reproduce the charge。
{
"status": "completed",
"usage": { "video_output_tokens": 50638 },
"billing": { "state": "settled", "charge_micro_usd": 372189 }
}
这个 372189 就是 $0.372189。余额接口用的是同一个单位——unit (string): Always micro_usd——所以按美元记账的系统要在入库时除以 1,000,000。
有两种计费状态不算扣款:pending 表示还在结算,官方给的节奏是 at 1s, 2s, then 5s 重试;unavailable 表示 Pika 侧的计费读取失败,要等 no sooner than 30s。提交响应和 webhook 上的 billing 是 null,同样不是一次扣款。Pika API 参考写完了任务对象的其余字段,接口调用三跳讲清楚了那三次请求。
免费额度,以及官方没有公布的数字
llms.txt 对此说得很直白:There is no free generation tier and no separate test environment. 实际存在的只有首月那笔抵扣,以及一组永远不计费的读接口。每日消费可以按密钥、按模型读出来。
# 起止日期都必填且含当天;区间不能超过 366 天。
curl -s "https://api.dev.pika.art/billing/spend/daily?start_date=2026-09-01&end_date=2026-09-18" \
-H "X-API-Key: ${PIKA_API_KEY}" | jq .
429 背后的速率与并发上限,定价页和 agent 页都没有写。逐模型价目表由客户端计算器渲染,脚注是 Prices reported as of 9.16.26, and include Pika API Club's 5% platform fee,引用任何一个数字都得带上这个日期。这套计量和 pika.art 面向用户的套餐怎么换算,官方也没有说明,后者以视频积分计价且没有公布换算率——积分与成本拆解和免费额度说明处理的是产品另一端。
官方沉默的地方只剩一个可执行做法:拿真实 body 调一次 POST /catalog/apis/{api_id}/quote,把报价和事后读到的 charge_micro_usd 记在同一条记录里,用自己的账本补上文档没写的那部分。
常见问题
会员费是在用量之外另收的吗? 是。Membership is $10/month 与按量付费分开计算,当月不做任何生成也照收。
一秒视频多少钱? Pika 2.5 标的是 from $0.04 / sec,规范文档拆成 720p: $0.04 per second 与 1080p: $0.06 per second,另外还有一行 1080p · 5s: $0.09 per second。
有免费额度吗? 只有一笔,且绑定入会:New members get a $10 credit toward their first month of usage. 没有免费的生成层。
怎么核对一个任务真实花了多少? 等 billing.state 变成 settled 后读 billing.charge_micro_usd,再除以 1,000,000。
失败的生成会扣费吗? 不会。规范文档以 Only successful generations are charged 收尾,失败任务返回 "charge_micro_usd": 0。
账单上是两个数字:把 10 美元算进预算,用报价接口给 body 定价,再拿 charge_micro_usd 对账。