# شمارش توکن

> تعداد توکن ورودی یک درخواست Messages را پیش از ارسال می‌شمارد.

URL: https://dana.expert/docs/api-reference/count-tokens

`POST https://api.dana.expert/v1/messages/count_tokens`

## هدرها

| فیلد | نوع | الزامی | توضیح |
|---|---|---|---|
| `Authorization` | string | بله | کلید API از کنسول دانا: `Authorization: Bearer dn-live-...` |
| `x-api-key` | string | نه | همان کلید، برای کلاینت‌های Anthropic |
| `Content-Type` | string | بله | مقدار: `"application/json"` |

## بدنهٔ درخواست

| فیلد | نوع | الزامی | توضیح |
|---|---|---|---|
| `model` | string | بله |  |
| `messages` | object[] | بله |  |
| `system` | string \| object[] | نه |  |
| `tools` | object[] | نه |  |

**فیلدهای هر عضو messages:**

| فیلد | نوع | الزامی | توضیح |
|---|---|---|---|
| `role` | string | بله | مقدار: `"system"`، `"user"`، `"assistant"`، `"tool"` |
| `content` | string \| object[] | بله | متن پیام یا فهرست بخش‌ها |

نمونه:

```json
{
  "model": "homa",
  "messages": [
    {
      "role": "user",
      "content": "این جمله را رسمی‌تر بنویس: «فردا جلسه رو کنسل کن.»"
    }
  ]
}
```

## پاسخ `200`

تعداد توکن ورودی

| فیلد | نوع | الزامی | توضیح |
|---|---|---|---|
| `input_tokens` | integer | بله | تعداد توکن ورودی |

نمونه:

```json
{
  "input_tokens": 8
}
```

## خطاها

| کد | یعنی |
|---|---|
| `400` | خطا با فرمت Anthropic؛ `type` و پیام، علت را می‌گویند |
| `401` | خطا با فرمت Anthropic؛ `type` و پیام، علت را می‌گویند |
| `503` | هما همین حالا در دسترس نیست؛ چند دقیقه بعد دوباره بفرستید |

فرمت خطا:

```json
{
  "type": "error",
  "error": {
    "type": "authentication_error",
    "message": "Invalid API key."
  }
}
```
