Skip to main content
A License Keys benefit is a template. Every customer who buys a product carrying it gets their own key, issued automatically at purchase.

Create the benefit

BenefitsNew benefitLicense Keys. Name it for customers (Pro license), then set the terms:
optional
A short string at the front of every key from this benefit, so you can tell at a glance which product a key came from — ACME, PRO, TEAM.
optional
Off by default (keys never expire). Turn it on and set a duration — a number plus days, months or years. The clock starts when the key is issued.
optional
Off by default (unlimited machines). Turn it on and set the maximum number of machines that can hold an active activation at once.
Expiry and activation limit are captured on each key at the moment it’s issued. Raising the limit on the benefit gives new customers more machines; it doesn’t change keys already out there. Change an individual key from Licenses.

Activations and seats

An activation — sometimes called an instance — is one machine, install or device using a key. Your software creates one on first run and stores the ID it gets back. When the activation limit is reached, further activations are refused until a seat is freed. Both you and the customer can free one:
  • The customer deactivates a machine from Licenses in their portal
  • You deactivate one from Licenses in the admin panel
  • Your software calls the deactivate endpoint — the right thing to do on uninstall or sign-out

Key statuses

Every key resolves to exactly one status. This is what the License API reports, and what you see in the admin panel:
inactive is not a problem — it just means nobody has activated the key yet. It’s still a perfectly good key.

Validating from your software

Your app talks to the License API using a server-side API key. The usual pattern:
1

Activate once

On first run, call activate with the customer’s key and a name for the machine. Store the instance.id you get back.
2

Validate on launch

Call validate with the key and the stored instance.id. Check valid.
3

Deactivate on the way out

On uninstall or sign-out, call deactivate so the customer gets their seat back.

License API reference

Endpoints, request and response shapes, error handling, and code samples.

Who owns the key

This depends on the gateway the order came from, and it decides whether you can regenerate a key: For Lemon Squeezy and Polar, disabling a key and deactivating seats still work and sync in both directions. Only regeneration is unavailable.

Managing issued keys

Everything you can do to a customer’s key lives on Licenses: search, view activations, disable and re-enable, free a seat, and regenerate where supported.