El conteo de tokens te permite determinar el número de tokens en un mensaje antes de enviarlo a Claude, ayudándote a tomar decisiones informadas sobre tus prompts y uso. Con el conteo de tokens, puedes
  • Gestionar proactivamente los límites de velocidad y costos
  • Tomar decisiones inteligentes de enrutamiento de modelos
  • Optimizar prompts para que tengan una longitud específica

Cómo contar tokens de mensajes

El endpoint de conteo de tokens acepta la misma lista estructurada de entradas para crear un mensaje, incluyendo soporte para prompts del sistema, herramientas, imágenes, y PDFs. La respuesta contiene el número total de tokens de entrada.
El conteo de tokens debe considerarse una estimación. En algunos casos, el número real de tokens de entrada utilizados al crear un mensaje puede diferir por una pequeña cantidad.Los conteos de tokens pueden incluir tokens agregados automáticamente por Anthropic para optimizaciones del sistema. No se te facturan los tokens agregados por el sistema. La facturación refleja solo tu contenido.

Modelos soportados

El endpoint de conteo de tokens soporta los siguientes modelos:
  • Claude Opus 4.1
  • Claude Opus 4
  • Claude Sonnet 4.5
  • Claude Sonnet 4
  • Claude Sonnet 3.7
  • Claude Sonnet 3.5 (obsoleto)
  • Claude Haiku 3.5
  • Claude Haiku 3
  • Claude Opus 3 (obsoleto)

Contar tokens en mensajes básicos

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 }

Contar tokens en mensajes con herramientas

Los conteos de tokens de herramientas del servidor solo se aplican a la primera llamada de muestreo.
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 }

Contar tokens en mensajes con imágenes

#!/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 }

Contar tokens en mensajes con pensamiento extendido

Ve aquí para más detalles sobre cómo se calcula la ventana de contexto con el pensamiento extendido
  • Los bloques de pensamiento de turnos anteriores del asistente son ignorados y no cuentan hacia tus tokens de entrada
  • El pensamiento del turno actual del asistente cuenta hacia tus tokens de entrada
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 }

Contar tokens en mensajes con PDFs

El conteo de tokens soporta PDFs con las mismas limitaciones que la API de Mensajes.
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 }

Precios y límites de velocidad

El conteo de tokens es gratuito pero está sujeto a límites de solicitudes por minuto basados en tu nivel de uso. Si necesitas límites más altos, contacta a ventas a través de la Consola de Claude.
Nivel de usoSolicitudes por minuto (RPM)
1100
22,000
34,000
48,000
El conteo de tokens y la creación de mensajes tienen límites de velocidad separados e independientes — el uso de uno no cuenta contra los límites del otro.

FAQ

No, el conteo de tokens proporciona una estimación sin usar lógica de caché. Aunque puedes proporcionar bloques cache_control en tu solicitud de conteo de tokens, el caché de prompts solo ocurre durante la creación real del mensaje.