Skip to content

Activations

An activation records that a license is being used somewhere – a website, a device, a user, or a server instance. The plan's activation type controls what each activation represents.

Activation Types

TypeTracksIdentifier exampleNormalisation
domainWebsitesexample.comProtocol, www., and path stripped. Lowercased
deviceComputers, phones, IoTMacBook-Pro-ABC123Kept as-is
seatIndividual usersuser@company.comLowercased
instanceServer / container instancesprod-api-01Kept as-is

Normalisation happens server-side in the API. A customer's app can send https://www.Example.com/path and it's stored as example.com – so the same site can't accidentally consume two activation slots.

How It Works

The customer's software (or a license-check plugin in your Joomla extension, WordPress plugin, desktop app, etc.) talks to LicenseDock through three API calls:

EndpointPurpose
POST /licenses/activateRegister a new activation
POST /licenses/validateCheck the license is still good (run on app start, periodically, or before features that need it)
POST /licenses/deactivateRemove an activation, freeing a slot

Activation is idempotent – calling activate twice with the same identifier returns success without creating a duplicate.

Activation Limit

Each plan has an Activation Limit. 0 means unlimited. When the limit is reached, the API returns:

json
{
  "error": {
    "code": "ACTIVATION_LIMIT_REACHED",
    "message": "Activation limit reached.",
    "activation_limit": 5,
    "activations_used": 5
  }
}

The customer needs to deactivate one of their existing activations (from your app or the customer portal) to free a slot.

Activation Record

Each activation row holds:

FieldNotes
IdentifierNormalised based on activation type
NameOptional friendly label – set this from your app to help customers identify activations in the portal
IP AddressIP of the request that activated
Activated AtTimestamp

Admin Override

Admins can add or remove activations directly from Components → LicenseDock → Licenses → Edit. Adding bypasses the activation limit so support can help customers without forcing them to deactivate first.

For Developers

Building license-check into your software? Start with the API reference:

Joomla Extensions by Contona