هزینه 1M توکن در Claude چقدر است؟
هزینه 1M توکن در Claude ثابت نیست: نرخ ورودی و خروجی جداگانه محاسبه میشود و خروجی در مدلهای فعلی 5 برابر ورودی است. محاسبه دقیق را ببینید.
1M توکن در Claude چقدر هزینه دارد؟
1M توکن یعنی یک میلیون توکن. قیمت هر Claude API (رابط برنامهنویسی کاربردی) بر اساس همین واحد اعلام میشود. برای آن یک قیمت ثابت وجود ندارد، زیرا هزینه توکنهای ورودی و خروجی با نرخهای متفاوت محاسبه میشود و هر مدل نیز جفت نرخ مخصوص خود را دارد. تا August 2026، هزینه یک میلیون توکن ورودی در Claude Haiku 4.5 برابر با $1، در Claude Sonnet 5 برابر با $2 و در Claude Opus 5 برابر با $5 است.
خروجی بخش گرانتر هزینه است. در همه مدلهای فعلی، نرخ خروجی پنج برابر نرخ ورودی است. بنابراین، نسبت میان این دو بیشتر از رقم اصلی، هزینه نهایی شما را تعیین میکند. برنامهای که اسناد طولانی ارسال میکند و پاسخهای کوتاه برمیگرداند، با برنامهای که از یک prompt کوتاه پاسخهای طولانی تولید میکند، هزینه کاملاً متفاوتی خواهد داشت.
این صفحه به اقتصاد واحد میپردازد: هزینه هر توکن چقدر است و پیش از ساخت برنامه چگونه هزینه را برآورد کنید. برای اینکه ببینید هنگام کار توکنها دقیقاً کجا مصرف میشوند، محل مصرف توکنها در یک نشست Claude Code را بخوانید.
1M توکن چه شکلی است؟
توکن بخشی از متنی است که مدل آن را میخواند یا مینویسد. راهنمای تقریبی Anthropic این است که هر 4 نویسه تقریباً 1 توکن، یا حدود 0.75 واژه انگلیسی، محسوب میشود. بنابراین 1M توکن تقریباً برابر با 750,000 واژه یا حدود 4 MB متن ساده است.
برآوردهای منتشرشده برای ورودیهای رایج، مقیاس را بهتر نشان میدهند.
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"
}
]با این نرخها، 1M توکن تقریباً معادل مطالعه یکباره 400 صفحه وب معمولی یا هشت مقاله پژوهشی با همین اندازه است. این مقدار برای یک بار پردازش یک codebase متوسط، یا یک ماه استفاده سبک از گفتوگو برای یک نفر، کافی است.
همه این اعداد را تقریبی در نظر بگیرید. کد، JSON و متن به زبانهایی غیر از انگلیسی، واژههای کمتری را در هر توکن جای میدهند؛ بنابراین نسبت 0.75 در سمت خوشبینانه قرار دارد. عامل دیگری نیز شمارش را تغییر میدهد: Claude Opus 4.7 و نسخههای بعدی، از جمله Opus 5 و Sonnet 5، از tokenizer جدیدتری استفاده میکنند که برای همان متن، تقریباً 30 درصد توکن بیشتری نسبت به Sonnet 4.6 و نسخههای قبل تولید میکند. Claude Haiku 4.5 از tokenizer قدیمی استفاده میکند. بنابراین شمارشی که در Haiku 4.5 اندازهگیری کردهاید، برای همان ورودی در Sonnet 5 کمتر از مقدار واقعی خواهد بود؛ در نتیجه، مقایسه مستقیم قیمت بهازای هر میلیون توکن در دو سوی این مرز منصفانه نیست. پیش از تصمیمگیری، همان prompt را در هر دو مدل شمارش کنید.
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 برای توکنهای خروجی است.
نرخها تغییر میکنند. همه ارقام این صفحه را نمونهای محاسباتی مربوط به August 2026 در نظر بگیرید و پیش از نهاییکردن بودجه، ارقام فعلی را در صفحه رسمی قیمتگذاری تأیید کنید.
طول context نرخ را تغییر نمیدهد. در Claude 4.6 و نسخههای بعدی، کل پنجره context یکمیلیونتوکنی با قیمت استاندارد محاسبه میشود؛ بنابراین هزینه هر توکن در یک درخواست 900,000 توکنی با درخواست 9,000 توکنی یکسان است. یک prompt طولانی هزینه بیشتری دارد، زیرا توکنهای بیشتری دارد و نرخ جداگانهای برای context طولانی اعمال نمیشود.
محاسبهای که پس از تغییر قیمت نیز معتبر میماند
هر صورتحساب شامل دو ضرب و یک جمع است.
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 را چاپ میکند. در Sonnet 5، درخواستهایی که 4,300 توکن ورودی ارسال میکنند و 400 توکن خروجی دریافت میکنند، حدود 1.3 سنت هزینه دارند. دو نرخ را در یک بخش از کد نگه دارید. با تغییر قیمت، دو خط را ویرایش میکنید و همه برآوردها در سیستم شما نیز بر اساس آن تغییر میکنند.
یک برآورد عملی برای یک برنامه واقعی
یک دستیار پشتیبانی را در نظر بگیرید. system prompt و مستندات محصول آن در مجموع 4,000 توکن هستند و در هر درخواست ارسال میشوند، زیرا Messages API بدون حالت است و مدل بین فراخوانیها چیزی را به خاطر نمیسپارد. پرسش کاربر حدود 300 توکن اضافه میکند. پاسخ نیز حدود 400 توکن است. بنابراین هر درخواست شامل 4,300 توکن ورودی و 400 توکن خروجی است.
یک میلیون توکن ورودی برای حدود 232 درخواست با این ساختار کافی است. اگر برنامه روزانه 1,000 درخواست دریافت کند، روزانه 4.3 میلیون توکن ورودی مصرف میکند؛ بنابراین «1M توکن» کمتر از 6 ساعت ترافیک را پوشش میدهد.
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 برای هر 1,000 درخواست $31.50 هزینه دارد. در Sonnet 5 این هزینه $12.60 است. با استفاده از Claude Haiku 4.5 هزینه به $6.30 میرسد و استفاده از prompt cache گرم در Sonnet 5 هزینه را باز هم کاهش میدهد و به $5.40 میرساند.
برای محاسبه هزینه یک ماه با همین حجم ترافیک، عدد را در 30 ضرب کنید. هزینه Sonnet 5 با نرخهای فهرست حدود $378 در ماه است. همین برنامه با warm cache حدود $162 هزینه دارد. انتخاب مدل و تصمیم درباره caching، هر کدام در این حجم استفاده ارزش بیشتری از هر تخفیفی دارند که بتوانید درباره نرخ آن مذاکره کنید. انتخاب مدل موضوعی جداگانه است؛ ارزانترین مدلی که ارزیابیهای شما را با موفقیت پشت سر بگذارد، گزینه مناسب است: انتخاب بین Opus، Sonnet و Haiku روش آزمایش صحیح آن را توضیح میدهد.
کشکردن پرامپت بخش تکراری را کاهش میدهد
آن پیشوند 4,000 توکنی در همه درخواستها یکسان است و هر بار هزینه کامل ورودی را برای آن میپردازید. کشکردن پرامپت، پیشوند پردازششده را ذخیره میکند و برای استفاده مجدد از آن، نرخ کمتری دریافت میشود.
هزینه خواندن کش برابر با 0.1 برابر نرخ پایه ورودی است. هزینه نوشتن کش برای طول عمر 5 دقیقه، 1.25 برابر نرخ پایه و برای طول عمر 1 ساعت، 2 برابر نرخ پایه است. بنابراین کش 5 دقیقهای پس از یک خواندن هزینه خود را جبران میکند، چون نوشتن آن 0.25 هزینه اضافی دارد و هر خواندن 0.9 صرفهجویی ایجاد میکند. کش 1 ساعته برای رسیدن به نقطه سربهسر به 2 خواندن نیاز دارد.
سادهترین روش فعالکردن آن، افزودن یک فیلد سطح بالا است:
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
}
}برای این 3 شمارنده ورودی، 3 نرخ متفاوت اعمال میشود و مجموع آنها حجم واقعی ورودی شماست: total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens. برآورد هزینهای که فقط input_tokens را بخواند، پس از فعالشدن کش بهشدت نادرست خواهد بود.
2 مورد مانع جبران هزینه کش میشوند و هر دو بدون نمایش خطا شکست میخورند.
پیشوند باید از نظر بایت کاملاً یکسان باشد. جستوجوی کش بر اساس تطبیق پیشوند انجام میشود؛ بنابراین وجود timestamp یا نام کاربر در ابتدای system prompt باعث میشود پیشوند در هر درخواست تغییر کند. در این حالت، هر بار 1.25 برابر نرخ پایه ورودی میپردازید و حتی یک بار هم خواندن کش انجام نمیشود. نشانه این وضعیت، بالا ماندن cache_creation_input_tokens و 0 ماندن cache_read_input_tokens است. cache_control را روی آخرین بلوکی قرار دهید که محتوای آن در همه درخواستها یکسان است و هر چیزی را که تغییر میکند، بعد از آن قرار دهید. تغییر دادن تعریفهای tools، کل کش زیر آنها را نامعتبر میکند، زیرا بیاعتبارسازی با ترتیب tools، سپس system و سپس messages انجام میشود.
پیشوند باید بهاندازه کافی طولانی باشد. حداقل طول قابل کشکردن در Opus 5 برابر با 512 توکن، در Sonnet 5 برابر با 1,024 توکن و در Haiku 4.5 برابر با 4,096 توکن است. پرامپت کوتاهتر کش نمیشود و هیچ خطایی نیز برگردانده نمیشود. پیشوند 4,000 توکنی مثال بالا در Sonnet 5 کش میشود، اما در Haiku 4.5 کش نمیشود، چون 4,000 کمتر از حداقل طول آن مدل است. وقتی هر دو شمارنده مقدار 0 را نشان میدهند، هیچ چیزی کش نشده است.
پردازش دستهای نرخ را نصف میکند
Batch API درخواستها را بهصورت ناهمگام پردازش میکند و برای ورودی و خروجی، 50 درصد تخفیف ارائه میدهد. در مثال بالا، هزینه از $12.60 بهازای هر 1,000 درخواست، به $6.30 تبدیل میشود. این تخفیف با prompt caching قابل جمع است؛ بنابراین، یک کار دستهایِ ذخیرهشده در cache، ارزانترین روش برای اجرای کارهای حجیم است.
در مقابل، latency را از دست میدهید؛ بنابراین batch برای هر کاری که کاربر در انتظار نتیجه آن است، مناسب نیست. این روش برای classification شبانه و backfill کردن اسناد مناسب است.
چرا هزینه چت در یک گفتوگو افزایش مییابد
از آنجا که API هیچ وضعیتی را حفظ نمیکند، کل گفتوگو در هر نوبت دوباره ارسال میشود. بنابراین، مصرف توکن در یک چت با مربع طول آن افزایش مییابد، نه بهصورت خطی.
فرض کنید میانگین هر نوبت 500 توکن باشد. نوبت 1، تعداد 500 توکن ورودی ارسال میکند. نوبت 2، تعداد 1,000 توکن ارسال میکند. نوبت 20، تعداد 10,000 توکن ارسال میکند. با استفاده از مجموع n(n+1)/2، یک گفتوگوی 20 نوبتی حدود 105,000 توکن ورودی ارسال کرده است، درحالیکه خود متن گفتوگو فقط 10,000 توکن طول دارد.
به همین دلیل، هزینه یک قابلیت چت بیشتر از چیزی است که متن گفتوگو نشان میدهد. همچنین به همین دلیل، cache کردن پیشوند ثابت یا خلاصهسازی نوبتهای قدیمی در رشتههای طولانی هزینه خود را جبران میکند. یک agent که در حلقهای فراخوانیهای ابزار را اجرا میکند، همین الگو را دارد و وضعیت بدتر است: هر نتیجه ابزار در تاریخچه باقی میماند و در هر نوبت بعدی دوباره ارسال میشود. تعیین محدودیت سخت برای هزینهکرد یک agent که خودتان اجرا میکنید در اینجا اهمیت بیشتری دارد، زیرا این رشد بهصورت خودکار رخ میدهد و کسی آن را پایش نمیکند.
پیش از حدس، توکنها را بشمارید
تعداد توکنها را از تعداد کلمات محاسبه نکنید. API این کار را بدون هزینه و با یک محدودیت نرخ جداگانه از ایجاد پیام انجام میدهد.
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 }پرامپت واقعی سیستم و تعریف ابزارها را همراه با یک پیام کاربر نماینده به آن بدهید، سپس عدد بهدستآمده را در تابع هزینه بالا قرار دهید. این endpoint همان بدنه درخواست پیام را میپذیرد؛ بنابراین تصاویر و PDFها نیز بهدرستی شمارش میشوند. دو نکته مهم وجود دارد. این شمارش یک برآورد است و ممکن است اندکی با مقدار صورتحسابشده تفاوت داشته باشد. همچنین شمارش با tokenizer مدلی انجام میشود که ارسال میکنید؛ بنابراین مدلی را ارسال کنید که واقعاً اجرا خواهید کرد.
توکنهای خروجی را نمیتوان از قبل شمارش کرد، زیرا هنوز وجود ندارند. تعداد آنها را با max_tokens محدود کنید، سپس توزیع واقعی را از usage.output_tokens در ترافیک زنده اندازهگیری کنید.
چه موارد دیگری به صورتحساب اضافه میشوند
بخش عمده صورتحساب مربوط به توکنها است. چند مورد توکن نیستند و معمولاً باعث شگفتی کاربران میشوند.
- تعریفهای ابزار در هر درخواست به توکنهای ورودی تبدیل میشوند. فقط system prompt مربوط به استفاده از ابزار در Opus 5، پیش از افزودن schemaهای شما، 286 تا 406 توکن اضافه میکند. 10 توضیح طولانی برای ابزارها میتواند یک prompt کوچک را دو برابر کند.
- هزینه Web search، علاوه بر توکنهایی که نتایج هنگام ورود به context مصرف میکنند، برای هر 1,000 جستوجو $10 است.
- Web fetch هزینه جداگانهای ندارد، اما صفحه دریافتشده به توکنهای ورودی تبدیل میشود. یک صفحه مستندات 100 kB تقریباً 25,000 توکن دارد.
- درخواست inference فقط برای آمریکا با
inference_geoدر Claude 4.6 و نسخههای بعدی، ضریب 1.1 را برای همه دستههای توکن اعمال میکند؛ این ضریب شامل خواندن و نوشتن cache نیز میشود.
اینکه API اساساً گزینه مناسبی برای خرید باشد یا نه، به حجم استفاده شما بستگی دارد. اگر میزان استفاده از سطح مشخصی کمتر باشد، یک طرح ماهانه ثابت بدون تردید مقرونبهصرفهتر است و مقایسه API با اشتراک Claude این موضوع را با اعداد واقعی بررسی میکند.
FAQ
هزینه 1M توکن در Claude چقدر است؟
این هزینه به مدل و همچنین به این بستگی دارد که توکنها ورودی باشند یا خروجی. در ماه August 2026، هزینه یک میلیون توکن ورودی در Claude Haiku 4.5 برابر با $1، در Claude Sonnet 5 با قیمتگذاری مقدماتی برابر با $2 و در Claude Opus 5 برابر با $5 است. هزینه خروجی در هر یک از این مدلها 5 برابر نرخ ورودی است. قیمت ورودی Sonnet 5 در 1 September 2026 به $3 و قیمت خروجی آن به $15 تغییر میکند. نرخها تغییر میکنند؛ بنابراین پیش از وارد کردن مبلغی در بودجه، آن را در صفحه رسمی قیمتگذاری بررسی کنید.
آیا 1M توکن با 1M کلمه برابر است؟
خیر. هر توکن تقریباً شامل 4 نویسه انگلیسی یا حدود 0.75 کلمه است؛ بنابراین یک میلیون توکن تقریباً برابر با 750,000 کلمه است. این نسبت فقط یک راهنماست. کد، JSON و زبانهای غیرانگلیسی به ازای هر کلمه از توکنهای بیشتری استفاده میکنند. Claude Opus 4.7 و نسخههای بعدی نیز از tokenizer جدیدتری استفاده میکنند که برای متن یکسان، تقریباً 30 درصد توکن بیشتر از Claude Sonnet 4.6 و نسخههای قبلی تولید میکند؛ بنابراین تعداد توکنها بین نسلهای مدل قابل انتقال نیست. تعداد توکنها را با endpoint رایگان /v1/messages/count_tokens اندازهگیری کنید و مدلی را که قصد اجرای آن را دارید به آن بدهید.
آیا prompt caching همیشه باعث صرفهجویی در هزینه میشود؟
خیر. نوشتن cache با مدت 5 دقیقه، 1.25 برابر نرخ پایه ورودی هزینه دارد؛ بنابراین پیشوندی که نوشته شود اما هرگز خوانده نشود، 25 درصد بیشتر از ارسال عادی آن هزینه خواهد داشت. این هزینه از نخستین خواندن جبران میشود. این فرایند به دو شکل و هر دو بدون اعلام خطا شکست میخورد. اگر پیشوند cacheشده بین درخواستها تغییر کند، جستوجو هرگز با آن مطابقت پیدا نمیکند؛ زیرا تطبیق پیشوند باید دقیق باشد. اگر طول پیشوند از حداقل طول قابل cache شدن مدل کمتر باشد، یعنی 1,024 توکن در Sonnet 5 و 4,096 توکن در Haiku 4.5، چیزی cache نمیشود و هیچ خطایی نیز برگردانده نمیشود. وقتی cache_creation_input_tokens و cache_read_input_tokens هر دو مقدار 0 را میخوانند، cache هیچ کاری انجام نمیدهد.
چرا صورتحساب من سریعتر از تعداد پیامها افزایش یافت؟
زیرا کل مکالمه در هر نوبت دوباره ارسال میشود. Messages API هیچ وضعیتی را نگه نمیدارد؛ بنابراین نوبت 20 یک گفتوگو، هر 19 نوبت قبلی را دوباره بهعنوان ورودی ارسال میکند. اگر میانگین هر نوبت 500 توکن باشد، یک گفتوگوی 20 نوبتی حدود 105,000 توکن ورودی ارسال میکند، در حالی که طول متن مکالمه فقط 10,000 توکن است. حلقههای agent نیز به همین شکل عمل میکنند، زیرا نتیجه هر ابزار در تاریخچه باقی میماند. پیشوند ثابت را cache کنید، یا نوبتهای قدیمیتر را خلاصه کنید و آنها را از درخواست حذف کنید.