هزینه 1 میلیون توکن در Claude چقدر است؟
هزینه 1 میلیون توکن در مدلهای Claude به نوع ورودی و خروجی بستگی دارد. قیمت خروجی 5 برابر ورودی است. در این مطلب نحوه محاسبه دقیق صورتحساب API را بررسی میکنیم.
هزینه 1 میلیون توکن در Claude چقدر است؟
1 میلیون توکن به معنای یک میلیون توکن است و این واحدی است که قیمت تمام APIهای (رابط برنامهنویسی اپلیکیشن) Claude بر اساس آن اعلام میشود. قیمت ثابتی برای آن وجود ندارد، زیرا ورودی و خروجی با نرخهای متفاوتی محاسبه میشوند و هر مدل جفت نرخ مخصوص به خود را دارد. تا اوت 2026، هزینه یک میلیون توکن ورودی در Claude Haiku 4.5 برابر با $1، در Claude Sonnet 5 برابر با $2 و در Claude Opus 5 برابر با $5 است.
خروجی بخش گرانتر است. در تمام مدلهای فعلی، نرخ خروجی پنج برابر نرخ ورودی است، بنابراین نسبت بین این دو بیش از رقم کلی، تعیینکننده صورتحساب شماست. اپلیکیشنی که اسناد طولانی ارسال میکند و پاسخهای کوتاه دریافت میکند، رفتار بسیار متفاوتی نسبت به اپلیکیشنی دارد که از یک پرامپت کوتاه، پاسخهای طولانی تولید میکند.
این صفحه درباره اقتصاد واحد است: هزینه هر توکن چقدر است و چگونه پیش از ساخت، صورتحساب را تخمین بزنیم. برای اطلاع از اینکه توکنها هنگام کار دقیقاً کجا مصرف میشوند، جایی که توکنها در یک نشست Claude Code مصرف میشوند را مطالعه کنید.
یک میلیون توکن چه حجمی دارد
توکن بخشی از متن است که مدل آن را میخواند یا مینویسد. راهنمای کلی Anthropic این است که هر توکن تقریباً معادل 4 کاراکتر یا حدود 0.75 کلمه انگلیسی است. بنابراین، یک میلیون توکن تقریباً معادل 750,000 کلمه یا حدود 4 مگابایت متن ساده است.
برآوردهای منتشرشده برای ورودیهای رایج، درک بهتری از این مقیاس به دست میدهند.
The data behind this chart
[
{
"label": "Average web page (10 kB)",
"tokens": "2,500"
},
{
"label": "Documentation page (100 kB)",
"tokens": "25,000"
},
{
"label": "Research paper PDF (500 kB)",
"tokens": "125,000"
}
]با این نرخ، یک میلیون توکن تقریباً معادل 400 صفحه وب معمولی است که یکبار خوانده شوند، یا هشت مقاله پژوهشی با همان اندازه. این مقدار برابر با یکبار بررسی یک پایگاه کد (codebase) با اندازه متوسط، یا یک ماه استفاده سبک از چت برای یک نفر است.
همه این موارد را به عنوان یک تخمین در نظر بگیرید. کد، JSON و متن به زبانهایی غیر از انگلیسی، کلمات کمتری را در هر توکن جای میدهند، بنابراین نسبت 0.75 حد خوشبینانه است. یک نکته دیگر نیز شمارش را تغییر میدهد: Claude Opus 4.7 و نسخههای پس از آن، که شامل Opus 5 و Sonnet 5 میشوند، از توکنایزر جدیدتری استفاده میکنند که برای متن یکسان، تقریباً 30 درصد توکن بیشتری نسبت به Sonnet 4.6 و نسخههای قدیمیتر تولید میکند. مدل Claude Haiku 4.5 از توکنایزر قدیمیتر استفاده میکند. بنابراین، تعدادی که با Haiku 4.5 اندازهگیری کردهاید، برای ورودی یکسان در Sonnet 5 کمتر محاسبه میشود؛ این یعنی مقایسه مستقیم قیمت به ازای هر میلیون توکن در این مرز، منصفانه نیست. پیش از تصمیمگیری، پرامپت یکسانی را با هر دو مدل بسنجید.
هزینه Claude به ازای هر میلیون توکن
The data behind this chart
[
{
"label": "Haiku 4.5",
"input_usd": 1,
"output_usd": 5
},
{
"label": "Sonnet 5 (to 31 Aug 2026)",
"input_usd": 2,
"output_usd": 10
},
{
"label": "Sonnet 5 (from 1 Sep 2026)",
"input_usd": 3,
"output_usd": 15
},
{
"label": "Opus 5",
"input_usd": 5,
"output_usd": 25
}
]مدل Claude Sonnet 5 تا تاریخ 31 August 2026 با قیمت مقدماتی 2 دلار برای ورودی و 10 دلار برای خروجی ارائه میشود. از تاریخ 1 September 2026 نرخ استاندارد اعمال خواهد شد: 3 دلار برای ورودی و 15 دلار برای خروجی. هزینه مدل Claude Opus 5 برابر با 5 دلار برای ورودی و 25 دلار برای خروجی است. یک مدل کاملاً فراتر از این جدول قرار دارد: Claude Fable 5 با نرخ 10 دلار برای ورودی و 50 دلار برای خروجی لیست شده است، بنابراین اینکه آیا پرداخت این نرخها ارزشش را دارد یا خیر به این بستگی دارد که چه وظایفی را به آن محول میکنید.
نرخها تغییر میکنند. تمام ارقام موجود در این صفحه را به عنوان نمونههای محاسباتی مربوط به تاریخ August 2026 در نظر بگیرید و پیش از نهایی کردن بودجه، اعداد فعلی را در صفحه رسمی قیمتگذاری تأیید کنید.
این نرخها نشاندهنده هزینه Claude هستند، اما مشخص نمیکنند که آیا برای حجم کاری شما گزینه ارزانتری محسوب میشود یا خیر؛ مطلب هزینهیابی سه وظیفه در هر دو مدل Claude و ChatGPT نشان میدهد که هر API در چه مواردی برتری دارد.
یک مورد که نرخ را تغییر نمیدهد، طول کانتکست (context length) است. در Claude 4.6 و نسخههای پس از آن، کل پنجره کانتکست 1M توکنی با نرخ استاندارد محاسبه میشود؛ بنابراین هزینه یک درخواست 900,000 توکنی به ازای هر توکن، مشابه یک درخواست 9,000 توکنی است. یک پرامپت طولانی به دلیل داشتن توکنهای بیشتر، هزینه بالاتری دارد و هیچ نرخ جداگانهای برای کانتکست طولانی اعمال نمیشود.
محاسباتی که پس از تغییر قیمت ثابت میمانند
هر صورتحساب شامل دو ضرب و یک جمع است.
cost = (input_tokens / 1,000,000) * input_rate
+ (output_tokens / 1,000,000) * output_rateبه صورت کدی که میتوانید اجرا کنید:
INPUT_RATE = 2.00 # USD per million input tokens, Sonnet 5, August 2026
OUTPUT_RATE = 10.00 # USD per million output tokens
def cost(input_tokens, output_tokens):
return (input_tokens * INPUT_RATE + output_tokens * OUTPUT_RATE) / 1_000_000
print(f"{cost(4300, 400):.4f}")این کد مقدار 0.0126 را چاپ میکند. درخواستی که 4,300 توکن ورودی ارسال میکند و 400 توکن خروجی دریافت میکند، در مدل Sonnet 5 حدود 1.3 سنت هزینه دارد. هر دو نرخ را در یک جای کد خود نگه دارید. هنگامی که قیمت تغییر میکند، شما دو خط را ویرایش میکنید و تمام برآوردهای موجود در سیستم شما با آن بهروز میشوند.
برآورد عملی برای یک برنامه واقعی
یک دستیار پشتیبانی را در نظر بگیرید. پرامپت سیستم و مستندات محصول آن در مجموع 4000 توکن هستند. از آنجا که Messages API بدون وضعیت (stateless) است و مدل هیچ چیزی را بین فراخوانیها به خاطر نمیسپارد، این مقدار در هر درخواست ارسال میشود. سوال کاربر حدود 300 توکن اضافه میکند. پاسخ نیز حدود 400 توکن است. این یعنی 4300 توکن ورودی و 400 توکن خروجی در هر درخواست.
یک میلیون توکن ورودی، هزینه حدود 232 درخواست با این مشخصات را پوشش میدهد. با 1000 درخواست در روز، برنامه روزانه 4.3 میلیون توکن ورودی مصرف میکند، بنابراین "1 میلیون توکن" کمتر از شش ساعت ترافیک را پوشش میدهد.
The data behind this chart
[
{
"label": "Opus 5, list rates",
"cost_per_1k_usd": "31.50"
},
{
"label": "Sonnet 5, list rates",
"cost_per_1k_usd": "12.60"
},
{
"label": "Sonnet 5, Batch API",
"cost_per_1k_usd": "6.30"
},
{
"label": "Haiku 4.5, list rates",
"cost_per_1k_usd": "6.30"
},
{
"label": "Sonnet 5, warm prompt cache",
"cost_per_1k_usd": "5.40"
}
]با استفاده از Claude Opus 5، هزینه این ترافیک به ازای هر 1000 درخواست برابر با $31.50 است. در Sonnet 5 این هزینه $12.60 است. کاهش به Claude Haiku 4.5 هزینه را به $6.30 میرساند و استفاده از prompt cache فعال در Sonnet 5 هزینه را حتی به $5.40 کاهش میدهد.
این ارقام را در 30 ضرب کنید تا هزینه یک ماه ترافیک به دست آید. هزینه Sonnet 5 با نرخهای لیست حدود 378 دلار در ماه است. همان برنامه با کش فعال حدود 162 دلار هزینه دارد. انتخاب مدل و تصمیم شما برای استفاده از کش، هر کدام بیش از هر نرخی که در این حجم از ترافیک مذاکره کنید، اهمیت دارند. اینکه کدام مدل را اجرا کنید موضوعی جداگانه است و ارزانترین مدلی که از ارزیابیهای شما سربلند بیرون بیاید، برنده است: انتخاب بین Opus، Sonnet و Haiku نحوه تست صحیح این موضوع را پوشش میدهد.
کش کردن پرامپت (Prompt caching) بخشهای تکراری را حذف میکند
آن پیشوند 4,000 توکنی در هر درخواست یکسان است و شما هر بار هزینه کامل ورودی را برای آن پرداخت میکنید. کش کردن پرامپت، پیشوند پردازششده را ذخیره کرده و برای استفاده مجدد از آن، نرخ کاهشیافتهای دریافت میکند.
هزینه خواندن از کش، 0.1 برابر نرخ پایه ورودی است. هزینه نوشتن در کش برای طول عمر 5 دقیقه، 1.25 برابر نرخ پایه و برای طول عمر 1 ساعت، 2 برابر نرخ پایه است. بنابراین، کش 5 دقیقهای پس از یک بار خواندن هزینهاش جبران میشود، زیرا هزینه نوشتن 0.25 واحد اضافه است در حالی که هر بار خواندن 0.9 واحد صرفهجویی ایجاد میکند. کش 1 ساعته برای رسیدن به نقطه سربهسر به دو بار خواندن نیاز دارد.
سادهترین راه برای فعالسازی آن، استفاده از یک فیلد در سطح بالا است:
curl https://api.anthropic.com/v1/messages \
-H "content-type: application/json" \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5",
"max_tokens": 1024,
"cache_control": {"type": "ephemeral"},
"system": "You are a helpful assistant.",
"messages": [
{"role": "user", "content": "What are the key themes in Pride and Prejudice?"}
]
}'سپس بلوک usage را که در پاسخ بازمیگردد، بخوانید:
{
"usage": {
"cache_creation_input_tokens": 5120,
"cache_read_input_tokens": 1800,
"input_tokens": 50,
"output_tokens": 503
}
}آن سه شمارنده ورودی با سه نرخ متفاوت محاسبه میشوند و مجموع آنها حجم واقعی ورودی شما را تشکیل میدهد: total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens. برآورد هزینهای که فقط input_tokens را میخواند، پس از فعال شدن کشگذاری بهشدت اشتباه خواهد بود.
دو عامل مانع از بهصرفه بودن کش میشوند و هر دو بدون نمایش خطا شکست میخورند.
پیشوند باید از نظر بایتی کاملاً یکسان باشد. جستجوی کش بر اساس تطابق پیشوند است، بنابراین یک برچسب زمانی یا نام کاربر در ابتدای پرامپت سیستم، آن را در هر درخواست تغییر میدهد. در این صورت شما هر بار 1.25 برابر نرخ پایه ورودی را پرداخت میکنید و هرگز از کش نمیخوانید. نشانه این وضعیت، بالا ماندن cache_creation_input_tokens در حالی است که cache_read_input_tokens روی 0 باقی میماند. فیلد cache_control را در آخرین بلوکی قرار دهید که محتوای آن در درخواستهای مختلف ثابت است و هر چیزی که تغییر میکند را بعد از آن بگذارید. تغییر تعاریف tools کل کش زیر آنها را باطل میکند، زیرا فرآیند ابطال به ترتیب روی ابزارها، سپس سیستم و در نهایت پیامها اجرا میشود.
پیشوند باید به اندازه کافی طولانی باشد. حداقل طول قابل کشگذاری برای Opus 5 برابر با 512 توکن، برای Sonnet 5 برابر با 1,024 توکن و برای Haiku 4.5 برابر با 4,096 توکن است. پرامپت کوتاهتر کش نمیشود و هیچ خطایی نیز بازگردانده نمیشود. پیشوند 4,000 توکنی در مثال بالا روی Sonnet 5 کش میشود اما روی Haiku 4.5 کش نمیشود، زیرا 4,000 کمتر از حد مجاز آن مدل است. وقتی هر دو شمارنده 0 را نشان میدهند، یعنی هیچ چیزی کش نشده است.
پردازش دستهای نرخ را نصف میکند
Batch API درخواستها را بهصورت ناهمگام (asynchronous) با 50 درصد تخفیف در ورودی و خروجی پردازش میکند. در مثال بالا، این موضوع هزینه $12.60 برای هر 1,000 درخواست را به $6.30 کاهش میدهد. این تخفیف با قابلیت prompt caching نیز ترکیب میشود، بنابراین یک job دستهایِ کششده، ارزانترین روش برای اجرای کارهای حجیم است.
آنچه در این روش از دست میدهید، تأخیر (latency) است؛ به همین دلیل پردازش دستهای برای هر کاری که کاربر منتظر پاسخ آن است، مناسب نیست. این روش برای طبقهبندیهای شبانه و تکمیل دادههای اسناد (backfill) مناسب است.
چرا هزینههای چت در طول یک گفتگو افزایش مییابد
از آنجا که API هیچ وضعیتی (state) را ذخیره نمیکند، کلاینت شما در هر مرحله کل گفتگو را مجدداً ارسال میکند. بنابراین، میزان مصرف توکن در یک چت به جای رشد خطی، با توان دوم طول گفتگو افزایش مییابد.
مراحل گفتگو را با میانگین 500 توکن در نظر بگیرید. مرحله 1 شامل 500 توکن ورودی است. مرحله 2 شامل 1,000 توکن است. مرحله 20 شامل 10,000 توکن خواهد بود. با استفاده از فرمول n(n+1)/2، یک گفتگوی 20 مرحلهای حدود 105,000 توکن ورودی ارسال کرده است، در حالی که طول خودِ متن گفتگو تنها 10,000 توکن است.
به همین دلیل است که هزینه یک قابلیت چت بیش از آن چیزی است که از روی متن آن به نظر میرسد، و به همین دلیل است که کش کردن پیشوند (prefix) ثابت یا خلاصهسازی مراحل قدیمیتر در رشتههای طولانی گفتگو، از نظر اقتصادی بهصرفه است. عاملی (agent) که روی فراخوانی ابزارها (tool calls) حلقه میزند نیز همین الگو را دارد، با این تفاوت که وضعیت بدتر است: هر نتیجهٔ ابزار در تاریخچه باقی میماند و در هر مرحلهٔ بعدی مجدداً ارسال میشود. تعیین سقف هزینه برای عاملی که خودتان اجرا میکنید در اینجا اهمیت حیاتی دارد، زیرا این رشد بهصورت خودکار رخ میدهد و کسی بر آن نظارت نمیکند.
شمارش توکنها پیش از حدس زدن
تکیه بر تعداد کلمات برای تخمین تعداد توکنها را متوقف کنید. API این کار را برای شما انجام میدهد، بدون هزینه و با محدودیت نرخ (rate limit) جداگانه از ایجاد پیام.
curl https://api.anthropic.com/v1/messages/count_tokens \
-H "x-api-key: $ANTHROPIC_API_KEY" \
-H "content-type: application/json" \
-H "anthropic-version: 2023-06-01" \
-d '{
"model": "claude-opus-5",
"system": "You are a scientist",
"messages": [{
"role": "user",
"content": "Hello, Claude"
}]
}'پاسخ شامل یک فیلد است:
{ "input_tokens": 14 }System prompt و تعریف ابزارهای واقعی خود را به همراه یک پیام نمونه از کاربر به آن بدهید، سپس عدد حاصل را در تابع هزینه بالا قرار دهید. این endpoint همان بدنه (body) درخواست پیام را میپذیرد، بنابراین تصاویر و فایلهای PDF نیز بهدرستی شمارش میشوند. دو نکته مهم وجود دارد: این شمارش یک تخمین است و ممکن است تفاوت جزئی با رقم نهایی صورتحساب داشته باشد. همچنین، این مقدار با tokenizer مدلی که ارسال میکنید اندازهگیری میشود، بنابراین مدلی را ارسال کنید که واقعاً قصد اجرای آن را دارید.
تعداد توکنهای خروجی را نمیتوان از پیش شمارش کرد، زیرا هنوز وجود ندارند. آنها را با max_tokens محدود کنید و سپس توزیع واقعی را از طریق usage.output_tokens روی ترافیک زنده اندازهگیری کنید.
چه موارد دیگری در صورتحساب لحاظ میشود
بخش عمده صورتحساب مربوط به توکنها است. چند مورد دیگر نیز وجود دارند که توکن محسوب نمیشوند و اغلب باعث تعجب کاربران میشوند.
- تعاریف ابزارها (Tool definitions) در هر درخواست به عنوان توکن ورودی محاسبه میشوند. تنها پرامپت سیستم برای استفاده از ابزار در Opus 5، پیش از احتساب اسکیماهای شخصی شما، بین 286 تا 406 توکن اضافه میکند. ده توصیف مفصل برای ابزارها میتواند حجم یک پرامپت کوچک را دو برابر کند.
- هزینه جستجوی وب (Web search) به ازای هر 1,000 جستجو 10 دلار است؛ این هزینه علاوه بر توکنهایی است که نتایج پس از ورود به کانتکست مصرف میکنند.
- واکشی وب (Web fetch) هزینه جداگانهای ندارد، اما صفحه واکشیشده به توکنهای ورودی تبدیل میشود. یک صفحه مستندات 100 کیلوبایتی تقریباً معادل 25,000 توکن است.
- درخواست استنتاج (Inference) صرفاً در ایالات متحده با استفاده از
inference_geoدر Claude 4.6 و نسخههای پس از آن، ضریب 1.1 را برای تمامی دستههای توکن، شامل خواندن و نوشتن در کش (cache)، اعمال میکند.
اینکه آیا خرید API انتخاب درستی است یا خیر، به حجم استفاده شما بستگی دارد. رسیدن به سقف استفاده در یک طرح اشتراکی معمولاً نقطه شروع این پرسش است و مسیرهای خروج از محدودیت از انتظار برای پایان بازه زمانی تا انتقال آن حجم کاری به APIهای مبتنی بر پرداخت متغیر (metered) متفاوت است. در سطوح پایین استفاده، طرحهای ماهانه با قیمت ثابت بهصرفهتر هستند و مقایسه API با اشتراک Claude این بررسی را با اعداد واقعی انجام میدهد.
FAQ
هزینه 1 میلیون توکن در Claude چقدر است؟
این هزینه به مدل و ورودی یا خروجی بودن توکنها بستگی دارد. تا اوت 2026، هزینه یک میلیون توکن ورودی در Claude Haiku 4.5 برابر با $1، در Claude Sonnet 5 با قیمتهای مقدماتی $2 و در Claude Opus 5 برابر با $5 است. هزینه خروجی در هر یک از این مدلها پنج برابر نرخ ورودی است. مدل Sonnet 5 در تاریخ 1 سپتامبر 2026 به نرخ $3 برای ورودی و $15 برای خروجی تغییر وضعیت میدهد. نرخها تغییر میکنند، بنابراین پیش از نهایی کردن بودجه، آنها را در صفحه رسمی قیمتگذاری تأیید کنید.
آیا 1 میلیون توکن با 1 میلیون کلمه برابر است؟
خیر. هر توکن تقریباً معادل 4 کاراکتر انگلیسی یا حدود 0.75 کلمه است، بنابراین یک میلیون توکن حدود 750,000 کلمه است. این نسبت فقط یک راهنماست. کد، JSON و زبانهایی غیر از انگلیسی به ازای هر کلمه از توکنهای بیشتری استفاده میکنند. Claude Opus 4.7 و نسخههای بعد از آن همچنین از توکنایزر جدیدتری استفاده میکنند که برای متن یکسان، تقریباً 30 درصد توکن بیشتری نسبت به Claude Sonnet 4.6 و نسخههای قدیمیتر تولید میکند، بنابراین تعداد توکنها بین نسلهای مختلف مدل قابل مقایسه نیست. برای اندازهگیری از endpoint رایگان /v1/messages/count_tokens استفاده کنید و مدلی را که قصد اجرای آن را دارید، ارسال نمایید.
آیا prompt caching همیشه باعث صرفهجویی در هزینه میشود؟
خیر. نوشتن یک کش 5 دقیقهای 1.25 برابر نرخ پایه ورودی هزینه دارد، بنابراین پیشوندی که نوشته شود اما هرگز خوانده نشود، 25 درصد گرانتر از ارسال ساده آن است. این هزینه از اولین خواندن جبران میشود. این قابلیت به دو صورت شکست میخورد که هر دو بدون اعلام خطا هستند. اگر پیشوند کششده بین درخواستها تغییر کند، lookup هرگز مطابقت پیدا نمیکند، زیرا این یک تطبیق دقیق پیشوند است. اگر پیشوند کوتاهتر از حداقل طول قابل کششدن مدل باشد (که در Sonnet 5 برابر با 1,024 توکن و در Haiku 4.5 برابر با 4,096 توکن است)، هیچچیز کش نمیشود و خطایی هم بازگردانده نمیشود. زمانی که cache_creation_input_tokens و cache_read_input_tokens هر دو 0 را نشان میدهند، کش هیچ کاری انجام نمیدهد.
چرا صورتحساب من سریعتر از تعداد پیامهایم رشد کرد؟
زیرا کل مکالمه در هر نوبت دوباره ارسال میشود. Messages API هیچ حالتی (state) را ذخیره نمیکند، بنابراین نوبت 20 یک چت، تمام 19 نوبت قبلی را دوباره به عنوان ورودی حمل میکند. با میانگین 500 توکن برای هر نوبت، یک مکالمه 20 نوبتی حدود 105,000 توکن ورودی ارسال میکند، در حالی که طول متن مکالمه تنها 10,000 توکن است. حلقههای Agent نیز به همین صورت عمل میکنند، زیرا نتیجه هر ابزار در تاریخچه باقی میماند. پیشوند ثابت را کش کنید، یا نوبتهای قدیمیتر را خلاصهسازی کرده و از درخواست حذف کنید.