Billing / Counting rules
How Usage is Calculated
Usage is counted per request, before your call runs, whatever the call stores or returns, and only for traffic authenticated with an API key or OAuth token.
Checker
Check whether a call counts
COUNTS
Counted. This is external, billable traffic: the counter is incremented before your call is processed.
Rules
The counting rules
- Adds: one unit per write request
- Every add request costs one unit, however many memories it stores: none, one or several. That covers POST /memory/add, /v1/memory/add, /v1/memory/add_turn, a history append (however many turns it carries), a state put, a file upload, a summarize and the MCP add_memory tool. What you send does not change the count either: an assistant, system or tool turn, filler such as “ok”, or text with nothing worth keeping costs the same one unit.
- Batches: one unit per record
- A bulk add, an import or a crawler import counts one unit per record it carries, the same as sending each record on its own, whatever each record stores. Records it refuses, records a resumed import already stored and pages that fail to import are not counted. A connector sync or activity capture counts one unit per item it sends to extraction.
- Retrievals: one unit per request
- A query, recall, compose, search or list is one unit however many memories it returns, none included.
- Refused requests and retries are not counted
- A request that is refused (a malformed body, a key without access to the tenant, too few memories to summarize) or that fails costs nothing. Neither does a retry of a write already stored: a repeated client_ref, idempotency key or conversation turn, or the value a state key already holds.
- Checked before the work
- The check and the increment happen together, before your request runs, so two concurrent requests cannot both take the last unit.
- External traffic only
- Requests authenticated with an API key or OAuth token are billable. Dashboard sessions are exempt.
- Over-limit requests
- Do not increment the counter, so usage never exceeds the plan limit.
Cycle
When counters reset
Both counters reset to zero when your billing cycle rolls over. The next cycle is anchored to the end of the previous one, so the reset date does not drift month to month. The dashboard shows the current period and the days remaining until the reset.
Was this page helpful?