Skip to content

Managing licenses

Everything you need to do with licenses post-mint lives under Licenses in the dashboard.

The licenses page shows every license for every product, with:

  • Display key - masked form like ACME-XXXX-···-7B2D.
  • Status - active, revoked, reminted, or expired.
  • Activations - how many devices are currently active out of the activation limit.
  • Created date and (when applicable) expiry date.

Click a license to drill into its detail view.

Enterprise plan tenants can export the full list as CSV (/licenses.csv). See Billing & plans.

The detail page shows:

  • Status badge (active / revoked / reminted / expired).
  • All known activations with the device name, instance ID, first-seen timestamp, and last-validated timestamp.
  • Actions: Remint, Revoke, Deactivate instance.

Frees one activation slot so the customer can use the key on a different device.

Surgical - doesn’t invalidate the license, just this one instance. The app on the deactivated device will flip to .invalid on its next refresh.

Marks the license as revoked. Effect:

  • /validate on any instance returns 422 License has been revoked.
  • /activate with this key returns 404 (revoked licenses are treated like deleted).
  • Instances holding an unexpired cached lease can keep working for up to the remaining lease TTL (max 7 days). This is intrinsic to offline leases - see Offline leases.

Use for: refunds, chargebacks, abuse.

Marks the old license as reminted and issues a fresh key for the same product + key type. The new key is shown once.

Use for: lost keys, compromised keys, “customer’s laptop got stolen.”

The old license stops validating for all instances. New instances must activate with the new key.

ActionExisting device stays working?For how long?
Deactivate instanceThat one device → no. Others → yes.Until next refresh (≤24h typically)
RevokeNoUntil cached lease expires (≤7 days)
RemintNoUntil cached lease expires (≤7 days)

If you need immediate, hard cut-off for a single device, deactivating the instance is faster than revoking - the /validate call explicitly checks the instance status, and Keylight rejects before serving a fresh lease.

Every action records an audit entry (revoke, remint, deactivate_instance) with the operator’s identity, the target license hash, and a timestamp. Entries have a 365-day TTL.