MXterm Pro

Cek Saldo API AI Tanpa Membuka Lima Dashboard

Henry AGI
7 menit baca
Diagram: Token Meter with a pasted API key branching into money balance, plan quota and OpenRouter, which shows either one

Untuk cek saldo API AI, Anda perlu tahu dulu angka apa yang dilaporkan tiap provider. DeepSeek dan Moonshot melaporkan uang. Kimi, MiniMax dan Z.ai melaporkan kuota paket, yaitu persentase dari satu window. OpenRouter melaporkan salah satunya, tergantung apakah key punya batas pengeluaran. Artikel ini membahas endpoint yang bisa Anda panggil sendiri dan cara Token Meter di MXterm Pro membaca keenamnya, termasuk hal-hal yang sengaja ditolak.

Tiga Pertanyaan di Balik Satu Kata

"Kredit" mencakup tiga hal yang cara kerjanya sama sekali berbeda, dan mencampurkannya membuat orang kaget di tengah tugas.

Saldo prabayar adalah uang yang sudah Anda setor, dipotong per request. Saldo ini tidak pernah reset: hanya turun sampai Anda top up lagi. DeepSeek dan Moonshot bekerja seperti ini.

Kuota paket adalah bagian dari sebuah window: coding plan yang memberi sekian per 5 jam, per minggu atau per bulan, lalu terisi lagi saat window berganti. Kimi Code, coding plan MiniMax dan GLM coding plan Z.ai bekerja seperti ini.

Persentase di sini berbeda artinya dari persentase saldo. Jika window reset pada Minggu malam, posisi 90% pada hari Senin pukul 09:00 jauh lebih buruk daripada 90% pada hari Minggu pukul 17:00, karena resetnya hampir seminggu lagi, bukan beberapa jam.

Pengeluaran hanyalah biaya yang sudah terpakai oleh sebuah key, tanpa batas atas. Ini jawaban paling sederhana saat tidak ada batas yang bisa dijadikan pembagi, dan itulah yang dialami OpenRouter pada key tanpa batas.

Apa yang Sebenarnya Disediakan Tiap Provider

DeepSeek menyediakan GET https://api.deepseek.com/user/balance, yang diotorisasi dengan API key biasa sebagai bearer token. Hasilnya berisi balance_infos[], dengan satu baris untuk tiap mata uang.

Tiap baris memuat total_balance (yang benar-benar bisa Anda pakai), topped_up_balance (kredit yang Anda bayar) dan granted_balance (kredit promosi), sebagai string desimal dalam satuan mata uang penuh. Pemisahan antara kredit berbayar dan kredit promosi itu penting, karena kredit promosi biasanya kedaluwarsa lebih dulu.

Moonshot (Kimi Open Platform) menjawab GET /v1/users/me/balance di api.moonshot.ai untuk internasional dan api.moonshot.cn untuk platform China. Responsnya berisi available_balance bersama cash_balance dan voucher_balance. Satu key hanya milik satu platform dan tidak akan berfungsi di platform lainnya.

Satu catatan sebelum Anda membangun apa pun di atasnya: respons ini sama sekali tidak memuat field mata uang. Mata uang disimpulkan dari host yang menjawab, yaitu CNY untuk host China dan USD untuk selainnya. Itu kesimpulan, bukan sesuatu yang dinyatakan server.

Kimi Code adalah langganan, bukan dompet. GET https://api.kimi.com/coding/v1/usages mengembalikan kuota pemakaian 7 hari plus window rate limit yang lebih pendek. Pool bulanan "Total usage" di situs Kimi sendiri berasal dari endpoint web lain yang memakai cookie, jadi API key saja tidak memberi angka itu.

MiniMax memakai key coding plan yang diawali sk-cp-. Endpointnya GET /v1/token_plan/remains di api.minimax.io untuk global atau api.minimaxi.com untuk platform China. Path lama /v1/api/openplatform/coding_plan/remains masih menjawab untuk sebagian akun. Yang dikembalikan adalah sisa kapasitas paket per window, bukan uang.

OpenRouter punya endpoint resmi yang terdokumentasi untuk keperluan ini: GET https://openrouter.ai/api/v1/key mengembalikan limit, limit_remaining dan usage milik key yang memanggil, semuanya dalam USD. Jika key punya batas pengeluaran, Anda mendapat persentase yang sebenarnya.

