Подсчет токенов позволяет вам определить количество токенов в сообщении перед отправкой его в Claude, помогая принимать обоснованные решения о ваших промптах и использовании. С помощью подсчета токенов вы можете:
  • Проактивно управлять ограничениями скорости и затратами
  • Принимать умные решения о маршрутизации моделей
  • Оптимизировать промпты до определенной длины

Как подсчитать токены сообщения

Эндпоинт подсчета токенов принимает тот же структурированный список входных данных для создания сообщения, включая поддержку системных промптов, инструментов, изображений и PDF. Ответ содержит общее количество входных токенов.
Количество токенов следует считать оценкой. В некоторых случаях фактическое количество входных токенов, используемых при создании сообщения, может отличаться на небольшое количество.Количество токенов может включать токены, добавленные автоматически Anthropic для системных оптимизаций. Вы не платите за системные токены. Биллинг отражает только ваш контент.

Поддерживаемые модели

Все активные модели поддерживают подсчет токенов.

Подсчет токенов в базовых сообщениях

import anthropic

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-sonnet-4-5",
    system="You are a scientist",
    messages=[{
        "role": "user",
        "content": "Hello, Claude"
    }],
)

print(response.json())
JSON
{ "input_tokens": 14 }

Подсчет токенов в сообщениях с инструментами

Количество токенов серверных инструментов применяется только к первому вызову выборки.
import anthropic

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-sonnet-4-5",
    tools=[
        {
            "name": "get_weather",
            "description": "Get the current weather in a given location",
            "input_schema": {
                "type": "object",
                "properties": {
                    "location": {
                        "type": "string",
                        "description": "The city and state, e.g. San Francisco, CA",
                    }
                },
                "required": ["location"],
            },
        }
    ],
    messages=[{"role": "user", "content": "What's the weather like in San Francisco?"}]
)

print(response.json())
JSON
{ "input_tokens": 403 }

Подсчет токенов в сообщениях с изображениями

#!/bin/sh

IMAGE_URL="https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
IMAGE_MEDIA_TYPE="image/jpeg"
IMAGE_BASE64=$(curl "$IMAGE_URL" | base64)

curl https://api.anthropic.com/v1/messages/count_tokens \
     --header "x-api-key: $ANTHROPIC_API_KEY" \
     --header "anthropic-version: 2023-06-01" \
     --header "content-type: application/json" \
     --data \
'{
    "model": "claude-sonnet-4-5",
    "messages": [
        {"role": "user", "content": [
            {"type": "image", "source": {
                "type": "base64",
                "media_type": "'$IMAGE_MEDIA_TYPE'",
                "data": "'$IMAGE_BASE64'"
            }},
            {"type": "text", "text": "Describe this image"}
        ]}
    ]
}'
JSON
{ "input_tokens": 1551 }

Подсчет токенов в сообщениях с расширенным мышлением

См. здесь для получения более подробной информации о том, как рассчитывается контекстное окно с расширенным мышлением
  • Блоки мышления из предыдущих ходов ассистента игнорируются и не засчитываются в ваши входные токены
  • Мышление текущего хода ассистента засчитывается в ваши входные токены
curl https://api.anthropic.com/v1/messages/count_tokens \
    --header "x-api-key: $ANTHROPIC_API_KEY" \
    --header "content-type: application/json" \
    --header "anthropic-version: 2023-06-01" \
    --data '{
      "model": "claude-sonnet-4-5",
      "thinking": {
        "type": "enabled",
        "budget_tokens": 16000
      },
      "messages": [
        {
          "role": "user",
          "content": "Are there an infinite number of prime numbers such that n mod 4 == 3?"
        },
        {
          "role": "assistant",
          "content": [
            {
              "type": "thinking",
              "thinking": "This is a nice number theory question. Lets think about it step by step...",
              "signature": "EuYBCkQYAiJAgCs1le6/Pol5Z4/JMomVOouGrWdhYNsH3ukzUECbB6iWrSQtsQuRHJID6lWV..."
            },
            {
              "type": "text",
              "text": "Yes, there are infinitely many prime numbers p such that p mod 4 = 3..."
            }
          ]
        },
        {
          "role": "user",
          "content": "Can you write a formal proof?"
        }
      ]
    }'
JSON
{ "input_tokens": 88 }

Подсчет токенов в сообщениях с PDF

Подсчет токенов поддерживает PDF с теми же ограничениями, что и Messages API.
curl https://api.anthropic.com/v1/messages/count_tokens \
    --header "x-api-key: $ANTHROPIC_API_KEY" \
    --header "content-type: application/json" \
    --header "anthropic-version: 2023-06-01" \
    --data '{
      "model": "claude-sonnet-4-5",
      "messages": [{
        "role": "user",
        "content": [
          {
            "type": "document",
            "source": {
              "type": "base64",
              "media_type": "application/pdf",
              "data": "'$(base64 -i document.pdf)'"
            }
          },
          {
            "type": "text",
            "text": "Please summarize this document."
          }
        ]
      }]
    }'
JSON
{ "input_tokens": 2188 }

Цены и ограничения скорости

Подсчет токенов бесплатен для использования, но подлежит ограничениям запросов в минуту на основе вашего уровня использования. Если вам нужны более высокие лимиты, обратитесь в отдел продаж через Claude Console.
Уровень использованияЗапросов в минуту (RPM)
1100
22,000
34,000
48,000
Подсчет токенов и создание сообщений имеют отдельные и независимые ограничения скорости — использование одного не засчитывается в лимиты другого.

FAQ

Нет, подсчет токенов предоставляет оценку без использования логики кэширования. Хотя вы можете предоставить блоки cache_control в вашем запросе подсчета токенов, кэширование промптов происходит только во время фактического создания сообщения.