Mit der Token-Zählung kannst du die Anzahl der Tokens 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:
Diese Funktion ist für Zero Data Retention (ZDR) qualifiziert. Wenn deine Organisation eine ZDR-Vereinbarung hat, werden Daten, die über diese Funktion gesendet werden, nicht gespeichert, nachdem die API-Antwort zurückgegeben wurde.
Der Token-Zählungs-Endpunkt 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-Tokens.
Die Token-Zählung sollte als Schätzung betrachtet werden. In manchen Fällen kann die tatsächliche Anzahl der beim Erstellen einer Nachricht verwendeten Eingabe-Tokens geringfügig abweichen.
Token-Zählungen können Tokens enthalten, die von Anthropic automatisch für Systemoptimierungen hinzugefügt werden. Für vom System hinzugefügte Tokens werden dir keine Kosten berechnet. Die Abrechnung spiegelt nur deine Inhalte wider.
Alle aktiven Modelle unterstützen die Token-Zählung, einschließlich Claude Sonnet 5.
Claude Opus 4.7 und spätere Opus-Modelle, Claude Fable 5, Claude Mythos 5, Claude Mythos Preview und Claude Sonnet 5 verwenden einen neueren Tokenizer. Derselbe Eingabetext erzeugt etwa 30 % mehr Tokens als bei früheren Modellen. Zähle deine Prompts mit dem Modell, das du verwenden möchtest, neu, anstatt Zählungen wiederzuverwenden, die mit früheren Modellen gemessen wurden.
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
system="You are a scientist",
messages=[{"role": "user", "content": "Hello, Claude"}],
)
print(response.json()){ "input_tokens": 14 }Token-Zählungen für Server-Tools gelten nur für den ersten Sampling-Aufruf.
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
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()){ "input_tokens": 403 }import base64
import httpx
image_url = "https://upload.wikimedia.org/wikipedia/commons/a/a7/Camponotus_flavomarginatus_ant.jpg"
image_media_type = "image/jpeg"
image_data = base64.standard_b64encode(httpx.get(image_url).content).decode("utf-8")
client = anthropic.Anthropic()
response = client.messages.count_tokens(
model="claude-opus-4-8",
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()){ "input_tokens": 1551 }Siehe wie das Kontextfenster mit erweitertem Denken berechnet wird für weitere Details
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()){ "input_tokens": 88 }Die Token-Zählung unterstützt PDFs mit denselben Einschränkungen wie die Messages API.
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-4-8",
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()){ "input_tokens": 2188 }Claude Fable 5 und Claude Mythos 5 verwenden den mit Claude Opus 4.7 eingeführten Tokenizer, der für denselben Text etwa 30 % mehr Tokens erzeugt als Modelle vor Claude Opus 4.7. Der Token-Zählungs-Endpunkt gibt die Zählung gemäß dem Tokenizer des von dir übergebenen model zurück. Um den Unterschied für deinen Workload zu messen, zähle dieselbe Anfrage zweimal: einmal mit deinem aktuellen Modell und einmal mit model: "claude-fable-5" (oder "claude-mythos-5"), und vergleiche die beiden input_tokens-Werte.
Abrechnung und Migration: Nutzung und Abrechnung bei Claude Fable 5 und Claude Mythos 5 spiegeln die Zählungen dieses Tokenizers wider. Wenn du von einem Modell vor Claude Opus 4.7 migrierst, verbraucht derselbe Inhalt etwa 30 % mehr Tokens. Verwende bei der Migration eines Workloads zu Claude Fable 5 und Claude Mythos 5 keine Token-Zählungen, die mit einem Modell vor Claude Opus 4.7 gemessen wurden, um Kosten oder die Passung ins Kontextfenster abzuschätzen. Zähle deine Prompts mit model: "claude-fable-5" (oder "claude-mythos-5").
Die Token-Zählung ist kostenlos nutzbar, unterliegt aber Ratenlimits für Anfragen pro Minute basierend auf deiner Nutzungsstufe. Wenn du höhere Limits benötigst, verwende Request rate limit increase auf der Seite Limits.
| Nutzungsstufe | Anfragen pro Minute (RPM) |
|---|---|
| Start | 2.000 |
| Build | 4.000 |
| Scale | 8.000 |
Token-Zählung und Nachrichtenerstellung haben separate und unabhängige Ratenlimits. Die Nutzung des einen zählt nicht gegen die Limits des anderen.
Lies die vollständige API-Referenz für den Token-Zählungs-Endpunkt.
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 durch das Cachen von Prompt-Präfixen.
Was this page helpful?