Le comptage de tokens vous permet de déterminer le nombre de tokens dans un message avant de l'envoyer à Claude, vous aidant à prendre des décisions éclairées sur vos prompts et votre utilisation. Avec le comptage de tokens, vous pouvez
Le point de terminaison comptage de tokens accepte la même liste structurée d'entrées pour créer un message, incluant le support pour les prompts système, les outils, les images, et les PDFs. La réponse contient le nombre total de tokens d'entrée.
Le nombre de tokens doit être considéré comme une estimation. Dans certains cas, le nombre réel de tokens d'entrée utilisés lors de la création d'un message peut différer d'une petite quantité.
Les comptes de tokens peuvent inclure des tokens ajoutés automatiquement par Anthropic pour les optimisations système. Vous n'êtes pas facturé pour les tokens ajoutés par le système. La facturation ne reflète que votre contenu.
Tous les modèles actifs supportent le comptage de tokens.
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()){ "input_tokens": 14 }Les comptes de tokens d'outils serveur ne s'appliquent qu'au premier appel d'échantillonnage.
{ "input_tokens": 403 }{ "input_tokens": 1551 }Voir ici pour plus de détails sur la façon dont la fenêtre de contexte est calculée avec la réflexion étendue
{ "input_tokens": 88 }Le comptage de tokens supporte les PDFs avec les mêmes limitations que l'API Messages.
{ "input_tokens": 2188 }Le comptage de tokens est gratuit à utiliser mais soumis aux limites de requêtes par minute basées sur votre niveau d'utilisation. Si vous avez besoin de limites plus élevées, contactez les ventes via la Console Claude.
| Niveau d'utilisation | Requêtes par minute (RPM) |
|---|---|
| 1 | 100 |
| 2 | 2,000 |
| 3 | 4,000 |
| 4 | 8,000 |
Le comptage de tokens et la création de messages ont des limites de taux séparées et indépendantes -- l'utilisation de l'un ne compte pas contre les limites de l'autre.
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())#!/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"}
]}
]
}'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?"
}
]
}'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."
}
]
}]
}'