صورتحساب Anthropic API واقعاً چطور کار میکند
Updated 2026-07-15
Anthropic هزینه API را به ازای هر token صورتحساب میکند: یک نرخ برای input، نرخ بالاتری برای output و نرخهای جداگانه برای write و read کش prompt، همه از اعتبار پیشپرداختشده کسر میشوند. اغلب صورتحسابهای غافلگیرکننده از tokenهای output و ارسال مجدد تاریخچه مکالمه میآیند، نه قیمت اصلی input.
پاسخ سریع: واقعاً بابت چه چیزی صورتحساب میشوید
Anthropic هزینه Claude API را به ازای هر token و به صورت پیشپرداخت دریافت میکند. شما در کنسول توسعهدهنده اعتبار میخرید و هر درخواست از آن موجودی در سه شمارنده کسر میکند: tokenهای input (هر چیزی که ارسال میکنید)، tokenهای output (هر چیزی که مدل تولید میکند، شامل thinking tokenها) و ترافیک کش prompt (write با نرخ 1.25 برابر نرخ input و read با نرخ 0.1 برابر صورتحساب میشود). خود API هیچ اشتراکی ندارد و اشتراک Claude Pro یا Max شامل اعتبار API نمیشود. output گرانترین شمارنده است. Claude Sonnet 4.6 با قیمت $3.00 به ازای هر میلیون token ورودی و $15.00 به ازای هر میلیون token خروجی فهرست شده، یعنی شکاف 5 برابری. Claude Opus 4.7 با $5.00 ورودی و $25.00 خروجی فهرست شده است. اگر صورتحساب شما بیشتر از حد انتظار است، پیش از هر چیز حجم output و رشد تاریخچه مکالمه را بررسی کنید.
سه شمارنده: tokenهای input، output و cache
input فقط پیام کاربر نیست. system prompt، کل تاریخچه مکالمه، تعریف ابزارها، نتایج ابزار و تصاویر، همگی در هر درخواستی که شامل آنها باشد به عنوان tokenهای input شمرده میشوند. output هر چیزی است که مدل پس مینویسد و در مدلهای دارای قابلیت reasoning شامل thinking tokenهایی میشود که ممکن است هرگز به کاربر نشان ندهید. prompt caching سومین شمارنده است و همان چیزی که بیشتر تیمها بدون استفاده رها میکنند. شما یک prefix پایدار (یک system prompt طولانی، یک سند، یک لیست ثابت از ابزارها) را با یک breakpoint از نوع cache_control علامتگذاری میکنید. اولین درخواست یک premium برابر 1.25 برابر نرخ input برای کش پیشفرض 5 دقیقهای میپردازد؛ هر درخواستی که prefix را در همان بازه دوباره استفاده کند با نرخ 0.1 برابر خوانده میشود. یک کش 1 ساعته هم با نرخ write 2 برابر در دسترس است. جدول زیر کارت نرخ کامل برای دو مدل پرچمدار Claude با قیمتهای رسمی لیست را نشان میدهد.
| شمارنده | چه چیزی شمرده میشود | Sonnet 4.6 | Opus 4.7 |
|---|---|---|---|
| tokenهای input | system prompt، تاریخچه، پیام، ابزارها، تصاویر | $3.00 / 1M | $5.00 / 1M |
| tokenهای output | پاسخهای مدل، شامل thinking tokenها | $15.00 / 1M | $25.00 / 1M |
| write کش (5 دقیقه) | اولین write یک prefix کششده، 1.25 برابر input | $3.75 / 1M | $6.25 / 1M |
| read کش | استفاده مجدد از prefix کششده، 0.1 برابر input | $0.30 / 1M | $0.50 / 1M |
یک مثال محاسبهشده: یک چتبات، یک روز
یک چتبات پشتیبانی روی Claude Sonnet 4.6 با نرخهای رسمی را در نظر بگیرید: 10,000 درخواست در روز، هر کدام حامل یک system prompt با 2,000 token بهعلاوه 1,500 token تاریخچه و پیام کاربر، که با یک پاسخ 500 token جواب داده میشود. جدول همین حجم کار را با و بدون کش شدن system prompt نشان میدهد. بدون caching، هزینه آن روز $180.00 است، حدود $5,400 در ماه. کش کردن system prompt (با فرض حدود 300 انقضای کش در روز روی بازه 5 دقیقهای) آن را به حدود $128 در روز کاهش میدهد، حدود $3,840 در ماه. توجه کنید چه چیزی تغییر نکرد: هزینه output. caching فقط input را لمس میکند، به همین دلیل انضباط output از هر اهرم دیگری مهمتر است.
| ردیف | token در روز | نرخ به ازای هر 1M | هزینه روزانه |
|---|---|---|---|
| input، بدون caching | 35,000,000 | $3.00 | $105.00 |
| output، بدون caching | 5,000,000 | $15.00 | $75.00 |
| مجموع بدون caching | 40,000,000 | $180.00 | |
| write های کش (system prompt) | 600,000 | $3.75 | $2.25 |
| read های کش (system prompt) | 19,400,000 | $0.30 | $5.82 |
| input کشنشده (تاریخچه + پیام) | 15,000,000 | $3.00 | $45.00 |
| output | 5,000,000 | $15.00 | $75.00 |
| مجموع با caching | 40,000,000 | $128.07 |
چرا صورتحساب Anthropic تیمها را غافلگیر میکند
چهار الگو مسئول بیشتر گفتگوهای «چرا صورتحساب چند برابر تخمین است» هستند. 1. output پنج برابر input است و thinking هم جزو output شمرده میشود. تخمینها معمولاً روی نرخ input تکیه میکنند چون این عددی است که اول گفته میشود. اما پاسخهای طولانی، قالببندی پرحرف و thinking گسترده همگی با نرخ output صورتحساب میشوند. مدلی که 3,000 token فکر میکند قبل از پاسخ دادن در 500 token، برای چیزی که یک پاسخ کوتاه به نظر میرسد 3,500 token output صورتحساب میکند. 2. تاریخچه در هر turn دوباره صورتحساب میشود. API بدون state است، پس هر turn کل مکالمه را بهعنوان input دوباره ارسال میکند. یک چت با میانگین 20 turn هزینهاش 20 برابر یک turn تنها نیست؛ خیلی بیشتر است، چون turn بیستم 19 turn قبلی را هم بهعنوان input حمل میکند. هزینه input تقریباً با مجذور طول مکالمه رشد میکند مگر آنکه آن را کوتاه یا خلاصه کنید. 3. اشتراکها و اعتبار API از هم جدا هستند. Claude Pro و Max اپهای Claude را پوشش میدهند، نه API را. تیمها فرض میکنند اشتراک ترافیک API را جذب میکند، سپس متوجه میشوند کنسول بیسروصدا از یک موجودی پیشپرداختشده با auto-reload فعال برداشت کرده است. 4. هر چیزی در درخواست همان input است و انتساب آن سخت است. تعریف ابزارها، نتایج ابزار، تصاویر و system prompt ها در هر درخواستی که شامل آنها باشد بهعنوان input صورتحساب میشوند. این را روی چند API key، محیط و ویژگی بدون لاگگیری per-key پخش کنید، آنوقت هیچکس نمیتواند بگوید کدام ویژگی پول را خرج کرده تا وقتی صورتحساب برسد.
صورتحساب Anthropic در برابر OpenAI، مقایسه کنار هم
هر دو provider به یک شکل شمارش میکنند: به ازای هر token، نرخهای جداگانه برای input و output، و بهطور پیشفرض اعتبار پیشپرداخت. تفاوتهایی که برای صورتحساب شما اهمیت دارند در مکانیزم کش و کنترلهای هزینه هستند. تفاوت عملی در caching است. OpenAI بهصورت خودکار prompt caching را اعمال میکند، بدون هزینه write و با تخفیف روی بخش کششده. Anthropic از شما میخواهد خودتان breakpoint های cache_control را قرار دهید، یک premium برای write دریافت میکند و آن را با read های بسیار ارزانتر با نرخ 0.1 برابر input جبران میکند. برای حجم کارهایی با prompt های ثابت و طولانی، اگر caching در Anthropic درست انجام شود اهرم قویتری است؛ اگر اشتباه انجام شود (یک timestamp در system prompt، یک لیست ابزار ناپایدار)، بیسروصدا هرگز فعال نمیشود و شما قیمت کامل بهعلاوه premium های write را میپردازید.
| جزئیات صورتحساب | Anthropic | OpenAI |
|---|---|---|
| واحد صورتحساب | به ازای هر token، نرخهای جداگانه input و output | به ازای هر token، نرخهای جداگانه input و output |
| مدل پرداخت | اعتبار پیشپرداخت؛ سطوح مصرف rate limit را بالا میبرند | بهطور پیشفرض اعتبار پیشپرداخت |
| prompt caching | cache_control صریح؛ write با 1.25 برابر، read با 0.1 برابر | خودکار؛ input کششده با تخفیف، بدون هزینه write |
| طول عمر کش | پیشفرض 5 دقیقه، 1 ساعت با نرخ write 2 برابر | مدیریتشده برای شما، معمولاً از چند دقیقه تا یک ساعت |
| تخفیف batch | 50% تخفیف از طریق Batches API | 50% تخفیف از طریق Batch API |
| reasoning tokenها | thinking tokenها بهعنوان output صورتحساب میشوند | reasoning tokenها بهعنوان output صورتحساب میشوند، در پاسخ نشان داده نمیشوند |
| کنترلهای هزینه | محدودیت هزینه workspace، auto-reload اختیاری | بودجه و هشدار پروژه |
چطور قبل از انتشار هزینه Anthropic API خود را تخمین بزنید
هر پاسخ API شامل یک شیء usage با input_tokens و output_tokens دقیق است، بهعلاوه cache_creation_input_tokens و cache_read_input_tokens وقتی caching فعال باشد. آن شیء حقیقت مطلق است. tokenizerهای سمت کلاینت که برای providerهای دیگر ساخته شدهاند tokenهای Claude را کمتر از واقعیت میشمارند، پس با آنها تخمین نزنید. روش کار: چند درخواست نماینده ارسال کنید، شیء usage را بخوانید و شمارشها را میانگین بگیرید. سپس فرمول را اعمال کنید: cost = (input_tokens / 1,000,000 x نرخ input) + (output_tokens / 1,000,000 x نرخ output)، بهعلاوه عبارتهای write و read کش اگر کش میکنید. آن را در حجم روزانه مورد انتظار ضرب کنید و برای محصولات چندturn حاشیه رشد اضافه کنید چون تاریخچه در هر turn روی input فشار میآورد. Anthropic همچنین یک endpoint به نام count_tokens ارائه میدهد اگر بخواهید پیش از ارسال هر چیزی شمارش را بدانید.
curl https://api.anthropic.com/v1/messages \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-H "content-type: application/json" \
-d '{
"model": "claude-sonnet-4-6",
"max_tokens": 1024,
"messages": [{"role": "user", "content": "Summarize this ticket: ..."}]
}'
# پاسخ شامل حقیقت مطلق برای مدل هزینه شماست:
# "usage": {"input_tokens": 2412, "output_tokens": 486,
# "cache_read_input_tokens": 0, "cache_creation_input_tokens": 0}پنج راه برای کاهش صورتحساب Anthropic API شما
تاکتیک پنجم جایی است که یک gateway جایگاه خودش را ثابت میکند. APIsRouter یک gateway سازگار با OpenAI است که مدل، tokenهای input، tokenهای output و هزینه دقیق دلاری هر درخواست را به ازای هر API key ثبت میکند، پس هر ویژگی یا محیط کلید خودش و خط خودش را در نمای usage دارد. Claude Sonnet 4.6 را با $2.40 input و $12.00 output به ازای هر میلیون token و Claude Opus 4.7 را با $4.00 و $20.00 فهرست میکند، 20% پایینتر از قیمت رسمی لیست، با صورتحساب pay as you go و بدون اشتراک؛ اولین شارژ در /topup دو برابر میشود. اشاره دادن یک یکپارچهسازی موجود OpenAI SDK به آن یک تغییر دو خطی است:
- prefixهای طولانی و پایدار خود را کش کنید. یک system prompt یا سند که در درخواستها تکرار میشود، بعد از اولین write، در هر cache read با یکدهم نرخ input صورتحساب میشود.
- تاریخچه را کوتاه کنید و max_tokens را محدود کنید. بهجای ارسال مجدد turnهای قدیمی، آنها را خلاصه کنید یا حذف کنید، و max_tokens را به اندازهای که کار نیاز دارد تنظیم کنید تا یک پاسخ افسارگسیخته نتواند هزاران token output اضافی صورتحساب کند.
- بر اساس task مسیردهی کنید، نه بر اساس عادت. Opus را برای مراحلی که به آن نیاز دارند نگه دارید و طبقهبندی انبوه، استخراج و پیشنویسها را به مدلهای ارزانتری مثل deepseek-v4-flash یا glm-5 بفرستید.
- هر کاری که غیرهمزمان است را batch کنید. Batches API درخواستها را ظرف 24 ساعت با نصف قیمت پردازش میکند، ایدهآل برای backfill، eval و jobهای شبانه.
- دید هزینه per-key را جلوی ترافیک خود قرار دهید. بیشتر غافلگیریهای صورتحساب مشکلات انتساب هستند: تا وقتی صورتحساب نرسد هیچکس نمیتواند بگوید کدام ویژگی یا مشتری پول را خرج کرده است.
from openai import OpenAI
client = OpenAI(
api_key="sk-APIsRouter-...",
base_url="https://api.apisrouter.com/v1",
)
response = client.chat.completions.create(
model="claude-sonnet-4-6",
messages=[{"role": "user", "content": "Summarize this ticket: ..."}],
)
# شمارش tokenها در هر پاسخ برمیگردد؛ کنسول gateway
# علاوه بر آن هزینه دقیق این درخواست را زیر همین کلید ثبت میکند.
print(response.usage.prompt_tokens, response.usage.completion_tokens)پرسشهای پرتکرار
صورتحساب Anthropic API چطور کار میکند؟
شما از قبل اعتبار میخرید و هر درخواست هزینه را بر اساس token کسر میکند: input با یک نرخ، output با نرخ بالاتر، و write و read کش prompt با 1.25 و 0.1 برابر نرخ input. نرخها بر اساس مدل متفاوت هستند و سطوح مصرف با رشد هزینه تجمعی شما rate limitهای بالاتری را باز میکنند.
آیا Claude Pro یا Max شامل اعتبار API میشود؟
خیر. اشتراکها اپهای Claude را پوشش میدهند؛ API جداگانه از یک موجودی اعتبار پیشپرداختشده در کنسول توسعهدهنده صورتحساب میشود. بودجهبندی ترافیک API در برابر یک اشتراک یکی از رایجترین دلایل صورتحساب غیرمنتظره است.
چرا صورتحساب Anthropic API من اینقدر بالاست؟
دلایل معمول، به ترتیب: tokenهای output (5 برابر نرخ input، و thinking tokenها هم جزو output شمرده میشوند)، تاریخچه مکالمه که در هر turn دوباره ارسال و صورتحساب میشود، و ترافیک بدون انتساب در چند کلید. پیش از تعویض مدل، لاگهای usage هر درخواست را بیرون بکشید؛ معمولاً یک endpoint یا یک prompt مسئول بیشتر هزینه است.
چطور یک محدودیت هزینه روی Anthropic API تنظیم کنم؟
در Anthropic Console میتوانید محدودیت هزینه workspace را تنظیم کنید و کنترل کنید که آیا اعتبار auto-reload میشود یا نه. یک محدودیت سخت به ازای هر workspace تنظیم کنید و auto-reload را برای آزمایشها غیرفعال کنید. یک موجودی پیشپرداختشده gateway هم مثل یک سقف طبیعی عمل میکند، چون وقتی تمام شود درخواستها متوقف میشوند بهجای اینکه فراتر از بودجه شما صورتحساب شوند.
هزینه هر درخواست Claude API چقدر است؟
شمارش tokenهای خود را در نرخهای مدل ضرب کنید. یک درخواست با 2,000 token input و 500 token output روی Claude Sonnet 4.6 هزینهای برابر 2,000/1M x $3.00 بهعلاوه 500/1M x $15.00 دارد، حدود $0.0135 با نرخهای رسمی. همان درخواست روی Claude Opus 4.7 حدود $0.0225 است.
آیا prompt caching واقعاً هزینههای Anthropic API را کاهش میدهد؟
بله، وقتی درخواستها یک prefix پایدار بالاتر از حداقل اندازه قابل کش (بسته به مدل تقریباً بین یک تا چهار هزار token) را به اشتراک بگذارند. readهای کش با یکدهم نرخ input صورتحساب میشوند، پس یک system prompt استفادهشده مجدد بعد از write با 1.25 برابر از $3.00 به $0.30 به ازای هر میلیون token میرسد. برای tokenهای output هیچ کاری نمیکند، چون caching نمیتواند آنها را لمس کند.