機能
トークンカウント
Claudeにメッセージを送信する前にメッセージ内のトークン数を決定し、プロンプトと使用量について情報に基づいた決定を行うのに役立ちます。
トークンカウントにより、Claudeにメッセージを送信する前にメッセージ内のトークン数を決定でき、プロンプトと使用量について情報に基づいた決定を行うのに役立ちます。トークンカウントを使用すると、以下のことができます:
- レート制限とコストを積極的に管理する
- スマートなモデルルーティング決定を行う
- 特定の長さになるようにプロンプトを最適化する
メッセージトークンをカウントする方法
メッセージトークンをカウントする方法
トークンカウントエンドポイントは、システムプロンプト、ツール、画像、PDFのサポートを含む、メッセージ作成のための同じ構造化された入力リストを受け入れます。レスポンスには入力トークンの総数が含まれます。
トークン数は推定値として考慮すべきです。場合によっては、メッセージ作成時に使用される実際の入力トークン数が少量異なる場合があります。
トークン数には、システム最適化のためにAnthropicによって自動的に追加されたトークンが含まれる場合があります。システムが追加したトークンについては請求されません。請求はあなたのコンテンツのみを反映します。
サポートされているモデル
サポートされているモデル
すべてのアクティブなモデルがトークンカウントをサポートしています。
基本メッセージのトークンをカウントする
基本メッセージのトークンをカウントする
Python
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())TypeScript
import Anthropic from '@anthropic-ai/sdk';
const client = new Anthropic();
const response = await client.messages.countTokens({
model: 'claude-sonnet-4-5',
system: 'You are a scientist',
messages: [{
role: 'user',
content: 'Hello, Claude'
}]
});
console.log(response);Shell
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",
"system": "You are a scientist",
"messages": [{
"role": "user",
"content": "Hello, Claude"
}]
}'Java
import com.anthropic.client.AnthropicClient;
import com.anthropic.client.okhttp.AnthropicOkHttpClient;
import com.anthropic.models.messages.MessageCountTokensParams;
import com.anthropic.models.messages.MessageTokensCount;
import com.anthropic.models.messages.Model;
public class CountTokensExample {
public static void main(String[] args) {
AnthropicClient client = AnthropicOkHttpClient.fromEnv();
MessageCountTokensParams params = MessageCountTokensParams.builder()
.model(Model.CLAUDE_SONNET_4_20250514)
.system("You are a scientist")
.addUserMessage("Hello, Claude")
.build();
MessageTokensCount count = client.messages().countTokens(params);
System.out.println(count);
}
}JSON
{ "input_tokens": 14 }ツールを含むメッセージのトークンをカウントする
ツールを含むメッセージのトークンをカウントする
サーバーツールのトークン数は最初のサンプリング呼び出しにのみ適用されます。
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 }画像を含むメッセージのトークンをカウントする
画像を含むメッセージのトークンをカウントする
#!/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 }拡張思考を含むメッセージのトークンをカウントする
拡張思考を含むメッセージのトークンをカウントする
拡張思考でコンテキストウィンドウがどのように計算されるかの詳細についてはこちらをご覧ください
- 以前のアシスタントターンからの思考ブロックは無視され、入力トークンにカウントされません
- 現在のアシスタントターンの思考は入力トークンにカウントされます
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 }PDFを含むメッセージのトークンをカウントする
PDFを含むメッセージのトークンをカウントする
トークンカウントは、Messages APIと同じ制限でPDFをサポートします。
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 }価格とレート制限
価格とレート制限
トークンカウントは無料で使用できますが、使用量ティアに基づく分あたりのリクエスト数のレート制限の対象となります。より高い制限が必要な場合は、Claude Consoleを通じて営業にお問い合わせください。
| 使用量ティア | 分あたりのリクエスト数(RPM) |
|---|---|
| 1 | 100 |
| 2 | 2,000 |
| 3 | 4,000 |
| 4 | 8,000 |
トークンカウントとメッセージ作成には別々の独立したレート制限があります -- 一方の使用は他方の制限にカウントされません。
FAQ
FAQ