A contagem de tokens permite que você determine o número de tokens em uma mensagem antes de enviá-la ao Claude. Isso ajuda você a tomar decisões informadas sobre seus prompts e uso. Com a contagem de tokens, você pode:
Este recurso é elegível para Zero Data Retention (ZDR). Quando sua organização possui um acordo de ZDR, os dados enviados por meio deste recurso não são armazenados após a resposta da API ser retornada.
O endpoint de contagem de tokens aceita a mesma lista estruturada de entradas usada para criar uma mensagem, incluindo suporte para prompts do sistema, ferramentas, imagens e PDFs. A resposta contém o número total de tokens de entrada.
A contagem de tokens deve ser considerada uma estimativa. Em alguns casos, o número real de tokens de entrada usados ao criar uma mensagem pode diferir por uma pequena quantidade.
As contagens de tokens podem incluir tokens adicionados automaticamente pela Anthropic para otimizações do sistema. Você não é cobrado por tokens adicionados pelo sistema. A cobrança reflete apenas o seu conteúdo.
Todos os modelos ativos oferecem suporte à contagem de tokens, incluindo o Claude Sonnet 5.
O Claude Opus 4.7 e modelos Opus posteriores, o Claude Fable 5, o Claude Mythos 5, o Claude Mythos Preview e o Claude Sonnet 5 usam um tokenizador mais recente. O mesmo texto de entrada produz aproximadamente 30% mais tokens do que em modelos anteriores. Reconte os prompts usando o modelo que você planeja usar, em vez de reutilizar contagens medidas em modelos anteriores.
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()){ "input_tokens": 14 }As contagens de tokens de ferramentas de servidor aplicam-se apenas à primeira chamada de amostragem.
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()){ "input_tokens": 403 }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()){ "input_tokens": 1551 }Consulte como a janela de contexto é calculada com pensamento estendido para mais detalhes
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()){ "input_tokens": 88 }A contagem de tokens oferece suporte a PDFs com as mesmas limitações da Messages API.
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-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()){ "input_tokens": 2188 }O Claude Fable 5 e o Claude Mythos 5 usam o tokenizador introduzido com o Claude Opus 4.7, que produz aproximadamente 30% mais tokens do que modelos anteriores ao Claude Opus 4.7 para o mesmo texto. O endpoint de contagem de tokens retorna a contagem com base no tokenizador do model que você passa, então, para medir a diferença para sua carga de trabalho, conte a mesma requisição duas vezes: uma vez com seu modelo atual e uma vez com model: "claude-fable-5" (ou "claude-mythos-5"), e compare os dois valores de input_tokens.
Cobrança e migração: O uso e a cobrança no Claude Fable 5 e no Claude Mythos 5 refletem as contagens deste tokenizador. Se você estiver migrando de um modelo anterior ao Claude Opus 4.7, o mesmo conteúdo consome aproximadamente 30% mais tokens. Ao migrar uma carga de trabalho para o Claude Fable 5 e o Claude Mythos 5, não reutilize contagens de tokens medidas em um modelo anterior ao Claude Opus 4.7 para estimar custos ou adequação à janela de contexto. Conte seus prompts com model: "claude-fable-5" (ou "claude-mythos-5").
A contagem de tokens é gratuita, mas está sujeita a limites de taxa de requisições por minuto com base no seu nível de uso. Se você precisar de limites mais altos, use Request rate limit increase na página Limits.
| Nível de uso | Requisições por minuto (RPM) |
|---|---|
| Start | 2.000 |
| Build | 4.000 |
| Scale | 8.000 |
A contagem de tokens e a criação de mensagens têm limites de taxa separados e independentes. O uso de um não conta para os limites do outro.
Leia a referência completa da API para o endpoint de contagem de tokens.
Use contagens de tokens para manter prompts dentro da janela de contexto de um modelo.
Verifique as contagens de tokens antes de enviar uma requisição para permanecer dentro do seu nível de uso.
Reduza custo e latência em prompts repetidos armazenando prefixos de prompt em cache.
Was this page helpful?