Limits & billing
| Free | Pro | |
|---|---|---|
| Price | $0 | ~$29/month per team |
| Events / month | 100,000 | 2,000,000 included, then metered overage (~$1 per 100k) |
| Projects | 1 | 10 |
| Team members | Personal (just you) | Up to 5 |
| Assistant messages | 25 / day | 500 / day |
| Assistant models | Fast model | Balanced model by default; fast and most capable selectable |
| Agent connections (MCP) | Not included | 2,000 tool calls / day |
Free is a personal plan, and it never needs a card. Paid plans attach to teams: create a team from a project, then upgrade from the console’s Billing page (hosted checkout; payment details never touch our servers). Invoices, payment methods, and cancellation live in the billing portal, one click from the same page. A new team starts on Free until it’s upgraded, and you can create one Free team at a time: upgrade it (or delete it) before creating another.
What happens at the event quota
Section titled “What happens at the event quota”The guiding rule: we never silently drop a paying customer’s events.
- Approaching quota (80%+): ingestion responses carry
X-Narrato-Usage-WarningandX-Narrato-Usage-Percentheaders, the console’s Usage page shows progress, and a banner appears console-wide. - Over quota, paid plans: events keep flowing; overage is metered and billed on your invoice. No interruption.
- Over quota, Free: events keep flowing through a 20% grace margin; past
that, ingestion returns
429until the month resets or you upgrade. The SDK treats429as retryable, so brief overages queue client-side rather than disappear. - Counters reset at the start of each calendar month (UTC).
The Usage page in the console shows events this period against your quota, per-project daily breakdowns, and assistant usage.
Query limits
Section titled “Query limits”POST /api/v1/query/execute: up to 60 queries a minute per signed-in user.GET /api/v1/query/metrics/*: up to 120 requests a minute per user.- Opening dashboards (
GET /api/v1/query/dashboards/{id}): up to 600 widget queries a minute per user. Each open counts one per widget.
Over any of these limits, the API returns 429 with a Retry-After header. A metrics
request can span up to 11,000 time buckets (a week by the minute, or 13 months
by the hour). A wider range at a fine granularity returns 400, so use a
coarser granularity or a shorter range.
Assistant limits
Section titled “Assistant limits”Every workspace has a daily assistant message allowance, resetting at midnight UTC: 25/day on Free and 500/day on Pro. Over the cap, chat returns a clear “come back tomorrow” error (with an upgrade pointer on Free).
The model behind the assistant also follows the plan. Free runs on a fast,
efficient model. Pro defaults to a balanced model and adds the most capable one;
switch between them with the picker in the chat composer. Requesting a model
outside your plan returns 403.
A few per-request bounds keep any one request reasonable:
- A message can be up to 8,000 characters.
- Up to 3 assistant requests can run at once per workspace. Wait for one to finish before starting another.
- A single request that runs longer than 5 minutes, or needs too many steps, is stopped with a “try a narrower question” error. The conversation stays usable.
- The assistant uses the most recent part of a long conversation as context. Start a new chat when you change topics.
Data retention
Section titled “Data retention”Events are kept for 13 months, then aged out automatically. The window is measured from each event’s own timestamp, so backfilled events older than 13 months are accepted but don’t stay queryable. Per-plan retention tiers may come closer to general availability, with notice before any window shrinks.
If a payment fails
Section titled “If a payment fails”Your plan enters a grace state: a banner appears in the console and we retry per the payment provider’s schedule. Fix the payment method from Billing → Manage and everything continues; entitlements only downgrade to Free if the subscription is actually cancelled or ends.