LevelChatLevelChatDocs
License vs subscription

Concepts

License vs subscription

Two different things — which one applies depends on whether you self-host or use the cloud.

License vs subscription

LevelChat customers ask "where do I see my license?" and the answer depends on how you run it. License and subscription are two different things, governed by two different surfaces in Studio.

The short version

  • License = a cross-stack compact JWT that tells a self-hosted deployment what it is allowed to do (which features, how many concurrent rooms, what storage cap, when it expires). The license is verified by every runtime in the stack and is bound to the deployment fingerprint.
  • Subscription = the commercial relationship between a customer and LevelChat — the plan, server count, invoices, and payment method. It is tied to the customer org and lives in the Studio Console's Billing page.

Both cloud and self-host customers have a subscription. Paid self-host is a recurring per-server monthly subscription bought in the Console; that subscription is what issues (and keeps alive) the deployment's license token. Cloud customers only have a subscription — the cloud control plane handles its own licensing internally.

So: if you use LevelChat Cloud you have a subscription at /billing. If you run LevelChat yourself, you have a subscription at /billing (where the license token is also displayed) and a deployment license you can inspect at /license.

Side-by-side

ConceptLicenseSubscription
Who has oneSelf-host deploymentsEvery customer — cloud and self-host
What it grantsRuntime entitlements (rooms, features, caps)A plan + server count / included usage + payment terms
Where it livesCompact JWT in the LEVELCHAT_LICENSE env varStripe, mirrored in admin-api / billing-svc
Where you see itStudio → /license, and the token on /billingStudio Console → /billing
Where you change itRe-copy from /billing, install via the CLISelf-serve plan / server-count change in /billing
Tied toA deployment fingerprint (cluster + machine)An org + Stripe customer
Issued byLevelChat license-svc (cross-stack JWT)Stripe + billing-svc on subscription create / update
What expiresThe JWT (exp claim); cancelling the subscription expires itThe current billing period (auto-renews)
If it expiresThe deployment downgrades to Community capsStripe retries the card; otherwise the plan lapses

Why /license is empty (or hidden) for cloud customers

On LevelChat Cloud, the deployment license belongs to LevelChat (the vendor). It is the license under which the cloud cluster runs — the tier, kid, fingerprint, and signed feature list of the vendor's own deployment. Surfacing that to a tenant customer would be an info disclosure: it would expose internal capacity and operator infrastructure that has nothing to do with the customer's relationship.

So on cloud, /license either redirects you to /billing (Studio's customer view) or 404s at the edge (the operator surface). What you actually want is your subscription, which lives at /billing.

On self-host, by contrast, you ARE the operator — the deployment is yours, the license is yours, and /license is the right place to verify that the cluster you're running has the entitlements you paid for.

Where to go next

  • Cloud: open /billing in Studio to see your plan, usage, invoices, and payment method.
  • Self-host: open /license in Studio to see your tier, expiry, entitlement caps, and fingerprint. See the self-host licensing guide for how to install or rotate a license.
  • Pricing model: see the pricing page for cloud plans and self-host tiers.
License vs subscription — LevelChat Docs