# Pricing

One pool of included calls, then the prepaid balance. The same three
rungs serve every product: model calls, records creates, and classify
calls all draw one pool.

| rung | price | effective rate | wins for |
| --- | --- | --- | --- |
| free | $0 | n/a | under ~1,000 calls / month |
| wallet | $5 top-up | $5 / 1M calls ($0.000005 / call) | pay as you go |
| plan | $20 / month | $4 / 1M calls, 5,000,000 included | 4M+ calls / month |

The free rung carries 1,000 included calls per month. The plan carries
5,000,000 included calls per month for $20. Beyond the included pool
the wallet pays per call at $5 / 1M, on every product. The pool resets
on the first of the month, UTC.

Billing rules are platform-level:

- top up from $5, credits never expire
- on empty you get 429 with a top-up link, never an overage bill
- retention is zero on every account
- request rates are per tenant and per api where a bucket is
  configured: 1 request/second with no balance, 50 requests/second
  once funded, burst of 5 either way. Records has no default bucket,
  so create only rate-limits when one is configured.
- two kinds of 429 exist: `rate limited` carries `Retry-After` and
  `x-mivia-ratelimit-*` headers and is never billed; `balance empty`
  means top up. See [errors](/docs/errors).

MCP calls bill exactly like REST calls: the envelope is different,
the meter is not.
