API v1 · 4xx
plan_not_eligible
| HTTP | When |
|---|---|
| 403 | The workspace's current plan does not include the product feature a specific capability uses. |
API access itself is never the reason. The REST API, the MCP server
and webhooks are available on every plan — Free, Solo, Advanced,
Business, Enterprise and every grandfathered tier — so authentication,
/v1/workspaces/me and every capability whose feature your plan has
always answer normally.
A single capability can be plan-locked while the rest of the surface
works, because the product feature behind it is. The error names the
missing feature: update_global_tone_of_voice, for example, needs
companyToneOfVoice (Business and above). MCP keeps such a tool listed
and returns this error when it is called, because hosts cache the tool
list for the whole session — see MCP tools §2.
Upgrading is the only fix; the per-capability locks follow the same plan
matrix as the dashboard.
A workspace an agency pays for carries the agency's plan. The check resolves the plan the way the dashboard does: the customer that pays for the workspace first (an agency's Business subscription, for a client workspace it manages), the workspace's own customer record second. So a member of an agency-managed client workspace who connects from that workspace gets the same features the dashboard shows them.
To recover:
- Open the dashboard and visit Settings → Billing.
- Upgrade to a plan that includes the named feature.
- Retry the request — propagation is immediate after the upgrade webhook lands (within a few seconds in normal operation).
The check reads the plan recorded on the workspace's customer record,
which Scripe's billing webhooks keep up to date — it never consults the
Stripe subscription's live status. A subscription in Stripe's dunning
(past_due) keeps its plan until Stripe cancels it. If the workspace is
on a plan that includes the feature and you still see this code, the
record has not caught up with the upgrade yet; wait a few seconds and
retry, and contact support if it persists.