Skip to content
License Server v1.29.0 · released 30 Oct 2026release notes →
Skip to content

Hosted (SaaS) Tier ​

Not every team wants to run and maintain their own License Server. The hosted tier gives you a Casazium-managed account instead — sign up, get an API key, and start issuing licenses in minutes, with no server to deploy, patch, or back up yourself.

This is a parallel path to self-hosting, not a replacement for it. Both run the exact same License Server codebase and the exact same API — see Choosing between the two below if you're not sure which fits.

How it works ​

Every self-hosted deployment is single-tenant: one ADMIN_API_KEY, one database, one team. The hosted tier is the same server software running in multi-tenant mode — many accounts share one running deployment, but each account (a tenant) only ever sees its own licenses, activations, and usage data. There is no cross-tenant admin key; the isolation is enforced on every request, not just in the UI.

TIP

If you're integrating against a hosted account, nothing about the Integration Guide, license verification, or activation endpoints changes. Your tenant-scoped API key works exactly like a self-hosted ADMIN_API_KEY for the admin endpoints that manage your licenses, releases and storefronts — the multi-tenancy is invisible from the API surface. The exceptions are the few routes for whoever runs the server, which need its master ADMIN_API_KEY and refuse a tenant key with a 403: GET /admin/build-info, POST /admin/crash-test, GET /admin/tier-a-status, GET /self-license/status and tenant provisioning (/admin/tenants and the routes under it). A hosted account never needs them.

Creating an account ​

Sign up directly at license-cloud.casazium.com/signup, or via the "Sign up" button on casazium.com's Pricing page. Signing up creates your tenant and issues your account's own API key immediately — there's no separate provisioning step or waiting period.

From there, the console walks you through issuing your first license, so you can confirm everything works before wiring up your own application's integration. Using the Console tours the rest of it.

Your API address ​

A hosted account's License Server API is at https://license-cloud-api.casazium.com, with its routes under /v1 — so the base URL your application and scripts use is https://license-cloud-api.casazium.com/v1. Wherever the rest of this documentation shows a stand-in such as https://your-license-api.com, that's the address to put in its place.

It is not the console's address, license-cloud.casazium.com, the site you sign in to. A request sent there under /v1/ gets a 404 whose error names the right address, instead of an API response.

The console shows the base URL under Settings → API access → API base URL, next to your account's API key, as https://license-cloud-api.casazium.com/v1: /v1 is already on the end, so it replaces a stand-in like https://your-license-api.com/v1 as a whole, with no second /v1 added. Use that API key wherever an example sends $ADMIN_API_KEY.

Plans and quotas ​

