Skip to content

Get Billing Config

GET
/api/billing/config

The public à la carte price list — no auth required.

Mirrors app/api/health.py’s fully-public posture: this is read-only, pre-signup pricing data with no per-org state, the same information a marketing pricing page needs to render for an anonymous visitor. Soft-retired bundle plans (RETIRED_BUNDLE_PLAN_CODES, is_active=false) are excluded by the is_active filter.

Also the console’s only source for Stripe’s publishable key (§8.1), which is public by design — it can only tokenize a card, never read or charge. The key is withheld unless stripe is an enabled gateway, so the console never mounts Elements against a deployment whose checkout would 503.

Responses

200

Successful Response

GET /api/billing/config — the public plan catalog.

Also carries the gateway’s PUBLISHABLE identifier (§8.1): this endpoint is the console’s only source for it, and it is designed by Stripe to be public (it can mint payment methods, never read or charge). Secret keys and the webhook secret must never appear here.

object
enabled_gateways
Array<string>
plans
required
Array<object>

One row of the public à la carte plan catalog.

object
annual_discount_pct
required
integer
currency
required
string
meters_json
Any of:
object
plan_code
required
string
price_per_device_month_cents
required
integer
product
required
string
stripe_publishable_key
Any of:
string