# Pricing and payments

> Every account is on the Free plan while billing is closed, so no plan can be bought and no payment is taken. The plan limits are enforced on our server today. What each one counts, what the API answers at a limit, where to see your usage, and what a plan never pays for.

## The short answer

- **No plan can be bought yet.** Billing is closed. Every account is on the Free plan, and no page on the site asks for card, UPI or wallet details.
- **The limits already apply.** The prices and limits on the [pricing page](/pricing) are set, and our server enforces every one of them: memory operations a month, requests a minute, developer keys, seats and history retention. The pricing page reads them live from the same table the server uses.
- **A plan pays for memory, retrieval and audit, never for model tokens.**

## What each limit counts

| Limit | Counted per | What counts |
|---|---|---|
| Memory operations a month | account: its developer keys and the console together | each call to ingest, query, chat or restore, once it is signed in and its body is valid, whatever it answers after that. The count starts again on the first of each month (UTC). |
| Requests a minute | each developer key; the console counts on its own | the same four calls, in one-minute windows. A call refused here does not count against the month. |
| Developer keys | account | keys that have not been revoked (an expired key counts until you revoke it) |
| Seats | account | you, plus each member on your seat list |
| History retention | account | memory versions and audit entries older than the plan's window are deleted at least once a day. Each session's newest version is always kept, so your memory keeps working ([privacy](/privacy)). |

The limits belong to the account, so a key created today carries the account's plan, and a change of plan applies to every key from the next request.

## What the API answers at a limit

The call is refused before it does anything. The answer says which limit, what the plan allows and how much is used. These are real answers from the server's code, on the Free plan:

```json
{"detail": {"error": "plan_limit", "plan": "free", "limit": 1000, "used": 1000,
            "resets_at": "2026-11-01T00:00:00+00:00",
            "message": "The Free forever plan allows 1,000 memory operations a month; this account has used 1,000. The counter resets on 2026-11-01."}}
```

```json
{"detail": {"error": "plan_key_limit", "limit": 2, "active": 2,
            "message": "Your plan allows 2 active developer keys; revoke one to issue another."}}
```

| Answer | When | What to do |
|---|---|---|
| `429`, `plan_limit` | this month's operations are used up | wait for `resets_at`, the first of next month (UTC) |
| `429`, `plan_rate_limit` | a key has used this minute's requests | wait the seconds in the `Retry-After` header (also `retry_after_s` in the body) |
| `403`, `plan_key_limit` | you create a developer key past the plan's count | revoke a key you no longer use |
| `403`, `plan_seat_limit` | you add a member past the plan's seats | remove a member first |

A refused call is not counted. The Python SDK raises these answers as `StateJarError`, with the HTTP status in `status_code` and the answer in `body`. The JavaScript SDK throws `StateJarError`, with `status` and the answer's `detail`.

## Where to see your usage

- **The dashboard** shows your plan, this month's operations against its limit, your developer keys against the plan's count, and the history window.
- **`GET /api/v1/usage`** returns the same thing as JSON, under `plan`: `ops_used` and `ops_limit`, `api_keys_active` and `api_keys_max`, `rate_per_min`, `seats` and `seats_used`, and `retention_days`. A developer key or a console session can call it.

## What a plan never pays for

- **Extraction** runs on our own server's model, at no charge.
- **The Playground's built-in model** answers without a key, within its hourly limit per account.
- **Chat on a model you choose** uses your own provider key (OpenRouter, OpenAI, Anthropic, Gemini or your own Ollama server), and that provider bills you for it.

## Paying

Paid plans are not on sale. When they are, this page will say how to pay, and the [refund policy](/refund-policy) applies from that day:

- You can cancel at any time, and the plan stays active until the end of the period you paid for.
- A charge made in error is refunded in full if you write within 30 days of it, and a first payment if you write within 7 days.

## Questions

Write to the address on the [contact page](/contact), from your account's email address for anything about your account.
