Berapa Biaya 1 Juta Token di Claude?
Claude menagih token input dan output secara terpisah. Pelajari cara menghitung biaya 1 juta token dan mengapa output bisa berharga lima kali lipat.
Berapa biaya 1M token di Claude?
1M token berarti satu juta token. Ini adalah satuan yang digunakan untuk menyatakan harga setiap Claude API (application programming interface). Tidak ada satu harga tetap, karena token input dan output dikenai tarif yang berbeda, dan setiap model memiliki pasangan tarifnya sendiri. Per Agustus 2026, satu juta token input berharga $1 pada Claude Haiku 4.5, $2 pada Claude Sonnet 5, dan $5 pada Claude Opus 5.
Output adalah bagian yang lebih mahal. Pada setiap model yang tersedia saat ini, tarif output lima kali lebih tinggi daripada tarif input. Karena itu, perbandingan penggunaan input dan output lebih menentukan tagihan daripada angka utama. Aplikasi yang mengirim dokumen panjang dan menghasilkan jawaban singkat akan memiliki pola biaya yang sangat berbeda dari aplikasi yang menulis jawaban panjang berdasarkan prompt singkat.
Halaman ini membahas ekonomi per unit: biaya setiap token dan cara memperkirakan tagihan sebelum Anda mulai membangun aplikasi. Untuk mengetahui ke mana token digunakan selama Anda bekerja, baca ke mana token digunakan dalam sesi Claude Code.
Gambaran 1M token
Token adalah potongan teks yang dibaca atau ditulis model. Panduan kasar dari Anthropic adalah satu token untuk setiap 4 karakter, atau sekitar 0.75 kata dalam bahasa Inggris. Jadi, satu juta token setara dengan sekitar 750,000 kata, atau kira-kira 4 MB teks biasa.
Perkiraan yang telah dipublikasikan untuk input umum memberikan gambaran yang lebih jelas tentang skalanya.
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"
}
]Dengan rasio tersebut, 1M token setara dengan sekitar 400 halaman web rata-rata yang dibaca satu kali, atau delapan makalah penelitian dengan ukuran tersebut. Jumlah ini setara dengan satu kali pemrosesan codebase berukuran sedang, atau penggunaan chat ringan selama satu bulan oleh satu orang.
Anggap semua angka tersebut sebagai perkiraan. Code, JSON, dan teks dalam bahasa selain bahasa Inggris memuat lebih sedikit kata per token, sehingga rasio 0.75 berada pada batas yang optimistis. Ada faktor lain yang memengaruhi jumlah token: Claude Opus 4.7 dan versi setelahnya, termasuk Opus 5 dan Sonnet 5, menggunakan tokenizer yang lebih baru. Tokenizer ini menghasilkan sekitar 30 persen lebih banyak token untuk teks yang sama dibandingkan Sonnet 4.6 dan versi sebelumnya. Claude Haiku 4.5 menggunakan tokenizer lama. Jadi, jumlah yang Anda ukur pada Haiku 4.5 akan lebih rendah daripada jumlah pada Sonnet 5 untuk input yang identik. Artinya, perbandingan langsung harga per juta token pada batas versi tersebut tidak adil. Hitung prompt yang sama pada kedua model sebelum mengambil keputusan.
Biaya Claude per satu juta token
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 menggunakan harga perkenalan sebesar $2 untuk input dan $10 untuk output hingga 31 August 2026. Mulai 1 September 2026, tarif standar berlaku: $3 untuk input dan $15 untuk output. Claude Opus 5 memiliki tarif $5 untuk input dan $25 untuk output. Ada satu model yang tarifnya jauh lebih tinggi: Claude Fable 5 menetapkan $10 untuk input dan $50 untuk output. Karena itu, apakah tarif tersebut layak dibayar bergantung pada pekerjaan yang Anda berikan kepadanya.
Tarif dapat berubah. Anggap setiap angka di halaman ini sebagai contoh perhitungan bertanggal August 2026, lalu konfirmasikan angka terbaru pada halaman harga resmi sebelum menetapkan anggaran.
Panjang konteks tidak mengubah tarif. Pada Claude 4.6 dan versi setelahnya, seluruh jendela konteks 1M token ditagihkan dengan harga standar. Karena itu, permintaan 900,000 token memiliki biaya per token yang sama dengan permintaan 9,000 token. Prompt yang panjang lebih mahal karena jumlah tokennya lebih banyak, bukan karena ada tarif konteks panjang terpisah.
Aritmetika yang tetap berlaku setelah perubahan harga
Setiap tagihan terdiri atas dua perkalian dan satu penjumlahan.
cost = (input_tokens / 1,000,000) * input_rate
+ (output_tokens / 1,000,000) * output_rateDitulis sebagai kode yang dapat Anda jalankan:
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}")Kode tersebut mencetak 0.0126. Permintaan yang mengirim 4,300 token input dan menerima 400 token output berbiaya sekitar 1.3 sen pada Sonnet 5. Simpan kedua tarif di satu tempat dalam kode Anda. Saat harga berubah, Anda cukup mengedit dua baris, dan semua estimasi dalam sistem Anda akan ikut berubah.
Perkiraan terperinci untuk aplikasi nyata
Bayangkan sebuah asisten dukungan. System prompt dan dokumentasi produknya berjumlah 4,000 token, dan dikirim pada setiap permintaan karena Messages API bersifat stateless serta model tidak mengingat apa pun di antara panggilan. Pertanyaan pengguna menambahkan sekitar 300 token. Jawaban berjumlah sekitar 400 token. Jadi, setiap permintaan menggunakan 4,300 token input dan 400 token output.
Satu juta token input cukup untuk sekitar 232 permintaan dengan pola tersebut. Jika aplikasi menerima 1,000 permintaan per hari, aplikasi menggunakan 4.3 juta token input setiap hari. Jadi, "1M tokens" hanya mencakup kurang dari enam jam trafik.
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"
}
]Pada Claude Opus 5, trafik tersebut berbiaya $31.50 per 1,000 permintaan. Pada Sonnet 5, biayanya $12.60. Jika beralih ke Claude Haiku 4.5, biayanya menjadi $6.30, sedangkan prompt cache yang tetap aktif pada Sonnet 5 menurunkannya lebih jauh menjadi $5.40.
Kalikan angka tersebut dengan 30 untuk menghitung biaya trafik selama satu bulan. Sonnet 5 dengan tarif standar berbiaya sekitar $378 per bulan. Aplikasi yang sama dengan cache yang tetap aktif berbiaya sekitar $162. Pilihan model dan keputusan caching Anda masing-masing lebih berpengaruh daripada tarif apa pun yang dapat Anda negosiasikan pada volume ini. Model yang akan digunakan adalah pertanyaan tersendiri. Pilih model termurah yang lulus evaluasi Anda: memilih antara Opus, Sonnet, dan Haiku menjelaskan cara mengujinya dengan benar.
Caching prompt mengurangi biaya bagian yang berulang
Prefiks 4,000 token tersebut identik pada setiap permintaan, tetapi Anda membayar harga input penuh untuknya setiap kali. Caching prompt menyimpan prefiks yang telah diproses dan mengenakan tarif lebih rendah saat prefiks tersebut digunakan kembali.
Pembacaan cache dikenai biaya sebesar 0.1 kali tarif input dasar. Penulisan cache dikenai biaya sebesar 1.25 kali tarif dasar untuk masa berlaku 5 menit, atau 2 kali tarif dasar untuk masa berlaku 1 jam. Jadi, cache 5 menit balik modal setelah satu pembacaan, karena penulisannya membutuhkan biaya tambahan 0.25, sedangkan setiap pembacaan menghemat 0.9. Cache 1 jam memerlukan dua pembacaan untuk mencapai titik impas.
Cara paling sederhana untuk mengaktifkannya adalah dengan satu field tingkat teratas:
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?"}
]
}'Selanjutnya, baca blok usage yang dikembalikan:
{
"usage": {
"cache_creation_input_tokens": 5120,
"cache_read_input_tokens": 1800,
"input_tokens": 50,
"output_tokens": 503
}
}Ketiga penghitung input tersebut ditagihkan dengan tiga tarif berbeda dan jumlahnya sama dengan volume input aktual Anda: total_input_tokens = cache_read_input_tokens + cache_creation_input_tokens + input_tokens. Perkiraan biaya yang hanya membaca input_tokens akan sangat tidak akurat setelah caching diaktifkan.
Ada dua hal yang membuat cache tidak menghasilkan penghematan, dan keduanya gagal secara diam-diam.
Prefiks harus identik hingga tingkat byte. Pencarian cache mencocokkan prefiks, sehingga timestamp atau nama pengguna di bagian awal system prompt mengubahnya pada setiap permintaan. Akibatnya, Anda membayar 1.25 kali tarif input dasar setiap kali dan tidak pernah melakukan pembacaan cache. Tandanya adalah cache_creation_input_tokens tetap tinggi, sedangkan cache_read_input_tokens tetap 0. Letakkan cache_control pada blok terakhir yang isinya sama di semua permintaan, lalu letakkan semua bagian yang berubah setelahnya. Perubahan pada definisi tools akan membatalkan seluruh cache di bawahnya, karena pembatalan berjalan sesuai urutan tools, kemudian system, lalu messages.
Prefiks harus cukup panjang. Panjang minimum yang dapat di-cache adalah 512 token pada Opus 5, 1,024 pada Sonnet 5, dan 4,096 pada Haiku 4.5. Prompt yang lebih pendek tidak di-cache dan tidak menghasilkan error. Prefiks 4,000 token pada contoh di atas di-cache pada Sonnet 5, tetapi tidak di-cache pada Haiku 4.5 karena 4,000 berada di bawah batas minimum model tersebut. Jika kedua penghitung bernilai 0, berarti tidak ada bagian yang di-cache.
Pemrosesan batch mengurangi tarif hingga setengahnya
Batch API memproses permintaan secara asinkron dengan tarif 50 persen lebih rendah untuk input dan output. Pada contoh di atas, tarif $12.60 per 1,000 permintaan menjadi $6.30. Diskon ini dapat digabungkan dengan prompt caching, sehingga batch job dengan cache merupakan cara termurah untuk menjalankan pekerjaan dalam jumlah besar.
Komprominya adalah latensi. Karena itu, batch tidak cocok untuk tugas yang hasilnya sedang ditunggu seseorang. Batch cocok untuk klasifikasi yang dijalankan semalaman dan pengisian data dokumen yang belum diproses.
Mengapa biaya chat meningkat dalam satu percakapan
Karena API tidak menyimpan state, client Anda mengirim ulang seluruh percakapan pada setiap giliran. Oleh karena itu, penggunaan token dalam satu chat meningkat mengikuti kuadrat panjang percakapan, bukan secara linear.
Anggap setiap giliran rata-rata terdiri dari 500 token. Giliran 1 mengirim 500 token input. Giliran 2 mengirim 1,000 token. Giliran 20 mengirim 10,000 token. Jumlahkan dengan rumus n(n+1)/2, dan percakapan dengan 20 giliran telah mengirim sekitar 105,000 token input, sementara transkripnya sendiri hanya sepanjang 10,000 token.
Itulah sebabnya fitur chat dapat berbiaya lebih tinggi daripada yang terlihat dari transkripnya, dan mengapa caching prefix yang stabil atau meringkas giliran lama akan sepadan pada thread yang panjang. Agent yang melakukan loop pada pemanggilan tool memiliki pola yang sama, bahkan lebih buruk: setiap hasil tool tetap berada dalam riwayat dan dikirim ulang pada setiap giliran berikutnya. Menetapkan batas pengeluaran yang ketat untuk agent yang Anda jalankan sendiri paling penting dalam situasi ini, karena pertumbuhan tersebut berlangsung otomatis dan tidak ada yang memantaunya.
Hitung token sebelum menebak
Jangan lagi menghitung jumlah token berdasarkan jumlah kata. API menghitungnya untuk Anda tanpa biaya, dengan batas laju yang terpisah dari pembuatan pesan.
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"
}]
}'Respons ini berisi satu field:
{ "input_tokens": 14 }Kirim system prompt dan definisi tool yang sebenarnya, beserta pesan pengguna yang representatif, lalu masukkan jumlah tersebut ke fungsi biaya di atas. Endpoint ini menerima body yang sama seperti permintaan pesan, sehingga gambar dan PDF juga dihitung dengan benar. Ada dua hal penting. Jumlah tersebut merupakan estimasi dan dapat sedikit berbeda dari angka yang ditagihkan. Pengukuran juga dilakukan menggunakan tokenizer dari model yang Anda teruskan, jadi teruskan model yang benar-benar akan Anda jalankan.
Token output tidak dapat dihitung sebelumnya karena token tersebut belum ada. Batasi jumlahnya dengan max_tokens, lalu ukur distribusi aktualnya dari usage.output_tokens pada trafik langsung.
Apa saja yang masuk ke tagihan
Token mencakup sebagian besar biaya. Beberapa komponen bukan token dan sering mengejutkan pengguna.
- Definisi tool menjadi token input pada setiap request. System prompt untuk penggunaan tool saja menambahkan 286 hingga 406 token pada Opus 5, sebelum schema Anda sendiri ditambahkan. Sepuluh deskripsi tool yang panjang dapat menggandakan prompt yang kecil.
- Web search dikenai biaya $10 per 1.000 pencarian, di luar biaya token yang digunakan hasil pencarian saat masuk ke context.
- Web fetch tidak menambahkan biaya tersendiri, tetapi halaman yang diambil menjadi token input. Halaman dokumentasi berukuran 100 kB kira-kira terdiri dari 25,000 token.
- Permintaan inference khusus AS dengan
inference_geopada Claude 4.6 dan versi setelahnya menerapkan multiplier 1.1 pada setiap kategori token, termasuk pembacaan dan penulisan cache.
Kelayakan API sebagai pilihan pembelian bergantung pada volume penggunaan Anda. Pertanyaan ini biasanya muncul setelah Anda mencapai batas penggunaan pada suatu plan. Pilihan setelah mencapai batas berkisar dari menunggu hingga periode batas berakhir sampai memindahkan pekerjaan tersebut ke panggilan API terukur. Di bawah tingkat penggunaan tertentu, plan bulanan tetap jelas lebih menguntungkan. Perbandingan API dengan langganan Claude menghitung perbandingan tersebut menggunakan angka nyata.
FAQ
Berapa biaya 1M token di Claude?
Biayanya bergantung pada model dan apakah token tersebut merupakan input atau output. Per Agustus 2026, satu juta token input berbiaya $1 pada Claude Haiku 4.5, $2 pada Claude Sonnet 5 dengan harga perkenalan, dan $5 pada Claude Opus 5. Biaya output lima kali lipat dari tarif input pada masing-masing model tersebut. Harga Sonnet 5 berubah menjadi $3 untuk input dan $15 untuk output pada 1 September 2026. Tarif dapat berubah. Konfirmasikan tarif tersebut di halaman harga resmi sebelum memasukkan angka ke anggaran.
Apakah 1M token sama dengan 1M kata?
Tidak. Satu token kira-kira terdiri dari 4 karakter dalam bahasa Inggris, atau sekitar 0.75 kata. Jadi, satu juta token setara dengan sekitar 750,000 kata. Rasio tersebut hanya merupakan perkiraan. Kode, JSON, dan bahasa selain bahasa Inggris menggunakan lebih banyak token per kata. Claude Opus 4.7 dan versi setelahnya juga menggunakan tokenizer yang lebih baru. Tokenizer ini menghasilkan sekitar 30 persen lebih banyak token untuk teks yang sama dibandingkan Claude Sonnet 4.6 dan versi sebelumnya. Karena itu, jumlah token tidak dapat langsung dibandingkan antar-generasi model. Lakukan pengukuran dengan endpoint gratis /v1/messages/count_tokens menggunakan model yang akan Anda jalankan.
Apakah prompt caching selalu menghemat biaya?
Tidak. Penulisan cache selama 5 menit berbiaya 1.25 kali tarif input dasar. Jadi, prefix yang ditulis tetapi tidak pernah dibaca berbiaya 25 persen lebih tinggi daripada jika dikirim secara biasa. Biayanya tertutup sejak pembacaan pertama. Fitur ini dapat gagal dalam dua cara, dan keduanya tidak menampilkan pesan error. Jika prefix yang di-cache berubah antar-permintaan, pencarian tidak pernah cocok karena pencocokan prefix dilakukan secara persis. Jika prefix lebih pendek daripada panjang minimum yang dapat di-cache oleh model, yaitu 1,024 token pada Sonnet 5 dan 4,096 token pada Haiku 4.5, tidak ada yang di-cache dan tidak ada error yang dikembalikan. Jika cache_creation_input_tokens dan cache_read_input_tokens sama-sama bernilai 0, cache tidak melakukan apa pun.
Mengapa tagihan saya bertambah lebih cepat daripada jumlah pesan?
Karena seluruh percakapan dikirim ulang pada setiap giliran. Messages API tidak menyimpan state. Oleh karena itu, giliran ke-20 dalam sebuah chat kembali membawa seluruh 19 giliran sebelumnya sebagai input. Jika setiap giliran rata-rata berisi 500 token, percakapan dengan 20 giliran mengirim sekitar 105,000 token input, meskipun transkripnya hanya berisi 10,000 token. Agent loop berperilaku sama karena setiap hasil tool tetap berada dalam riwayat. Cache prefix yang stabil, atau buat ringkasan untuk giliran lama lalu keluarkan giliran tersebut dari request.