Licenses
Read, create, edit, and run actions on application licenses.
All license routes require applicationId and check access to that application.
Duration format
License durations use compact unit strings:
| Unit | Meaning | Max per part |
|---|---|---|
s | seconds | 59 |
m | minutes | 59 |
h | hours | 23 |
d | days | 365 |
w | weeks | 52 |
y | years | 100 |
Examples: 30d, 1h30m, 1y.
Get licenses metadata
GET /api/v1/panel/get-licenses-metadata
Required scope: licenses:read
curl "https://api.blazeauth.net/api/v1/panel/get-licenses-metadata?applicationId=123456789" \
-H "Authorization: Bearer $BLAZEAUTH_MANAGEMENT_API_KEY"{
"success": true,
"message": "Successfully fetched licenses metadata",
"data": {
"totalLicenses": 120,
"availableLicenses": 30,
"pausedLicenses": 5,
"activeLicenses": 80,
"expiredLicenses": 3,
"blacklistedLicenses": 2
}
}Get licenses table
GET /api/v1/panel/get-licenses-table
Required scope: licenses:read
curl "https://api.blazeauth.net/api/v1/panel/get-licenses-table?applicationId=123456789¤tPage=1" \
-H "Authorization: Bearer $BLAZEAUTH_MANAGEMENT_API_KEY"Optional searchParams is a URL-encoded JSON string:
{
"searchString": "ABCDEF",
"categories": ["License", "IPv4", "Client id"]
}{
"success": true,
"message": "Successfully fetched licenses table",
"data": [
{
"id": "7001",
"license": "ABCDEF-123456",
"clientId": "client-001",
"ipAddress": "203.0.113.10",
"pausedAt": null,
"createdAt": "2026-05-12T09:00:00.000Z",
"expiresAt": "2026-06-11T09:00:00.000Z",
"applicationId": "123456789",
"comment": "main seat",
"applicationLicenseSettings": {
"requiresClientId": true,
"levels": ["pro"],
"durationSeconds": 2592000,
"status": "activated"
},
"applicationUsers": {
"login": "john@example.com"
}
}
],
"totalPages": 3
}| Query field | Type | Required | Notes |
|---|---|---|---|
applicationId | string | Yes | Target application id. |
currentPage | number | Yes | Positive integer. |
searchParams | string | null | No | JSON string with searchString and categories. |
Create licenses
POST /api/v1/panel/create-licenses
Required scope: licenses:create
curl "https://api.blazeauth.net/api/v1/panel/create-licenses?applicationId=123456789" \
-X POST \
-H "Authorization: Bearer $BLAZEAUTH_MANAGEMENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"count": 2,
"license": "PREMIUM-******",
"comment": "batch import",
"clientId": "client-001",
"ipAddress": "203.0.113.10",
"licensesSettings": {
"levels": ["pro"],
"durationSeconds": "30d",
"requiresClientId": true
}
}'| Body field | Type | Required | Notes |
|---|---|---|---|
count | number | Yes | Maximum 256. |
license | string | Yes | 6-64 characters. |
comment | string | No | Maximum 64 characters. |
clientId | string | No | Maximum 64 characters. |
ipAddress | string | No | Maximum 64 characters. |
licensesSettings.levels | string[] | Yes | At least one level. |
licensesSettings.durationSeconds | string | Yes | Duration string such as 30d. |
licensesSettings.requiresClientId | boolean | Yes | Whether license activation requires a client id. |
{
"success": true,
"message": "Successfully created licenses.",
"createdLicenses": ["PREMIUM-A1B2C3", "PREMIUM-D4E5F6"]
}Edit licenses
PATCH /api/v1/panel/edit-licenses
Required scope: licenses:update
The route uses the same body schema as create. Include count even though the edit
handler ignores it; 1 is a safe compatibility value.
curl "https://api.blazeauth.net/api/v1/panel/edit-licenses?applicationId=123456789&licenseId=7001" \
-X PATCH \
-H "Authorization: Bearer $BLAZEAUTH_MANAGEMENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"count": 1,
"license": "ABCDEF-123456",
"comment": "renewed seat",
"clientId": "client-001",
"ipAddress": "203.0.113.10",
"licensesSettings": {
"levels": ["pro"],
"durationSeconds": "60d",
"requiresClientId": true
}
}'| Query field | Type | Required | Notes |
|---|---|---|---|
applicationId | string | Yes | Target application id. |
licenseId | string | Yes | License row to update. |
{
"success": true,
"message": "Successfully updated license.",
"createdLicenses": []
}License action
POST /api/v1/panel/license-action
Delete actions require licenses:delete. All other actions require licenses:update.
curl "https://api.blazeauth.net/api/v1/panel/license-action?applicationId=123456789" \
-X POST \
-H "Authorization: Bearer $BLAZEAUTH_MANAGEMENT_API_KEY" \
-H "Content-Type: application/json" \
-d '{
"action": "extend_duration_license",
"licenseId": "7001",
"durationSeconds": "30d"
}'| Body field | Type | Required | Notes |
|---|---|---|---|
action | string | Yes | One of the actions below. |
licenseId | string | Action-specific | Required for single-license actions. |
durationSeconds | string | Action-specific | Required for add/extend time actions. |
userLogin | string | Action-specific | Required for link_license_to_user. |
| Action | Required scope | Required extra fields |
|---|---|---|
add_time_to_every_license | licenses:update | durationSeconds |
pause_every_license | licenses:update | None |
unpause_every_license | licenses:update | None |
delete_every_license | licenses:delete | None |
extend_duration_license | licenses:update | licenseId, durationSeconds |
reset_client_id_license | licenses:update | licenseId |
pause_license | licenses:update | licenseId |
unpause_license | licenses:update | licenseId |
delete_license | licenses:delete | licenseId |
blacklist_license | licenses:update | licenseId |
unblacklist_license | licenses:update | licenseId |
reinitialize_license | licenses:update | licenseId |
link_license_to_user | licenses:update | licenseId, userLogin |
Many actions notify connected client sessions for the application.
{
"success": true,
"message": "Action completed successfully."
}