Request body
{
"license_key": "XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX",
"fingerprint": "abc123-machine-fingerprint",
"metadata": {
"email": "user@example.com",
"platform": "macos"
}
}API Endpoint
Bind a license key to a fingerprint. Usually the first runtime call after key entry.
POST /activate
Use these endpoints for license lifecycle operations. /generate and /revoke require a generated active server API key. Runtime endpoints use license_key plus fingerprint.
curl -X POST http://localhost:8080/activate \
-H "Content-Type: application/json" \
-d '{
"license_key": "XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX",
"fingerprint": "abc123-machine-fingerprint",
"metadata": {
"email": "user@example.com",
"platform": "macos"
}
}'{
"license_key": "XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX",
"fingerprint": "abc123-machine-fingerprint",
"metadata": {
"email": "user@example.com",
"platform": "macos"
}
}{
"valid": true,
"status": "active",
"license_key": "XXXXXX-XXXXXX-XXXXXX-XXXXXX-XXXXXX",
"fingerprint": "abc123-machine-fingerprint",
"expires_at": "2026-10-20T12:00:00Z",
"reason": ""
}valid
boolean
Whether activation succeeded for this fingerprint.
status
"inactive" | "active" | "revoked"
License status returned by activation logic.
license_key
string
License key provided in the request.
fingerprint
string
Fingerprint evaluated for activation.
expires_at
string | null
RFC3339 timestamp when the license expires, or null when it does not expire.
reason
string (optional)
Present on denied activations (for example revoked, expired, activation_limit_reached).
Invalid JSON, missing required fields, or invalid metadata.
License not found.
Unexpected server or storage error.