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 every admin endpoint you call — the multi-tenancy is invisible from the API surface.
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.
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):
| Plan | Active license limit | Price |
|---|---|---|
| Free | 5 | $0 |
| Pro | 100 | $39/month, or $374/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 Pro subscription 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
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. Start an upgrade with POST /v1/billing/checkout, which returns a URL to complete the purchase; the plan itself doesn't change until that checkout completes. Pro can be billed monthly or annually — see the API Reference for the full request/response shapes, including the interval field.
Downgrading from Pro 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. Cancellation takes effect at the end of your current billing period, not immediately: your plan and license limit stay at Pro until then, so you keep the capacity you've already paid for rather than losing access mid-cycle.
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 from Settings in the console. 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 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
| Self-hosted | Hosted | |
|---|---|---|
| Where it runs | Your own server/container | Casazium-managed |
| Setup | Clone, configure four secrets, deploy | Sign up, done |
| Data location | Your own database | Casazium's shared multi-tenant database |
| Isolation model | Physical — your own dedicated instance | Logical — enforced per-request tenant scoping |
| Upgrades/patching | You | Casazium |
| Cost | Free (self-hosted infrastructure only) | Free plan available; Pro for higher limits |
If you need to keep license data on infrastructure you fully control — regulatory, contractual, or just a preference — self-host. See Installation & Setup. Everything else about the API is identical either way.
Next Steps
- Authentication - How your hosted API key works
- Issue your first license
- Integrate with your app