Z.ai (dan BigModel, platform China-nya) menyediakan kuota coding plan di /api/monitor/usage/quota/limit pada api.z.ai atau open.bigmodel.cn. Endpoint ini tidak ada di referensi API resmi Z.ai. Endpoint inilah yang dipanggil plugin pemakaian open-source milik Z.ai sendiri, jadi ini kode klien yang dipublikasikan vendor, bukan antarmuka yang dijanjikan, dan bisa berubah tanpa pemberitahuan.

Payload-nya juga mencampur dua pool berbeda: kuota token atau kredit paket, dan kuota bulanan terpisah yang menghitung pemanggilan tool MCP seperti web search. Keduanya tidak bisa dipertukarkan. Membaca yang kedua sebagai yang pertama adalah cara mudah untuk mengira paket Anda hampir habis padahal tidak.

Panduan terkaitPenggunaan Token, Batas Paket, dan Saldo: Tiga Angka yang Sering Tertukar

Membacanya Sendiri

Untuk dua di antaranya Anda tidak butuh tool apa pun. Keduanya GET biasa dengan bearer token. curl -H "Authorization: Bearer $DEEPSEEK_API_KEY" https://api.deepseek.com/user/balance memberi angka DeepSeek, dan curl -H "Authorization: Bearer $OPENROUTER_API_KEY" https://openrouter.ai/api/v1/key memberi angka OpenRouter.

Alirkan salah satunya lewat jq dan Anda punya fungsi shell yang bisa dipasang ke alias dalam sekitar satu menit. Itu jawaban yang bagus untuk satu atau dua provider.

Cara ini tidak lagi praktis di sisi operasional. Tiap key harus disimpan di tempat yang bisa dibaca shell Anda, biasanya dotfile atau variabel lingkungan yang di-export. Anda harus ingat menjalankannya, dan angkanya hanya sesegar terakhir kali Anda menjalankannya. Untuk provider yang endpointnya tidak terdokumentasi, Anda juga harus merawat scrape terhadap sesuatu yang bisa berubah tanpa catatan perubahan.

Pilihan gratis lainnya adalah dashboard tiap vendor. Dashboard selalu menampilkan angka resmi, dan menampilkan hal yang tidak bisa dilihat dari API key: invoice, tanggal kedaluwarsa kredit promosi, rincian per key. Ini tempat yang tepat untuk rekonsiliasi bulanan.

Tetapi dashboard kurang cocok untuk pertanyaan "apakah saya akan kehabisan di tengah tugas", yang Anda tanyakan sepuluh kali sehari dan ingin dijawab tanpa meninggalkan pekerjaan Anda.

Yang Dilakukan Token Meter MXterm Pro dengan Semuanya

Keenamnya ditambahkan ke Token Meter pada versi 1.0.22. Di Pengaturan → Token Meter ada satu baris per provider.

Tempel API key dan pilih region jika provider punya (Moonshot internasional/China, MiniMax global/China, Z.ai global/China; key Moonshot dan Z.ai hanya berfungsi di region masing-masing). Provider itu lalu muncul di popover dengan saldo, window kuota atau angka pengeluarannya, diperbarui di latar belakang. Popover menampilkan setiap provider yang Anda siapkan, dan Pengaturan → Token Meter memungkinkan Anda menyematkan satu di bagian atas (Claude Code secara default). Lihat juga halaman Token Meter dan dokumentasi Token Meter.

Satu chip di title bar menampilkan kuota paling ketat dari semua provider, diberi warna menurut seberapa dekat batasnya. Karena alasan di bagian pertama, saldo atau angka pengeluaran tidak pernah dihitung sebagai persentase dan tidak pernah menjadi bar. Jika tidak ada kuota dan Claude Code maupun Codex tidak terpasang, chip menampilkan saldo USD terendah sebagai uang.

Tiap baris menyebutkan usia pembacaannya dan apa yang salah: key ditolak, provider tidak terjangkau, kena rate limit, atau balasan yang tidak bisa dibaca. Jika provider tidak terjangkau atau membatasi pengecekan, baris tetap menyimpan pembacaan terakhir yang baik dan menandainya usang, alih-alih menyajikan angka lama sebagai angka terkini. Key yang ditolak atau balasan yang tidak terbaca menampilkan pesan itu.

Tempat Key Disimpan, dan Apa yang Tidak Pernah Keluar

