Plans at a glance
Plans apply per workspace: every project in a workspace shares the same plan. You can see your current usage at any time under your workspace’s Usage page, which shows events, pageviews, MCP queries, and data retention with warnings as you approach a limit.
The free plan and the trial
Signing up requires no credit card. Creating your first workspace starts a 14-day Starter trial with full Starter limits. There are no payment details and nothing to cancel. When the trial ends, the workspace moves to the Free plan on its own. Nothing is deleted:- Events keep flowing, up to 10,000 per month.
- Dashboards and funnels keep working, showing the last 7 days.
- Older history is hidden, not destroyed. It is kept for 60 days, and upgrading within that window restores it.
- Funnels beyond the free limit are locked, not deleted. The most recently updated funnel stays active. Editing a funnel makes it the active one, deleting one frees the slot, and upgrading unlocks everything.
- Teammates beyond the single free seat keep their membership but can’t open the workspace until it’s upgraded.
Monthly events
The event quota counts every event stored across all projects in your workspace: eachstep() and identify() call is one event. A request from the SDK can carry up to 100 events, but the quota always counts individual events, not requests.
- Usage resets at the start of each billing cycle. On the Free plan, that’s the start of each calendar month (UTC).
- At 80% of the quota, the Usage page starts warning you. On the Free plan you also get an email.
- At 100%, ingestion stops: new requests are rejected with HTTP
429and the message “Event quota exceeded for the current billing period” until the quota resets or you upgrade. On the Free plan, an email tells you the moment this happens.
event_quota_exceeded, so a silent tracking gap is easy to diagnose.
Usage is checked periodically, about every 30 minutes, so enforcement does
not kick in the exact second you cross the line. Events accepted during that
window still count and are not deleted.
Monthly pageviews
Pageviews have their own quota, counted across all projects in the workspace: every$pageview event the SDK records with trackPageviews on, or that you send with page(), is one pageview. Funnel steps and identify() calls never count here, and pageviews never count against the event quota.
- Usage resets with the billing cycle, like events.
- At 80% the Usage page warns you and you get an email.
- At 100%, new pageviews are dropped and you get an email. The ingest endpoint keeps accepting requests and answers
202with adroppedcount, so your funnel events in the same request are stored as usual. Reporting resumes when the quota resets or you upgrade.
trackPageviews on a free workspace stores nothing; the Sites page shows an upgrade prompt instead.
Rate limiting
The ingest endpoint rate limits requests, not events, per project. Limits are measured over 10-second windows, so short bursts above the per-second rate are fine as long as the window average holds. With up to 100 events per request, even the Free plan sustains around 500 events per second. The monthly event quota is the real ceiling. When a project exceeds its rate, the ingest endpoint responds with HTTP429 and “Rate limit exceeded”. These rejections appear on the Events page with the reason rate_limited.
In practice the browser SDK stays far below these limits on its own: it batches up to 50 events per request and flushes every 5 seconds, so a single page sends a fraction of a request per second.
Data retention
Retention controls how far back you can look, and how long your event data is kept:- Date ranges are limited to your retention window. Presets beyond it are locked in the date picker with an upgrade hint, and API requests for older ranges return a
date_range_exceedederror. - On paid plans, data older than your retention window is permanently deleted by a daily cleanup job.
- On the Free plan, the two are decoupled: queries see the last 7 days, but data is only permanently deleted after 60 days. Upgrading within 60 days brings the hidden history back immediately.
MCP queries
The MCP server lets AI agents query your analytics. The monthly quota only counts analytics queries, the ones that hit your event data: funnel overviews, trends, step timing, segment breakdowns, user timelines, ingest health, dashboard data, and the pageview summary, timeseries, and breakdown tools. Not counted against the quota:- Management tools: listing workspaces and projects, reading, creating, or editing funnels and dashboards.
- Cached results. Identical queries are cached for 15 minutes and served for free.
- A single analytics query can span at most 90 days. Agents are told to split longer windows into separate queries.
- Queries cannot reach past your plan’s data retention.
- Locked funnels can be listed and read, but their analytics are unavailable until they’re unlocked.
- The pageview tools need a plan with a pageview allowance. On the free plan they return
PAGEVIEWS_NOT_INCLUDEDwithout consuming quota. - A burst limit of 60 MCP requests per minute protects the endpoint. Hitting it returns a retry hint and does not consume quota.
Fixed limits on every plan
These limits are part of the product and don’t change with the plan:Billing
- Your plan is attached to the workspace. See Billing for how to find your current subscription, manage or cancel it, and download invoices.
- No card is on file until you choose a paid plan. Free is the default state, not a lapsed subscription.
- Upgrades take effect right away: higher rate limits, higher event and pageview quotas, a longer retention window, and any history still inside the 60-day free-plan window reappears.
- Downgrades and cancellations land the workspace on the Free plan. Your data and configuration are kept: funnels beyond the free limit are locked rather than deleted, extra teammates keep their membership but lose access, and retention shrinks as described above.