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.


View this page as Markdown