Berikut rinciannya, karena "kami menyimpannya dengan aman" bukan klaim yang bisa diperiksa siapa pun.

Key yang Anda tempel masuk ke credential store milik sistem operasi Anda. Di macOS, itu item Keychain yang dibuat MXterm sendiri, dengan service MXterm Pro dan account account-usage.<provider>. Build Windows disiapkan untuk memakai credential store Windows, tetapi hal itu belum diverifikasi di sana. Di build saat ini key tidak ditulis ke file milik aplikasi maupun ke penyimpanan browser.

Kolom input tempat Anda menempel sengaja dibuat uncontrolled. Key hanya ada di input DOM itu dan tidak di tempat lain sampai Simpan menyerahkannya ke backend, yang kemudian mengosongkan kolomnya. State aplikasi tidak menyimpannya.

File kedua di direktori data aplikasi, account-usage.json, tidak berisi rahasia. File ini hanya mengingat tiga hal per provider: apakah ada key tersimpan, empat karakter terakhirnya dan region. Title bar membacanya setiap kali dimuat, sehingga aplikasi tahu apa yang sudah Anda atur tanpa satu pun panggilan ke credential store. Jika tidak ada yang diatur, Token Meter sama sekali tidak memanggil credential store dan tidak melakukan panggilan jaringan.

Di build saat ini setiap key hanya dikirim ke host HTTPS yang tertanam di kode untuk provider pemiliknya. Redirect tidak diikuti, sehingga bearer token tidak bisa dialihkan ke host lain. Tidak ada base URL yang bisa diatur pengguna untuk mengarahkan key ke tempat lain.

Teks error berupa kategori tetap, bukan respons mentah: "invalid credentials", "unreachable", "unreadable" atau "rate limited". Setiap tipe yang menyimpan rahasia mencetak [redacted] saat di-debug. Satu-satunya bagian key tersimpan yang ditampilkan aplikasi adalah … plus empat karakter terakhirnya, dan hanya jika key cukup panjang sehingga empat karakter itu tidak membocorkan apa pun.

Yang Sengaja Tidak Dilakukan

Meter yang membaca kredensial perlu dinilai dari penolakannya sama seperti dari fiturnya. Penolakan ini dibuat dengan sengaja.

Tanpa management key. Balasan OpenRouter yang menyatakan berasal dari management atau provisioning key ditolak sebagai tidak valid, karena key semacam itu bisa membuat dan menghapus API key. Aplikasi juga tidak pernah memanggil endpoint kredit akun, yang hanya bisa diakses dengan management key.

Tanpa cookie browser, dan tanpa kredensial tersimpan milik aplikasi lain. Kredensial yang dibaca hanyalah yang Anda tempel dan, khusus untuk Kimi, file token milik Kimi Code CLI sendiri: dibaca, tidak pernah ditulis, tidak pernah di-refresh, karena file itu milik CLI.

Beberapa tool membuat file device-id jika belum ada. MXterm tidak melakukannya, karena tidak mau menulis ke direktori program lain. Jika file itu tidak ada, jalur CLI tidak tersedia dan provider terbaca sebagai belum dikonfigurasi.

Tanpa membanjiri provider. Tiap provider ditanya paling banyak sekali per lima menit. Respons 429 menghentikannya selama lima belas menit. Respons 401 atau 403 menghentikannya sampai Anda mengganti kredensial, alih-alih mencoba ulang key yang ditolak dengan timer. Polling aplikasi hanya berjalan selama setidaknya satu provider sudah dikonfigurasi: key tersimpan, atau file kredensial Kimi Code CLI.

Identitas sendiri, dengan satu pengecualian. Aplikasi memperkenalkan diri lewat User-Agent yang menyebut MXterm dan versinya. Header sumber MiniMax membawa nama MXterm sendiri, dan OpenRouter tidak mendapat header atribusi sama sekali.

Pengecualiannya adalah jalur Kimi Code CLI. Di sana token milik CLI dikirim dengan identitas platform CLI (X-Msh-Platform: kimi_code_cli) dan device id-nya, bersama versi MXterm.

Catatan yang Perlu Disampaikan Terus Terang

Parsing MXterm Pro ditulis dan diuji terhadap fixture dan contoh di dokumentasi, bukan terhadap balasan live yang direkam dari setiap provider.

