> ## Documentation Index
> Fetch the complete documentation index at: https://docs.memory.anonalabs.com/llms.txt
> Use this file to discover all available pages before exploring further.

# Plans and billing

> What each plan includes, how credits are consumed, how to buy extra credits, and how to upgrade, change or cancel a subscription.

Every organization starts on **Developer**. Upgrading is self-serve from the dashboard
and takes effect as soon as payment completes. Anona holds the Stripe relationship, so
you never handle Stripe keys, and card details never touch our servers. Payment happens
on Stripe's own checkout page.

## Plans

| Plan | Price | Credits / month | Effective / 1K | Rate limit | Spaces |
| - | - | - | - | - | - |
| **Developer** | \$0 | 5,000 | - | 20 / min | 2 |
| **Growth** | \$249 / mo | 200,000 | \$1.25 | 30 / min | 100 |
| **Team** | \$249 / mo | 200,000 | \$1.25 | 30 / min | 100 |
| **Enterprise** | from \$60K / yr | Committed annual pool | Negotiated | Negotiable | Unlimited |

**Team** is Growth plus shared organizations: you can create up to **3 shared
organizations** besides your personal one and invite people into them. Everyone in a
shared organization sees all of its spaces and integrations, with a role of Admin,
Member (read and write) or Viewer (read only). Members do not need a plan of their
own: usage in a shared organization is charged to its owner's credits, and only the
owner sees the price and manages the subscription. Your personal organization is never
shared. Developer and Growth share individual spaces only. Need more than 3? Talk to
us, the limit can be raised per account. If a Team subscription ends, the owner's
shared organizations become read-only (nothing is deleted) until the plan is restored
or ownership moves to someone on Team.

