Skip to content

#304 — set a workspace plan (comp/Enterprise grant); requires a reason; never touches live Stripe

POST
/api/v1/admin/workspaces/{id}/plan
curl --request POST \
--url https://example.com/api/v1/admin/workspaces/example/plan \
--header 'Authorization: Bearer <token>' \
--header 'Content-Type: application/json' \
--data '{ "plan": "free", "reason": "example", "expires_at": "2026-04-15T12:00:00Z" }'
id
required
string

Workspace id

Media typeapplication/json
object
plan
required
string
Allowed values: free pro business enterprise
reason
required
string
>= 1 characters <= 2000 characters
expires_at
string format: date-time
/^(?:(?:\d\d[2468][048]|\d\d[13579][26]|\d\d0[48]|[02468][048]00|[13579][26]00)-02-29|\d{4}-(?:(?:0[13578]|1[02])-(?:0[1-9]|[12]\d|3[01])|(?:0[469]|11)-(?:0[1-9]|[12]\d|30)|(?:02)-(?:0[1-9]|1\d|2[0-8])))T(?:(?:[01]\d|2[0-3]):[0-5]\d(?::[0-5]\d(?:\.\d+)?)?(?:Z|([+-](?:[01]\d|2[0-3]):[0-5]\d)))$/