All endpoints require an API key and accept JSON request bodies.
Include your API key in the Authorization header on every request:
Authorization: Bearer lfg_<prefix>.<secret>
API keys are scoped to a project. Requests can only operate on licenses and products belonging to that project. Generate keys from the organization panel under API Keys.
All error responses return:
{
"status": "error",
"message": "Human-readable description"
}
Activate a license on a computer. Returns a signed license file.
{
"license_key": "XXXX-XXXX-XXXX-XXXX",
"computer_uin": "base64-encoded-unique-id",
"computer_nickname": "My PC"
}
| Field | Type | Description | |
|---|---|---|---|
license_key | string | required | License key to activate |
computer_uin | string | required | Base64-encoded computer unique identifier |
computer_nickname | string | optional | Human-readable name for the computer |
{
"status": "ok",
"license_file": "base64-encoded-license-file",
"is_eval": false,
"timestamp": "1234567890"
}
| 400 | Missing fields, invalid key, activation limit reached, license expired |
| 403 | License belongs to a different project |
Deactivate a license on a specific computer. Limited to 3 deactivations per license per year.
{
"license_key": "XXXX-XXXX-XXXX-XXXX",
"computer_uin": "base64-encoded-unique-id"
}
| Field | Type | Description | |
|---|---|---|---|
license_key | string | required | License key to deactivate |
computer_uin | string | required | Base64-encoded computer unique identifier |
{
"status": "ok",
"deactivated": true,
"license_file": "base64-encoded-updated-license-file"
}
| 400 | Missing fields, invalid key, computer not found, no activation found, yearly limit reached |
| 403 | License belongs to a different project |
Validate a license and get a fresh license file. Read-only — no state is modified.
{
"license_key": "XXXX-XXXX-XXXX-XXXX",
"computer_uin": "base64-encoded-unique-id"
}
| Field | Type | Description | |
|---|---|---|---|
license_key | string | required | License key to validate |
computer_uin | string | required | Base64-encoded computer unique identifier |
{
"status": "ok",
"license_file": "base64-encoded-license-file",
"is_eval": false,
"timestamp": "1234567890"
}
| 400 | Missing fields, invalid key, computer not found, not activated, license expired |
| 403 | License belongs to a different project |
Create a new license programmatically (e.g. from a payment webhook).
{
"product_identifier": 1,
"license_type": 1,
"activation_limit": 2,
"email": "user@example.com",
"external_ref": "stripe_sub_123",
"is_eval": false
}
| Field | Type | Description | |
|---|---|---|---|
product_identifier | integer | required | Product identifier (not the database ID) |
license_type | integer | required | 1 = Computer, 2 = Named User |
activation_limit | integer | required | Max simultaneous activations |
email | string | optional | License holder email (max 254 chars) |
external_ref | string | optional | External reference, e.g. Stripe subscription ID |
is_eval | boolean | optional | Evaluation license (default: false) |
{
"status": "ok",
"license_key": "XXXX-XXXX-XXXX-XXXX",
"is_eval": false,
"expire": null,
"features_count": 3
}
| 400 | Missing required fields, invalid JSON |
| 403 | Product belongs to a different project |
| 404 | Product identifier not found |
← Home