# Plans and limits

> What each plan includes, the limits it enforces, and the top-up packs.

Source: https://docs.indexzero.site/plans



Plans set the monthly credit allowance and the limits below. Every limit is enforced by the server and read from the same catalog this table renders from, so the number here is the number a call is checked against.

<PlanTable />

Prices are in USD per month. Sign-up is self-serve at [app.indexzero.site/sign-up](https://app.indexzero.site/sign-up); upgrades and downgrades happen on the billing page in the app.

## What the limits mean [#what-the-limits-mean]

* **Credits per month** is the allowance granted at the start of each billing period. It does not roll over. See [How credits work](/credits).
* **Active projects** counts projects that are not archived. Creating one past the cap fails with an upgrade message; archiving frees the slot.
* **Pages per site audit** is a ceiling on `maxPages`. A request above it is trimmed to the cap rather than rejected, so you still get an audit.
* **Rank trackers** counts trackers across the whole workspace.
* **Scheduled rank checks** means daily, weekly, or monthly checks that run without you. Manual checks are available on every plan, including Free.
* **AI visibility** unlocks brand visibility measurement and the prompt explorer, in the dashboard and over MCP.
* **MCP server access** is required to create API keys or authorize an MCP client. The Free plan can use every tool in the dashboard but cannot connect an agent.
* **SAM agent** is the in-app SEO teammate, available on Pro and above.

## Top-up packs [#top-up-packs]

Top-ups are one-time purchases. They never expire and are spent only after the monthly allowance is exhausted.

<TopupTable />

## Plan gates in responses [#plan-gates-in-responses]

When a call needs a plan you are not on, the API returns HTTP 402 with a `PLAN_UPGRADE_REQUIRED` or `PLAN_LIMIT_REACHED` error that names the plan which unblocks it. The MCP server surfaces the same message to the agent, with a hint, so it can tell you what to do rather than retrying. See [Errors](/reference/errors).