Jadi jika provider mengganti nama field yang dibutuhkan parser, baris menampilkan "couldn't read the reply" alih-alih angka yang salah. Itu mode kegagalan yang Anda inginkan. Meski begitu, jangan anggap semua ini sebagai sumber pembukuan.

Untuk uang yang harus tepat (invoice, anggaran, chargeback), buka dashboard vendor. Sedangkan untuk pertanyaan "apakah key ini hampir kering selagi tiga agent sedang berjalan", daftar yang memperbarui dirinya sendiri di sudut jendela adalah alat yang lebih cocok.

Lihat sendiri cara kerjanya

SSH multi-pane, Command Recipes (Cmd+J) dan Control Room (sebelumnya War Room) multi-agent: Anda bisa mulai gratis.

Unduh MXterm Pro

Sudah punya MXterm Pro? Baca panduan penyiapan →

Baru mengenal MXterm Pro? Lihat harga →

Pertanyaan yang Sering Diajukan

Dari provider mana saja MXterm Pro bisa membaca saldo atau kuota?

Enam: DeepSeek, Moonshot, Kimi, MiniMax, OpenRouter dan Z.ai, masing-masing dari API key yang Anda tempel di Pengaturan → Token Meter. DeepSeek dan Moonshot melaporkan saldo uang. Kimi, MiniMax dan Z.ai melaporkan window kuota paket. OpenRouter melaporkan kuota jika key punya batas pengeluaran, atau pengeluarannya jika tidak. Claude Code dan Codex dibaca secara terpisah, dari transkrip mereka sendiri di mesin Anda.

Di mana API key saya disimpan, dan apakah dikirim ke tempat lain?

Di credential store sistem operasi Anda. Di macOS, itu item Keychain dengan nama service "MXterm Pro". Windows disiapkan untuk credential store-nya sendiri, tetapi hal itu belum diverifikasi. Di build saat ini key tidak ditulis ke file milik aplikasi atau penyimpanan browser. Key hanya dikirim ke host HTTPS provider-nya yang tertanam di kode. Redirect tidak diikuti, dan tidak ada pengaturan yang mengubah host.

Bisakah saya cek saldo ini tanpa memasang apa pun?

Untuk DeepSeek dan OpenRouter, bisa. Masing-masing GET biasa yang bisa Anda panggil dengan curl dan bearer token (https://api.deepseek.com/user/balance dan https://openrouter.ai/api/v1/key, yang terakhir didokumentasikan OpenRouter untuk keperluan ini). Yang lain juga GET dengan bearer token, tetapi ditambah host regional dan key khusus paket, dan endpoint Z.ai tidak ada di referensi API-nya. Untuk yang itu, pakai dashboard vendor.

Mengapa key Z.ai atau MiniMax saya tidak berfungsi?

Biasanya karena region. Z.ai, MiniMax dan Moonshot masing-masing punya platform global dan China yang terpisah. Pilih region yang sesuai saat menyimpan key: key Moonshot dan Z.ai hanya berfungsi di region masing-masing, dan MXterm mencoba ulang host China MiniMax jika host global menolak key. MiniMax juga membutuhkan key coding plan, yang diawali sk-cp-.

Apakah yang ditampilkan jumlah yang sudah terpakai, atau yang tersisa?

Tergantung apa yang benar-benar dipublikasikan provider. Saldo prabayar adalah jumlah yang tersisa. Kuota paket adalah persentase dari sebuah window beserta waktu reset. Key OpenRouter tanpa batas hanya bisa melaporkan jumlah yang sudah terpakai, jadi itulah yang ditampilkan, diberi label pengeluaran dan tidak dipoles menjadi persentase dari batas yang tidak pernah ditetapkan siapa pun.

Apakah transkrip agent atau prompt saya dikirim ke provider-provider ini?

Di build saat ini, tidak. Baris akun menanyakan endpoint provider tentang akun Anda memakai key Anda, dan request itu tidak membawa apa pun tentang sesi Anda. Jumlah token Claude Code dan Codex dibaca dari transkrip di mesin Anda, yang tidak diunggah.

Tanya AI tentang MXterm Pro

Buka jawaban langsung di ChatGPT, Claude atau Perplexity, berdasarkan halaman ini. Jawaban ditulis oleh asisten, bukan kami, jadi periksa sumber yang dikutipnya.

Pertanyaan yang dikirimBagaimana cara memeriksa saldo kredit API AI dari terminal dengan MXterm Pro, dan provider mana yang didukung?