Claude的1M tokens多少钱?输入输出费用怎么算
Claude 按每百万 token 计费,输入和输出分别定价,输出费率通常是输入的5倍。本文用具体算式估算不同模型及每月账单,并说明新版 tokenizer 可能多计约30%。
Claude 中 1M tokens 是多少?
1M tokens 表示一百万个 token,是 Claude API(应用程序编程接口)模型报价所使用的单位。它没有统一价格,因为输入和输出按不同费率计费,而且每个模型都有自己的一组费率。Claude Haiku 5.5 有两组费率:提示词不超过 100,000 tokens 时使用一组,超过该数量时使用更高的一组。截至 October 2026,一百万个输入 tokens 在 Claude Haiku 4.5 上的费用为 $1,在 Claude Sonnet 5 上为 $2,在 Claude Opus 5 上为 $5。
输出是费用较高的一部分。在所有当前模型中,输出费率都是输入费率的 5 倍,因此输入和输出的比例比标称单价更能决定账单金额。发送长文档并返回简短答案的应用,与根据简短提示词生成长答案的应用,费用表现会完全不同。
本页介绍单位成本:每个 token 的费用,以及如何在构建应用前估算账单。如果您想了解工作过程中 token 的实际消耗位置,请阅读 Claude Code 会话中的 token 消耗位置。
1M tokens 的规模
token 是模型读取或生成的一段文本。Anthropic 的术语表指出,在 Claude 4.7 之前的模型中,1 个 token 约对应 3.5 个英文字符。Anthropic 的模型概览显示,这些模型的 1M tokens 约可容纳 750,000 个单词;按每个 token 3.5 个字符计算,约为 3.5 million 个字符,即约 3.5 MB 的纯英文文本。在 Claude Opus 4.7 引入的新 tokenizer 中,同样的 1M tokens 约可容纳 555,000 个单词,即约 2.5 million 个字符。
常见输入的公开估算值能更直观地说明这个规模。
此图表背后的数据
[
{
"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"
}
]按这些比例计算,1M tokens 约等于阅读 400 个普通网页一次,或 8 篇同等规模的研究论文。它可以完整处理一个中等规模的代码库,或满足 1 个人 1 个月的轻度聊天使用量。
以上都只是估算值。代码、JSON 以及英文以外语言的文本,每个 token 包含的单词更少,因此上述单词数属于乐观估计。还有一点会影响计数:Claude Opus 4.7 及更高版本,包括 Opus 5 和 Sonnet 5,使用的新 tokenizer 对相同文本生成的 token 数量比 Sonnet 4.6 及更早版本约多 30%。Claude Haiku 4.5 使用旧 tokenizer。因此,使用 Haiku 4.5 测得的计数会低估相同输入在 Sonnet 5 上的计数,这意味着跨越这一边界直接比较每 million tokens 的价格并不公平。在作出决定前,应使用相同的 prompt 分别对两个模型进行计数。
Claude 每百万 token 的收费标准
此图表背后的数据
[
{
"label": "Haiku 4.5",
"input_usd": 1,
"output_usd": 5
},
{
"label": "Sonnet 5",
"input_usd": 2,
"output_usd": 10
},
{
"label": "Sonnet 4.6",
"input_usd": 3,
"output_usd": 15
},
{
"label": "Opus 5",
"input_usd": 5,
"output_usd": 25
}
]Claude Sonnet 5 的输入价格为 $2,输出价格为 $10。Anthropic 最初将这一价格作为介绍性价格提供至 31 August 2026,随后将其确定为标准价格,并取消了上调至 $3 和 $15 的计划。Claude Opus 5 的输入和输出价格分别为 $5 和 $25。Fable 系列模型的价格则完全高于这一档:Claude Fable 5 和更新的 Claude Fable 5.1 的输入价格均为 $10,输出价格均为 $50,因此这些价格是否值得支付取决于您实际将它用于哪些任务。
Anthropic 当前的模型阵容比本页计算价格时所用的模型更新。Claude Opus 5.5 的输入价格为 $4,输出价格为 $20;Claude Sonnet 5.5 的价格为 $2 和 $10;Claude Haiku 5.5 的价格从 $0.10 和 $0.50 起。Opus 5、Sonnet 5、Haiku 4.5 和 Fable 5 目前列为仍可使用的旧版模型,因此下面的计算示例仍可按原样运行。Haiku 5.5 的价格及其适用场景介绍了新模型中价格最低的一款。
价格会变化。本页所有数字都应视为截至 October 2026 的计算示例。在批准预算前,请在官方定价页面确认当前价格。
这些价格说明了 Claude 的费用,但不能说明它是否适合您的工作负载,成本更低;Claude 和 ChatGPT 的三个成本示例展示了两种 API 分别在哪些情况下更具成本优势。
上下文长度不会改变价格,但有一个例外。对于 Claude 4.6 及更高版本的模型(Claude Haiku 5.5 除外),完整的 1M token 上下文窗口按标准价格计费。因此,包含 900,000 个 token 的请求与包含 9,000 个 token 的请求,每个 token 的价格相同。长提示词的费用更高,是因为它包含更多 token;不会另外适用长上下文价格。Claude Haiku 5.5 则按提示词长度定价:如果请求的提示词超过 100,000 个 token,输入价格为每百万 token $0.50,输出价格为 $2.50,而不是 $0.10 和 $0.50;缓存读取和缓存写入也计入这一阈值。
价格变更后仍然有效的计算方式
每笔账单都包含两次乘法和一次加法。
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, October 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 个输入 token,并获得 400 个输出 token,在 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 小时。
此图表背后的数据
[
{
"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 会保存已处理的前缀,并按较低费率收取重复使用该前缀的费用。
在本页面价格图表和计算示例所列的模型中(Haiku 4.5、Sonnet 5、Sonnet 4.6 和 Opus 5),以及 Fable 5 中,缓存读取费用是基础输入费率的 0.1 倍。部分较新的模型对读取缓存收取更低费用:Opus 5.5 和 Sonnet 5.5 收取 0.05 倍,Fable 5.1 和 Mythos 5.1 收取 0.025 倍。写入缓存的费用为 5 minute 生命周期基础费率的 1.25 倍,或 1 hour 生命周期基础费率的 2 倍。因此,在读取费率为 0.1 倍的模型中,5 minute 缓存在读取 1 次后即可回本,因为写入额外增加 0.25 倍费用,而每次读取可节省 0.9 倍费用。1 hour 缓存需要读取 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,成本估算会严重偏差。
缓存无法带来收益的原因有 2 个,而且这两种情况都不会返回错误。
前缀必须逐字节完全一致。 缓存查找使用前缀匹配,因此如果在 system prompt 顶部加入时间戳或用户名,每次请求都会改变前缀。这样每次都会按基础输入费率的 1.25 倍计费,并且一次缓存读取也不会发生。表现为 cache_creation_input_tokens 持续较高,而 cache_read_input_tokens 持续为 0。将 cache_control 放在请求之间内容保持不变的最后一个块上,并将所有会变化的内容放在它之后。修改 tools 定义会使其下方的整个缓存失效,因为失效操作会按照 tools、system、messages 的顺序向下执行。
前缀必须足够长。 Opus 5 的最小可缓存长度为 512 tokens,Sonnet 5 为 1,024,Haiku 4.5 为 4,096。更短的 prompt 不会被缓存,也不会返回错误。上例中的 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。
因此,聊天功能的成本会高于会话记录所显示的成本。在较长的会话中,缓存稳定的前缀或总结较早的轮次通常可以抵消自身的成本。循环调用工具的代理也具有相同的增长趋势,而且情况更严重:每个工具结果都会保留在历史记录中,并在之后的每一轮重新发送。在这里,为自行运行的代理设置严格的支出上限尤为重要,因为这种增长会自动发生,而且没有人监控。
先计算 token 数量,再进行估算
不要再根据单词数推导 token 数量。API 会为您计算 token 数量,而且不收费;此调用使用的限流额度与消息创建分开。
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 }将实际的系统提示词和工具定义,以及一条具有代表性的用户消息提交给该接口,然后将返回的数量代入上面的成本函数。该端点接受与消息请求相同的请求体,因此以 base64 发送的图像和 PDF 也会被正确计数。它不接受 web search 和 web fetch 等服务器工具,也不接受通过 URL 或文件引用传递的图像或文档。需要注意两点。该数量是估算值,可能与计费数量略有差异。它还使用您传入的模型对应的 tokenizer 进行计算,因此应传入实际运行的模型。
无法提前计算输出 token,因为它们尚不存在。使用 max_tokens 限制输出数量,然后在实际流量上通过 usage.output_tokens 测量真实分布。
账单中还有哪些费用
大部分费用来自 tokens。有几项费用不是 tokens,常常会让人意外。
- 每次请求都会将工具定义计为输入 tokens。仅 Opus 5 的工具使用系统提示词就会增加 286 到 406 个 tokens,且还未计入您自己的 schema。10 个冗长的工具描述可能让一个较短的提示词长度翻倍。
- Web search 的费用为每 1,000 次搜索 $10;此外,搜索结果进入上下文后所消耗的 tokens 也会计费。
- Web fetch 本身不收取额外费用,但获取的页面会转换为输入 tokens。一个 100 kB 的文档页面大约包含 25,000 个 tokens。
- 在 Claude 4.6 及更高版本中,使用
inference_geo请求仅在美国进行推理,会将每类 token 的费用乘以 1.1,缓存读取和写入也包括在内。
API 是否值得购买,取决于您的用量。通常是在套餐达到用量上限后,才会开始考虑这个问题;突破用量限制的方法包括等待窗口重置,或将这部分工作转移到按量计费的 API 调用。低于某个用量水平时,固定月费套餐明显更划算;将 API 与 Claude 订阅进行比较可以用实际数字完成这项比较。
FAQ
Claude 中 1M tokens 的费用是多少?
这取决于模型,以及这些 tokens 是输入还是输出。截至 October 2026,一百万个输入 tokens 在 Claude Haiku 4.5 上的费用为 $1,在 Claude Sonnet 5 上为 $2,在 Claude Opus 5 上为 $5。较新的 Claude Haiku 5.5 对不超过 100,000 tokens 的提示词按每百万个输入 tokens $0.10 起步,超过该数量后按 $0.50 计费。这些模型的输出费率都是输入费率的 5 倍。费率会发生变化,因此在将具体金额纳入预算前,请先在官方定价页面确认。
1M tokens 等于 1M 个单词吗?
不等于。在 Claude Opus 4.7 之前的模型中,Anthropic 认为 1 个 token 大约对应 3.5 个英文字符,并表示一百万个 tokens 约包含 750,000 个单词。在 Claude Opus 4.7 及更高版本使用的新 tokenizer 中,一百万个 tokens 约包含 555,000 个单词,因为对于完全相同的文本,该 tokenizer 生成的 tokens 比 Claude Sonnet 4.6 及更早版本约多 30%。这些比例只能作为参考。代码、JSON 和英语以外的语言每个单词使用的 tokens 更多,而且不同模型代际之间的数量不可直接换算。请使用免费的 /v1/messages/count_tokens endpoint,并传入计划运行的模型进行测量。
提示词缓存总能省钱吗?
不能。5 分钟缓存写入的费用为基础输入费率的 1.25 倍,因此写入后从未读取的前缀,比直接发送的费用高 25%。从第 1 次读取开始即可回本。缓存可能以两种方式失效,而且都不会返回错误。如果请求之间的缓存前缀发生变化,查找就不会匹配,因为它使用精确的前缀匹配。如果前缀短于模型的最小可缓存长度,Sonnet 5 为 1,024 tokens,Haiku 4.5 为 4,096,则不会缓存任何内容,也不会返回错误。当 cache_creation_input_tokens 和 cache_read_input_tokens 都为 0 时,表示缓存没有发挥作用。
为什么账单增长速度比消息数量更快?
因为每一轮都会重新发送完整会话。Messages API 不保存状态,因此聊天进行到第 20 轮时,输入中会再次包含前 19 轮内容。假设每轮平均 500 tokens,则一个 20 轮会话会发送约 105,000 个输入 tokens,而会话记录长度只有 10,000 tokens。Agent 循环的情况相同,因为每个工具结果都会保留在历史记录中。请缓存稳定的前缀,或概括较早的轮次并将其从请求中删除。