Kuota akun
Baca sisa kuota paket dan anggaran kupon kamu dalam Rupiah utuh, supaya agen atau skrip bisa memeriksanya sebelum memulai pekerjaan yang panjang. Endpoint ini khusus kenari dan tidak punya padanan di OpenAI maupun Anthropic.
GET /v1/account/quota
Request
Section titled “Request”Endpoint ini tidak menerima parameter query maupun body. Endpoint ini membutuhkan API key di header Authorization.
| Header | Wajib | Keterangan |
|---|---|---|
Authorization | ya | Bearer kn-.... API key dibagikan dan key yang dibatasi ditolak. Lihat Autentikasi & API key. |
Response
Section titled “Response”Response berisi dua field, plan dan coupon. Masing-masing berupa objek, atau null kalau tidak berlaku.
| Field | Tipe | Keterangan |
|---|---|---|
plan | objek atau null | Paket aktif kamu. null kalau kamu belum pernah berlangganan, paket sudah berakhir, atau paket tidak lagi ditawarkan. |
plan.name | string | Nama paket. |
plan.windows | objek | Jendela kuota yang punya plafon. Nama field yang mungkin muncul adalah five_hour, week, dan month. Jendela tanpa plafon tidak ditampilkan, jadi objek ini bisa kosong. |
plan.windows.<key>.used_rp | integer | Rupiah yang terpakai di jendela ini, dibulatkan ke atas. |
plan.windows.<key>.remaining_rp | integer | Rupiah yang tersisa di jendela ini, dibulatkan ke bawah dan tidak pernah di bawah 0. |
plan.windows.<key>.resets_at | string | Waktu jendela rolling ini direset, dalam RFC 3339 UTC. |
coupon | objek atau null | Kupon aktif. null kalau kamu tidak punya atau kupon sudah kedaluwarsa. Kupon dilaporkan terpisah dari paket, jadi kamu bisa punya kupon tanpa paket. |
coupon.name | string | Nama kupon. |
coupon.used_rp | integer | Rupiah yang terpakai dari kupon, dibulatkan ke atas. |
coupon.remaining_rp | integer atau null | Rupiah yang tersisa di kupon: anggaran yang dibulatkan ke bawah menjadi Rupiah utuh, dikurangi used_rp, dan tidak pernah di bawah 0. null kalau kupon tidak punya batas pengeluaran. |
coupon.expires_at | string | Waktu kupon kedaluwarsa, dalam RFC 3339 UTC. |
coupon.scope_models | array of string | Id model yang ditanggung kupon. |
{ "plan": { "name": "Indie", "windows": { "week": { "used_rp": 12000, "remaining_rp": 63000, "resets_at": "2026-10-13T07:12:00Z" }, "month": { "used_rp": 12000, "remaining_rp": 288000, "resets_at": "2026-10-30T07:12:00Z" } } }, "coupon": null}Untuk cara kerja jendela, kupon, dan model tercakup, lihat Langganan.
Contoh
Section titled “Contoh”curl https://kenari.id/v1/account/quota \ -H "Authorization: Bearer $KENARI_API_KEY"Python
Section titled “Python”import osimport requests
response = requests.get( "https://kenari.id/v1/account/quota", headers={"Authorization": f"Bearer {os.environ['KENARI_API_KEY']}"},)response.raise_for_status()quota = response.json()
for name, window in (quota["plan"] or {}).get("windows", {}).items(): print(name, window["remaining_rp"], window["resets_at"])JavaScript
Section titled “JavaScript”const response = await fetch("https://kenari.id/v1/account/quota", { headers: { Authorization: `Bearer ${process.env.KENARI_API_KEY}` },});if (!response.ok) throw new Error(await response.text());const quota = await response.json();
for (const [name, window] of Object.entries(quota.plan?.windows ?? {})) { console.log(name, window.remaining_rp, window.resets_at);}Tool MCP kenari_quota mengembalikan data paket dan kupon yang sama sebagai teks biasa. Lihat Server MCP.
Penagihan
Section titled “Penagihan”Membaca kuota kamu gratis. Lihat Cara penagihan.
| Status | Kode | Kapan |
|---|---|---|
| 401 | Tidak ada | Key tidak ada, tidak valid, atau sudah kedaluwarsa. Body-nya pesan teks singkat, bukan JSON. |
| 403 | shared_key_not_allowed | Key adalah API key dibagikan. API key dibagikan tidak bisa membaca kuota pemiliknya. |
| 403 | restricted_key_not_allowed | Key punya pembatasan model, batas biaya, atau batas token. Pakai key tanpa pembatasan dari akun itu sendiri. |
| 500 | internal_error | Pembacaan kuota gagal di kenari. Coba lagi sekali. |
Lihat Error untuk format error dan kode lainnya.