Base URL
All API requests are made to the following base URL:Endpoints
The API provides three endpoints for license lifecycle management:| Method | Endpoint | Description |
|---|---|---|
POST | /license/activate | Activate a license on a machine |
POST | /license/validate | Validate an active license |
POST | /license/deactivate | Deactivate a license from a machine |
Request Format
All requests must be sent as JSON with theContent-Type: application/json header.
Common Parameters
| Parameter | Type | Description |
|---|---|---|
license_key | string | License key in XXXXX-XXXXX-XXXXX-XXXXX-XXXXX format (alphanumeric) |
machine_id | string | SHA-256 hash of machine identifier (64 hex characters) |
Response Format
Successful activation and validation responses return signed license data:signature field contains an RSA-SHA256 cryptographic signature of the data object, which can be verified client-side using the public key to ensure response integrity.
Response Signing
All successful activate and validate responses are cryptographically signed:- The
dataobject fields are sorted alphabetically by key - The sorted object is JSON-encoded
- The JSON string is signed using RSA with SHA-256
- The signature is returned as a Base64-encoded string
Rate Limiting
All endpoints are rate-limited. Rate limit information is included in response headers:| Header | Description |
|---|---|
X-RateLimit-Limit | Maximum number of requests allowed in the current window |
X-RateLimit-Remaining | Number of requests remaining in the current window |
X-RateLimit-Reset | Unix timestamp when the rate limit window resets |
429 status code:
Error Handling
Error responses follow a consistent format:Status Codes
| Code | Description |
|---|---|
200 | Success |
403 | License suspended, expired, or machine not activated |
404 | License key not found |
409 | Activation limit reached |
422 | Validation error (invalid request parameters) |
429 | Rate limit exceeded |
Validation Errors
Validation errors (422) include field-level details:
License Statuses
| Status | Description |
|---|---|
active | License is valid and can be used |
suspended | License has been suspended and cannot be activated or validated |