Hosted accounts are metered by how many active licenses they hold at once (revoked or expired licenses don't count against the limit):

PlanActive license limitPrice
Free50$0
Pro1,000$39/month, or $374/year (~20% off)
Business10,000$79/month, or $758/year (~20% off)

"Active" here means the license key's own status, not activation/seat usage

This limit counts license keys you've issued that aren't revoked or expired — it has nothing to do with whether anyone has activated them yet. A freshly issued license with zero activations still counts against your plan; deactivating an instance (freeing a seat on that license) doesn't remove the license itself from your plan usage. Only revoking or letting a license expire does. This is a different axis entirely from max_activations (how many devices/instances can activate one license at once) — see Issuing Licenses for that.

A new account starts on the Free plan. If your account has no billing history at all yet, it's treated as Free rather than unlimited.

If your subscription payment fails, issuing new licenses is blocked until it's resolved — existing licenses keep working for verification and activation, so your customers aren't affected while you sort out billing. See Rate Limits for the request quotas that apply on top of this (those are the same for every hosted account and don't vary by plan).

Once a paid subscription (Pro or Business) is fully canceled (see below), your account reverts to the Free plan automatically rather than staying blocked — if you have more active licenses than Free's limit allows, issuing new ones stays blocked until you're back under that limit, but existing licenses keep working regardless.

Managing your subscription ​

In the console ​

Billing shows your Current plan, its status, and Licenses used against your plan's limit. Below them, under "Change plan":

  1. Choose Monthly or Annual (save ~20%). This applies to the paid plans, Pro and Business, and starts on your own billing period if you're on one.
  2. Choose the plan you want.

On Free, choose Select on Pro or Business. That opens checkout, and the plan doesn't change until that checkout completes.

On a paid plan, other plans read Switch, and Free reads Downgrade. Monthly and annual are separate choices: your own plan at the other period reads Switch to annual or Switch to monthly. Switch opens Stripe's billing portal on your current subscription, never a second one: it shows the prorated amount, and the change is made to that same subscription when you confirm. Downgrade opens the portal, where you cancel. If your subscription is past due, or already set to cancel, the buttons read Manage instead, and still open Stripe's billing portal.

The plan you're on shows Current plan while its subscription is active.

To go back to Free, choose Downgrade on Free (Manage if a payment is past due). That opens the page to manage or cancel your subscription. Cancellation takes effect at the end of your current billing period, not immediately: your plan and license limit stay at your current paid plan until then, so you keep the capacity you've already paid for rather than losing access mid-cycle. Until then, Billing shows a "Subscription canceled" notice with the date your paid plan ends.

Using the Console covers the rest of the console.

Through the API ​

Check your current plan and status with GET /v1/billing/status, using your tenant API key — the same credential you use for every other admin call; its interval is your paid plan's billing period. From Free, start a subscription with POST /v1/billing/checkout, which returns a URL to complete the purchase; the plan itself doesn't change until that checkout completes. Both paid plans, Pro and Business, can be billed monthly or annually. On a paid plan, the same call with another plan or interval returns a URL to Stripe's billing portal, which changes your existing subscription, as in the console. See the API Reference for the full request/response shapes, including the interval field.

Downgrading from a paid plan back to Free works the same way — call POST /v1/billing/checkout with plan: "free" and you'll get a URL to manage or cancel your subscription, with the same end-of-period cancellation as in the console.

Rotating your API key ​

If your API key is ever exposed — committed to a public repo, embedded in a client build, leaked in a log — rotate it immediately in the console: Settings → API access → Rotate API key, then confirm with your password. Rotation mints a completely new key and retires the old one in the same operation: the old key stops working right away, not after some grace period. This is deliberate — the whole point of rotating a leaked key is that the leak stops being useful immediately.

Update your own backend before rotating, if you can

Rotation isn't staggered — there's no window where both the old and new key work. Any of your own systems still using the old key will start getting 403s the instant you rotate, until you update them with the new one. If you're rotating because of a real leak, that tradeoff is the point; if you're rotating routinely, plan the key update on your own side first.

The same operation is available directly as POST /v1/rotate-api-key, authenticated with your current key — see the API Reference for the exact request/response shape.

Changing your password or email ​

From Settings in the console, you can change the password or email address you use to sign in — both require re-entering your current password first, the same safeguard used everywhere else on this page.

Changing your password signs out every other session on the account immediately; the browser you used to make the change stays signed in.

Changing your email doesn't take effect immediately. A confirmation link is sent to the new address, and your account only switches over once you click it — your current email keeps working normally until then, and the link expires after 24 hours. This is unlike API key rotation above: a typo'd new address just leaves an unused link, not a locked-out account.

Both of these are console-only settings — there's no equivalent POST /v1/... endpoint, since your password and email live in this console's own account system, not on the License Server itself.

Exporting your data ​

From Settings in the console, "Download my data" gives you a JSON file with every license key you've issued (including its activations), plus your current billing status — the same data you'd otherwise have to pull by hand via GET /v1/list-licenses and the per-license activation endpoints. There's no confirmation step; it's a plain download, generated fresh each time you click it.

See Exporting Your Data for the file's full format, what it doesn't include, and its limits (up to 1,000 licenses per export, one export per minute).

Deleting your account ​

From Settings in the console, you can permanently delete your hosted account yourself — no need to email support.

This is immediate and permanent

There is no grace period and no way to recover an account once it's deleted. Confirming deletion:

  • Stops every license you've issued from working right away, including for any of your own customers with an active activation
  • Permanently deletes every license key, activation, and usage record your account owns
  • Cancels any subscription and ends your access to the console — if the subscription can't be canceled at that moment, nothing is deleted and you can try again

If your licensed application is in active use by real customers, deleting your account will break it for them immediately — this isn't a soft deactivation.

You'll be asked to re-enter your password to confirm — a safeguard against an accidentally left-open session, not an extra hoop for its own sake. If you want a copy of your data first, see "Exporting your data" above — do that before confirming deletion, since there's no way to recover it afterward.

Branding ​

There's no self-service branding yet. Every hosted account currently sees Casazium's own default branding — logo, title, colors — both on the console's public pages (login, signup) and inside the authenticated app itself; there's no tenant-level override in place. If you need a white-labeled build ahead of that shipping, contact support.

Software Distribution ​

Gate your own software's downloads and update checks behind a license key — see Software Distribution for the full picture (this works self-hosted too, not just here).

check-update keeps working after a billing lapse

POST /register-release checks your subscription standing and refuses new releases once payment fails, the same as POST /issue-license. But POST /check-update doesn't - your existing end users keep getting served their already-registered releases and signed manifests regardless of your account's billing or revocation status, the same as every other public license-validation route. This matches this API's existing posture everywhere else (no public route consults account status), it's just worth knowing explicitly for this one, since it means "publishing" and "distributing what's already published" are not gated the same way.

Choosing between the two ​

If you need license data on infrastructure you fully control — regulatory, contractual, or just a preference — self-host. Everything else about the API is identical either way.

The full comparison, including what self-hosting actually costs to operate, is in Self-hosted or hosted?.

A correction, 2026-09-20

An earlier version of this table said self-hosting was "free (self-hosted infrastructure only)". That was wrong: self-hosting is licensed, with a 30-day evaluation. See Pricing.

Next Steps ​