SSD Nodes Learn 8GB 内存 — 每年 $66
指南 Matt Connor作者: Matt Connor

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 的纯文本。

已发布的常见输入估算值更能直观体现这一规模。

ChartApproximate input token counts for common content, published estimates
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 的收费标准

ChartClaude API list price in USD per million tokens, August 2026
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 小时。

ChartEstimated cost per 1,000 requests at 4,300 input and 400 output tokens
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_tokenscache_read_input_tokens 都读取为 0 时,缓存没有发挥作用。

为什么账单增长速度比消息数量更快?

因为每一轮都会重新发送完整对话。Messages API 不保存状态,因此聊天进行到第 20 轮时,输入中会再次包含前 19 轮。假设每轮平均 500 tokens,20 轮对话会发送约 105,000 个输入 tokens,而 transcript 只有 10,000 个 tokens。Agent 循环的行为相同,因为每个 tool result 都会保留在历史记录中。请缓存稳定的 prefix,或总结较早的轮次,并将其从请求中删除。

#claude#tokens#api-pricing#cost-estimation#prompt-caching