> ## Documentation Index
> Fetch the complete documentation index at: https://docs.xhuoapi.ai/llms.txt
> Use this file to discover all available pages before exploring further.

# Claude Messages Count Tokens API 申请及使用

> Claude AI 集成指南 - XHuoAPI

Claude Messages Count Tokens API 可以在不实际创建消息的情况下，计算一条 Message 的输入 Token 数量，包括工具、图片和文档等内容的 Token 计数。这在需要预估成本或检查输入是否超出模型上下文限制时非常有用。

本文档主要介绍 Claude Messages Count Tokens API 的使用流程。

## 申请流程

要使用 Claude Messages Count Tokens API，首先可以到 [Claude Messages Count Tokens API](https://api.xhuoapi.ai/documents/claude-messages-count-tokens) 页面点击「Acquire」按钮，获取请求所需要的凭证。

如果你尚未登录或注册，会自动跳转到登录页面邀请您来注册和登录，登录注册之后会自动返回当前页面。

该 API 完全免费使用，无需消耗额度。

## 基本使用

Claude Messages Count Tokens API 的请求路径为 `/v1/messages/count_tokens`，与 Anthropic 官方 API 保持一致。我们至少需要提供两个必填参数：

* `model`：选择使用的 Claude 模型，如 `claude-sonnet-4-5-20250929`、`claude-opus-4-20250514` 等。
* `messages`：输入的消息数组，每条消息包含 `role`（角色）和 `content`（内容）。

常用可选参数：

* `system`：系统提示词，会计入 Token 数量。
* `tools`：工具定义，会计入 Token 数量。
* `thinking`：扩展思考配置。

### cURL 示例

```bash theme={null}
curl -X POST 'https://api.xhuoapi.ai/v1/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 示例

```python theme={null}
import httpx

url = "https://api.xhuoapi.ai/v1/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())
```

返回结果示例：

```json theme={null}
{
  "input_tokens": 11
}
```

### 使用 Anthropic SDK

Claude Messages Count Tokens API 完全兼容 Anthropic 官方 SDK，可以直接使用 `anthropic` 库来调用。

```python theme={null}
from anthropic import Anthropic

client = Anthropic(
    api_key="{token}",
    base_url="https://api.xhuoapi.ai/v1",
)

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

## 包含工具的 Token 计数

如果你的请求中包含工具定义，这些工具也会计入 Token 数量：

```python theme={null}
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)
```

## 包含系统提示词的 Token 计数

系统提示词也会计入 Token 数量：

```python theme={null}
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 仅计算输入 Token 数量，不会产生任何模型输出。
* Token 计数结果可用于预估调用 Claude Messages API 的成本。
* 不同模型的 Token 化方式可能有所不同，请使用与实际调用相同的 model 参数。
* 该 API 完全免费，不消耗任何额度。
