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 concernant vos prompts et votre utilisation. Avec le comptage de tokens, vous pouvez :

  • Gérer de manière proactive les limites de taux et les coûts
  • Prendre des décisions intelligentes sur le routage des modèles
  • Optimiser les prompts pour une longueur spécifique

Comment compter les tokens des messages

Le point de terminaison 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 prompts 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.

Modèles pris en charge

Le point de terminaison de comptage de tokens prend en charge les modèles suivants :

  • Claude Opus 4
  • Claude Sonnet 4
  • Claude Sonnet 3.7
  • Claude Sonnet 3.5
  • Claude Haiku 3.5
  • Claude Haiku 3
  • Claude Opus 3

Compter les tokens dans les messages de base

import anthropic

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-4-20250514",
    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 comptages de tokens pour les outils serveur ne s’appliquent qu’au premier appel d’échantillonnage.

import anthropic

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-4-20250514",
    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-opus-4-20250514",
    "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 dans vos tokens d’entrée
  • La réflexion du tour d’assistant actuel compte dans 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-opus-4-20250514",
      "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 PDF

Le comptage de tokens prend en charge les PDF 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-opus-4-20250514",
      "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 à des limites de requêtes par minute basées sur votre niveau d’utilisation. Si vous avez besoin de limites plus élevées, contactez le service commercial via la Console Anthropic.

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 dans les limites de l’autre.


FAQ