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

# Plans and gating

> Which features need which plan, and what happens when a workspace is not entitled.

## The gates

| Feature                          | Minimum plan | What it affects                                                                                                                                     |
| -------------------------------- | ------------ | --------------------------------------------------------------------------------------------------------------------------------------------------- |
| **Agent writes** (`agent_write`) | **Growth**   | The agent may execute writes rather than only show. Also gates [the MCP server](/mcp/overview) and [agent artifacts](/artifacts/overview) entirely. |
| **Lead capture**                 | Growth       | Whether the agent qualifies visitors into leads at all, and pushes them to your CRM.                                                                |
| **Meeting booking**              | Growth       | The in-chat slot picker and the Cal.com and Calendly connectors.                                                                                    |
| **Stripe write actions**         | Growth       | The agent issuing refunds or applying coupons on your connected Stripe.                                                                             |
| **Custom MCP connector**         | Growth       | Exposing your own MCP server's tools to the agent.                                                                                                  |
| **Churn prevention**             | Scale        | Churn analytics, and the cancel-intent team alert.                                                                                                  |
| **In-widget retention prompt**   | Scale        | The `interventionEnabled` cancel-intent prompt.                                                                                                     |
| **SSO / SAML**                   | Scale        | Dashboard sign-in.                                                                                                                                  |
| **Custom API connector**         | Scale        | Turning your API docs into live agent calls.                                                                                                        |
| **Lead research agent**          | Scale        | Auto-researching a new qualified lead.                                                                                                              |
| **Remove branding**              | Any          | A paid **add-on**, never granted by a plan tier.                                                                                                    |

Real-time human chat on escalate is available on **every** plan and is
deliberately not gated.

<Note>
  `remove_branding` is the one entitlement a plan upgrade cannot grant. It comes
  only from the purchased add-on, so it resolves from a workspace flag rather
  than from the tier — which is why the highest plan alone does not remove the
  badge.
</Note>

## The one that catches people out

<Warning>
  **The MCP server and agent artifacts need Growth**, because they use the same
  `agent_write` gate as write execution.

  On Starter, or during a trial, `/api/mcp/{workspaceId}` returns *"Agent
  channel not available for this workspace"* and `/api/agent/{pk}/{artifact}`
  returns `404`. Nothing about the URL is wrong; the plan is.
</Warning>

## Effective plan

Your workspace's plan string is resolved to an entitlement tier before any check:

| Stored plan                  | Resolves to                                                                                               |
| ---------------------------- | --------------------------------------------------------------------------------------------------------- |
| `starter`, `growth`, `scale` | Itself                                                                                                    |
| `enterprise`, `custom`       | **Scale** — contract tiers get the top self-serve entitlements; seat and usage terms live in the contract |
| `trial`                      | **Starter**                                                                                               |
| Anything unrecognised        | **Starter**                                                                                               |

Resolution fails closed. An unknown plan string never grants a feature by
accident.

## Active entitlement

A tier check is not the whole story. A workspace must also be *entitled to serve
at all*, and three things independently revoke that:

* the [kill switch](/authentication/keys#the-kill-switch) is on;
* the trial has expired;
* the subscription has lapsed.

Any of them and **no gated feature resolves**, whatever the plan says.

The add-on entitlements are checked the same way — a purchased add-on on a
workspace that is not entitled to serve grants nothing.

## What a non-entitled workspace does

The behaviour is chosen per surface, so a lapse degrades rather than breaks.

<CardGroup cols={2}>
  <Card title="The widget does not mount" icon="window">
    The widget is told on load, before the cursor shows — no cursor, no crawl, no agent calls.
  </Card>

  <Card title="The agent goes quiet" icon="comment-slash">
    The agent returns an empty, completed plan rather than an error, so a widget
    already on the page stops acting instead of throwing into it.
  </Card>

  <Card title="MCP stops answering" icon="plug-circle-xmark">
    Both endpoints return *"Agent channel not available for this workspace."*
  </Card>

  <Card title="Artifacts stop serving" icon="file-slash">
    `404` with *"Agent access is not enabled for this workspace."*
  </Card>
</CardGroup>

Lead capture and meeting booking stop entirely rather than degrading, since
there is no partial version of either. The gate is enforced on the server, so an
unentitled workspace does not capture leads or offer bookings through any
channel.

## Credits, separately

Distinct from plan gating, a workspace consumes credits. When the pool is
exhausted:

* the widget does not start a new session;
* a **new** conversation is refused before any model spend, while conversations
  already in progress continue;
* narration stops and the widget runs text-only.

The widget is given its remaining narration budget on load and decrements it
locally, so a session that runs out of voice mid-conversation goes quiet without
a round trip per utterance.

## Rate limits scale with the plan too

See [Rate limits](/reference/rate-limits) — Starter, Growth and Scale each get
their own ceilings.
