Litmus Edge Manager 3.0.x - Admin Console: Settings
Domain Settings
GET {{LEM_adminURL}}/admin/v1/domain
Domain Settings
Returns the configured LEM domain names: LEM_BASE_DOMAIN_NAME (main UI) and LEM_REMOTE_DOMAIN_NAME (edge remote-access endpoint).
Endpoint
GET {{LEM_adminURL}}/admin/v1/domain
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"LEM_REMOTE_DOMAIN_NAME": {
"name": "LEM_REMOTE_DOMAIN_NAME",
"descr": "Edge Remote",
"value": "10.17.3.103"
},
"LEM_BASE_DOMAIN_NAME": {
"name": "LEM_BASE_DOMAIN_NAME",
"descr": "Base UI",
"value": "10.17.3.103"
}
}
Domain Update Log
GET {{LEM_adminURL}}/admin/v1/domain/log
Domain Update Log
Returns the progress log of the last domain settings change. Poll it after changing the domain to follow the reconfiguration.
Endpoint
GET {{LEM_adminURL}}/admin/v1/domain/log
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK -- application/json.
| Field | Type | Description |
|---|---|---|
status |
integer | Process status. 0 with Process is not running when no update is in progress. |
statusMessage |
string | Human-readable status. |
messages |
object[] | Log lines of the running or last update. |
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
{
"status": 0,
"statusMessage": "Process is not running",
"messages": []
}
Verify Domain
POST {{LEM_adminURL}}/admin/v1/domain/verify
Verify Domain
Checks a domain name before it is applied as the LEM domain. Used by the Domain settings form.
Endpoint
POST {{LEM_adminURL}}/admin/v1/domain/verify
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request body
application/json. A JSON string holding the domain name, e.g. "lem.example.com".
Response
200 OK -- application/json. A string with the verification result. The schema does not define its content.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
5xx |
The domain could not be resolved or verified. |
Example source: not called on a live device, because it changes instance-wide state. Request and response examples are derived from the LEM 2.31.x OpenAPI schema.
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
"lem.example.com"
SSL Settings
GET {{LEM_adminURL}}/admin/v1/domain/ssl
SSL Settings
Returns the available SSL modes (LETSENCRYPT_WEBROOT, LETSENCRYPT_DNS_CF, USER, SELFSIGNED) with each one's value indicating which is currently active.
Endpoint
GET {{LEM_adminURL}}/admin/v1/domain/ssl
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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. |
500 Internal Server Error |
Error get ssl settings: ... [secret]: permission denied, invalid token: the admin console cannot read the SSL secret from its secret store (observed on a 2.31 instance). |
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
{
"LETSENCRYPT_WEBROOT": {
"name": "LETSENCRYPT_WEBROOT",
"descr": "Let's Encrypt Web root challenge",
"value": false
},
"USER": {
"name": "USER",
"descr": "User custom settings",
"value": false
},
"SELFSIGNED": {
"name": "SELFSIGNED",
"descr": "Self-sighed",
"value": true
},
"LETSENCRYPT_DNS_CF": {
"name": "LETSENCRYPT_DNS_CF",
"descr": "Let's Encrypt DNS challenge",
"value": false
}
}
Update SSL Settings
POST {{LEM_adminURL}}/admin/v1/domain/ssl/self-signed
Update SSL Settings
Switches LEM's SSL mode -- the URL path indicates the target mode (e.g. /self-signed, /user, /letsencrypt-webroot). The response streams nginx config validation output.
Endpoint
POST {{LEM_adminURL}}/admin/v1/domain/ssl/self-signed
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
200 OK -- text/plain. nginx configuration reload output.
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
Updating SSL settings SELFSIGNED ...
nginx: [warn] only the last index in "index" directive should be absolute in /etc/nginx/conf.d/http/lem-ui.conf:107
nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/conf.d/http/lem-ui.conf:372
nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/conf.d/http/lem-ui.conf:406
nginx: [warn] duplicate MIME type "text/html" in /etc/nginx/conf.d/http/lem-ui.conf:423
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful
SSL settings is updated.
Validate DigiCert Settings
POST {{LEM_adminURL}}/admin/v1/domain/ssl/digicert/settings/validate
Validate DigiCert Settings
Validates DigiCert certificate-authority settings against DigiCert before they are saved. LEM contacts the DigiCert URL with the given profile and passcode.
Endpoint
POST {{LEM_adminURL}}/admin/v1/domain/ssl/digicert/settings/validate
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request body
application/json, all fields required.
| Field | Type | Description |
|---|---|---|
url |
string | DigiCert API URL, e.g. https://one.digicert.com/iot/api/v1. |
profileId |
string | DigiCert profile ID. |
passcode |
string | DigiCert passcode. |
duration |
integer | Certificate validity, days. |
Response
200 OK -- application/json. ApiResponse: code (S on success, E on error), message, messageDetails.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
200 with code: E |
DigiCert rejected the settings; see message. |
Example source: not called on a live device, because it changes instance-wide state. Request and response examples are derived from the LEM 2.31.x OpenAPI schema.
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
{
"url": "https://one.digicert.com/iot/api/v1",
"profileId": "<profile-id>",
"passcode": "<passcode>",
"duration": 365
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Cloud Credentials
GET {{LEM_adminURL}}/admin/v1/cloud-settings/credentials
Cloud Credentials
Returns the cloud-provider credentials configured for LEM (GCP service account, local S3, etc.).
Endpoint
GET {{LEM_adminURL}}/admin/v1/cloud-settings/credentials
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"type": "GCP",
"attrs": {
"clientEmail": "dev-gfm-vm@litmus-development.iam.gserviceaccount.com",
"creds": null,
"projectId": "litmus-development"
}
},
{
"type": "LOCAL",
"attrs": {
"secretKey": null,
"accessKey": "aaaa"
}
}
]
GCP SA Key Rotation Policy
GET {{LEM_adminURL}}/admin/v1/cloud-settings/gce-key-rotation-interval
GCP SA Key Rotation Policy
Returns the GCP service-account key rotation interval (days).
Endpoint
GET {{LEM_adminURL}}/admin/v1/cloud-settings/gce-key-rotation-interval
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
{ "interval": 180 }
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
{
"interval": 180
}
GCP Authentication Method
GET {{LEM_adminURL}}/admin/v1/cloud-settings/gce-auth-method
GCP Authentication Method
Returns how LEM authenticates to Google Cloud.
Endpoint
GET {{LEM_adminURL}}/admin/v1/cloud-settings/gce-auth-method
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK -- application/json.
| Field | Type | Description |
|---|---|---|
methodType |
string | SA_KEY (service account key) or OIDC. |
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
{
"methodType": "SA_KEY"
}
Update GCP SA Key Rotation Interval
PUT {{LEM_adminURL}}/admin/v1/cloud-settings/gce-key-rotation-interval
Update GCP SA Key Rotation Interval
Updates the GCP service-account key rotation interval.
Endpoint
PUT {{LEM_adminURL}}/admin/v1/cloud-settings/gce-key-rotation-interval
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{ "interval": 180 }
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
{
"interval": 180
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Storage Settings
GET {{LEM_adminURL}}/admin/v1/cloud-settings/storage
Storage Settings
Returns LEM's object-storage configuration: type (LOCAL / GCS / S3) and defaultBucketName.
Endpoint
GET {{LEM_adminURL}}/admin/v1/cloud-settings/storage
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"type": "LOCAL",
"defaultBucketName": ""
}
Interfaces
GET {{LEM_adminURL}}/admin/v1/system/network/interfaces
Interfaces
Returns the LEM host's network interfaces with DHCP flag and addresses.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/interfaces
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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": "eth0",
"dhcp": true,
"addresses": [
{
"address": "10.17.3.103/22",
"gateway": null
}
]
}
]
DNS
GET {{LEM_adminURL}}/admin/v1/system/network/dns
DNS
Returns the configured DNS resolvers per interface.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/dns
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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": "eth0",
"addresses": []
}
]
NTP
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/servers
NTP
Returns the configured NTP servers.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/servers
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
[ "0.pool.ntp.org", "1.pool.ntp.org", "2.pool.ntp.org", "3.pool.ntp.org" ]
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
[
"0.pool.ntp.org",
"1.pool.ntp.org",
"2.pool.ntp.org",
"3.pool.ntp.org"
]
NTP Allow List
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/allow-list
NTP Allow List
Returns the IP allow-list for the bundled NTP server -- which clients may sync from LEM.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/allow-list
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[]
NTP Status
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/status
NTP Status
Returns the live NTP client status: current server, stratum, reference time, system-vs-NTP skew.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/network/ntp/status
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"ntpStatus": "ON",
"ntpServer": "198.137.202.32",
"ntpStratum": "3",
"ntpRefTime": "Fri Nov 03 20:30:00 2023",
"ntpSystemTime": "0.000005316 seconds slow of NTP time"
}
Proxy Settings
GET {{LEM_adminURL}}/admin/v1/config
Proxy Settings
Returns the HTTP/HTTPS proxy configuration LEM uses for outbound connections.
Endpoint
GET {{LEM_adminURL}}/admin/v1/config
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{ "http_proxy_host": "", "http_proxy_port": "", "https_proxy_host": "", "https_proxy_port": "", "non_proxy_hosts": ""}
Update Proxy Settings
POST {{LEM_adminURL}}/admin/v1/config
Update Proxy Settings
Writes the LEM system config file, which holds the outbound HTTP / HTTPS proxy settings returned by Proxy Settings (GET /admin/v1/config). The whole file is replaced: read it first, change the fields you need, send it all back.
Endpoint
POST {{LEM_adminURL}}/admin/v1/config
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request body
application/json. The schema types the body as a string (Config file content). The example sends the same object Proxy Settings returns.
| Field | Description |
|---|---|
http_proxy_host / http_proxy_port |
HTTP proxy. Empty = none. |
https_proxy_host / https_proxy_port |
HTTPS proxy. Empty = none. |
non_proxy_hosts |
Hosts that bypass the proxy. |
Response
200 OK -- application/json. A string. The schema does not define its content.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
Example source: not called on a live device, because it changes instance-wide state. Request and response examples are derived from the LEM 2.31.x OpenAPI schema.
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
{
"http_proxy_host": "proxy.example.com",
"http_proxy_port": "3128",
"https_proxy_host": "proxy.example.com",
"https_proxy_port": "3128",
"non_proxy_hosts": "localhost,127.0.0.1"
}
Email Settings
GET {{LEM_adminURL}}/admin/v1/config/email-settings
Email Settings
Returns LEM's SMTP configuration for outbound email (alerts, reports, user invitations).
Endpoint
GET {{LEM_adminURL}}/admin/v1/config/email-settings
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"smtpHost": "smtp.gmail.com",
"smtpPort": 587,
"smtpUsername": "aaaa@gmail.com",
"smtpPassword": "aaaa",
"smtpEnable": true,
"smtpAuth": true,
"smtpStartTlsEnable": true,
"smtpStartTlsRequired": true,
"smtpSendFromEmail": "no-reply@lem.com",
"smtpSendFromName": "LEM"
}
Update Email Settings
POST {{LEM_adminURL}}/admin/v1/config/email-settings
Update Email Settings
Updates LEM's SMTP configuration. Send the full record -- omitted fields are reset.
Endpoint
POST {{LEM_adminURL}}/admin/v1/config/email-settings
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{
"smtpEnable": true,
"smtpHost": "smtp.gmail.com",
"smtpPort": 587,
"smtpStartTlsEnable": true,
"smtpStartTlsRequired": true,
"smtpAuth": true,
"smtpUsername": "litmusloop@gmail.com",
"smtpPassword": "<app-password>",
"smtpSendFromEmail": "no-reply@lem.com",
"smtpSendFromName": "LEM"
}
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
{
"smtpEnable": true,
"smtpHost": "smtp.gmail.com",
"smtpPort": 587,
"smtpStartTlsEnable": true,
"smtpStartTlsRequired": true,
"smtpAuth": true,
"smtpUsername": "litmusloop@gmail.com",
"smtpPassword": "qepnwhigguxjdaja",
"smtpSendFromEmail": "no-reply@lem.com",
"smtpSendFromName": "LEM"
}
Response
Status: 201 Created
Offline License List
GET {{LEM_adminURL}}/admin/v1/licenses2/offline
Offline License List
Returns the offline-license activation URL + host ID. Same shape as License Server Mgmt > Offline License Info.
Endpoint
GET {{LEM_adminURL}}/admin/v1/licenses2/offline
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"activationURL": "https://litmus.activate.id/",
"hostid": "005056b9a28e"
}
List Available Features
GET {{LEM_adminURL}}/admin/v1/licenses2/features
List Available Features
Returns the LEM license's available features (catalog, core) with expiry and counts.
Endpoint
GET {{LEM_adminURL}}/admin/v1/licenses2/features
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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": "catalog",
"expires": "2099-12-31T00:00:00Z",
"count": 1,
"limited": false
},
{
"name": "core",
"expires": "2099-12-31T00:00:00Z",
"count": 1,
"limited": false
}
]
License Type
GET {{LEM_adminURL}}/admin/v1/licenses2/type
License Type
Returns the LEM license type: FLOATING or NODE_LOCKED.
Endpoint
GET {{LEM_adminURL}}/admin/v1/licenses2/type
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
{ "licenseType": "FLOATING" }
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
{
"licenseType": "FLOATING"
}
Installed Licenses
GET {{LEM_adminURL}}/admin/v1/licenses2
Installed Licenses
Lists the licenses installed on the LEM instance (the /licenses2 service). Empty when the instance is licensed through the Litmus licensing server instead (see License Server Mgmt), as in the example.
Endpoint
GET {{LEM_adminURL}}/admin/v1/licenses2
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK -- application/json. Array of licenses: name, desc, expiryDate, expiryDays, features[] (name, desc, value), key, status.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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": "trial",
"key": {
"value": ""
},
"status": "OK",
"expiryDate": "2026-10-28",
"expiryDays": 14,
"core": false,
"trial": true
}
]
Verify License
GET {{LEM_adminURL}}/admin/v1/licenses2/verify
Verify License
Checks whether the LEM license is valid and how long it has left.
Endpoint
GET {{LEM_adminURL}}/admin/v1/licenses2/verify
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK -- application/json.
| Field | Type | Description |
|---|---|---|
status |
string | S = valid. |
expDays |
integer | Days until the license expires. |
message / messageDetails |
string | Warning text, e.g. when a trial is about to expire. null otherwise. |
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
{
"status": "S",
"expDays": 13,
"message": null,
"messageDetails": null
}
Primary License
GET {{LEM_adminURL}}/admin/v1/litmus-licensing/licenses?primary=true
Primary License
Returns the primary core license. Same payload as License Server Mgmt > Core License List -- exposed here for admin-settings convenience.
Endpoint
GET {{LEM_adminURL}}/admin/v1/litmus-licensing/licenses?primary=true
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"akey": "0000-1111-2222-3333",
"expiryDate": "2024-08-02T00:00:00Z",
"name": "litmus-scale-1y-site",
"totalCount": 1
}
]
License Components
GET {{LEM_adminURL}}/admin/v1/litmus-licensing/licenses?primary=false
License Components
Returns the feature licenses (non-primary). Same payload as License Server Mgmt > Feature License List.
Endpoint
GET {{LEM_adminURL}}/admin/v1/litmus-licensing/licenses?primary=false
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-analytics",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "ll-core",
"totalCount": 1
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-opcua",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-core",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-marketplace",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-devices",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-updates",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-backup",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "le-dt",
"totalCount": 999999
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "",
"totalCount": 1
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"name": "",
"totalCount": 1
},
{
"expiryDate": "2024-08-02T00:00:00Z",
"limited": true,
"name": "le-tags",
"totalCount": 50000
}
]
Switch License Type
POST {{LEM_adminURL}}/admin/v1/licenses2/type?licenseType=FLOATING
Switch License Type
Switches between FLOATING and NODE_LOCKED licensing.
Endpoint
POST {{LEM_adminURL}}/admin/v1/licenses2/type?licenseType=FLOATING
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"code": "S",
"message": null,
"messageDetails": null
}
Get Marketplace Catalog Roles of User
GET {{LEM_adminURL}}/admin/v1/user/mpcs/roles?username={{LEM_admin_username}}
Get Marketplace Catalog Roles of User
Marketplace Catalog roles held by a user. The only role on 2.31 is mpcs:admin. Without username the device returns an empty array, not the role catalogue.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/mpcs/roles?username={{LEM_admin_username}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
username |
string | No | User to inspect. |
Response
200 OK. Array of role names.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
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
[
"mpcs:admin"
]
Grant Marketplace Catalog Role to User
POST {{LEM_adminURL}}/admin/v1/user/mpcs/grant
Grant Marketplace Catalog Role to User
Gives a user a Marketplace Catalog role. Granting a role the user already has still answers S.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/mpcs/grant
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
username |
string | Yes | User. |
roleName |
string | Yes | Role, e.g. mpcs:admin. |
Response
200 OK. Body is an ApiResponse: code (S success, W warning, E error), message, messageDetails.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
500 |
Error occured: Invalid marketplace role <role>. |
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
{
"username": "{{LEM_admin_username}}",
"roleName": "mpcs:admin"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Revoke Marketplace Catalog Role from User
POST {{LEM_adminURL}}/admin/v1/user/mpcs/revoke
Revoke Marketplace Catalog Role from User
Removes a Marketplace Catalog role from a user. Revoking a role the user does not hold still answers S.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/mpcs/revoke
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
username |
string | Yes | User. |
roleName |
string | Yes | Role, e.g. mpcs:admin. |
Response
200 OK. Body is an ApiResponse: code (S success, W warning, E error), message, messageDetails.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
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
{
"username": "{{LEM_admin_username}}",
"roleName": "mpcs:admin"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Get DigitialTwins Roles of User
GET {{LEM_adminURL}}/admin/v1/user/asset-mgmt/roles?username=demo
Get DigitalTwins Roles of User
Returns the asset-management roles granted to one LEM user (governs access to the Digital Twins / Asset Management surface).
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/asset-mgmt/roles?username=demo
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
[ "asset-mgmt-admin" ]
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
[
"asset-mgmt-admin"
]
Grant DigitalTwins Role to User
POST {{LEM_adminURL}}/admin/v1/user/asset-mgmt/grant
Grant DigitalTwins Role to User
Grants an asset-management role to an LEM user.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/asset-mgmt/grant
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{ "username": "user", "roleName": "role" }
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
{
"username": "user",
"roleName": "role"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Revoke DigitalTwins Role from User
POST {{LEM_adminURL}}/admin/v1/user/asset-mgmt/revoke
Revoke DigitalTwins Role from User
Revokes an asset-management role from an LEM user.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/asset-mgmt/revoke
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{ "username": "user", "roleName": "role" }
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
{
"username": "user",
"roleName": "role"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
User List
GET {{LEM_adminURL}}/admin/v1/user/list
User List
Returns the LEM users with username, name, email, locked flag, creation timestamp, admin flag.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/list
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"username": "demo",
"firstName": "demo",
"lastName": "Litmus",
"email": "demo@lem.local",
"locked": false,
"lockReason": null,
"createdAt": 1689971989046,
"admin": true
}
]
Get User
GET {{LEM_adminURL}}/admin/v1/user/{{LEM_admin_username}}
Get User
Returns one user.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/{{LEM_admin_username}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK. username, firstName, lastName, email, locked, lockReason, createdAt, admin.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
404 |
Error occured: User not found. |
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
{
"username": "apidocs-user",
"firstName": "Jane",
"lastName": "Doe",
"email": "user@example.com",
"locked": false,
"lockReason": null,
"createdAt": null,
"admin": false
}
Company Teams
GET {{LEM_adminURL}}/admin/v1/user/company/teams
Company Teams
Returns the teams across companies with user counts. Use to build a permissions matrix view.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/company/teams
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"companyName": "ccsj",
"teamName": "OWNER",
"usersAmount": 1
},
{
"companyName": "hardware",
"teamName": "OWNER",
"usersAmount": 3
},
{
"companyName": "pm",
"teamName": "OWNER",
"usersAmount": 2
},
{
"companyName": "production",
"teamName": "OWNER",
"usersAmount": 2
},
{
"companyName": "solutions",
"teamName": "OWNER",
"usersAmount": 4
}
]
List User Companies
GET {{LEM_adminURL}}/admin/v1/user/company
List User Companies
Names of every company the caller can see (all of them for an admin token).
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/company
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK. Array of {name, realName}.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
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": "apidocs-company",
"realName": "Acme Manufacturing"
},
{
"name": "archie",
"realName": "Archie"
},
{
"name": "hg",
"realName": "hg"
},
{
"name": "test",
"realName": "test"
}
]
List Company Team Members
GET {{LEM_adminURL}}/admin/v1/user/company/members?companyName={{company_name}}
List Company Team Members
Flat list of team memberships, one row per user per team. Without filters it covers every company. Token-based callers show up as token=<token name>.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/company/members?companyName={{company_name}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Query parameters
All optional, combinable.
| Parameter | Type | Required | Description |
|---|---|---|---|
companyName |
string | No | Company slug. |
teamName |
string | No | Team name. |
username |
string | No | User; returns that user's memberships. |
Response
200 OK. Array of companyName, realCompanyName, teamName, username.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
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
[
{
"companyName": "apidocs-company",
"realCompanyName": "Acme Manufacturing",
"teamName": "OWNER",
"username": "demo"
},
{
"companyName": "apidocs-company",
"realCompanyName": "Acme Manufacturing",
"teamName": "OWNER",
"username": "token=my-api-token"
},
{
"companyName": "apidocs-company",
"realCompanyName": "Acme Manufacturing",
"teamName": "apidocs-team",
"username": "apidocs-user"
}
]
Project Roles
GET {{LEM_adminURL}}/admin/v1/user/project/roles
Project Roles
Returns per-(company, project, team) role grants with read/write flags and user counts.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/project/roles
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"companyName": "hardware",
"projectId": "2prp72ljt3e2149umck473xrl",
"projectName": "Emerson",
"teamName": "OWNER",
"usersAmount": 3,
"readRole": true,
"writeRole": true
},
{
"companyName": "hardware",
"projectId": "cse9ecyxjifs7yhizoqiydyu3",
"projectName": "Industrial",
"teamName": "OWNER",
"usersAmount": 3,
"readRole": true,
"writeRole": true
},
{
"companyName": "pm",
"projectId": "detk20ap42y5rcvfsdfe9790",
"projectName": "LEProduction",
"teamName": "OWNER",
"usersAmount": 2,
"readRole": true,
"writeRole": true
},
{
"companyName": "production",
"projectId": "ea13siviozaattgjd5unuoya7",
"projectName": "GA",
"teamName": "OWNER",
"usersAmount": 2,
"readRole": true,
"writeRole": true
},
{
"companyName": "production",
"projectId": "emdlptxsqpdravb1cyzya6ws2",
"projectName": "kafka",
"teamName": "OWNER",
"usersAmount": 2,
"readRole": true,
"writeRole": true
},
{
"companyName": "solutions",
"projectId": "462j1mq70mph31wa100t1yuxa",
"projectName": "demo",
"teamName": "OWNER",
"usersAmount": 4,
"readRole": true,
"writeRole": true
}
]
List User Projects
GET {{LEM_adminURL}}/admin/v1/user/project?companyName={{company_name}}
List User Projects
Project IDs and names with their company. Without companyName it lists every project, including the system heartbeat company that List User Companies does not show.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/project?companyName={{company_name}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
companyName |
string | No | Company slug. |
Response
200 OK. Array of companyName, realCompanyName, projectId, projectName.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
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
[
{
"companyName": "apidocs-company",
"realCompanyName": "Acme Manufacturing",
"projectId": "7cjcwfelftihd36ywryjb9ap0",
"projectName": "apidocs-project"
}
]
Create User
POST {{LEM_adminURL}}/admin/v1/user
Create User
Creates a new LEM user.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{
"username": "aa",
"firstName": "ab",
"lastName": "ac",
"email": "a@b.com"
}
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
{
"username": "aa",
"firstName": "ab",
"lastName": "ac",
"email": "a@b.com"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Reset User Password
POST {{LEM_adminURL}}/admin/v1/user/password
Reset User Password
Sets a new password for a user. With temporary: true the user must change it at next login. The device applied no complexity rule on 2.31 (a one-character password was accepted).
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/password
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
username |
string | Yes | User to reset. |
newPassword |
string | Yes | New password. |
temporary |
boolean | No | Force a change at next login. |
Response
200 OK. Body is an ApiResponse: code (S success, W warning, E error), message, messageDetails.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
500 |
Error occured: User not found. |
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
{
"username": "{{LEM_admin_username}}",
"newPassword": "<new-password>",
"temporary": true
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Remove User
DELETE {{LEM_adminURL}}/admin/v1/user/{{LEM_admin_username}}
Remove User
Removes an LEM user by username.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/user/{{LEM_admin_username}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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: 204 No Content
Create Team
POST {{LEM_adminURL}}/admin/v1/user/company/team?companyName={{company_name}}
Create Team
Creates a new team inside one company with an initial user list.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/company/team?companyName={{company_name}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{ "name": "aa", "users": [] }
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
{
"name": "aa",
"users": []
}
Response
Status: 201 Created
{
"code": "S",
"message": null,
"messageDetails": null
}
Add Team Member
POST {{LEM_adminURL}}/admin/v1/user/company/team/member?companyName={{company_name}}&teamName={{LEM_admin_teamname}}&username={{LEM_admin_username}}
Add Team Member
Adds an existing user to a company team. When SMTP is not configured the user is still added and the response carries a W warning.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/company/team/member?companyName={{company_name}}&teamName={{LEM_admin_teamname}}&username={{LEM_admin_username}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
companyName |
string | Yes | Company slug. |
teamName |
string | Yes | Team in that company. |
username |
string | Yes | User to add. |
Response
201 Created when added; 200 OK with code: W (User <u> is already a member of the team <t> or team OWNER) when nothing changed. Body is an ApiResponse: code (S success, W warning, E error), message, messageDetails.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
400 |
messageDetails: Could not find '<team>' team for company. |
400 |
messageDetails: Could not find user with username '<user>'. |
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: 201 Created
{
"code": "W",
"message": "User is added to the team. User will not get notifications as email service is not configured",
"messageDetails": "SMTP is not configured properly"
}
Remove Team Member
DELETE {{LEM_adminURL}}/admin/v1/user/company/team/member?companyName={{company_name}}&teamName={{LEM_admin_teamname}}&username={{LEM_admin_username}}
Remove Team Member
Removes a user from a company team. The user account stays.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/user/company/team/member?companyName={{company_name}}&teamName={{LEM_admin_teamname}}&username={{LEM_admin_username}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
companyName |
string | Yes | Company slug. |
teamName |
string | Yes | Team in that company. |
username |
string | Yes | User to remove. |
Response
204 No Content, empty body.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
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: 204 No Content
Remove Team
DELETE {{LEM_adminURL}}/admin/v1/user/company/team?companyName={{company_name}}&teamName={{LEM_admin_teamname}}
Remove Team
Removes a team from a company.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/user/company/team?companyName={{company_name}}&teamName={{LEM_admin_teamname}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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: 204 No Content
Mange Project Teams
POST {{LEM_adminURL}}/admin/v1/user/project/grant/{{project_id}}
Manage Project Teams
Grants or updates a team's role in one project. Despite the Postman item's typo (Mange), the underlying call is manage.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/project/grant/{{project_id}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{ "role": "Write", "teamName": "bb" }
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
{
"role": "Write",
"teamName": "bb"
}
Response
Status: 201 Created
{
"code": "S",
"message": null,
"messageDetails": null
}
Revoke Project Team
POST {{LEM_adminURL}}/admin/v1/user/project/revoke/{{project_id}}
Revoke Project Team
Removes a team's role on a project (the reverse of Mange Project Teams). It answers S even when the team had no role or does not exist.
Endpoint
POST {{LEM_adminURL}}/admin/v1/user/project/revoke/{{project_id}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request body
| Parameter | Type | Required | Description |
|---|---|---|---|
teamName |
string | Yes | Team to remove from the project. |
Response
200 OK. Body is an ApiResponse: code (S success, W warning, E error), message, messageDetails.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
404 |
Could not find project with id '<id>'. |
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
{
"teamName": "{{LEM_admin_teamname}}"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Get Grafana User
GET {{LEM_adminURL}}/admin/v1/user/grafana/user?userName={{LEM_admin_username}}
Get Grafana User
The Grafana account LEM provisioned for a user. Deleting the LEM user removes it.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/grafana/user?userName={{LEM_admin_username}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
userName |
string | Yes | LEM username (note the capital N). |
Response
200 OK. id, email, name, login, isGrafanaAdmin.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
404 |
No Grafana user for that name; empty body. |
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
{
"id": 9,
"email": "user@example.com",
"name": "apidocs-user",
"login": "apidocs-user",
"isGrafanaAdmin": false
}
Get Tokens
GET {{LEM_adminURL}}/admin/v1/long-term-token
Get Tokens
Returns the long-term tokens issued by LEM with metadata (name, hash, expiry, admin flag, scopes).
Endpoint
GET {{LEM_adminURL}}/admin/v1/long-term-token
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"hash": "607008cf1c784a0dd56fe521d4a775e8",
"name": "apiTokenAdmin",
"expiresAt": 1724264785000,
"createdOn": 1692728811000,
"updatedOn": 1692728811000,
"scopes": [],
"valid": true,
"admin": true
},
{
"hash": "d0533b8f17bb58fc5387ced1c3b6cfc3",
"name": "LEMexternal",
"expiresAt": 1724264926000,
"createdOn": 1692728960000,
"updatedOn": 1692728960000,
"scopes": [
{
"companyName": "solutions",
"projectId": null,
"deviceGroups": null
}
],
"valid": true,
"admin": false
},
{
"hash": "ec88905611e667b7baa781c8bf990a18",
"name": "kafka",
"expiresAt": 1723059790000,
"createdOn": 1691523814000,
"updatedOn": 1691523814000,
"scopes": [],
"valid": true,
"admin": true
}
]
Get Token by Hash
GET {{LEM_adminURL}}/admin/v1/long-term-token/{{LEM_admin_tokenhash}}
Get Token by Hash
Returns one long-term token's metadata. The hash comes from Get Tokens; the token value itself is never returned.
Endpoint
GET {{LEM_adminURL}}/admin/v1/long-term-token/{{LEM_admin_tokenhash}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK. hash, name, expiresAt, createdOn, updatedOn, scopes, mpcScopes, valid, admin, edgeApiCaller, backup.
Errors
| HTTP status | When it happens |
|---|---|
401 |
Missing or invalid X-AuthToken. |
404 |
Error occured: Token not found. |
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
{
"hash": "394784b4d2f804d8a4e41776198f8771",
"name": "apidocs-token",
"expiresAt": 1792182776000,
"createdOn": 1792096376000,
"updatedOn": 1792096376000,
"scopes": [],
"mpcScopes": [],
"valid": true,
"admin": false,
"edgeApiCaller": false,
"backup": false
}
Create Admin Token
POST {{LEM_adminURL}}/admin/v1/long-term-token
Create Admin Token
Creates a new long-term token with admin scope (full LEM access). The token value is returned once -- save it immediately.
Endpoint
POST {{LEM_adminURL}}/admin/v1/long-term-token
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{
"name": "AB",
"expiresAt": 1730930379577,
"admin": true,
"scopes": []
}
Response
{ "token": "Weaaah87E4TqXbQ9NF8Qc6hVzW9iZ9lC" }
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
{
"name": "AB",
"expiresAt": 1730930379577,
"admin": true,
"scopes": []
}
Response
Status: 200 OK
{
"token": "Weaaah87E4TqXbQ9NF8Qc6hVzW9iZ9lC"
}
Create Token With Scopes
POST {{LEM_adminURL}}/admin/v1/long-term-token
Create Token With Scopes
Creates a long-term token scoped to specific companies. Pass admin: false and populate scopes[] with (companyName, projectId, deviceGroups) entries.
Endpoint
POST {{LEM_adminURL}}/admin/v1/long-term-token
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{
"name": "BBB",
"expiresAt": 1730930431370,
"admin": false,
"scopes": [
{ "companyName": "solutions", "projectId": null, "deviceGroups": null },
{ "companyName": "production", "projectId": null, "deviceGroups": 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
{
"name": "BBB",
"expiresAt": 1730930431370,
"admin": false,
"scopes": [
{
"companyName": "solutions",
"projectId": null,
"deviceGroups": null
},
{
"companyName": "production",
"projectId": null,
"deviceGroups": null
}
]
}
Response
Status: 200 OK
{
"token": "vkzCL0qTqzE7PTeOnzJ0QsDQxD2BU5qi"
}
Create Token For All Companies
POST {{LEM_adminURL}}/admin/v1/long-term-token
Create Token For All Companies
Creates a long-term token with a wildcard scope (companyName: null = every company).
Endpoint
POST {{LEM_adminURL}}/admin/v1/long-term-token
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{
"name": "CA",
"expiresAt": 1730930530855,
"admin": false,
"scopes": [ { "companyName": null, "projectId": null, "deviceGroups": 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
{
"name": "CA",
"expiresAt": 1730930530855,
"admin": false,
"scopes": [
{
"companyName": null,
"projectId": null,
"deviceGroups": null
}
]
}
Response
Status: 200 OK
{
"token": "6V5VzEDo6GrH50L6iQOpfEIspJeZ6cxC"
}
Remove Token
DELETE {{LEM_adminURL}}/admin/v1/long-term-token/{{LEM_admin_tokenhash}}
Remove Token
Removes a long-term token by its hash.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/long-term-token/{{LEM_admin_tokenhash}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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: 204 No Content
Upgrade Log
GET {{LEM_adminURL}}/admin/v1/upgrade/log
Upgrade Log
Returns the current LEM upgrade-process status and recent log messages.
Endpoint
GET {{LEM_adminURL}}/admin/v1/upgrade/log
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"status": 0,
"statusMessage": "Upgrade process is not running",
"name": null,
"messages": []
}
Current Version
GET {{LEM_adminURL}}/admin/v1/upgrade/current-version
Current Version
Returns the currently installed LEM version including a per-component version breakdown (UI / admin-console / others).
Endpoint
GET {{LEM_adminURL}}/admin/v1/upgrade/current-version
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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": "current",
"product": "generic",
"description": "Litmus Edge Manager",
"version": "2.14.0",
"checksum": "",
"uploadChecksum": null,
"size": 0,
"createdAt": 1695403640000,
"appliedAt": 1695406269000,
"components": [
{
"name": "edgemanager-UI",
"description": "Litmus Edge Manager UI",
"version": "0.100.5"
},
{
"name": "edgemanager-admin-console",
"description": "Litmus Edge Manager Admin console",
"version": "0.86.1"
},
{
"name": "edgemanager-mqtt-bind",
"description": "Litmus Edge Manager MQTT service",
"version": "2.14.2"
},
{
"name": "edgemanager-clickhouse-sink",
"description": "Litmus Edge Manager Clickhouse service",
"version": "2.14.2"
},
{
"name": "edgemanager-jobs",
"description": "Litmus Edge Manager jobs service",
"version": "2.14.10"
},
{
"name": "edgemanager-cfg",
"description": "Litmus Edge Manager configuration service",
"version": "2.14.9"
},
{
"name": "edgemanager-admin-api",
"description": "Litmus Edge Manager Admin console API",
"version": "2.14.9"
},
{
"name": "edgemanager-api",
"description": "Litmus Edge Manager API",
"version": "a-2.14.17"
},
{
"name": "edgemanager-mpcs-ui",
"description": "Litmus Edge Manager Marketplace Catalog UI",
"version": "0.23.12"
},
{
"name": "edgemanager-mpcs-api",
"description": "Litmus Edge Manager Marketplace Catalog",
"version": "0.10.6"
},
{
"name": "edgemanager-mpcs-rbac",
"description": "Litmus Edge Manager Marketplace Catalog RBAC",
"version": "0.2.1"
},
{
"name": "edgemanager-activation",
"description": "Litmus Edge Manager Activation API",
"version": "2.14.4"
},
{
"name": "edgemanager-alerts",
"description": "Litmus Edge Manager Alerts API",
"version": "2.14.1"
},
{
"name": "edgemanager-emq-auth",
"description": "MQTT authorization service",
"version": "2.14.1"
},
{
"name": "edgemanager-licensing",
"description": "Litmus Edge Manager License service",
"version": "1.7.6"
},
{
"name": "edgemanager-consul",
"description": "Litmus Edge Manager Hashicorp Consul",
"version": "0.5.1"
},
{
"name": "edgemanager-vault",
"description": "Litmus Edge Manager Hashicorp Vault",
"version": "0.6.14"
},
{
"name": "edgemanager-kafka",
"description": "Litmus Edge Manager Apache Kafka",
"version": "0.2.11"
},
{
"name": "emqx",
"description": "MQTT server",
"version": "4.4.19"
},
{
"name": "minio",
"description": "S3 compatible storage",
"version": ""
},
{
"name": "fabio",
"description": "Fabio load balancer",
"version": "1.5.13-go1.13.4"
},
{
"name": "docker-registry",
"description": "Docker-registry",
"version": "2.7.1"
},
{
"name": "edgemanager-nomad",
"description": "Litmus Edge Manager Hashicorp Nomad",
"version": "0.8.10"
},
{
"name": "edgemanager-hazelcast",
"description": "Litmus Edge Manager Hazelcast IMDG ",
"version": "0.1.6"
},
{
"name": "clickhouse",
"description": "Clickhouse database",
"version": "23.3.4.17"
},
{
"name": "edgemanager-keycloak",
"description": "Litmus Edge Manager Apache Keycloak",
"version": "0.9.3"
},
{
"name": "grafana",
"description": "Grafana",
"version": "9.3.4"
},
{
"name": "grafana-clickhouse-plugin",
"description": "Grafana clickhouse plugin",
"version": "2.5.3"
}
]
}
Upgrade List
GET {{LEM_adminURL}}/admin/v1/upgrade/list
Upgrade List
Returns the available upgrade bundles (.upd files uploaded to LEM but not yet applied).
Endpoint
GET {{LEM_adminURL}}/admin/v1/upgrade/list
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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": "edgemanager-2.14.0",
"product": "generic",
"description": "Litmus Edge Manager",
"version": "2.14.0",
"checksum": "4c1b79933c5bbe3dbabdbfe722a1ff61f9b010a9cc47cfa1c8a076f8aa43eda0",
"uploadChecksum": "921843642343189f4eb26a8411a3f7443f0ba533543ce1ac6673045040dd5405",
"size": 3309598720,
"createdAt": 1695404414000,
"appliedAt": 0,
"components": [
{
"name": "edgemanager-UI",
"description": "Litmus Edge Manager UI",
"version": "0.100.5"
},
{
"name": "edgemanager-admin-console",
"description": "Litmus Edge Manager Admin console",
"version": "0.86.1"
},
{
"name": "edgemanager-mqtt-bind",
"description": "Litmus Edge Manager MQTT service",
"version": "2.14.2"
},
{
"name": "edgemanager-clickhouse-sink",
"description": "Litmus Edge Manager Clickhouse service",
"version": "2.14.2"
},
{
"name": "edgemanager-jobs",
"description": "Litmus Edge Manager jobs service",
"version": "2.14.10"
},
{
"name": "edgemanager-cfg",
"description": "Litmus Edge Manager configuration service",
"version": "2.14.9"
},
{
"name": "edgemanager-admin-api",
"description": "Litmus Edge Manager Admin console API",
"version": "2.14.9"
},
{
"name": "edgemanager-api",
"description": "Litmus Edge Manager API",
"version": "a-2.14.17"
},
{
"name": "edgemanager-mpcs-ui",
"description": "Litmus Edge Manager Marketplace Catalog UI",
"version": "0.23.12"
},
{
"name": "edgemanager-mpcs-api",
"description": "Litmus Edge Manager Marketplace Catalog",
"version": "0.10.6"
},
{
"name": "edgemanager-mpcs-rbac-api",
"description": "Litmus Edge Manager Marketplace Catalog RBAC",
"version": "0.2.1"
},
{
"name": "edgemanager-activation",
"description": "Litmus Edge Manager Activation API",
"version": "2.14.4"
},
{
"name": "edgemanager-alerts",
"description": "Litmus Edge Manager Alerts API",
"version": "2.14.1"
},
{
"name": "edgemanager-emq-auth",
"description": "MQTT authorization service",
"version": "2.14.1"
},
{
"name": "edgemanager-consul",
"description": "Litmus Edge Manager Hashicorp Consul",
"version": "0.5.1"
},
{
"name": "edgemanager-vault",
"description": "Litmus Edge Manager Hashicorp Vault",
"version": "0.6.14"
},
{
"name": "edgemanager-kafka",
"description": "Litmus Edge Manager Apache Kafka",
"version": "0.2.11"
},
{
"name": "fabio",
"description": "Fabio load balancer",
"version": "1.5.13-go1.13.4"
},
{
"name": "docker-registry",
"description": "Docker-registry",
"version": "2.7.1"
},
{
"name": "edgemanager-nomad",
"description": "Litmus Edge Manager Hashicorp Nomad",
"version": "0.8.10"
},
{
"name": "clickhouse",
"description": "Clickhouse database",
"version": "23.3.4.17"
},
{
"name": "edgemanager-hazelcast",
"description": "Litmus Edge Manager Hazelcast IMDG ",
"version": "0.1.6"
},
{
"name": "edgemanager-keycloak",
"description": "Litmus Edge Manager Apache Keycloak",
"version": "0.9.3"
},
{
"name": "grafana",
"description": "Grafana",
"version": "9.3.4"
},
{
"name": "grafana-clickhouse-plugin",
"description": "Grafana clickhouse plugin",
"version": "2.5.3"
},
{
"name": "edgemanager-remote",
"description": "Litmus Edge Manager remote access",
"version": "0.2.33"
}
]
}
]
Upload UPD File
POST {{LEM_adminURL}}/admin/v1/upgrade
Upload UPD File
Uploads a LEM upgrade bundle (.upd). Multipart -- one binary file part.
Endpoint
POST {{LEM_adminURL}}/admin/v1/upgrade
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
Multipart form-data with one binary file part (.upd archive).
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
Current Version
GET {{LEM_adminURL}}/admin/v1/upgrade/current-version
Current Version
Returns the currently installed LEM version + per-component breakdown. Same payload as Upgrade > Current Version, exposed here for support workflows.
Endpoint
GET {{LEM_adminURL}}/admin/v1/upgrade/current-version
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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": "current",
"product": "generic",
"description": "Litmus Edge Manager",
"version": "2.14.0",
"checksum": "",
"uploadChecksum": null,
"size": 0,
"createdAt": 1695403640000,
"appliedAt": 1695406269000,
"components": [
{
"name": "edgemanager-UI",
"description": "Litmus Edge Manager UI",
"version": "0.100.5"
},
{
"name": "edgemanager-admin-console",
"description": "Litmus Edge Manager Admin console",
"version": "0.86.1"
},
{
"name": "edgemanager-mqtt-bind",
"description": "Litmus Edge Manager MQTT service",
"version": "2.14.2"
},
{
"name": "edgemanager-clickhouse-sink",
"description": "Litmus Edge Manager Clickhouse service",
"version": "2.14.2"
},
{
"name": "edgemanager-jobs",
"description": "Litmus Edge Manager jobs service",
"version": "2.14.10"
},
{
"name": "edgemanager-cfg",
"description": "Litmus Edge Manager configuration service",
"version": "2.14.9"
},
{
"name": "edgemanager-admin-api",
"description": "Litmus Edge Manager Admin console API",
"version": "2.14.9"
},
{
"name": "edgemanager-api",
"description": "Litmus Edge Manager API",
"version": "a-2.14.17"
},
{
"name": "edgemanager-mpcs-ui",
"description": "Litmus Edge Manager Marketplace Catalog UI",
"version": "0.23.12"
},
{
"name": "edgemanager-mpcs-api",
"description": "Litmus Edge Manager Marketplace Catalog",
"version": "0.10.6"
},
{
"name": "edgemanager-mpcs-rbac",
"description": "Litmus Edge Manager Marketplace Catalog RBAC",
"version": "0.2.1"
},
{
"name": "edgemanager-activation",
"description": "Litmus Edge Manager Activation API",
"version": "2.14.4"
},
{
"name": "edgemanager-alerts",
"description": "Litmus Edge Manager Alerts API",
"version": "2.14.1"
},
{
"name": "edgemanager-emq-auth",
"description": "MQTT authorization service",
"version": "2.14.1"
},
{
"name": "edgemanager-licensing",
"description": "Litmus Edge Manager License service",
"version": "1.7.6"
},
{
"name": "edgemanager-consul",
"description": "Litmus Edge Manager Hashicorp Consul",
"version": "0.5.1"
},
{
"name": "edgemanager-vault",
"description": "Litmus Edge Manager Hashicorp Vault",
"version": "0.6.14"
},
{
"name": "edgemanager-kafka",
"description": "Litmus Edge Manager Apache Kafka",
"version": "0.2.11"
},
{
"name": "emqx",
"description": "MQTT server",
"version": "4.4.19"
},
{
"name": "minio",
"description": "S3 compatible storage",
"version": ""
},
{
"name": "fabio",
"description": "Fabio load balancer",
"version": "1.5.13-go1.13.4"
},
{
"name": "docker-registry",
"description": "Docker-registry",
"version": "2.7.1"
},
{
"name": "edgemanager-nomad",
"description": "Litmus Edge Manager Hashicorp Nomad",
"version": "0.8.10"
},
{
"name": "edgemanager-hazelcast",
"description": "Litmus Edge Manager Hazelcast IMDG ",
"version": "0.1.6"
},
{
"name": "clickhouse",
"description": "Clickhouse database",
"version": "23.3.4.17"
},
{
"name": "edgemanager-keycloak",
"description": "Litmus Edge Manager Apache Keycloak",
"version": "0.9.3"
},
{
"name": "grafana",
"description": "Grafana",
"version": "9.3.4"
},
{
"name": "grafana-clickhouse-plugin",
"description": "Grafana clickhouse plugin",
"version": "2.5.3"
}
]
}
Run LEM Validation Script
POST {{LEM_adminURL}}/admin/v1/system/lem-validate
Run LEM Validation Script
Runs LEM's self-validation suite. Returns a per-check report with HTTP status / TCP probe / etc. results.
Endpoint
POST {{LEM_adminURL}}/admin/v1/system/lem-validate
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"results": [
{
"duration": 6158674,
"err": null,
"expected": [
"200"
],
"found": [
"200"
],
"human": "",
"meta": null,
"property": "status",
"resource-id": "http://127.0.0.1:18123",
"resource-type": "HTTP",
"result": 0,
"successful": true,
"summary-line": "HTTP: http://127.0.0.1:18123: status: matches expectation: [200]",
"test-type": 0,
"title": ""
},
{
"duration": 616501,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "exists",
"resource-id": "dummy0",
"resource-type": "Interface",
"result": 0,
"successful": true,
"summary-line": "Interface: dummy0: exists: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 925067,
"err": null,
"expected": [
"[\"169.254.1.1/32\"]"
],
"found": [
"[\"169.254.1.1/32\",\"fe80::947e:e8ff:febd:8bf8/64\"]"
],
"human": "",
"meta": null,
"property": "addrs",
"resource-id": "dummy0",
"resource-type": "Interface",
"result": 0,
"successful": true,
"summary-line": "Interface: dummy0: addrs: matches expectation: [[\"169.254.1.1/32\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 14996800,
"err": null,
"expected": [
"200"
],
"found": [
"200"
],
"human": "",
"meta": null,
"property": "status",
"resource-id": "https://127.0.0.1:8446/tabix",
"resource-type": "HTTP",
"result": 0,
"successful": true,
"summary-line": "HTTP: https://127.0.0.1:8446/tabix: status: matches expectation: [200]",
"test-type": 0,
"title": ""
},
{
"duration": 16982233,
"err": null,
"expected": [
"200"
],
"found": [
"200"
],
"human": "",
"meta": null,
"property": "status",
"resource-id": "https://127.0.0.1/admin-ui/assets/version.json",
"resource-type": "HTTP",
"result": 0,
"successful": true,
"summary-line": "HTTP: https://127.0.0.1/admin-ui/assets/version.json: status: matches expectation: [200]",
"test-type": 0,
"title": ""
},
{
"duration": 19646780,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/usr/bin/sudo /sbin/modprobe wireguard",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /usr/bin/sudo /sbin/modprobe wireguard: exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 33954819,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/usr/bin/sudo /sbin/iptables -nL | grep -q \"Chain DOCKER\"",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /usr/bin/sudo /sbin/iptables -nL | grep -q \"Chain DOCKER\": exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 37229845,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/opt/lem/bin/lem-nomad-job-status.sh",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /opt/lem/bin/lem-nomad-job-status.sh: exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 42612,
"err": null,
"expected": [
"docker-registry true",
"fabio true",
"lem-activation true",
"lem-api true",
"lem-binds true",
"lem-emq-auth true",
"lem-jobs true",
"lem-mpcs true",
"lem-alerts true",
"grafana true",
"prometheus true"
],
"found": [
"docker-registry true",
"fabio true",
"grafana true",
"lem-activation true",
"lem-alerts true",
"lem-api true",
"lem-binds true",
"lem-emq-auth true",
"lem-jobs true",
"lem-mpcs true",
"prometheus true"
],
"human": "",
"meta": null,
"property": "stdout",
"resource-id": "/opt/lem/bin/lem-nomad-job-status.sh",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /opt/lem/bin/lem-nomad-job-status.sh: stdout: matches expectation: [docker-registry true fabio true lem-activation true lem-api true lem-binds true lem-emq-auth true lem-jobs true lem-mpcs true lem-alerts true grafana true prometheus true]",
"test-type": 2,
"title": ""
},
{
"duration": 17685529,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "kafka",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: kafka: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 40245624,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "kafka",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: kafka: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 18418381,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "lem-admin",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-admin: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 42883758,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "lem-admin",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-admin: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 18486504,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "zookeeper",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: zookeeper: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 43807444,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "zookeeper",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: zookeeper: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 21278518,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "lem-remote",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-remote: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 42833298,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "lem-remote",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-remote: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 26996312,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "netdata",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: netdata: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 39923684,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "netdata",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: netdata: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 22344152,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "vault-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: vault-server: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 42985221,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "vault-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: vault-server: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 27903982,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "docker",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: docker: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 38857200,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "docker",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: docker: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 32542650,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "consul-template",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: consul-template: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 37968255,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "consul-template",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: consul-template: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 36395138,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "chrony",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: chrony: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 36753768,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "chrony",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: chrony: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 33865513,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "nomad-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nomad-server: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 39213129,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "nomad-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nomad-server: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 41366386,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "nginx",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nginx: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 34190858,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "nginx",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nginx: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 37436057,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "consul-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: consul-server: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 38373401,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "consul-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: consul-server: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 42657098,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "lem-cfg",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-cfg: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 34502475,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "lem-cfg",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-cfg: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 45052658,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "keycloak",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: keycloak: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 34613067,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "keycloak",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: keycloak: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 7436,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:8114",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8114: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5958,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:8114",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8114: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 6610,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:19000",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19000: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 12570,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:19000",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19000: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 3478,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:18123",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:18123: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 6190,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:18123",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:18123: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2842,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:8113",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8113: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 6215,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:8113",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8113: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 3073,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "udp:51820",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: udp:51820: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 6570,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "udp:51820",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: udp:51820: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 3025,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:5701",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:5701: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 4195,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:5701",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:5701: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2897,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:19092",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:19092: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 3476,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:19092",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:19092: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2730,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:443",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:443: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 11239,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:443",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:443: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 4066,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:4646",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:4646: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 4116,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:4646",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:4646: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 3122,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:19999",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19999: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 6305,
"err": null,
"expected": [
"[\"127.0.0.1\"]"
],
"found": [
"[\"127.0.0.1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:19999",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19999: ip: matches expectation: [[\"127.0.0.1\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2626,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:19004",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19004: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5569,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:19004",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:19004: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 3140,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:80",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:80: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 4952,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:80",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:80: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2543,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:3306",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:3306: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5826,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:3306",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:3306: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2801,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:2181",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:2181: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 3503,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:2181",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:2181: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2771,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:8888",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8888: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5617,
"err": null,
"expected": [
"[\"169.254.1.1\"]"
],
"found": [
"[\"169.254.1.1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:8888",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8888: ip: matches expectation: [[\"169.254.1.1\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2913,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:9092",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:9092: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 3403,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:9092",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:9092: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2725,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:8200",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8200: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5277,
"err": null,
"expected": [
"[\"169.254.1.1\"]"
],
"found": [
"[\"169.254.1.1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:8200",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8200: ip: matches expectation: [[\"169.254.1.1\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2922,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:9093",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:9093: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 3302,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:9093",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:9093: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 2782,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:8500",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8500: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5553,
"err": null,
"expected": [
"[\"169.254.1.1\"]"
],
"found": [
"[\"169.254.1.1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:8500",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8500: ip: matches expectation: [[\"169.254.1.1\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2812,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp:8446",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8446: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 5157,
"err": null,
"expected": [
"[\"0.0.0.0\"]"
],
"found": [
"[\"0.0.0.0\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp:8446",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp:8446: ip: matches expectation: [[\"0.0.0.0\"]]",
"test-type": 0,
"title": ""
},
{
"duration": 2853,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "listening",
"resource-id": "tcp6:8112",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8112: listening: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 4916,
"err": null,
"expected": [
"[]"
],
"found": [
"[\"::\",\"::1\"]"
],
"human": "",
"meta": null,
"property": "ip",
"resource-id": "tcp6:8112",
"resource-type": "Port",
"result": 0,
"successful": true,
"summary-line": "Port: tcp6:8112: ip: matches expectation: [[]]",
"test-type": 0,
"title": ""
},
{
"duration": 47869506,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "edgemanager-licensing",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: edgemanager-licensing: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 32021551,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "edgemanager-licensing",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: edgemanager-licensing: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 51622478,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "hazelcast",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: hazelcast: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 31590132,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "hazelcast",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: hazelcast: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 53542227,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "lem-ll",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-ll: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 31503689,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "lem-ll",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: lem-ll: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 46812431,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "emqx",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: emqx: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 39160353,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "emqx",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: emqx: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 50379113,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "minio",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: minio: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 35226906,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "minio",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: minio: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 57949699,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "clickhouse-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: clickhouse-server: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 26654332,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "clickhouse-server",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: clickhouse-server: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 56152675,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "enabled",
"resource-id": "nomad-apps",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nomad-apps: enabled: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 30035476,
"err": null,
"expected": [
"true"
],
"found": [
"true"
],
"human": "",
"meta": null,
"property": "running",
"resource-id": "nomad-apps",
"resource-type": "Service",
"result": 0,
"successful": true,
"summary-line": "Service: nomad-apps: running: matches expectation: [true]",
"test-type": 0,
"title": ""
},
{
"duration": 91761663,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/usr/bin/vault status",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /usr/bin/vault status: exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 69537,
"err": null,
"expected": [
"Initialized true",
"Sealed false"
],
"found": [
"Initialized true",
"Sealed false"
],
"human": "",
"meta": null,
"property": "stdout",
"resource-id": "/usr/bin/vault status",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /usr/bin/vault status: stdout: matches expectation: [Initialized true Sealed false]",
"test-type": 2,
"title": ""
},
{
"duration": 222934324,
"err": null,
"expected": [
"0"
],
"found": [
"0"
],
"human": "",
"meta": null,
"property": "exit-status",
"resource-id": "/opt/lem/bin/lem-nomad-alloc-status.sh",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /opt/lem/bin/lem-nomad-alloc-status.sh: exit-status: matches expectation: [0]",
"test-type": 0,
"title": ""
},
{
"duration": 91033,
"err": null,
"expected": [
"docker-registry registry true",
"fabio fabio null",
"lem-activation activation true",
"lem-api lem-api true",
"lem-binds mqtt-bind true",
"lem-emq-auth auth true",
"lem-jobs jobs true",
"lem-mpcs mpcs true",
"lem-mpcs mpcs-rbac true",
"lem-sinks clickhouse-sink true",
"lem-sinks events-sink true",
"lem-alerts lem-alerts true",
"grafana grafana true",
"prometheus monitoring true"
],
"found": [
"docker-registry registry true",
"fabio fabio null",
"grafana grafana true",
"lem-activation activation true",
"lem-alerts lem-alerts true",
"lem-api lem-api true",
"lem-binds mqtt-bind true",
"lem-emq-auth auth true",
"lem-jobs jobs true",
"lem-mpcs mpcs-rbac true",
"lem-mpcs mpcs true",
"lem-sinks clickhouse-sink true",
"lem-sinks events-sink true",
"prometheus monitoring true"
],
"human": "",
"meta": null,
"property": "stdout",
"resource-id": "/opt/lem/bin/lem-nomad-alloc-status.sh",
"resource-type": "Command",
"result": 0,
"successful": true,
"summary-line": "Command: /opt/lem/bin/lem-nomad-alloc-status.sh: stdout: matches expectation: [docker-registry registry true fabio fabio null lem-activation activation true lem-api lem-api true lem-binds mqtt-bind true lem-emq-auth auth true lem-jobs jobs true lem-mpcs mpcs true lem-mpcs mpcs-rbac true lem-sinks clickhouse-sink true lem-sinks events-sink true lem-alerts lem-alerts true grafana grafana true prometheus monitoring true]",
"test-type": 2,
"title": ""
}
],
"summary": {
"failed-count": 0,
"summary-line": "Count: 97, Failed: 0, Duration: 0.224s",
"test-count": 97,
"total-duration": 224342688
}
}
Get Support Bundle
GET {{LEM_adminURL}}/admin/v1/support/bundle
Get Support Bundle
Generates and downloads a LEM support bundle (encrypted zip). Use Postman's Send and Download to save to disk.
Endpoint
GET {{LEM_adminURL}}/admin/v1/support/bundle
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
200 OK -- application/zip (password-protected).
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.
Export/Import Log
GET {{LEM_adminURL}}/admin/v1/backup/log
Export / Import Log
Returns the most-recent backup/restore process log entries.
Endpoint
GET {{LEM_adminURL}}/admin/v1/backup/log
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"status": 0,
"statusMessage": "Backup/restore process is not running",
"messages": [
{
"timestamp": 0,
"message": "Export data is started"
},
{
"timestamp": 0,
"message": "project 65bx240rrbpdfn1kxzn16kx0s is exported"
},
{
"timestamp": 0,
"message": "project cbgnxa480aerfk56xh7j3mkj1 is exported"
}
]
}
Export Configuration
POST {{LEM_adminURL}}/admin/v1/backup/backup-settings
Export Configuration
Exports LEM's configuration as an encrypted zip. Multipart form-data with one password part. Use Postman's Send and Download to save the response to disk.
Endpoint
POST {{LEM_adminURL}}/admin/v1/backup/backup-settings
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
Multipart form-data: password text field set to the encryption password.
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
Export Data
POST {{LEM_adminURL}}/admin/v1/backup/backup-data
Export Data
Exports LEM's data (project / device / message / event stores) as an encrypted zip.
Endpoint
POST {{LEM_adminURL}}/admin/v1/backup/backup-data
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
Multipart form-data: password text field set to the encryption password.
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
Import Configuration Settings
POST {{LEM_adminURL}}/admin/v1/backup/restore-settings
Import Configuration Settings
Restores a configuration-only export. Multipart with the zip file and the password.
Endpoint
POST {{LEM_adminURL}}/admin/v1/backup/restore-settings
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
Multipart form-data: password text + file part with the encrypted zip.
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
Import Data
POST {{LEM_adminURL}}/admin/v1/backup/restore-data
Import Data
Restores a data-only export.
Endpoint
POST {{LEM_adminURL}}/admin/v1/backup/restore-data
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
Multipart form-data: password text + file part.
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
LEM Backup List
GET {{LEM_adminURL}}/admin/v1/lem-backup/list
LEM Backup List
Returns the LEM-level backup archive index (date-named zip files in object storage).
Endpoint
GET {{LEM_adminURL}}/admin/v1/lem-backup/list
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"objectName": "em-2.16.4-daily-TUESDAY.zip",
"objectSize": 1772895,
"createdAt": 1716249603757
},
{
"objectName": "em-2.20.0-daily-MONDAY.zip",
"objectSize": 2190405,
"createdAt": 1725840008348
},
{
"objectName": "em-2.22.2-daily-FRIDAY.zip",
"objectSize": 1580640,
"createdAt": 1728604803897
},
{
"objectName": "em-2.23.0-daily-FRIDAY.zip",
"objectSize": 1675468,
"createdAt": 1735862404094
},
{
"objectName": "em-2.23.0-daily-MONDAY.zip",
"objectSize": 1675679,
"createdAt": 1736121611950
},
{
"objectName": "em-2.23.0-daily-SATURDAY.zip",
"objectSize": 1675654,
"createdAt": 1735948815742
},
{
"objectName": "em-2.23.0-daily-SUNDAY.zip",
"objectSize": 1675674,
"createdAt": 1736035211597
},
{
"objectName": "em-2.23.0-daily-THURSDAY.zip",
"objectSize": 1678605,
"createdAt": 1736380807626
},
{
"objectName": "em-2.23.0-daily-TUESDAY.zip",
"objectSize": 1676110,
"createdAt": 1736208008965
},
{
"objectName": "em-2.23.0-daily-WEDNESDAY.zip",
"objectSize": 1676292,
"createdAt": 1736294404964
}
]
LEM Backup Log
GET {{LEM_adminURL}}/admin/v1/lem-backup/log
LEM Backup Log
Returns the most-recent LEM backup-process log entries.
Endpoint
GET {{LEM_adminURL}}/admin/v1/lem-backup/log
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"status": 0,
"statusMessage": "Process is not running",
"messages": [
{
"timestamp": 1736380800004,
"message": "Create backup process started.."
},
{
"timestamp": 1736380800027,
"message": "Backup configuration database"
},
{
"timestamp": 1736380806713,
"message": "Backup consul and vault"
},
{
"timestamp": 1736380807032,
"message": "Backup vault credentials"
},
{
"timestamp": 1736380807044,
"message": "Backup clickhouse users"
},
{
"timestamp": 1736380807074,
"message": "Backup kafka users"
},
{
"timestamp": 1736380807079,
"message": "Backup registry users"
},
{
"timestamp": 1736380807088,
"message": "Backup Litmus Licensing Server"
},
{
"timestamp": 1736380807098,
"message": "Backup templates"
},
{
"timestamp": 1736380807664,
"message": "Backup process completed.. Success"
}
]
}
Create Backup
POST {{LEM_adminURL}}/admin/v1/lem-backup/create
Create Backup
Triggers a new LEM-level backup. The new archive appears in LEM Backup List once complete.
Endpoint
POST {{LEM_adminURL}}/admin/v1/lem-backup/create
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"code": "S",
"message": "em-2.23.0-20250109234629.zip",
"messageDetails": null
}
Remove Backup File
DELETE {{LEM_adminURL}}/admin/v1/lem-backup?name=em-2.23.0-20250109234629.zip
Remove Backup File
Deletes one backup archive by name.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/lem-backup?name=em-2.23.0-20250109234629.zip
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
Remove Multiple Backup Files
DELETE {{LEM_adminURL}}/admin/v1/lem-backup/multiple
Remove Multiple Backup Files
Deletes several LEM backup files in one call. Remove Backup File deletes one.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/lem-backup/multiple
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request
JSON array of backup file names, as returned by LEM Backup List (objectName).
Response
200 OK, empty body. Names that do not exist are ignored, and an empty array also returns 200, so confirm with LEM Backup List.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
[
"em-2.31.0-20261014120000.zip",
"em-2.31.0-20261013120000.zip"
]
Response
Status: 200 OK
Restore From Backup
POST {{LEM_adminURL}}/admin/v1/lem-backup/restore?name=em-2.24.0-dev.202410170915.zip
Restore From Backup
Restores LEM from a backup archive. Halts LEM during restore. Treat as destructive.
Endpoint
POST {{LEM_adminURL}}/admin/v1/lem-backup/restore?name=em-2.24.0-dev.202410170915.zip
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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.
List Experimental Features
GET {{LEM_adminURL}}/admin/v1/feature?type=EXPERIMENTAL
List Experimental Features
Returns LEM's experimental feature catalog with enabled flags.
Endpoint
GET {{LEM_adminURL}}/admin/v1/feature?type=EXPERIMENTAL
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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": "Digital Twin models management",
"type": "EXPERIMENTAL",
"enabled": 1,
"createdOn": 1597449600000,
"updatedOn": 1689974876000
}
]
Enable/Disable Feature
POST {{LEM_adminURL}}/admin/v1/feature?name=DigitalTwin&enabled=true
Enable / Disable Feature
Toggles one experimental feature by name. enabled=true enables; false disables.
Endpoint
POST {{LEM_adminURL}}/admin/v1/feature?name=DigitalTwin&enabled=true
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"code": "S",
"message": null,
"messageDetails": null
}
System Reboot
GET {{LEM_adminURL}}/admin/v1/system/reboot
System Reboot
Reboots the LEM host. Full LEM outage during the reboot. The endpoint is a GET (legacy); use sparingly.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/reboot
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| > Operational note: full LEM downtime. Coordinate with stakeholders before triggering. | |
| ## 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.
Product Code
GET {{LEM_adminURL}}/admin/v1/system/product-code
Product Code
Returns the product code of this installation. em is Litmus Edge Manager.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/product-code
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK -- application/json.
| Field | Type | Description |
|---|---|---|
productCode |
string | Product code, em on LEM. |
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
{
"productCode": "em"
}
System Time
GET {{LEM_adminURL}}/admin/v1/system/time
System Time
Returns the LEM server clock and uptime. Same data as Edge Lifecycle Management > Dashboard > System Time, served by the admin console.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/time
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Response
200 OK -- application/json.
| Field | Type | Description |
|---|---|---|
time |
integer | Server time, epoch milliseconds. |
timeStr |
string | Server time as ISO 8601 with zone. |
uptimeMs |
integer | Milliseconds since system boot. |
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
{
"time": 1792096368894,
"timeStr": "2026-10-15T20:32:48.894Z[UTC]",
"uptimeMs": 102002470
}
Subscription Settings
GET {{LEM_adminURL}}/admin/v1/report/settings/subscribers
Subscription Settings
Returns the report-subscription recipients.
Endpoint
GET {{LEM_adminURL}}/admin/v1/report/settings/subscribers
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
[
{
"enable": true,
"name": "Parth",
"email": "parth@litmus.io"
}
]
Create or Update Report Subscriber
POST {{LEM_adminURL}}/admin/v1/report/settings/subscribers
Create or Update Report Subscriber
Adds a recipient of the statistics report email. Subscribers are keyed by email: posting an existing email replaces its name and enable.
Endpoint
POST {{LEM_adminURL}}/admin/v1/report/settings/subscribers
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request
| Field | Type | Required | Description |
|---|---|---|---|
email |
string | Yes | Recipient address. Not validated. |
name |
string | No | Display name. |
enable |
boolean | No | false keeps the subscriber but stops sending. |
Response
200 OK with {"code": "S", "message": null, "messageDetails": null}.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
{
"enable": true,
"name": "Operations",
"email": "ops@example.com"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Delete Report Subscriber
DELETE {{LEM_adminURL}}/admin/v1/report/settings/subscribers/{{subscriber_email}}
Delete Report Subscriber
Removes a statistics report subscriber.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/report/settings/subscribers/{{subscriber_email}}
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
Request
| Path parameter | Type | Required | Description |
|---|---|---|---|
subscriber_email |
string | Yes | Subscriber email. |
Response
200 OK with {"code": "S", "message": null, "messageDetails": null}.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
404 Not Found |
Subscriber not found. |
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
{
"code": "S",
"message": null,
"messageDetails": null
}
Reports Stats
GET {{LEM_adminURL}}/admin/v1/report/settings/stats
Reports Stats
Returns the report-generation configuration: enabled flag, frequency, and which metric categories are included.
Endpoint
GET {{LEM_adminURL}}/admin/v1/report/settings/stats
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## 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
{
"enable": true,
"periodFrequency": "WEEKLY",
"metrics": {
"edgeDeviceMetrics": true,
"activeUsersCompaniesProjects": true,
"activationDeactivation": true,
"catalogsApps": true,
"softwareUpdates": true,
"template": true,
"licenses": true,
"aiMlModels": true,
"alertsTriggers": true,
"cpuMemoryNetworkLoad": true,
"diskUsage": true,
"uptimeDowntime": true
}
}
Get template content by name
GET {{LEM_adminURL}}/admin/v1/template/content?templateName=
Get template content by name
Returns the stored content of a configuration template by name. Used by the console to display or re-apply a template's payload.
Endpoint
GET {{LEM_adminURL}}/admin/v1/template/content
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Parameters |
| templateName | query | Required. The template name. |
Response
TemplateContent (the template payload and metadata).
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.
Get Project Roles (Paginated)
GET {{LEM_adminURL}}/admin/v1/user/project/roles/paged?requestedPage=0&limit=1
Get Project Roles (Paginated)
Returns the project-level roles assigned to users, paginated. Optionally filter to a single user.
Endpoint
GET {{LEM_adminURL}}/admin/v1/user/project/roles/paged
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Parameters |
| Parameter | In | Notes |
|---|---|---|
username |
query | Filter to one user. |
requestedPage / limit |
query | Pagination. |
Response
A paged result (PageImpl) of project-role assignments.
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": 0,
"size": 0,
"totalSize": 0,
"elements": []
}
Get templates encryption key
GET {{LEM_adminURL}}/admin/v1/git/templates/encryption-key
Get templates encryption key
Returns the public encryption key used to encrypt template payloads before upload (paired with the optional userEncryptionKey on template upload).
Endpoint
GET {{LEM_adminURL}}/admin/v1/git/templates/encryption-key
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
EncryptionKeyResponse (the public key material).
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
{
"encryptionKey": "NsmyFSwLh53J8FMzUo3gFwpuVg890XQZ"
}
Get MQTT SSL Certificate Mode
GET {{LEM_adminURL}}/admin/v1/settings/mqtt-ssl-certificate
New in 2.35.
Get MQTT SSL Certificate Mode
Returns which certificate LEM's MQTT endpoint, the one edge devices connect to, uses: the built-in default (lem-default) or the instance's SSL certificate (lem-ssl-certificate).
Endpoint
GET {{LEM_adminURL}}/admin/v1/settings/mqtt-ssl-certificate
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
{ "mode": "lem-default" }
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
{
"mode": "lem-default"
}
Set MQTT SSL Certificate Mode
PUT {{LEM_adminURL}}/admin/v1/settings/mqtt-ssl-certificate
New in 2.35.
Set MQTT SSL Certificate Mode
Switches the certificate LEM's MQTT endpoint uses. Edge devices must trust the certificate that ends up being presented.
Endpoint
PUT {{LEM_adminURL}}/admin/v1/settings/mqtt-ssl-certificate
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
mode (required): lem-default or lem-ssl-certificate.
{ "mode": "lem-ssl-certificate" }
Response
ApiResponse { code, message, messageDetails }.
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
{
"mode": "lem-default"
}
Enable User-Provided Domain SSL
POST {{LEM_adminURL}}/admin/v1/domain/ssl/user/enable
New in 2.35.
Enable User-Provided Domain SSL
Switches the instance to the user-defined SSL certificate that was already uploaded for its domain. No request body.
Endpoint
POST {{LEM_adminURL}}/admin/v1/domain/ssl/user/enable
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
ApiResponse { code, message, messageDetails }.
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.
Get Deployment Info
GET {{LEM_adminURL}}/admin/v1/system/deployment-info
New in 2.35.
Get Deployment Info
Returns how this LEM instance is deployed.
Endpoint
GET {{LEM_adminURL}}/admin/v1/system/deployment-info
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
| Field | Values |
|---|---|
type |
VM, VM_APP or KUBERNETES. |
provider |
GCP, AZURE, AWS or UNKNOWN. |
{ "type": "VM", "provider": "UNKNOWN" }
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
{
"type": "VM",
"provider": "UNKNOWN"
}
Get WireGuard Instance Mode
GET {{LEM_adminURL}}/admin/v1/wg/instance-mode
New in 2.35.
Get WireGuard Instance Mode
Returns the instance mode, which sets how LEM reaches edge devices: wg-tunnel (through WireGuard tunnels) or direct-inspectable.
Endpoint
GET {{LEM_adminURL}}/admin/v1/wg/instance-mode
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Response |
{ "mode": "wg-tunnel" }
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
{
"mode": "wg-tunnel"
}
Set WireGuard Instance Mode
PUT {{LEM_adminURL}}/admin/v1/wg/instance-mode
New in 2.35.
Set WireGuard Instance Mode
Sets the instance mode to wg-tunnel or direct-inspectable. The API does not publish the body schema; the body below mirrors what Get WireGuard Instance Mode returns.
Endpoint
PUT {{LEM_adminURL}}/admin/v1/wg/instance-mode
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Request body |
{ "mode": "wg-tunnel" }
Response
ApiResponse { code, message, messageDetails }.
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
{
"mode": "wg-tunnel"
}
List Template Variables
GET {{LEM_adminURL}}/admin/v1/template/list-variables?templateName={{template_name}}
New in 3.0.
List Template Variables
Returns the LEM-side variables (.params / .vars) of a 1.x template. A Solution Template (version 2.x) declares its parameters inside the template document instead; for one of those this call answers 400 with a message pointing to List Solution Template Parameters.
Endpoint
GET {{LEM_adminURL}}/admin/v1/template/list-variables
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Parameters |
| Parameter | In | Notes |
|---|---|---|
templateName |
query | Required. Full template name as returned by the template list, e.g. hg-test/default/default/COMPANY/1791836046753. URL-encode the slashes. |
Response
An array of { name, type, description }; type is STRING, INT or FLOAT.
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.
List Solution Template Parameters
GET {{LEM_adminURL}}/admin/v1/template/list-variables/v2?templateName={{template_name}}
New in 3.0.
List Solution Template Parameters
Returns the parameters declared inside a Solution Template document, grouped by scope: _global first, then each component alphabetically. Answers {} for a Solution Template that declares none. Mirrors Templates > List Solution Template Parameters on the main API.
Endpoint
GET {{LEM_adminURL}}/admin/v1/template/list-variables/v2
Authentication
API key in a request header (case sensitive). The value is the LEM admin API token.
| URL prefix | Auth header |
|---|---|
{{LEM_URL}}/api/v1/... (main fleet API) |
X-AuthToken: <token> |
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) |
X-AuthToken: <token> |
{{LEM_URL}}/mpcs/... (Marketplace Catalog) |
Authorization: <token> (3.0.x also accepts X-AuthToken) |
| ## Parameters |
| Parameter | In | Notes |
|---|---|---|
templateName |
query | Required. Full template name as returned by the template list, e.g. hg-test/default/default/COMPANY/1791836046753. URL-encode the slashes. |
Response
An object keyed by scope; {} when the template declares no parameters.
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.