Plans
Both plans include every model in the catalog. The only difference is the size of your compute budget.In API responses such as
/v1/balance, Spark appears as the plan id lite and Ember as premium.Credits
Balances are tracked in credits at a fixed rate: 10,000,000 credits = $1.00 USD So a Spark plan’s Weekly bucket holds 40,000,000 credits ($4.00) and its Base bucket holds 1,000,000 credits ($0.10). The balance endpoint reports raw credit amounts; divide by 10,000,000 to convert to dollars.The bucket system
Your balance is split across three buckets. Every request spends from them in a fixed order: Base first, then Weekly, then Additional.1
Base
A small allowance that refreshes to full every 8 hours. Every request draws from Base first. It does not roll over: whatever is left when the window ends is replaced, not added, so each refresh starts you fresh at the cap.
2
Weekly
Your main compute budget, granted a week at a time. Once Base is empty, requests draw from here. It refreshes to full every 7 days, counted from the start of your current weekly window.
3
Additional
Optional one-time top-up credits purchased from the store. They have no cap, never expire, and are only touched after Base and Weekly are both empty.
Why a Base bucket?
The 8-hour Base bucket absorbs everyday usage so your Weekly budget drains slowly. Light, regular use may never dip into Weekly at all, while a heavy session simply spills over into it. This smooths usage across the week instead of letting one busy day consume everything.Can my balance go negative?
Slightly, yes. Costs are settled after a response finishes, so your final request before running out can push the Weekly bucket a little below zero. That small shortfall is deducted from the next weekly refresh. Purchased Additional credits are never driven negative.What a request costs
Each request is metered by its actual token usage at the model’s listed prices, quoted per million input and output tokens. The prices shown in the model catalog are exactly what you are billed, with no separate fees on top. Two things happen around every request:- Before the request runs, Kyara estimates its cost from your prompt size and requested output length. If your total balance across all three buckets cannot cover the estimate, the request is rejected with a
403error and the codeinsufficient_balance. The estimate is deliberately conservative and is used only for this check, never for billing. - After the response finishes, the actual usage is billed and split across your buckets in the spend order above.
Running out and topping up
When all three buckets are empty, requests fail with403 insufficient_balance until your Base bucket refreshes (at most 8 hours away) or you add credits. You have two options:
Wait for a refresh
Base refills every 8 hours and Weekly every 7 days. Check
refreshesAt on the balance endpoint to see exactly when.Buy a credit pack
One-time packs of $5, $10, $25, or $50 from the store. They stack on either plan and never expire. An active subscription is required to purchase.
Checking your balance
- Dashboard: the usage page shows each bucket, its refresh timer, and a ledger of every grant and debit.
- API: call
GET /v1/balancewith your API key to read exact credit amounts, plan caps, and refresh timestamps programmatically.