Subscriptions
A subscription plan gives you a quota of chat usage on a list of models for a monthly price. While quota remains, requests to those models draw from it and your balance is not touched. This page covers how quota is measured, what happens when it runs out, and which endpoints a plan never covers. For money in general, see How billing works.
Plans and quota windows
Section titled “Plans and quota windows”Each plan has up to three quota windows. A window with no ceiling is unlimited.
| Window | Length |
|---|---|
| 5 hours | 5 hours |
| Weekly | 7 days |
| Monthly | 30 days |
Quota is measured in Rupiah at each model’s normal price, not in request counts. An expensive request, such as a large model with a long prompt, spends more of it. A request passes only when every window with a ceiling has room.
Windows roll, and they do not follow the calendar. Each window starts when your plan cycle starts and resets every window length after that. Renewing the same plan early extends the cycle and keeps the windows where they are. Upgrading to a higher plan starts new windows, and the remaining days of the old plan are credited toward the new price. Starting a new cycle resets every window right away.
Covered models
Section titled “Covered models”Each plan lists the models it covers. A request to a covered model draws from quota. A request to any other model is billed to your balance as PAYG, whatever quota is left. The live list for each plan is in the table at the end of this page.
A plan can also carry its own daily quota for :free models, separate from the quota windows. See Free models.
Pay for a plan
Section titled “Pay for a plan”Choose a plan on the Plan page and pay by QRIS, crypto or balance. A plan lasts 30 days from payment.
A QRIS or crypto payment is checked again when it completes. If your plan or the plan price changed in the meantime, or the promo code on the invoice was already used, the plan is not activated. The amount you paid is added to your balance instead and you get a notification. Choose the plan again to buy it at the current price. A promo code that is still on an unpaid invoice cannot be used for a balance payment until you finish or cancel that invoice.
Renew and auto-renew
Section titled “Renew and auto-renew”The status card at the top of the Plan page shows when your plan ends. Turn on Auto-renew from balance and the card shows the renewal date and the price that will be taken from your balance. If your balance is short, the card shows how much is missing, with a Top up link.
When the cycle ends, kenari takes the plan price from your balance and starts the next 30 days. Auto-renew never splits the price between balance and QRIS or crypto, so the balance must cover all of it. If it does not, or the plan is no longer on sale, the plan ends, auto-renew switches off and you get a notification. Top up and choose a plan again to continue.
Start a new cycle
Section titled “Start a new cycle”When you reach a limit early, you can buy a fresh cycle of your current plan instead of waiting. On the Plan page, the tile Start a new cycle shows the plan price per cycle. Choose Start now. A dialog shows the price, the days you forfeit and your balance after the payment, and you confirm with its payment button.
- You pay the full price of your current plan from your balance. QRIS and crypto are not offered.
- A new 30-day cycle starts now. The 5-hour, weekly and monthly windows all reset to zero.
- The days left in the old cycle are forfeited. The dialog shows how many.
- If your balance is short, the tile shows the amount missing with a Top up link.
It works only on a paid plan that is still on sale. A cycle you got as a gift or a trial, a coupon, and a plan that is no longer sold cannot be restarted, and the dashboard says so. If you have a free reset left, Self-serve quota reset with its Reset now button is offered first, and the tile does not appear while you have one. The plan comparison table lists the price of each plan under Start a new cycle.
Starting a new cycle is a dashboard action. There is no API call for it, and an API key cannot do it.
When quota runs out
Section titled “When quota runs out”When any window with a ceiling is spent, two account settings decide what happens next. Find them on the Plan page under Limits and PAYG, in the section When your quota runs out. Both are off by default.
| Keep using your balance | Switch to free models | What a request does |
|---|---|---|
| On | Off | Continues, billed to your balance. The PAYG spend limit in How billing works still applies. |
| On | On | Continues, billed to your balance. Free models are used only when the balance option is off. |
| Off | On | Falls through to Free models at no cost. |
| Off | Off | Refused with HTTP 429 and code plan_limit_reached until the window resets. |
{ "error": { "message": "...", "type": "plan_limit_reached", "param": null, "code": "plan_limit_reached" }}The message explains the situation to a person. Branch on code. See Errors for the format. When a plan has ended, requests to the models it covered follow the same two settings. With both off they return plan_limit_reached until you renew or turn one on.
Endpoints a plan never covers
Section titled “Endpoints a plan never covers”A plan covers chat only. These endpoints are always paid from your balance, even while quota remains:
- Images, text to speech, transcription, music and video
- Embeddings, rerank, moderations and System One
- OCR, meaning the
ocrengine of Read documents and/v1/ocr
A document attached to a chat request and read the default way is ordinary input tokens, so a plan that covers the model covers it.
Your two settings still decide what happens once your quota is spent. If Keep using your balance is off, a paid request to one of these endpoints returns HTTP 429 with plan_limit_reached instead of drawing from your balance. Switch to free models cannot help here, because a paid model on these endpoints has no free version. A model that costs Rp 0 is still served. An account with no plan and no coupon is not affected and pays from its balance as usual.
Web search and page fetch work differently. Each plan includes a daily allowance of calls, counted per UTC day. Beyond the allowance, a call is billed to your balance only when Keep using your balance is on. X search is not part of any plan. It is always billed to your balance, whatever the two settings say. See Server tools and Web and X search.
Free cache
Section titled “Free cache”For some models on some plans, cache tokens do not spend quota. Cache read and cache write tokens are free, while fresh input and output tokens still count as usual. The plan table at the end of this page lists them under Free cache.
Free cache applies when a model is covered by the plan and is listed in that plan’s free cache list. One model can have free cache on one plan and not on another. It also applies to the balance charge that follows a spent window when Keep using your balance is on. A model the plan does not cover is billed in full. The Usage page shows how much free cache saved you.
Codes and coupons
Section titled “Codes and coupons”A code can give time-limited plan access. That grant is a coupon. It appears as Coupon active on the Plan page and covers the models it lists. A request to a covered model is paid from the coupon the same way a plan pays from quota, so it needs no balance, and the coupon is used before your plan quota. When the coupon budget is spent, an active plan takes over for the models it covers. Without a plan, your two settings in When quota runs out decide what happens next. How codes work is in Codes and referral, and the coupon fields are in Account quota.
Subscriber-only models
Section titled “Subscriber-only models”Some models are reserved for accounts with an active plan. Other accounts get HTTP 403 with code subscribers_only, on every endpoint that takes the model, including the media endpoints.
Check quota from code
Section titled “Check quota from code”GET /v1/account/quota returns your plan name, the remaining Rupiah in each window, and any active coupon. The MCP tool kenari_quota returns the same data as text. See Account quota and MCP server. In the dashboard, the Usage page shows the same windows as percentages with reset times.
See also
Section titled “See also”The plans below are read live from GET /api/plans and GET /api/public/pricing, so they always match what is on sale: price, quota windows, covered models, free cache, and the daily quota for free models.
Plans
PAYGLoading plans...