Claude Platform Docs
MessagesGestion du contexte

Comptage des tokens

Comptez les tokens d'un message avant de l'envoyer à Claude. Utilisez les comptages de tokens pour gérer les limites de débit et les coûts, prendre des décisions de routage de modèles et ajuster les prompts à une longueur cible.

Le « token counting » (comptage des tokens) vous permet de déterminer le nombre de tokens d'un message avant de l'envoyer à Claude. Cela vous aide à prendre des décisions éclairées concernant vos prompts et votre utilisation. Grâce au comptage des tokens, vous pouvez :

  • Gérer de manière proactive les « rate limits » (limites de débit) et les coûts
  • Prendre des décisions intelligentes de routage de modèles
  • Optimiser les prompts pour une longueur spécifique

Comment compter les tokens d'un message

Le point de terminaison de comptage des 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 « system prompts » (invites système), des outils, des images et des PDF. La réponse contient le nombre total de tokens d'entrée.

Modèles pris en charge

Tous les modèles actifs prennent en charge le comptage des tokens.

Compter les tokens dans des messages simples

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-5",
    system="You are a scientist",
    messages=[{"role": "user", "content": "Hello, Claude"}],
)

print(response.json())
Output
{ "input_tokens": 14 }

Compter les tokens dans des messages avec outils

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-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())
Output
{ "input_tokens": 403 }

Compter les tokens dans des messages avec images

import base64
import httpx2

image_url = "https://platform.claude.com/docs/images/vision-example.jpg"
image_media_type = "image/jpeg"
image_data = base64.standard_b64encode(httpx2.get(image_url).content).decode("utf-8")

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-5",
    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())
Output
{ "input_tokens": 1028 }

Un bloc d'image intégré qui définit "oversized_image": "error" est rejeté au moment du comptage exactement comme l'API Messages le rejetterait.

Compter les tokens dans des messages avec réflexion

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())
Output
{ "input_tokens": 88 }

Compter les tokens dans des messages avec PDF

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-5",
    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())
Output
{ "input_tokens": 2188 }

Comptages de tokens sur les modèles Claude Fable et Claude Mythos

Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5 et Claude Mythos 5 partagent le tokenizer introduit avec Claude Opus 4.7. Un prompt produit le même comptage sur les quatre, et environ 30 pour cent de plus que sur les modèles antérieurs à Claude Opus 4.7 (l'augmentation exacte dépend du contenu). Le point de terminaison de comptage des tokens compte selon le tokenizer du model que vous transmettez. 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 le modèle vers lequel vous prévoyez de migrer, puis comparez les deux valeurs input_tokens.


Tarification et limites de débit

Le comptage des 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, utilisez Request rate limit increase sur la page Limites de débit.

Niveau d'utilisationRequêtes par minute (RPM)
Start5 000
Build10 000
Scale20 000

FAQ


Étapes suivantes

Consultez la référence API complète du point de terminaison de comptage des tokens.

Utilisez les comptages de tokens pour maintenir vos prompts dans la fenêtre de contexte d'un modèle.

Vérifiez les comptages de tokens avant d'envoyer une requête afin de 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.

Compatibility

Supported platforms
  • Claude API
  • Claude Platform on AWS
  • Amazon Bedrock
  • Google Cloud
  • Microsoft Foundry

Was this page helpful?