Tiers & limits
Monthly caps per tier, and what happens when you hit them.
Every team is on one of five tiers. Caps reset on your billing-period boundary (calendar month from signup).
| Tier | Writes / mo | Intents / mo | Retrievals / mo | Knots / mo | Projects | End users | Price |
|---|---|---|---|---|---|---|---|
| Hobby | 10,000 | 1,000 | 10,000 | 5 | 1 | Unlimited | Free |
| Starter | 50,000 | 5,000 | 50,000 | 15 | 3 | Unlimited | $19 / mo |
| Growth | 200,000 | 20,000 | 200,000 | 40 | 10 | Unlimited | $79 / mo |
| Pro | 500,000 | 50,000 | Unlimited | 100 | Unlimited | Unlimited | $249 / mo |
| Enterprise | Unlimited | Unlimited | Unlimited | Unlimited | Unlimited | Unlimited | Custom |
What each counter means
| Counter | Bumps when… |
|---|---|
| Writes | A POST /v1/episodes or POST /v1/facts succeeds. |
| Intents | A write was made with extract_intent: true AND at least one edge was annotated. No annotation → no charge. |
| Retrievals | A POST /v1/search succeeds. |
| Knots | Background synthesis produced a new knot summary. You don't trigger this; Breeth decides. See Knots. |
What happens when you hit a cap
| Counter | Behaviour at cap |
|---|---|
| Writes | POST /v1/episodes and POST /v1/facts return 429 quota_exceeded (kind: "episodes_per_month"). Reads keep working. |
| Intents | Writes with extract_intent: true return 429 (kind: "intent_extractions"). Same calls with extract_intent: false keep working. |
| Retrievals | POST /v1/search returns 429 (kind: "retrievals"). On Pro and Enterprise, retrievals are unlimited and this never triggers. |
| Knots | Synthesis silently pauses. No request fails. Old knots stay queryable. |
Past-due hard-stop
If your latest invoice fails and your subscription enters past_due, writes are blocked with 402 until you resolve the payment. Reads keep working. Your memory data is preserved through the end of the original paid period plus 30 days.
Projects per tier
Hobby teams get one project (default). Starter to Growth scale up. Pro and Enterprise are unlimited. Hitting the project cap returns SQLSTATE P0PRJ from the dashboard's project-create action, surfaced as: "Project cap reached on this tier. Upgrade your plan to add more projects."
What's billable
For Breeth's pricing: writes, intents, and retrievals. Knots and projects are caps, not meters — they don't bill per-event, they just stop adding when you hit the limit.
Inference cost (LLM tokens for entity extraction, intent annotation, etc.) is absorbed by Breeth on managed plans. You don't see token line-items on your bill.
Upgrading
From the dashboard at thebreeth.com/app/billing — pick a tier, complete Stripe Checkout, your team flips to the new tier within ~30 seconds (via webhook) and caps adjust automatically.
You can cancel any time. Access continues through the end of the paid period. No refunds for unused time, partial periods, downgrades, or accidental renewals — see Terms of Service §4.2.