Billing
Change plan
Admins only.
POST/v1/organizations/{organizationId}/billing/change
Up a tier, or monthly to yearly: immediate, prorated and charged now to the card on file; a declined card refuses the change. Down a tier, or yearly to monthly: scheduled for the end of the period already paid for, and withdrawable with billing.cancel (what: pendingChange). With no subscription yet, returns checkoutUrl instead. Call billing.preview first to see the figure. Refused with 501 while billing is not connected.
Requires the account:write scope. Operation billing.change. MCP tool billing_change. CLI, once published: gtable billing change.
Path parameters
| Name | Type | Required | Description |
|---|---|---|---|
organizationId | string | yes |
Headers
| Name | Type | Required | Description |
|---|---|---|---|
Idempotency-Key | string | no | Any unique string. Sending the same key with the same request again returns the first response (marked Idempotency-Replayed: true) instead of running it twice. Reusing it for a different request is refused with 409. Kept for 24 hours. Up to 255 characters. |
Request body
| Field | Type | Required | Description |
|---|---|---|---|
plan | “free” or “starter” or “team” or “custom” | yes | |
interval | “monthly” or “yearly” | no | Default "monthly". |
Response
Success
dataobjectrequiredRefused
errorobjectrequired