Le comptage de tokens vous permet de déterminer le nombre de tokens dans un message avant de l'envoyer à Claude. Cela vous aide à prendre des décisions éclairées concernant vos prompts et votre utilisation. Avec le comptage de tokens, vous pouvez :
Cette fonctionnalité est éligible à la Zero Data Retention (ZDR). Lorsque votre organisation dispose d'un accord ZDR, les données envoyées via cette fonctionnalité ne sont pas stockées après le retour de la réponse de l'API.
Le point de terminaison de comptage de tokens accepte la même liste structurée d'entrées que pour la création d'un message, y compris la prise en charge des invites système, des outils, des images et des PDF. 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 légèrement.
Le nombre de tokens peut inclure des tokens ajoutés automatiquement par Anthropic pour des optimisations système. Vous n'êtes pas facturé pour les tokens ajoutés par le système. La facturation reflète uniquement votre contenu.
Tous les modèles actifs prennent en charge le comptage de tokens.
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 }Les nombres de tokens des outils serveur s'appliquent uniquement au premier appel d'échantillonnage.
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 }Consultez comment la fenêtre de contexte est calculée avec la réflexion étendue pour plus de détails.
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 }Le comptage de tokens prend en charge les PDF avec les mêmes limitations que l'API Messages.
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()){ "input_tokens": 2188 }Claude Fable 5 et Claude Mythos 5 utilisent le tokenizer introduit avec Claude Opus 4.7, qui produit environ 30 % de tokens de plus que les modèles antérieurs à Claude Opus 4.7 pour le même texte. Le point de terminaison de comptage de tokens renvoie le nombre selon le tokenizer du model que vous passez. Ainsi, pour mesurer la différence pour votre charge de travail, comptez la même requête deux fois : une fois avec votre modèle actuel et une fois avec model: "claude-fable-5" (ou "claude-mythos-5"), puis comparez les deux valeurs input_tokens.
Facturation et migration : L'utilisation et la facturation sur Claude Fable 5 et Claude Mythos 5 reflètent les comptages de ce tokenizer. Si vous migrez depuis un modèle antérieur à Claude Opus 4.7, le même contenu consomme environ 30 % de tokens de plus. Lors de la migration d'une charge de travail vers Claude Fable 5 et Claude Mythos 5, ne réutilisez pas les nombres de tokens mesurés sur un modèle antérieur à Claude Opus 4.7 pour estimer les coûts ou l'adéquation à la fenêtre de contexte. Comptez vos prompts avec model: "claude-fable-5" (ou "claude-mythos-5").
Le comptage de tokens est gratuit mais soumis à des limites de débit en requêtes par minute basées sur votre niveau d'utilisation. Si vous avez besoin de limites plus élevées, contactez l'équipe commerciale via la Claude Console.
| 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 débit distinctes et indépendantes. L'utilisation de l'un ne compte pas dans les limites de l'autre.
Consultez la référence complète de l'API pour le point de terminaison de comptage de tokens.
Utilisez les nombres de tokens pour maintenir les prompts dans la fenêtre de contexte d'un modèle.
Vérifiez les nombres de tokens avant d'envoyer une requête pour rester dans votre niveau d'utilisation.
Réduisez les coûts et la latence sur les prompts répétés en mettant en cache les préfixes de prompts.
Was this page helpful?