LitmusEdgeManager 2.31.x API Documentation/Edge Lifecycle Management/Licenses - LE, LEM, LUNS API Docs
License Summary - Status
GET {{LEM_URL}}/api/v1/device-license-pool/stats?projectId={{project_id}}
License Summary -- Status
Returns counts of licenses by state in the project pool: active / used / unused / expired.
Endpoint
GET {{LEM_URL}}/api/v1/device-license-pool/stats?projectId={{project_id}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
{ "active": 1, "used": 1, "unused": 0, "expired": 0 }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"active": 1,
"used": 1,
"unused": 0,
"expired": 0
}
Licenses List SKUs
GET {{LEM_URL}}/api/v1/device-license-pool/skus?projectId={{project_id}}
Licenses List SKUs
Returns the SKUs allocated to the project's license pool, with count per SKU and the isCore flag.
Endpoint
GET {{LEM_URL}}/api/v1/device-license-pool/skus?projectId={{project_id}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
licenseSku |
string | SKU identifier (e.g. litmusedge-scale-nl). |
count |
integer | Number of license entitlements of this SKU. |
isCore |
boolean | True for the core LE license SKU. |
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"licenseSku": "litmusedge-scale-nl",
"count": 1,
"isCore": true,
"core": true
}
]
Used Licenses
GET {{LEM_URL}}/api/v1/device-license-pool/used?projectId={{project_id}}
Used Licenses
Returns paginated list of licenses currently used by devices in the project pool, with feature expiry, MAC address, and device friendly name.
Endpoint
GET {{LEM_URL}}/api/v1/device-license-pool/used?projectId={{project_id}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
200 OK -- application/json. Paged. Each elements[] entry carries projectId, deviceId, deviceName, deviceFriendlyName, macAddress, expiryFeatureDate, and an array of licenses[] records.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
{
"pageNum": 0,
"pagesCount": 1,
"size": 1,
"totalSize": 1,
"elements": [
{
"projectId": "39abjcmqdc6r4gsctj7zjufnv",
"deviceId": "88mqx2r8dv6fgsc968ybvw43k",
"deviceName": "litmus-edge-005056b98eb5",
"deviceFriendlyName": "API Portal (00:50:56:b9:8e:b5)",
"macAddress": "00:50:56:b9:8e:b5",
"expiryFeatureDate": 1786233599000,
"licenses": [
{
"id": "2e4392ee-2d75-4850-994f-13f36c1fdbc7",
"companyName": null,
"projectId": "39abjcmqdc6r4gsctj7zjufnv",
"projectName": null,
"deviceId": "88mqx2r8dv6fgsc968ybvw43k",
"deviceName": null,
"deviceFriendlyName": null,
"macAddress": null,
"licenseKey": "0000-0000-0000-0000",
"licenseSku": "litmusedge-scale-nl",
"activationDate": null,
"expiryDate": 1786233599000,
"isCore": true,
"isTrial": false,
"status": "OK",
"origin": "EDGE",
"reservedUntil": null,
"votmSensorCount": null,
"expiryFeatureDate": 1786233599000,
"trial": false,
"core": true
}
]
}
]
}
Edge License Features
GET {{LEM_URL}}/api/v1/feature
Edge License Features
Returns the LEM-level feature catalog (server features such as EdgeEvents, DigitalTwin, OmaRegistry). Each carries a type (STABLE/EXPERIMENTAL) and an enabled flag.
Endpoint
GET {{LEM_URL}}/api/v1/feature
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
200 OK -- application/json. Array of feature objects with entryID, name, description, type, enabled (1/0), createdOn, updatedOn.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"entryID": 1,
"name": "EdgeEvents",
"description": "Edge events management",
"type": "EXPERIMENTAL",
"enabled": 1,
"createdOn": 1597449600000,
"updatedOn": null
},
{
"entryID": 2,
"name": "DigitalTwin",
"description": "Asset Management",
"type": "EXPERIMENTAL",
"enabled": 0,
"createdOn": 1597449600000,
"updatedOn": null
},
{
"entryID": 3,
"name": "OmaRegistry",
"description": "OMA Registry management",
"type": "STABLE",
"enabled": 1,
"createdOn": 1597449600000,
"updatedOn": null
},
{
"entryID": 4,
"name": "RemoteUI",
"description": "Edge device remote UI",
"type": "STABLE",
"enabled": 1,
"createdOn": 1613779200000,
"updatedOn": null
},
{
"entryID": 5,
"name": "ParameterizedTemplates",
"description": "Edge device parameterized templates management",
"type": "STABLE",
"enabled": 1,
"createdOn": 1615420800000,
"updatedOn": null
},
{
"entryID": 6,
"name": "EdgeRemoteNetwork",
"description": "Edge Remote Networks management",
"type": "STABLE",
"enabled": 1,
"createdOn": 1616716800000,
"updatedOn": null
}
]
License Features
GET {{LEM_URL}}/api/v1/licenses2/features
License Features
Returns the LEM license's allowed features with expiry. Different from Edge License Features -- this is what the LEM license itself unlocks (core, catalog, ...), not the feature catalog.
Endpoint
GET {{LEM_URL}}/api/v1/licenses2/features
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Response
200 OK -- application/json. Each entry: name, desc, expires, expiresTimestamp, count (-1 unmetered), limited, enabled.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"name": "core",
"desc": "core",
"expires": "2025-09-02T00:00:00Z",
"expiresTimestamp": 1756771200000,
"count": -1,
"limited": false,
"enabled": true
},
{
"name": "catalog",
"desc": "catalog",
"expires": "2025-09-02T00:00:00Z",
"expiresTimestamp": 1756771200000,
"count": -1,
"limited": false,
"enabled": true
}
]
Upload License CSV
POST {{LEM_URL}}/api/v1/device-license-pool/csv?projectId={{project_id}}
Upload License CSV
Bulk-imports licenses into the project pool from a CSV file. Multipart form-data; one file in the file part.
Endpoint
POST {{LEM_URL}}/api/v1/device-license-pool/csv?projectId={{project_id}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
Multipart form-data with a single file part containing the CSV.
Response
200 OK -- application/json
{ "code": "S", "message": null, "messageDetails": null }
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Generate Report to CSV
POST {{LEM_URL}}/api/v1/device-license-pool/all/csv?projectId={{project_id}}
Generate Report to CSV
Generates a license-usage report for the specified devices and returns it as a CSV string. Pass deviceIds: [] to include every device in the project.
Endpoint
POST {{LEM_URL}}/api/v1/device-license-pool/all/csv?projectId={{project_id}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{ "deviceIds": ["{{edge_device_id}}"] }
Response
200 OK -- text/csv. Columns: Project ID, Device ID, Device name, Device friendly name, Device MAC address, License key, SKU, Activation date, Expiry date, Feature Expiry Date, Is core, Is trial, Status.
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"deviceIds": [
"{{edge_device_id}}"
]
}
Response
Status: 200 OK
"Project ID","Device ID","Device name","Device friendly name","Device MAC address","License key","SKU","Activation date","Expiry date","Feature Expiry Date","Is core","Is trial","Status"
"39abjcmqdc6r4gsctj7zjufnv","88mqx2r8dv6fgsc968ybvw43k","litmus-edge-005056b98eb5","API Portal (00:50:56:b9:8e:b5)","00:50:56:b9:8e:b5","0000-0000-0000-0000","litmusedge-scale-nl",,"2026-08-08T23:59:59","2026-08-08T23:59:59","true","false","OK"
Generate Report to Email
POST {{LEM_URL}}/api/v1/device-license-pool/all/csv/email?projectId={{project_id}}
Generate Report to Email
Same report as Generate Report to CSV but emails it to the specified addresses instead of returning it.
Endpoint
POST {{LEM_URL}}/api/v1/device-license-pool/all/csv/email?projectId={{project_id}}
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{
"deviceIds": ["{{edge_device_id}}"],
"emails": ["parth.shah@litmus.io"]
}
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Request Body
{
"deviceIds": [
"{{edge_device_id}}"
],
"emails": [
"parth.shah@litmus.io"
]
}