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

# Plans and limits

> What each plan includes, how the free plan and trial work, and how event and pageview quotas, rate limits, data retention, and MCP queries behave when you hit a limit.

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

| | Free | Starter | Growth | Scale |
| - | - | - | - | - |
| **Price** | \$0 | \$25/month | \$49/month | \$99/month |
| **Projects** | 1 | 1 | 3 | 10 |
| **Funnels per project** | 1 | 3 | 10 | Unlimited |
| **Events per month** | 10,000 | 150,000 | 500,000 | 2,500,000 |
| **Pageviews per month** | Not included | 500,000 | 2,000,000 | 10,000,000 |
| **Data retention** | 7 days | 30 days | 90 days | 365 days |
| **Ingest rate limit** | 5 requests/s | 5 requests/s | 20 requests/s | 100 requests/s |
| **MCP queries per month** | 50 | 250 | 2,000 | 10,000 |
| **Team members** | 1 | Unlimited | Unlimited | Unlimited |

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 stored custom events, recorded with `step()`, across all projects in your workspace. `identify()` updates the identity attached to subsequent events; it does not emit an event or consume event quota. 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](/help/events) with the reason `event_quota_exceeded`, so a silent tracking gap is easy to diagnose.

<Note>
  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.
</Note>

## 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](/help/events) 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.

<Warning>
  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.
</Warning>

## 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.

<Warning>
  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.
</Warning>

## MCP queries

The [MCP server](/agents) 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:

| Limit | Value |
| - | - |
| Steps per funnel | 20 |
| Conditions per funnel step | 10 |
| Dashboards per project | 20 |
| Blocks per dashboard | 24 |
| Saved views per funnel or dashboard | 15 |
| Events per request | 100 |
| Properties per event | 20 top-level keys |
| Request body size | 51,200 bytes (50 KiB) |
| Event name length | 100 characters |
| Allowed origins per project | 50 |
| Path normalization rules per site | 20 |
| Kept query parameters per site | 10 |

## Billing

* Your plan is attached to the workspace. See [Billing](/help/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.

<Tip>
  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.
</Tip>


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