Update subscription tier or start a Stripe Checkout session
Request body
Response
Successful Response
Tier → yearly amount in cents. Populated only for tiers with a yearly Stripe price configured in LaunchDarkly. Empty for monthly-only configurations.
Billing cycle of the user's active Stripe subscription. Defaults to monthly for users without an active sub. monthly_cost above reflects this cycle's actual price (so a yearly subscriber sees their yearly amount, not the monthly equivalent).
Tier → rate-limit multiplier. Covers the same tiers listed in tier_costs so the frontend can render rate-limit badges relative to the lowest visible tier without knowing backend defaults.
True when the user has an active/trialing Stripe subscription. The frontend uses this to branch upgrade UX: modify-in-place + saved-card auto-charge when True, redirect to Stripe Checkout when False.
Unix timestamp of the active subscription's current_period_end. Used to show the date Stripe will issue the next invoice (with prorated upgrade charges, if any). None when no active sub.
Billing cycle of the queued change, when resolvable. Set alongside pending_tier for tier downgrades and same-tier cycle switches (yearly→monthly). The frontend uses this to differentiate a cycle-only schedule (pending_tier == current tier) from a real tier downgrade so the UI copy can describe the actual change. None for cancellations and unconfigured legacy prices.
Populated only when POST /credits/subscription starts a Stripe Checkout Session (BASIC → paid upgrade). Empty string in all other branches — the client redirects to this URL when non-empty.