Billing & plans
Koo bills per account: a plan (Free, Plus, Pro, or Enterprise), seats, and the compute your services use. Everything here is self-service from your account's Plans and Billing pages — except Enterprise, which has no published price and starts with a conversation with sales.
What each plan gates — projects, service sizes, retention, and more — is covered in Usage & plan limits.
How your bill is computed
Koo bills in two separate parts: your subscription in advance, and compute in arrears.
Your subscription — plan + seats, up front. A flat amount for your plan, plus any members beyond the plan's included seat count (billed per seat). You pay this at the start of each period, and the hosted checkout charges only this. Plans bill monthly or annually; the comparison table below shows both prices.
Compute — what your services run, monthly in arrears. Each running service accrues its monthly price — set by its CPU and memory — × the fraction of the month it actually ran. Run a service for half the month and pay half; suspended time doesn't accrue. At the end of each month that total is billed, after two deductions applied in order:
- The in-kind free allowance — one free 0.5 vCPU / 1 GiB service of each type (web, Postgres, Redis) on your primary account, applied to your largest running service of that type. The allowance deducts the free unit's CPU + memory price; attached disk — including the disk that comes with a database — always bills at the per-GB rate. See Free tier & pricing.
- Your plan's compute credit — a fixed dollar amount included each month (shown as Monthly compute credit in the comparison below), applied after the allowance. It doesn't roll over, and annual plans still get it every month — compute always bills monthly, in arrears, at full rate.
Symbolically, the compute charge is max(0, Σ price(service) × fraction run − allowance − credit).
If that works out to $0 — a common outcome within the allowance and credit — Koo still cuts a real invoice for $0; it simply charges nothing.
A Free-plan account is never billed. Only accounts with a live subscription are rated at all: on Free there is no subscription, no invoice, and no payment method on file. The Free plan's ceilings are exactly the always-free allowance, so there is never anything above it to charge.
Compare plans
Plans differ in seats, project and resource ceilings, features, and log and metrics retention. Every number renders live from the current pricing config:
| Free | Plus | Pro | Enterprise | |
|---|---|---|---|---|
| Base price | $0 | $20/mo · $200/yr | $60/mo · $600/yr | Contact sales |
| Seats included | 1 | 3 (extra $8/mo) | 10 (extra $6/mo) | 25 |
| Monthly compute credit | — | $20/mo | $60/mo | Contact sales |
| Projects | 1 | 10 | Unlimited | Unlimited |
| Locations per service | 1 | 2 | 5 | 10 |
| Free web service | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB |
| Free Postgres | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB |
| Free Redis | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB | 0.5 vCPU / 1 GiB |
| Custom domains | — | 3 | 25 | 100 |
| Auto-deploy from Git | — | ✓ | ✓ | ✓ |
| Priority support | — | — | ✓ | ✓ |
| Log / metrics retention | 1 d | 7 d | 30 d | 90 d |
| Deployment history | 10 versions | 30 versions | 100 versions | 500 versions |
Enterprise is negotiated with sales and has no published price — nothing in the table is a price for it.
Service pricing
Every service picks explicit CPU and memory from a discrete ladder and bills a predictable monthly price, linear in CPU + memory:
| vCPU | Memory | Price |
|---|---|---|
| 0.25 vCPU | 512 MiB | $5/mo |
| 0.5 vCPU | 1 GiB | $10/mo |
| 1 vCPU | 2 GiB | $20/mo |
| 2 vCPU | 4 GiB | $40/mo |
| 4 vCPU | 8 GiB | $80/mo |
Databases price their compute the same way. A database's disk comes with its size — it is derived from the memory you choose, never picked separately — and bills at the per-GB rate. See Postgres and Redis for their sizes.
The free allowance
Your primary account permanently includes one free web service, one free Postgres, and one free Redis, each at the free unit (0.5 vCPU / 1 GiB). The allowance belongs to the primary account only — see Use multiple accounts.
The allowance is a price deduction, not a reserved shape: upsize a covered service and it bills only the difference — price(service) − price(free unit). The Free tier page carries the full rules.
Promo codes
If you have a promo code, redeem it under Credits & promo codes on your account's Billing page. Only the account owner can redeem or remove one, and an account holds one code at a time.
On a paid plan, the discount comes off your next invoice and every invoice after it.
On the Free plan there's no invoice to discount yet, so the code is saved on the account and shown as Applies when you upgrade. You won't re-enter it: the saved code is applied to your checkout automatically — and if it covers the plan price in full, checkout doesn't ask for a payment method at all.
A promo code discounts your subscription, not compute. Compute keeps billing monthly in arrears at the normal rate, after your free allowance and your plan's compute credit.
Codes can carry limits — an expiry date, a maximum number of accounts, or a specific plan. If one no longer applies, redeeming it tells you why.
You can remove a code at any time from the same panel. Removing a saved code simply drops it; removing an applied one means your next invoice bills the full amount.
Upgrade
Upgrade from your account's Plans page:
- Choose a plan and a cadence — monthly or annual.
- Click Upgrade to the plan you chose. A hosted checkout opens, charging your subscription (plan + seats) only.
- Your plan switches as soon as the payment is confirmed — normally moments after checkout completes — and the new ceilings apply immediately.
Checkout is only for your first purchase. Later plan changes are prorated adjustments on the existing subscription: an upgrade charges the difference for the remainder of the period right away.
Your free allowance carries over unchanged — paid plans always include at least the Free allowance.
Downgrade
If your current usage fits the lower plan's limits, the downgrade applies immediately, with the unused difference credited toward your next invoice.
If usage exceeds the lower plan, the console opens a resolution dialog before anything changes. It has two parts:
- Adjusted automatically — the non-destructive shrinks the downgrade makes for you: service resources stepped down to the target plan's ceilings, extra replicas and deploy locations reduced. The dialog lists exactly what will change.
- Choose what to remove — anything the target plan can't hold at all: extra projects, custom domains beyond its ceiling, a service the plan doesn't allow. You select what to remove and confirm you understand the data loss.
Confirm with Adjust & downgrade — or Remove & downgrade when removals are involved — and the downgrade applies with those changes.
Removals in a downgrade permanently delete the selected items and any data they hold — there is no undo. Every change a downgrade makes is recorded in the audit log.
Cancel & refunds
Cancel from your account's Billing page with Cancel subscription. Cancellation goes through Koo rather than the billing portal so your refund is computed correctly.
Monthly subscriptions: canceling keeps your paid plan active until the end of the current period, then reverts the account to Free. There's no mid-period cash refund on your plan; the free allowance keeps your covered services running at $0.
Annual subscriptions canceled mid-term: the subscription ends right away, and you receive a prorated cash refund of your plan and seats at the monthly-equivalent rate — you pay the regular monthly price for the months you actually used and get the remainder back: refund = amountPaid − monthsUsed × monthlyPrice, never below zero. Late in the term, once the monthly-rate value used exceeds what you paid, no refund remains. A refund on a very new annual subscription may be held for a manual review before it's issued.
Compute is settled separately either way: the compute you've already used is billed once more at the end of the month, as usual — a final compute invoice — and then nothing further.
If a renewal payment fails, you're notified and the charge is retried automatically; if retries are exhausted the account is suspended — read-only — until a payment succeeds, then restored.
Deleting your account cancels its subscription the same way, refund included — see account deletion.
Manage cards and invoices
Your account's Billing page shows your plan, payment method, and invoices. Manage billing opens the billing portal, where you change cards and download invoices; cancellation stays on the Billing page, as above.
The same operations are available programmatically — see the Billing API.
Price changes
When Koo changes prices, the new prices apply to new subscriptions only. Existing subscriptions keep their current prices for a 12-month grandfathering window from the date of the change, and you're notified before your subscription migrates to the new prices at the window's end.