AI untuk pemulaPanduan
Token input vs output: apa yang ditagih API AI kepada Anda
Mengapa API AI menghitung token input dan output secara terpisah, di mana membacanya di field usage, dan cara menghitung biaya satu permintaan.

Di halaman ini
Jika Anda baru saja melakukan panggilan API pertama ke model bahasa, Anda mungkin telah melihat blok usage dalam respons dan bertanya-tanya apa sebenarnya yang dihitungnya. Jawaban singkatnya: setiap permintaan memiliki dua meteran. Satu menghitung token yang Anda kirim (input), yang lain menghitung token yang ditulis kembali oleh model (output). Setiap meteran memiliki harga sendiri, dan biaya sebuah permintaan adalah jumlah keduanya.
Panduan ini menunjukkan di mana menemukan angkanya, cara mengubahnya menjadi dolar, dan apa yang dapat Anda ubah untuk mengeluarkan lebih sedikit. Jika kata "token" masih kabur, mulailah dengan Apa itu token dalam AI?.
Apa yang dihitung sebagai input dan apa yang dihitung sebagai output#
Token input adalah semua yang harus dibaca model untuk menjawab Anda:
- pesan terbaru Anda;
- system prompt (instruksi seperti "jawab singkat, dalam bahasa Indonesia");
- pesan-pesan sebelumnya dalam percakapan, jika Anda mengirimnya lagi;
- dokumen, kode, atau hasil pencarian yang Anda tempelkan ke dalam permintaan.
Token output adalah semua yang dihasilkan model sebagai balasan. Dalam format yang kompatibel dengan OpenAI, ini adalah teks dalam choices[0].. Beberapa model dalam mode thinking juga menghasilkan token penalaran sebelum jawaban akhir; periksa halaman harga model untuk melihat apakah token tersebut ditagih sebagai output.
Poin penting bagi pemula: model tidak mengingat obrolan Anda antar permintaan. Aplikasi obrolan mengirim ulang seluruh riwayat setiap kali, jadi input dari percakapan panjang bertambah di setiap giliran, bahkan jika pesan baru Anda hanya satu baris.
Di mana membaca angkanya: blok usage#
Setiap respons non-streaming dari API yang kompatibel dengan OpenAI diakhiri dengan objek usage. Ini adalah contoh edukatif dari bentuknya:
{
"choices": [
{ "message": { "role": "assistant", "content": "..." }, "finish_reason": "stop" }
],
"usage": {
"prompt_tokens": 2000,
"completion_tokens": 500,
"total_tokens": 2500
}
}Gulir tabel ke kanan →
| Field | Artinya | Ditagih sebagai |
|---|---|---|
prompt_tokens |
Token dalam semua yang Anda kirim | Input |
completion_ |
Token yang dihasilkan model | Output |
total_tokens |
prompt_tokens + completion_ |
Bukan harga terpisah: hanya jumlah |
Kesalahan umum pemula adalah mengalikan total_tokens dengan satu harga. Karena input dan output memiliki harga berbeda, Anda memerlukan kedua angka secara terpisah.
Beberapa penyedia menambahkan field tambahan. Misalnya, API DeepSeek sendiri juga memecah prompt_tokens menjadi prompt_ dan prompt_ dan, dalam mode thinking, melaporkan reasoning_tokens (sumber: DeepSeek API docs, diperiksa 21 Oktober 2026). Tiga field dalam tabel adalah yang dapat Anda andalkan dalam respons apa pun yang kompatibel dengan OpenAI.
Saat Anda melakukan streaming jawaban, usage tidak diketahui di awal. Dalam API DeepSeek sendiri, ini tiba di chunk konten terakhir sebelum data: [DONE] (DeepSeek API docs, diperiksa 21 Oktober 2026); API lain mungkin mengirimnya secara berbeda atau hanya berdasarkan permintaan, jadi periksa apa yang diterima klien Anda. Streaming sendiri dibahas dalam Respons streaming di Python.
Mengapa kedua sisi memiliki harga berbeda#
Membaca prompt Anda dan menulis jawaban adalah jenis pekerjaan yang berbeda. Model memproses seluruh prompt dalam satu lintasan, tetapi harus menghasilkan jawaban satu token pada satu waktu, dan setiap token baru bergantung pada token sebelumnya. Itulah sebabnya penyedia biasanya menetapkan harga output lebih tinggi daripada input, dan mengapa Anda melihat dua angka per model di daftar harga mana pun.
Model yang kami gunakan sebagai contoh di bawah, MiniMax-M2.7 (id minimax-m2.7), mengikuti pola ini. Harga saat ini per 1M token adalah $0.05 untuk input dan $0.15 untuk output.
Rumusnya#
Harga dikutip per 1 juta token, jadi biaya satu permintaan adalah:
cost = input_tokens × input_price ÷ 1,000,000
+ output_tokens × output_price ÷ 1,000,000Berikut ini dengan harga bulat yang dibuat-buat, hanya untuk menunjukkan aritmetikanya (contoh, gantikan dengan harga saat ini dari tabel di bawah):
# example, substitute current prices from the table
price_in = 0.20 # USD per 1M input tokens
price_out = 0.80 # USD per 1M output tokens
prompt_tokens = 2000
completion_tokens = 500
cost = (prompt_tokens * price_in + completion_tokens * price_out) / 1_000_000
# 2000 × 0.20 ÷ 1,000,000 = 0.0004 (input)
# 500 × 0.80 ÷ 1,000,000 = 0.0004 (output)
# 0.0004 + 0.0004 = 0.0008 USDContoh perhitungan dengan model nyata#
Ambil permintaan dari contoh usage di atas: 2.000 token input dan 500 token output. Pada MiniMax-M2.7 melalui CheapTokens biayanya $0.00018. Angka tersebut dihitung dari daftar harga saat ini setiap kali halaman ditampilkan.
Satu permintaan sangat kecil, jadi akan membantu untuk memperbesar skala. Aplikasi kecil yang mengirim 10.000 permintaan sebesar ini menggunakan 20.000.000 token input dan 5.000.000 token output, yang berjumlah $1.75.
Permintaan yang sama pada model lain dari daftar kami:
| Model | Input $/1Jt | Output $/1Jt | Biaya | OpenRouter |
|---|---|---|---|---|
| GLM-5.3-Flash | $0.02 | $0.04 | $0.00006 | $0.00012 |
| DeepSeek-V4-Flash | $0.015 | $0.10 | $0.00008 | $0.00017 |
| MiniMax-M2.7 | $0.05 | $0.15 | $0.00018 | $0.0012 |
Total 2.000 token input dan 500 token output. Harga per 1 juta token adalah harga saat ini dan berubah seiring tarif kami; kolom OpenRouter menunjukkan harga referensi untuk beban kerja yang sama.
Perhatikan bahwa output adalah bagian kecil dari jumlah token di sini (500 dari 2.500) tetapi bagian yang lebih besar dari tagihan daripada porsi tokennya, karena token output dihargai lebih tinggi (lihat tabel). Untuk model ini sisi output juga merupakan tempat penghematan terhadap harga referensi OpenRouter dikonfirmasi, yang berguna jika aplikasi Anda menulis jawaban panjang.
Menggunakannya dalam kode#
Anda dapat membaca usage dari paket Python resmi openai dengan mengarahkannya ke base URL CheapTokens:
from openai import OpenAI
client = OpenAI(
base_url="https://api.cheaptokens.dev/v1",
api_key="YOUR_API_KEY",
)
response = client.chat.completions.create(
model="MiniMaxAI/MiniMax-M2.7",
messages=[{"role": "user", "content": "Explain input and output tokens in two sentences."}],
)
usage = response.usage
print("input:", usage.prompt_tokens)
print("output:", usage.completion_tokens)
print("total:", usage.total_tokens)
# example, substitute current prices from the table above
price_in, price_out = 0.20, 0.80
cost = (usage.prompt_tokens * price_in + usage.completion_tokens * price_out) / 1_000_000
print(f"approx. cost: ${cost:.6f}")Jika Anda belum mengirim permintaan, ikuti Permintaan API pertama Anda dengan CheapTokens terlebih dahulu.
Cara mengeluarkan lebih sedikit token#
- Persingkat prompt. Pangkas system prompt dan hapus instruksi yang tidak dibutuhkan model. Setiap token yang Anda kirim ditagih pada setiap permintaan.
- Pangkas riwayat. Dalam obrolan panjang, simpan beberapa giliran terakhir atau ringkasan singkat alih-alih seluruh percakapan.
- Kirim hanya bagian dokumen yang relevan. Satu halaman teks lebih murah daripada seluruh file.
- Minta format yang Anda butuhkan. "Jawab dalam tiga poin" menghasilkan lebih sedikit token output daripada esai terbuka.
- Tetapkan
max_tokensdengan sengaja. Ini hanya membatasi output. Terlalu rendah dan jawaban terpotong; detailnya ada di Mengapa jawaban AI berhenti di tengah kalimat? MiniMax-M2.7 di CheapTokens memungkinkan hingga 8.192 token output per jawaban dan memiliki jendela konteks 180K.
Untuk memperkirakan biaya alur kerja yang lebih besar, lihat Cara memperkirakan biaya agen AI.
Yang perlu diingat#
- Setiap permintaan memiliki token input (
prompt_tokens) dan token output (completion_).tokens - Keduanya memiliki harga terpisah, biasanya dengan output lebih tinggi.
- Biaya = token input × harga input + token output × harga output, dengan harga per 1M token.
- Baca angkanya dari
usagedalam respons daripada menebak.
Di CheapTokens satu saldo prabayar mencakup semua model, harga per model tetap tanpa harga jam sibuk, dan API kompatibel dengan OpenAI Chat Completions dan Anthropic Messages. Untuk mencoba contoh di atas, dapatkan kunci API dan kirim permintaan pertama Anda.
Harga saat ini untuk setiap model: Harga CheapTokens.



