Skip to main content
POST
Manually grant or override a plan (admin write)

Authorizations

Authorization
string
header
required

Clerk dashboard session JWT. Used on dashboard, billing, playground, and admin console routes only:

These are human-session credentials, not API keys. The dashboard frontend must never send authoritative account IDs, plan values, quota counters, Stripe IDs, or API-key actor fields — the server derives ownership from the session. Admin console routes additionally require the custom admin_role claim (admin or support) on the same verified session JWT; writes require admin.

Path Parameters

accountID
string
required

Body

application/json
plan
enum<string>
required
Available options:
Basic,
Developer,
Growth,
Scale,
Business,
Enterprise
note
string
required

Required operator note; recorded on the admin_actions audit row.

Required string length: 1 - 350

Response

Manual grant applied (with overwrite warning).

account_id
string
required
old_plan
string
required
new_plan
string
required
source
enum<string>
required
Available options:
manual
warning
string
required

The DIRECT-007 manual-grant caveat. A Stripe subscription webhook or reconciler pass re-derives the snapshot from financial state and will overwrite this grant (no subscription → Basic).