StateJar docs

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

What each limit counts

LimitCounted perWhat counts
Memory operations a monthaccount: its developer keys and the console togethereach 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 minuteeach developer key; the console counts on its ownthe same four calls, in one-minute windows. A call refused here does not count against the month.
Developer keysaccountkeys that have not been revoked (an expired key counts until you revoke it)
Seatsaccountyou, plus each member on your seat list
History retentionaccountmemory 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).

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:

{"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."}}
{"detail": {"error": "plan_key_limit", "limit": 2, "active": 2,
            "message": "Your plan allows 2 active developer keys; revoke one to issue another."}}
AnswerWhenWhat to do
429, plan_limitthis month's operations are used upwait for resets_at, the first of next month (UTC)
429, plan_rate_limita key has used this minute's requestswait the seconds in the Retry-After header (also retry_after_s in the body)
403, plan_key_limityou create a developer key past the plan's countrevoke a key you no longer use
403, plan_seat_limityou add a member past the plan's seatsremove 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

What a plan never pays for

Paying

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

Questions

Write to the address on the contact page, from your account's email address for anything about your account.

This page as Markdown: /docs/pricing-and-payments.md