**Enterprise** is a committed annual credit pool rather than a monthly subscription,
with pricing negotiated per contract. It is the one plan with no self-serve path; [talk to sales](https://memory.anonalabs.com/contact-sales)
or email [support@anonalabs.com](mailto:support@anonalabs.com) (the form is also an
[API endpoint](https://docs.memory.anonalabs.com/api-reference/sales-enquiry.md)). The monthly rules
on this page (monthly refresh, no roll-over, flat monthly charge, self-serve
upgrades and top-ups) describe the Developer, Growth and Team plans. On Enterprise,
how the pool is made available, when unused credits expire and how the commitment
renews are set per contract.

> [!NOTE]
>
> Credits are a hard limit: nothing is metered or billed as overage. Once a period's
> allowance and any [purchased credits](#credit-top-ups) are spent, metered requests answer
> `429 credits_exhausted` until the next refresh. Upgrading, or buying a top-up on a paid
> plan, is what raises the ceiling.

## When credits refresh

On the self-serve plans (Developer, Growth and Team), your credits refresh on **your
own billing date**, not on the 1st of the calendar month. Enterprise is covered by its
contract.

* On a **paid plan**, that is the day Stripe bills you. Subscribe on the 20th and your
  credits refresh on the 20th, so the month you pay for and the month of credits you
  receive are the same month.
* On **Developer**, there is no subscription to follow, so the period runs from the day
  you signed up and refreshes on that day each month.
* If a month is too short for your date (the 31st, in February), the refresh happens on
  the last day of that month.

The exact date is on the billing page in the dashboard ("Credits renew on…"), and in
`credits_reset_at` from `GET /v1/billing`.

On Developer, Growth and Team, unused plan credits **do not roll over from month to
month**. They do carry when you upgrade (see below), and [purchased credits](#credit-top-ups)
are never reset at all. Enterprise pools follow their contract instead.

## What consumes a credit

Operations cost different amounts, because they cost us different amounts:

| Operation | Credits | Endpoints |
| - | - | - |
| Add a memory | 2 | `POST /v1/record`, `/v1/record/batch`, document upload |
| Search | 1 **per space searched** | `POST /v1/retrieve` |
| Insight | 5 | `POST /v1/reason`, memory-model create and refresh |
| Chat turn | 3 minimum, scaled by tokens and model | `POST /v1/chat/completions`, `/v1/responses`, `/v1/messages` |

Operations that run an LLM are additionally scaled by the tokens used and the
[model's credit rate](https://docs.memory.anonalabs.com/api-reference/model-selection.md); the figures above are the
base. Reads that do not involve the recall pipeline (listing spaces, listing
memories, job status, reading your billing status) are free.

> [!NOTE]
>
> **A search that names its space always costs 1.** A search that lets Anona pick
> the space ([`route: "auto"`](https://docs.memory.anonalabs.com/api-reference/retrieve#let-anona-choose-the-space))
> costs 1 per space actually searched, because each space is a separate recall.
> Most routed searches look in one space and so cost 1; a question that genuinely
> spans two costs 2.
>
> `max_targets` is the ceiling on that, per request or as an organization default —
> see [Searching more than one space](https://docs.memory.anonalabs.com/api-reference/retrieve.md#searching-more-than-one-space).
> Set it to `1` to guarantee a routed search never costs more than an addressed
> one. The `searched` array in every routed response lists the spaces that were
> searched, so the charge is always reconstructible from the response you already
> have.
>
> A routed search that finds no suitable space searches nothing and still costs 1,
> the same as an addressed search that matches nothing.

`GET /v1/billing` shows your usage for the current billing period so far, broken down by
operation type.

> [!NOTE]
>
> The `line_items` in that response are **credit** accounting, not money. What you are
> charged on Growth and Team is the flat monthly plan price, plus any top-ups you buy, both
> through Stripe. Enterprise billing is set per contract.

## Credit top-ups

On a paid plan you can buy extra credits at any time, without changing plan. They are
one-time card payments through Stripe, not a subscription, and every pack is priced at
\$1.50 per 1,000 credits:

| Pack | Credits | Price |
| - | - | - |
| Small | 5,000 | \$7.50 |
| Medium | 25,000 | \$37.50 |
| Large | 100,000 | \$150.00 |

**Who can buy.** An owner or admin of an organization with a paid subscription. A
Developer organization gets `403 topup_requires_paid_plan` and upgrades first. Inside a
shared organization the credits are its owner's, so packs are bought from the owner's
personal organization.

**How.** In the dashboard, **Billing → Top up credits** and pick a pack; you pay on
Stripe's checkout page and come back to the billing page, which shows the credits once
Stripe confirms the payment. From code, `POST /v1/billing/topup` with `{"pack": "small"}`
returns a `checkout_url` to send the buyer to. See the
[API reference](https://docs.memory.anonalabs.com/api-reference/billing.md#top-up-packs).

**Spend order.** Every request draws on your plan's allowance first and only uses
purchased credits once the allowance for the period is gone. Artifact builds draw on
them the same way. `GET /v1/billing` reports the purchased balance as `credits_banked`,
and `credits_remaining` is the allowance still unspent plus `credits_banked`. The
billing page shows the two separately, with a history of past purchases underneath the
packs (`GET /v1/billing/topups`).

**They never expire.** Purchased credits are not touched by your monthly refresh, and a
plan change or a cancellation leaves them in place.

**Refunds and disputes.** If a purchase is refunded, the refunded share of its credits is
removed; a chargeback you lose removes the whole pack. Credits from that pack you had
already spent are not reversed, and the balance never goes below zero. If a refund later
fails or is cancelled, the credits it removed are put back. The purchase history marks a
pack as *Partly refunded* or *Refunded*.

**Low-balance emails.** Once you have bought a pack, we email the organization's owner
when purchased credits fall below 20% of the most recent pack, and again when they run
out. Each is sent once, and your next purchase re-arms both.

### Top-up FAQ

> **Can I buy credits on the free Developer plan?**
>
> No. Top-ups are for paid plans; upgrade first, then buy as many packs as you need.

> **Do purchased credits expire or reset each month?**
>
> No. They stay until they are spent, across refreshes, plan changes and cancellation.

> **Are my plan credits used first?**
>
> Yes. Purchased credits are only spent once the period's allowance has run out.

> **Can I pay by bank transfer or another method?**
>
> Not for top-ups. Checkout accepts cards only, so the credits can be added as soon as
> the payment confirms.

> **Is there automatic overage billing instead?**
>
> No. Credits are a hard cap. Nothing is charged unless you buy a pack or change plan.

## Upgrading

**1. Open Billing**

In the dashboard, go to **Billing**. Each plan you can move to shows an
**Upgrade** button.

**2. Review the breakdown**

You will see exactly what you are buying (price, credits, rate limit and space
allowance) before anything is charged. Opening this makes no charge and no
commitment.

**3. Pay**

**Pay now** takes you to Stripe's checkout page. Card details are entered there,
on Stripe's domain, and are never sent to or stored by Anona.

**4. Return**

You come back to the billing page, which confirms the payment and shows your new
limits.

### Your unused credits come with you

When you move from one paid plan to a larger one, whatever you have not spent this period
is **added on top** of the new plan's allowance. With 10,000 credits left on a smaller
paid plan, moving to Growth gives you 210,000 to spend: Growth's 200,000 plus the 10,000
you had already paid for.

The bonus covers the current period only. At your next refresh you are back to the new
plan's normal allowance (200,000, in that example).

> [!NOTE]
>
> Upgrading **from Developer** carries nothing across. Free credits are not something you
> paid for, so a Developer organization moving to Growth gets Growth's 200,000, not 200,000
> plus whatever was left of the free allowance.

**Once per period.** If you upgrade more than once before your next refresh, the
carry-over applies to the first of those moves. The
later upgrade still takes effect immediately, and you still get the larger plan's full
allowance; you just do not collect a second bonus on top of the first. It resets with
everything else at your next refresh date.

**Closing the tab mid-checkout is safe.** Your plan changes when Stripe confirms the
payment to us directly, server to server, not when your browser returns. If you close
the page after paying, the upgrade still applies. If you close it *before* paying,
nothing is charged and nothing changes.

If the confirmation says your plan is still updating, that is normal: Stripe's
confirmation occasionally arrives a moment after you do. Refresh shortly and it will be
there.

## Changing or cancelling

Once you are on a paid plan, **Manage billing** opens the Stripe Customer Portal, where
you can:

* switch to a different paid plan, and Stripe prorates the difference
* update the card on file
* download past invoices
* cancel the subscription

**Upgrades and downgrades are deliberately not symmetric:**

| Change | When it takes effect | Credits |
| - | - | - |
| **Upgrade** to a larger plan | Immediately | New allowance, plus whatever you had not spent |
| **Downgrade** to a smaller plan | End of the period you have already paid for | Smaller plan's allowance, from that date |
| **Cancel** | End of the period you have already paid for | Developer allowance, from that date |

You paid for the bigger plan through the end of the current period, so you keep it and its
limits until then. A downgrade is scheduled rather than applied on the spot, and the
smaller plan starts at your next billing date. Cancelling behaves the same way, and the
organization returns to Developer afterwards.

To move from a paid plan back to Developer, cancel in the portal rather than calling the API.
`POST /v1/billing/upgrade` refuses a downgrade while a subscription is live, so that you
cannot lose your limits while Stripe is still billing you.

## If a payment fails

A declined card **does not** immediately downgrade you. Stripe retries automatically over
roughly three weeks, and we email you to update the card. Your plan and limits stay
exactly as they are throughout.

Only if every retry fails does Stripe cancel the subscription, at which point the
organization returns to Developer.

## Receipts

Stripe emails the official receipt and invoice for every payment, to the address on the
card. Anona separately emails a confirmation of what changed (your new plan and limits)
to both the card address and the organization owner. When those are the same address, you
get one of each, not two.

## Limits when you run out

Running out of credits does not delete anything. Metered operations return
`429 credits_exhausted` until your credits refresh on your billing date, until you
upgrade, or, on a paid plan, until you [buy a top-up](#credit-top-ups). Upgrading raises
the limit immediately, and brings your unused credits with it; a top-up adds its credits
as soon as Stripe confirms the payment.

The rate limit is separate and per-minute: exceeding it returns `429 rate_limited` and is
worth retrying with backoff rather than treating as a failure.

> **[Billing API reference](https://docs.memory.anonalabs.com/api-reference/billing.md)**
>
> Endpoint-level detail for viewing status, starting checkout, buying top-ups and
> opening the portal.


This documentation is built and hosted on [Mintlify](https://mintlify.com), a developer documentation platform.