Claude Platform Docs
MessagesУправление контекстом

Подсчёт токенов

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

«Token counting» (подсчёт токенов) позволяет определить количество токенов в сообщении до его отправки в Claude. Это помогает вам принимать обоснованные решения о ваших подсказках и использовании. С помощью подсчёта токенов вы можете:

  • Проактивно управлять «rate limits» (ограничениями скорости) и затратами
  • Принимать разумные решения о маршрутизации между моделями
  • Оптимизировать подсказки под определённую длину

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

Конечная точка подсчёта токенов принимает тот же структурированный список входных данных, что и для создания сообщения, включая поддержку «system prompts» (системных подсказок), инструментов, изображений и PDF-файлов. Ответ содержит общее количество входных токенов.

Эта конечная точка возвращает invalid_request_error для нескольких типов входных данных, которые принимает Messages API: «server tools» (серверные инструменты), такие как веб-поиск, веб-загрузка, выполнение кода и поиск инструментов (все серверные инструменты, кроме «advisor tool» (инструмента-советника)), коннектор для «Model Context Protocol», или MCP, а также блоки image или document с источником url или file. Чтобы подсчитать токены изображений и PDF, отправляйте их в формате base64. Для запросов, использующих серверные инструменты или серверы MCP, ответ Messages API сообщает об использованных токенах в объекте usage.

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

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

Подсчёт токенов в простых сообщениях

client = anthropic.Anthropic()

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

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

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

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-5-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())
Output
{ "input_tokens": 403 }

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

import base64
import httpx2

image_url = "https://platform.claude.com/docs/images/vision-example.jpg"
image_media_type = "image/jpeg"
image_data = base64.standard_b64encode(httpx2.get(image_url).content).decode("utf-8")

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-5-5",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "image",
                    "source": {
                        "type": "base64",
                        "media_type": image_media_type,
                        "data": image_data,
                    },
                },
                {"type": "text", "text": "Describe this image"},
            ],
        }
    ],
)
print(response.json())
Output
{ "input_tokens": 1028 }

Встроенный блок изображения, в котором задано "oversized_image": "error", отклоняется на этапе подсчёта точно так же, как его отклонил бы Messages API.

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

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-5-5",
    thinking={"type": "adaptive"},
    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. Let's 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?"},
    ],
)

print(response.json())
Output
{ "input_tokens": 88 }

Подсчёт токенов в сообщениях с PDF-файлами

import base64
import anthropic

client = anthropic.Anthropic()

with open("/path/to/document.pdf", "rb") as pdf_file:
    pdf_base64 = base64.standard_b64encode(pdf_file.read()).decode("utf-8")

response = client.messages.count_tokens(
    model="claude-opus-5-5",
    messages=[
        {
            "role": "user",
            "content": [
                {
                    "type": "document",
                    "source": {
                        "type": "base64",
                        "media_type": "application/pdf",
                        "data": pdf_base64,
                    },
                },
                {"type": "text", "text": "Please summarize this document."},
            ],
        }
    ],
)

print(response.json())
Output
{ "input_tokens": 2188 }

Количество токенов на моделях Claude Fable и Claude Mythos

Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5 и Claude Mythos 5 используют общий токенизатор, представленный вместе с Claude Opus 4.7. Подсказка даёт одинаковое количество токенов на всех четырёх моделях и примерно на 30 процентов больше, чем на моделях до Claude Opus 4.7 (точное увеличение зависит от содержимого). Конечная точка подсчёта токенов выполняет подсчёт с помощью токенизатора той модели, которую вы передаёте в параметре model. Чтобы измерить разницу для вашей рабочей нагрузки, подсчитайте один и тот же запрос дважды — один раз с вашей текущей моделью и один раз с моделью, на которую вы планируете перейти, — и сравните два значения input_tokens.


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

Подсчёт токенов бесплатен, но на него распространяются ограничения скорости по количеству запросов в минуту в зависимости от вашего уровня использования. Если вам нужны более высокие лимиты, воспользуйтесь функцией Request rate limit increase на странице Rate limits.

Уровень использованияЗапросов в минуту (RPM)
Start5 000
Build10 000
Scale20 000

Часто задаваемые вопросы


Следующие шаги

Прочитайте полный справочник API для конечной точки подсчёта токенов.

Используйте количество токенов, чтобы удерживать подсказки в пределах контекстного окна модели.

Проверяйте количество токенов перед отправкой запроса, чтобы оставаться в пределах вашего уровня использования.

Снижайте затраты и задержку при повторяющихся подсказках за счёт кэширования префиксов подсказок.

Compatibility

Supported platforms
  • Claude API
  • Claude Platform on AWS
  • Amazon Bedrock
  • Google Cloud
  • Microsoft Foundry

Was this page helpful?