Claude Platform Docs
MessagesKontextverwaltung

Token-Zählung

Zähle die Token in einer Nachricht, bevor du sie an Claude sendest. Nutze Token-Zählungen, um Ratenlimits und Kosten zu verwalten, Entscheidungen zum Modell-Routing zu treffen und Prompts auf eine Ziellänge anzupassen.

Mit „token counting“ (Token-Zählung) kannst du die Anzahl der Token in einer Nachricht ermitteln, bevor du sie an Claude sendest. Das hilft dir, fundierte Entscheidungen über deine Prompts und deine Nutzung zu treffen. Mit der Token-Zählung kannst du:

  • Ratenlimits und Kosten proaktiv verwalten
  • Intelligente Entscheidungen zum Modell-Routing treffen
  • Prompts auf eine bestimmte Länge optimieren

So zählst du Nachrichten-Token

Der Endpunkt für die Token-Zählung akzeptiert dieselbe strukturierte Liste von Eingaben wie beim Erstellen einer Nachricht, einschließlich Unterstützung für System-Prompts, Tools, Bilder und PDFs. Die Antwort enthält die Gesamtzahl der Eingabe-Token.

Dieser Endpunkt gibt für einige Eingaben, die die Messages API akzeptiert, einen invalid_request_error zurück: Server-Tools wie Websuche, Web-Abruf, Codeausführung und Tool-Suche (jedes Server-Tool außer dem Advisor-Tool), den MCP-Connector sowie image- oder document-Blöcke mit einer url- oder file-Quelle. Sende Bilder und PDFs als base64, um sie zu zählen. Bei Anfragen, die Server-Tools oder MCP-Server verwenden, meldet die Antwort der Messages API die verwendeten Token in ihrem usage-Objekt.

Unterstützte Modelle

Alle aktiven Modelle unterstützen die Token-Zählung.

Token in einfachen Nachrichten zählen

client = anthropic.Anthropic()

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

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

Token in Nachrichten mit Tools zählen

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-5-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 }

Token in Nachrichten mit Bildern zählen

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-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 }

Ein eingebetteter Bildblock, der "oversized_image": "error" setzt, wird beim Zählen genau so abgelehnt, wie ihn die Messages API ablehnen würde.

Token in Nachrichten mit Thinking zählen

client = anthropic.Anthropic()

response = client.messages.count_tokens(
    model="claude-opus-5-5",
    thinking={"type": "adaptive"},
    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 }

Token in Nachrichten mit PDFs zählen

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-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 }

Token-Zählungen bei Claude Fable- und Claude Mythos-Modellen

Claude Fable 5.1, Claude Mythos 5.1, Claude Fable 5 und Claude Mythos 5 teilen sich den mit Claude Opus 4.7 eingeführten Tokenizer. Ein Prompt wird auf allen vier gleich gezählt und liegt etwa 30 Prozent höher als bei Modellen vor Claude Opus 4.7 (der genaue Anstieg hängt vom Inhalt ab). Der Endpunkt für die Token-Zählung zählt mit dem Tokenizer des model, das du übergibst. Um den Unterschied für deinen Workload zu messen, zähle dieselbe Anfrage zweimal, einmal mit deinem aktuellen Modell und einmal mit dem Modell, zu dem du wechseln möchtest, und vergleiche die beiden input_tokens-Werte.


Preise und Ratenlimits

Die Token-Zählung ist kostenlos nutzbar, unterliegt jedoch Ratenlimits für Anfragen pro Minute, die auf deiner Nutzungsstufe basieren. Wenn du höhere Limits benötigst, verwende Request rate limit increase auf der Seite Ratenlimits.

NutzungsstufeAnfragen pro Minute (RPM)
Start5.000
Build10.000
Scale20.000

FAQ


Nächste Schritte

Lies die vollständige API-Referenz für den Endpunkt zur Token-Zählung.

Nutze Token-Zählungen, um Prompts innerhalb des Kontextfensters eines Modells zu halten.

Prüfe Token-Zählungen, bevor du eine Anfrage sendest, um innerhalb deiner Nutzungsstufe zu bleiben.

Reduziere Kosten und Latenz bei wiederholten Prompts, indem du Prompt-Präfixe cachst.

Compatibility

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

Was this page helpful?