Claude中100万Token多少钱?API价格与计算方法
Claude API按每百万token计费,输入和输出分开定价。本文列出Haiku 4.5、Sonnet 5和Opus 5的费率,并演示如何把token数量换算成月账单。
Claude 中 1M tokens 的价格是多少?
1M tokens 表示 1,000,000 个 tokens,是所有 Claude API(应用程序编程接口)报价使用的单位。它没有统一价格,因为输入和输出按不同费率计费,而且每个模型都有各自的费率组合。截至 2026 年 8 月,1,000,000 个输入 tokens 在 Claude Haiku 4.5 上的价格为 $1,在 Claude Sonnet 5 上为 $2,在 Claude Opus 5 上为 $5。
输出是费用较高的一部分。在所有当前模型中,输出费率都是输入费率的 5 倍。因此,输入和输出的比例对账单的影响大于单独查看的标价。发送长文档并返回简短答案的应用,与根据简短提示生成长答案的应用,费用情况会明显不同。
本页介绍单位成本:单个 token 的价格,以及如何在构建应用前估算账单。如果要了解工作期间 tokens 的实际消耗位置,请阅读 Claude Code 会话中 tokens 的消耗位置。
100万 tokens 的规模
token 是模型读取或生成的一段文本。Anthropic 的粗略估算是,4 个字符约对应 1 个 token,或者说,英文中 1 个 token 约对应 0.75 个单词。因此,100万 tokens 约等于 750,000 个单词,或大约 4 MB 的纯文本。
已发布的常见输入估算值更能直观体现这一规模。
The data behind this chart
[
{
"label": "Average web page (10 kB)",
"tokens": "2,500"
},
{
"label": "Documentation page (100 kB)",
"tokens": "25,000"
},
{
"label": "Research paper PDF (500 kB)",
"tokens": "125,000"
}
]按这些比例计算,100万 tokens 大约相当于一次性阅读 400 个普通网页,或阅读 8 篇同等规模的研究论文。这也相当于完整处理一个中等规模的代码库,或供一个人轻度聊天使用 1 个月。
以上都只是估算值。代码、JSON 以及英文以外语言的文本,在每个 token 中包含的单词更少,因此 0.75 这个比例属于较乐观的估计。还有一个因素会影响计数:Claude Opus 4.7 及更高版本(包括 Opus 5 和 Sonnet 5)使用更新的 tokenizer。对于相同文本,它生成的 tokens 数量比 Sonnet 4.6 及更早版本多约 30%。Claude Haiku 4.5 使用旧版 tokenizer。因此,对于完全相同的输入,在 Haiku 4.5 上测得的数量会低估 Sonnet 5 上的数量。这意味着,跨越这一版本边界直接比较每百万 tokens 的价格并不公平。请先使用相同的提示分别对两个模型进行计数,再做决定。
Claude 每百万 token 的收费标准
The data behind this chart
[
{
"label": "Haiku 4.5",
"input_usd": 1,
"output_usd": 5
},
{
"label": "Sonnet 5 (to 31 Aug 2026)",
"input_usd": 2,
"output_usd": 10
},
{
"label": "Sonnet 5 (from 1 Sep 2026)",
"input_usd": 3,
"output_usd": 15
},
{
"label": "Opus 5",
"input_usd": 5,
"output_usd": 25
}
]Claude Sonnet 5 在 2026 年 8 月 31 日之前采用介绍期定价:输入费用为 $2,输出费用为 $10。从 2026 年 9 月 1 日起采用标准费率:输入费用为 $3,输出费用为 $15。Claude Opus 5 的输入费用为 $5,输出费用为 $25。
费率可能调整。本页所有数字均为截至 2026 年 8 月的示例。在确定预算前,请通过官方定价页面确认当前价格。
上下文长度不会改变费率。在 Claude 4.6 及更高版本中,完整的 1M token 上下文窗口按标准价格计费。因此,包含 900,000 个 token 的请求与包含 9,000 个 token 的请求,每个 token 的费用相同。长提示词的费用更高,是因为包含的 token 更多;不会另外适用长上下文费率。
经得起价格变化的计算
每笔费用包含两次乘法和一次加法。
cost = (input_tokens / 1,000,000) * input_rate
+ (output_tokens / 1,000,000) * output_rate写成可运行的代码:
INPUT_RATE = 2.00 # USD per million input tokens, Sonnet 5, August 2026
OUTPUT_RATE = 10.00 # USD per million output tokens
def cost(input_tokens, output_tokens):
return (input_tokens * INPUT_RATE + output_tokens * OUTPUT_RATE) / 1_000_000
print(f"{cost(4300, 400):.4f}")输出 0.0126。一次请求发送 4,300 个输入令牌并返回 400 个输出令牌,在 Sonnet 5 上的费用约为 1.3 美分。在代码中将两种费率集中定义。价格变化时只需修改两行,系统中的所有估算都会同步更新。
实际应用的估算示例
以一个支持助手为例。其系统提示词和产品文档共包含 4,000 个 token。由于 Messages API 无状态,模型不会在调用之间保留任何信息,因此这些内容会随每个请求发送。用户问题增加约 300 个 token。回答约为 400 个 token。每个请求包含 4,300 个输入 token 和 400 个输出 token。
1,000,000 个输入 token 大约可处理 232 个此类请求。如果应用每天处理 1,000 个请求,则每天消耗 4,300,000 个输入 token。因此,“1M tokens”对应的流量不足 6 小时。
The data behind this chart
[
{
"label": "Opus 5, list rates",
"cost_per_1k_usd": "31.50"
},
{
"label": "Sonnet 5, list rates",
"cost_per_1k_usd": "12.60"
},
{
"label": "Sonnet 5, Batch API",
"cost_per_1k_usd": "6.30"
},
{
"label": "Haiku 4.5, list rates",
"cost_per_1k_usd": "6.30"
},
{
"label": "Sonnet 5, warm prompt cache",
"cost_per_1k_usd": "5.40"
}
]在 Claude Opus 5 上,这些流量每 1,000 个请求的成本为 $31.50。在 Sonnet 5 上,成本为 $12.60。改用 Claude Haiku 4.5 后,成本降至 $6.30;在 Sonnet 5 上使用热提示缓存,成本还会进一步降至 $5.40。
将每天的流量乘以 30,即可估算一个月的成本。按目录价格计算,Sonnet 5 每月约需 $378。同一应用使用热缓存时,每月约需 $162。在这一流量规模下,模型选择和缓存策略带来的影响,都超过了你能协商出的任何费率优惠。应使用哪个模型是另一个问题。能通过评估的最低成本模型就是最佳选择:选择 Opus、Sonnet 和 Haiku介绍了如何正确进行测试。
Prompt caching 减少重复部分
每个请求中的前缀都相同,共有 4,000 个 token,但每次都会按完整输入价格计费。Prompt caching 会存储已处理的前缀,重复使用时按较低费率计费。
读取缓存的费用是基础输入费率的 0.1 倍。写入缓存的费用为基础费率的 1.25 倍,缓存有效期为 5 分钟;有效期为 1 小时时,费用为基础费率的 2 倍。因此,5 分钟缓存读取一次即可回本:写入时额外支付 0.25 倍,而每次读取可节省 0.9 倍。1 小时缓存需要读取 2 次才能回本。
启用缓存最简单的方法是设置一个顶层字段:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5",
"max_tokens": 1024,
"cache_control": {"type": "ephemeral"},
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "What are the key themes in Pride and Prejudice?"}
]
}'然后读取返回的 usage 块:
{
"usage": {
"cache_creation_input_tokens": 5120,
"cache_read_input_tokens": 1800,
"input_tokens": 50,
"output_tokens": 503
}
}这 3 个输入计数器按 3 种不同费率计费,它们的总和才是实际输入量:total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens。启用缓存后,如果只读取 input_tokens,成本估算会严重偏差。
有两种情况会导致缓存无法带来收益,而且都不会返回错误。
前缀必须逐字节相同。 缓存查找使用前缀匹配,因此,如果在系统提示词开头加入时间戳或用户姓名,前缀就会在每个请求中发生变化。此时每次都会按基础输入费率的 1.25 倍计费,并且一次缓存读取都不会发生。表现为 cache_creation_input_tokens 持续较高,而 cache_read_input_tokens 始终为 0。将 cache_control 放在内容在各请求之间保持不变的最后一个块上,并将所有可变内容放在它之后。修改 tools 定义会使其下方的整个缓存失效,因为失效处理会按 tools、system、messages 的顺序向下执行。
前缀必须足够长。 Opus 5 的最小可缓存长度为 512 个 token,Sonnet 5 为 1,024 个,Haiku 4.5 为 4,096 个。更短的提示词不会被缓存,也不会返回错误。上例中的 4,000 个 token 前缀可以在 Sonnet 5 上缓存,但无法在 Haiku 4.5 上缓存,因为 4,000 低于该模型的最低长度。两个计数器都为 0 时,表示没有内容被缓存。
批处理可将费率降低一半
Batch API 以异步方式处理请求,输入和输出均可享受 50 percent 的折扣。在上面的示例中,每 1,000 个请求的费用会从 $12.60 降至 $6.30。该折扣可与提示缓存叠加,因此,使用缓存的批处理作业是执行批量任务成本最低的方式。
代价是延迟增加,因此批处理不适合需要用户等待结果的任务。它适合夜间分类和批量补录文档。
为什么一次对话中的聊天成本会增长
由于 API 不保留状态,客户端会在每一轮重新发送完整的对话内容。因此,单次聊天中的 token 用量会随对话长度的平方增长,而不是线性增长。
假设每轮平均包含 500 个 token。第 1 轮发送 500 个输入 token。第 2 轮发送 1,000 个。第 20 轮发送 10,000 个。使用 n(n+1)/2 求和后,包含 20 轮的对话总共发送了约 105,000 个输入 token,而对话记录本身只有 10,000 个 token。
因此,聊天功能的成本会高于对话记录显示的成本。在较长的对话线程中,缓存稳定的前缀或总结较早的轮次通常可以抵消额外成本。循环执行工具调用的 agent 也具有相同的增长模式,而且情况更严重:每个工具结果都会保留在历史记录中,并在后续每一轮重新发送。为自行运行的 agent 设置严格的支出上限 在这里尤其重要,因为这种增长会自动发生,而且没有人监控。
在猜测前先计算 token 数量
不要再根据单词数推算 token 数量。API 会为您直接计算,且不收费;此计算使用独立于消息创建的速率限制。
curl https://api.anthropic.com/v1/messages/count_tokens \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5",
"system": "You are a scientist",
"messages": [{
"role": "user",
"content": "Hello, Claude"
}]
}'响应包含一个字段:
{ "input_tokens": 14 }将实际的系统提示词和工具定义,以及一条具有代表性的用户消息传入该接口,然后将返回的数字代入上面的成本函数。该端点使用与消息请求相同的请求体,因此图像和 PDF 也会被正确计数。需要注意两点。该数量是估算值,可能与计费数量略有差异。它还使用您传入的模型对应的 tokenizer 进行计算,因此应传入实际运行的模型。
无法预先计算输出 token,因为它们尚不存在。使用 max_tokens 限制输出数量,然后在生产流量中通过 usage.output_tokens 测量实际分布。
账单中还会计入哪些费用
Token 通常占据账单的大部分。有几项费用不是 Token,容易被忽略。
- 工具定义会在每次请求中计入输入 Token。仅工具调用系统提示词一项,在 Opus 5 上就会增加 286 到 406 个 Token,之后还要加上您自己的架构定义。10 个冗长的工具描述可能使较短提示词的长度翻倍。
- Web search 按每 1,000 次搜索收费 $10。此外,搜索结果进入上下文后所消耗的 Token 也会计费。
- Web fetch 本身不收取额外费用,但获取的页面会转换为输入 Token。一页 100 kB 的文档大约包含 25,000 个 Token。
- 在 Claude 4.6 及更高版本中,使用
inference_geo请求仅在美国区域进行推理,会对每一类 Token 应用 1.1 倍乘数,包括缓存读取和缓存写入。
是否应该购买 API,取决于您的使用量。在低于某个使用量时,固定月度套餐更划算;API 与 Claude 订阅的对比会使用实际数字进行比较。
FAQ
Claude 中 1M tokens 的费用是多少?
这取决于模型,以及 tokens 是输入还是输出。以 2026 年 8 月为例,Claude Haiku 4.5 的 1M 输入 tokens 费用为 $1,Claude Sonnet 5 在介绍期定价下为 $2,Claude Opus 5 为 $5。这些模型的输出费用均为输入费率的 5 倍。Sonnet 5 将于 2026 年 9 月 1 日调整为输入 $3、输出 $15。费率会变化,因此在将具体数额纳入预算前,请先在官方定价页面确认。
1M tokens 等于 1M words 吗?
不等于。一个 token 大约对应 4 个英文字符,或约 0.75 个 words,因此 1M tokens 约等于 750,000 个 words。这个比例只能作为参考。代码、JSON 以及英语以外的语言,每个 word 使用的 tokens 更多。Claude Opus 4.7 及更高版本还使用了新的 tokenizer。对于相同文本,其生成的 tokens 比 Claude Sonnet 4.6 及更早版本大约多 30 percent,因此不同模型代际之间的计数不可直接比较。请使用免费的 /v1/messages/count_tokens endpoint 进行测量,并传入您计划运行的模型。
prompt caching 是否总能节省费用?
不能。5 minute 的缓存写入费用是基础输入费率的 1.25 倍。因此,写入后从未读取的 prefix 比直接发送它多花费 25 percent。首次读取时即可抵消这笔费用。缓存会以两种方式失效,而且都不会显示错误。如果请求之间的 cached prefix 发生变化,查找就永远不会匹配,因为它要求完全匹配 prefix。如果 prefix 短于模型可缓存的最小长度,则不会缓存任何内容,也不会返回错误。Sonnet 5 的最小长度为 1,024 tokens,Haiku 4.5 为 4,096 tokens。当 cache_creation_input_tokens 和 cache_read_input_tokens 都读取为 0 时,缓存没有发挥作用。
为什么账单增长速度比消息数量更快?
因为每一轮都会重新发送完整对话。Messages API 不保存状态,因此聊天进行到第 20 轮时,输入中会再次包含前 19 轮。假设每轮平均 500 tokens,20 轮对话会发送约 105,000 个输入 tokens,而 transcript 只有 10,000 个 tokens。Agent 循环的行为相同,因为每个 tool result 都会保留在历史记录中。请缓存稳定的 prefix,或总结较早的轮次,并将其从请求中删除。