Subscription
The subscription command mirrors Settings → Subscriptions — the
active plan, add-ons, and the list of plans available for upgrade.
Read-only by design. No upgrade, no payment, no coupon validation. To change a plan, use the web app.
Quick start
splashify subscription # consolidated view
splashify subscription status # current plan + add-ons
splashify subscription plans # available plans you can upgrade to
splashify subscription addons # add-ons on the current planCommand reference
| Subcommand | Backed by |
|---|---|
| (none — default) | Merges three reads: /app/plans/subscription, /app/developer/cli-eligibility, /plans |
status / current | GET /api/v1/app/plans/subscription |
plans / available | GET /api/v1/plans |
addons | Projection of addons[] from /app/plans/subscription |
Subscription gate at connect
splashify connect calls /api/v1/app/developer/cli-eligibility after
the token is validated. The endpoint refuses with reason: "subscription_expired" when:
- The user has no active paid plan (
plan_status != "active"or the plan has expired), AND - The trial has ended (
trial_ends_atis in the past or missing).
In that case the CLI prints:
your trial has ended and there is no active paid plan on this account.
The splashify CLI requires an active subscription (paid plan OR
unexpired trial).
Upgrade your plan: https://app.splashifypro.com/settings/subscriptions
Run "splashify subscription" once a plan is active to confirm,
then re-run "splashify connect".Free-trial users continue to work normally — the gate only fires when both trial and paid plan are unavailable.
Per-feature upgrade prompts
If a backend endpoint refuses a CLI command because the user’s plan is below the tier required for that feature, the response is:
{
"success": false,
"error": "plan_required",
"required_plan":"GROWTH",
"current_plan": "STARTER",
"feature": "broadcasts.create",
"upgrade_url": "https://app.splashifypro.com/settings/subscriptions"
}The CLI auto-detects this shape on any HTTP 402/403 and prints:
error: this feature requires a higher plan (you are on STARTER, needed: GROWTH)
Feature: broadcasts.create
Upgrade your plan: https://app.splashifypro.com/settings/subscriptionsThe CLI never invents tier rules — the backend stays the source of truth. Adding a new tier gate only requires the backend to return this shape; the CLI displays it correctly without a new release.
Common patterns
# Just the current plan name + expiry
splashify subscription status | \
jq '{plan: .user.plan_name, status: .user.plan_status, expires: .user.plan_expires_at}'
# Is the IP allowlist add-on active?
splashify subscription addons | \
jq '.addons[] | select(.feature == "allowed_ips") | .is_active'
# Pretty list of upgrade options
splashify subscription plans | \
jq -r '.plans[] | "\(.name)\t\(.base_price) \(.currency)/\(.billing_cycle)"'Related
- Access Tokens — see
cli-eligibilityflow - Billing — GST profile + invoices
- Wallet — balance and transactions