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())
JSON
{ "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())
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"}
        ]}
    ]
}'
JSON
{ "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?"
        }
      ]
    }'
JSON
{ "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."
          }
        ]
      }]
    }'
JSON
{ "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’utilisationRequêtes par minute (RPM)
1100
22,000
34,000
48,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.

FAQ

Non, le comptage de tokens fournit une estimation sans utiliser la logique de mise en cache. Bien que vous puissiez fournir des blocs cache_control dans votre requête de comptage de tokens, la mise en cache de prompts ne se produit que lors de la création réelle de messages.