Skip to main content
Manage your Upstack account from the command line. Wraps the /api/account endpoints — see the API reference and the Account group for full request/response shapes.

Subcommands

show

Print the configured account as JSON — display name, creation date, active owners and admins, and the current subscription summary (when present).
Sample output:
Required scope: account:read.

Rendering price after a discount

Render discountedDisplayPrice ?? displayPrice to match the web app’s billing page. v2 (Stripe-native) plans may omit discountedDisplayPrice even when a discount is present — fall back to displayPrice and surface the discount summary for context.

rename

Rename the configured account. Prints the current → new transition and prompts for confirmation; pass --yes (or -y) to skip.
Required flags: Optional flags: Required scope: account:write. The endpoint is allowlist-only — accountName is the single field accepted; any other key in the body is rejected with 400. Renames emit an accountUpdated EventBridge event with actor: cli:{apiKeyPk} so downstream consumers can distinguish UI vs API-key mutations.

settings order show

Print the account’s order settings as JSON — count flags for pending and voided orders, refund-date attribution, and the list of exclusion filters that drop matching orders from every analytics query.
Sample output:
Required scope: account:read. When the account has no stored orderSettings, the response is filled with the same defaults the web app uses (countPendingOrders=false, countVoidedOrders=false, refundDateAttribution=refund_date, exclusionFilters=[]).

settings order set

PUT-the-whole-config semantics. The file you pass replaces the stored orderSettings in its entirety — any existing filter not present in the file is deleted. The server assigns id, createdAt, and updatedAt on new filters (and on nested groups + conditions); entries that already carry an id preserve their createdAt and get a bumped updatedAt.
The CLI prints a summary (counting flags, refund attribution, filter count) and asks for confirmation; --yes skips the prompt. Required flags: Optional flags: Example body — “drop POS orders” filter, every id optional:
Required scope: account:write. Strict allowlist at every nesting level — extra keys in the body, or in a filter, group, or condition are rejected with 400. Operators must be valid for the chosen field type per ORDER_EXCLUSION_FIELD_CATALOG (e.g. greater_than on sourceName → 400). Updates emit an accountUpdated EventBridge event with actor: cli:{apiKeyPk} and change: { kind: "orderSettings" }.