Comptage de tokens
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
- Gérer proactivement les limites de taux et les coûts
- Prendre des décisions intelligentes de routage de modèle
- Optimiser les prompts pour qu'ils aient une longueur spécifique
Comment compter les tokens de message
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.
Modèles supportés
Tous les modèles actifs supportent le comptage de tokens.
Compter les tokens dans les messages de base
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())import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
const response = await client.messages.countTokens({
model: 'claude-sonnet-4-5',
system: 'You are a scientist',
messages: [{
role: 'user',
content: 'Hello, Claude'
}]
});
console.log(response);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",
"system": "You are a scientist",
"messages": [{
"role": "user",
"content": "Hello, Claude"
}]
}'import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.MessageCountTokensParams;
import com.anthropic.models.messages.MessageTokensCount;
import com.anthropic.models.messages.Model;
public class CountTokensExample {
public static void main(String[] args) {
AnthropicClient client = AnthropicOkHttpClient.fromEnv();
MessageCountTokensParams params = MessageCountTokensParams.builder()
.model(Model.CLAUDE_SONNET_4_20250514)
.system("You are a scientist")
.addUserMessage("Hello, Claude")
.build();
MessageTokensCount count = client.messages().countTokens(params);
System.out.println(count);
}
}{ "input_tokens": 14 }Compter les tokens dans les messages avec des outils
Les comptes de tokens d'outils serveur ne s'appliquent qu'au premier appel d'échantillonnage.
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()){ "input_tokens": 403 }Compter les tokens dans les messages avec des images
#!/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"}
]}
]
}'{ "input_tokens": 1551 }Compter les tokens dans les messages avec réflexion étendue
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
- Les blocs de réflexion des tours d'assistant précédents sont ignorés et ne comptent pas vers vos tokens d'entrée
- La réflexion du tour d'assistant actuel compte vers vos tokens d'entrée
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?"
}
]
}'{ "input_tokens": 88 }Compter les tokens dans les messages avec des PDFs
Le comptage de tokens supporte les PDFs avec les mêmes limitations que l'API Messages.
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."
}
]
}]
}'{ "input_tokens": 2188 }Tarification et limites de taux
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.