POST
/v1/messages/count_tokensCount Tokens
Calculate the token count for a given messages payload before sending a request. Use this to estimate costs and check if a request will fit within your context window.
Test the count tokens endpoint:
Bash
curl -X POST https://api.mr-coder.io/v1/messages/count_tokens \
-H "x-api-key: sk-mr-auth-your-key-here" \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "Hello world"}]}'Request Parameters
| Parameter | Type | Description |
|---|---|---|
messages* | array | Array of message objects to count. Same format as the Messages endpoint. |
system | string | System prompt to include in the count. |
Response Format
JSON
{
"input_tokens": 1276
}| Field | Type | Description |
|---|---|---|
| input_tokens | integer | Total number of input tokens in the request (messages + system prompt). |
Note: Token counting is currently supported only for Anthropic models (
claude-*). Requests for non-Anthropic models return a 400 error with unsupported_model in the error code.Code Examples
Bash
curl -X POST https://api.mr-coder.io/v1/messages/count_tokens \
-H "x-api-key: sk-mr-auth-xxxxxxxx" \
-H "Content-Type: application/json" \
-d '{"messages": [{"role": "user", "content": "Hello world"}]}'TypeScript
const response = await fetch(
'https://api.mr-coder.io/v1/messages/count_tokens',
{
method: 'POST',
headers: {
'x-api-key': 'sk-mr-auth-xxxxxxxx',
'Content-Type': 'application/json',
},
body: JSON.stringify({
messages: [{ role: 'user', content: 'Hello world' }],
}),
}
);
const { input_tokens } = await response.json();
console.log(`This request will use ${input_tokens} input tokens.`);Python
import requests
response = requests.post(
'https://api.mr-coder.io/v1/messages/count_tokens',
headers={
'x-api-key': 'sk-mr-auth-xxxxxxxx',
'Content-Type': 'application/json',
},
json={
'messages': [{'role': 'user', 'content': 'Hello world'}],
}
)
data = response.json()
print(f"This request will use {data['input_tokens']} input tokens.")