# Usage & plan limits

Every plan carries a set of ceilings — how many projects you can create, how large a service can be, how long logs are kept. This page lists what plans gate, where to watch your live usage, and what happens when you reach a limit.

## What plans gate

Plans differ on:

- 
- 
- 
- 
- 
- 
- 
- 
-

The numbers live in the plan comparison, rendered from the current pricing config:

| Plan | Free | Plus | Pro | Enterprise |
| --- | --- | --- | --- | --- |
| Base price | $0 | $20/mo | $60/mo | $null/mo |
| Seats included | 1 | 3 | 10 | 25 |
| 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 | — | Yes | Yes | Yes |
| Priority support | — | — | Yes | Yes |
| Log / metrics retention | 1 d | 7 d | 30 d | 90 d |

> **Note:**
>
> On the Free plan the ceilings are exactly the [always-free allowance](/docs/get-started/free-tier): one free unit (0.5 vCPU / 1 GiB) of each service type, and nothing above it. Custom domains, git auto-deploy, and multi-location deploys start on the paid plans — the table shows which.

## Watch your live usage

1. 
2. 
3.

When you're over a limit — for example after a plan change — the Usage page shows a banner naming exactly which limits you're over.

## When you reach a limit

An action that would cross a ceiling is refused — nothing is silently changed or shrunk. The message names the limit you hit and the smallest plan that fits what you tried, and the console offers the upgrade right where you were working.

The API answers the same way: the request fails with a `quota_exceeded` error that carries the plan to upgrade to.

## Downgrades and limits

A downgrade to a plan below your current usage never discards anything on its own. You resolve the excess first — letting Koo shrink what can shrink, and choosing what to remove where the target plan can't hold it. The flow is described under **Downgrade** on the billing page.
