Skip to main content
Every paid plan includes the full product: funnel analysis, web analytics for your sites, segment breakdowns, trends, dashboards with public sharing, user profiles, saved views, CSV export, and the MCP server. Plans differ only in their limits, with one exception: the free plan has no pageview allowance, so web analytics starts with Starter.

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.
You get an email three days before the trial ends and another when the workspace lands on Free. Additional workspaces start directly on the Free plan, since the trial runs once per account.

Monthly events

The event quota counts every event stored across all projects in your workspace: each step() 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 429 and 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.
Rejected requests show up on the Events page with the reason 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 202 with a dropped count, so your funnel events in the same request are stored as usual. Reporting resumes when the quota resets or you upgrade.
The free plan has no pageview allowance. Turning on 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 HTTP 429 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.
The SDK treats 429 like any other client error and drops the affected batch rather than retrying it, so events sent while rate limited or over quota are lost. If you send events from your own backend, apply the same batching and add a backoff on 429 responses.

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_exceeded error.
  • 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.
Retention applies retroactively on downgrades between paid plans. If you move from Growth (90 days) to Starter (30 days), events older than 30 days are permanently deleted during the next daily cleanup. Export anything you need before downgrading. Landing on the Free plan is gentler: history is hidden first and only deleted after 60 days.

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 few guardrails apply per query:
  • 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_INCLUDED without 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.
The quota resets at the start of each billing cycle (calendar month, UTC, on the Free plan). When it’s exhausted, analytics queries return a clear error with the reset date and an upgrade link, and agents are instructed not to retry until then.

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.
Not sure which plan fits? Start with the events per month number. It’s the limit teams hit first, and the Usage page shows your real volume after a week of tracking on the Free plan.