Подсчёт токенов позволяет определить количество токенов в сообщении до его отправки в Claude, помогая вам принимать обоснованные решения относительно ваших подсказок и использования. С помощью подсчёта токенов вы можете:
Эта функция соответствует требованиям Zero Data Retention (ZDR) (нулевого хранения данных). Если у вашей организации действует соглашение ZDR, данные, отправленные через эту функцию, не сохраняются после возврата ответа API.
Эндпоинт подсчёта токенов принимает тот же структурированный список входных данных, что и при создании сообщения, включая поддержку системных подсказок, инструментов, изображений и PDF-файлов. Ответ содержит общее количество входных токенов.
Количество токенов следует рассматривать как оценочное. В некоторых случаях фактическое количество входных токенов, используемых при создании сообщения, может незначительно отличаться.
Количество токенов может включать токены, автоматически добавленные Anthropic для системных оптимизаций. Плата за добавленные системой токены не взимается. Счёт отражает только ваш контент.
Все активные модели поддерживают подсчёт токенов.
{ "input_tokens": 14 }Количество токенов серверных инструментов применяется только к первому вызову сэмплирования.
{ "input_tokens": 403 }{ "input_tokens": 1551 }Подробнее см. в разделе как рассчитывается контекстное окно при расширенном мышлении
{ "input_tokens": 88 }Подсчёт токенов поддерживает PDF-файлы с теми же ограничениями, что и Messages API.
{ "input_tokens": 2188 }Claude Fable 5 и Claude Mythos 5 используют токенизатор, представленный в Claude Opus 4.7, который производит примерно на 30% больше токенов, чем модели до Claude Opus 4.7, для одного и того же текста. Эндпоинт подсчёта токенов возвращает количество согласно токенизатору той модели model, которую вы передаёте, поэтому, чтобы измерить разницу для вашей рабочей нагрузки, подсчитайте один и тот же запрос дважды: один раз с вашей текущей моделью и один раз с model: "claude-fable-5" (или "claude-mythos-5"), и сравните два значения input_tokens.
Тарификация и миграция: Использование и тарификация в Claude Fable 5 и Claude Mythos 5 отражают подсчёты этого токенизатора. Если вы мигрируете с модели, выпущенной до Claude Opus 4.7, тот же контент потребляет примерно на 30% больше токенов. При миграции рабочей нагрузки на Claude Fable 5 и Claude Mythos 5 не используйте повторно количество токенов, измеренное на модели до Claude Opus 4.7, для оценки затрат или соответствия контекстному окну. Подсчитайте ваши подсказки с model: "claude-fable-5" (или "claude-mythos-5").
Подсчёт токенов бесплатен, но подчиняется ограничениям скорости по количеству запросов в минуту в зависимости от вашего уровня использования. Если вам нужны более высокие лимиты, свяжитесь с отделом продаж через Claude Console.
| Уровень использования | Запросов в минуту (RPM) |
|---|---|
| 1 | 100 |
| 2 | 2 000 |
| 3 | 4 000 |
| 4 | 8 000 |
Подсчёт токенов и создание сообщений имеют отдельные и независимые ограничения скорости. Использование одного не учитывается в лимитах другого.
Was this page helpful?
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
system="You are a scientist",
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(response.json())client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
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())import base64
import httpx
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image_media_type = "image/jpeg"
image_data = base64.standard_b64encode(httpx.get(image_url).content).decode("utf-8")
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
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())client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-sonnet-4-6",
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. 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())import base64
import anthropic
client = anthropic.Anthropic()
with open("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-4-8",
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())