メインコンテンツへスキップ
Claude Messages Count Tokens API は、実際にメッセージを作成することなく、メッセージの入力トークン数を計算できます。これにはツール、画像、ドキュメントなどの内容のトークンカウントが含まれます。これは、コストを見積もったり、入力がモデルのコンテキスト制限を超えていないかを確認する際に非常に便利です。 この文書では、Claude Messages Count Tokens API の使用プロセスについて説明します。

申請プロセス

Claude Messages Count Tokens API を使用するには、まず Claude Messages Count Tokens API ページにアクセスし、「Acquire」ボタンをクリックして、リクエストに必要な認証情報を取得します。 まだログインまたは登録していない場合は、自動的にログインページにリダイレクトされ、登録とログインを促されます。ログインまたは登録後は、自動的に現在のページに戻ります。 この API は完全に無料で使用でき、クレジットを消費することはありません。

基本使用

Claude Messages Count Tokens API のリクエストパスは /v1/messages/count_tokens で、Anthropic の公式 API と一致しています。少なくとも2つの必須パラメータを提供する必要があります:
  • model:使用する Claude モデルを選択します。例:claude-sonnet-4-5-20250929claude-opus-4-20250514 など。
  • messages:入力メッセージの配列で、各メッセージには role(役割)と content(内容)が含まれます。
一般的なオプションパラメータ:
  • system:システムプロンプトで、トークン数にカウントされます。
  • tools:ツール定義で、トークン数にカウントされます。
  • thinking:思考拡張設定。

cURL の例

curl -X POST 'https://api.acedata.cloud/v1/messages/count_tokens' \
  -H 'accept: application/json' \
  -H 'authorization: Bearer {token}' \
  -H 'content-type: application/json' \
  -d '{
    "model": "claude-sonnet-4-5-20250929",
    "messages": [
      {
        "role": "user",
        "content": "Hello, Claude"
      }
    ]
  }'

Python の例

import httpx

url = "https://api.acedata.cloud/v1/messages/count_tokens"
headers = {
    "accept": "application/json",
    "authorization": "Bearer {token}",
    "content-type": "application/json",
}
payload = {
    "model": "claude-sonnet-4-5-20250929",
    "messages": [
        {
            "role": "user",
            "content": "Hello, Claude"
        }
    ],
}
response = httpx.post(url, headers=headers, json=payload)
print(response.json())
返却結果の例:
{
  "input_tokens": 11
}

Anthropic SDK の使用

Claude Messages Count Tokens API は完全に Anthropic の公式 SDK と互換性があり、anthropic ライブラリを使用して直接呼び出すことができます。
from anthropic import Anthropic

client = Anthropic(
    api_key="{token}",
    base_url="https://api.acedata.cloud",
)

result = client.messages.count_tokens(
    model="claude-sonnet-4-5-20250929",
    messages=[
        {
            "role": "user",
            "content": "Hello, Claude"
        }
    ],
)
print(result.input_tokens)

ツールを含むトークンカウント

リクエストにツール定義が含まれている場合、これらのツールもトークン数にカウントされます:
result = client.messages.count_tokens(
    model="claude-sonnet-4-5-20250929",
    messages=[
        {
            "role": "user",
            "content": "What is the weather in San Francisco?"
        }
    ],
    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"]
            }
        }
    ],
)
print(result.input_tokens)

システムプロンプトを含むトークンカウント

システムプロンプトもトークン数にカウントされます:
result = client.messages.count_tokens(
    model="claude-sonnet-4-5-20250929",
    system="You are a helpful assistant that speaks Chinese.",
    messages=[
        {
            "role": "user",
            "content": "Hello"
        }
    ],
)
print(result.input_tokens)

注意事項

  • この API は入力トークン数のみを計算し、モデル出力は生成しません。
  • トークンカウント結果は、Claude Messages API のコストを見積もるために使用できます。
  • 異なるモデルのトークン化方法は異なる場合があるため、実際の呼び出しと同じ model パラメータを使用してください。
  • この API は完全に無料で、クレジットを消費しません。