LitmusEdge 4.0.x API Documentation/Dashboard - LE, LEM, LUNS API Docs
DeviceHub Status
GET {{edgeUrl}}/devicehub/version
DeviceHub Status
Returns the deployed version and git revision of the DeviceHub microservice running on this edge device. Use this as a fast liveness probe before issuing functional calls to DeviceHub, and as the source of truth when filing a support ticket ("what version is in the field?"). A successful 200 OK response proves the service is up, reachable, and responding within your client timeout.
DeviceHub is the GraphQL-fronted service that owns drivers, devices, tags, and discovery. If this endpoint is unhealthy, every call to {{edgeUrl}}/devicehub/v2 will also fail.
Endpoint
GET {{edgeUrl}}/devicehub/version
{{edgeUrl}} resolves to the HTTPS base URL of the edge device (for example https://10.17.8.42). DeviceHub listens on the same host behind the device's reverse proxy at the path above; you do not need to target an internal port (typically 9000) directly.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None. This is a parameterless GET.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
version |
string | Semantic version of the deployed DeviceHub build. |
git |
string | Short git commit hash of the build, useful for matching to a release in source control. |
Example response
{
"version": "2.18.15",
"git": "bf1dbfcc3c"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing Authorization header or wrong API token. |
403 Forbidden |
Token is valid but lacks read access to DeviceHub. |
404 Not Found |
The reverse proxy is up but does not know about this service path. Usually a misconfiguration. |
502 Bad Gateway / 503 Service Unavailable |
DeviceHub is not running, crashed, or is restarting. |
5xx other |
Internal device error. Inspect the 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
{
"version": "2.18.15",
"git": "bf1dbfcc3c"
}
Flows Manager Status
GET {{edgeUrl}}/flows-manager/version
Flows Manager Status
Returns the deployed version and git revision of the Flows Manager microservice running on this edge device. Use this as a fast liveness probe before issuing functional calls to Flows Manager, and as the source of truth when filing a support ticket ("what version is in the field?"). A successful 200 OK response proves the service is up, reachable, and responding within your client timeout.
Flows Manager is the Node-RED-based flow runtime. A red status here typically means user-deployed flows are not executing.
Endpoint
GET {{edgeUrl}}/flows-manager/version
{{edgeUrl}} resolves to the HTTPS base URL of the edge device (for example https://10.17.8.42). Flows Manager listens on the same host behind the device's reverse proxy at the path above; you do not need to target the Flows Manager port directly.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None. This is a parameterless GET.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
version |
string | Semantic version of the deployed Flows Manager build. |
git |
string | Short git commit hash of the build, useful for matching to a release in source control. |
Example response
{
"version": "1.9.3",
"git": "48e313fa2b"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing Authorization header or wrong API token. |
403 Forbidden |
Token is valid but lacks read access to Flows Manager. |
404 Not Found |
The reverse proxy is up but does not know about this service path. Usually a misconfiguration. |
502 Bad Gateway / 503 Service Unavailable |
Flows Manager is not running, crashed, or is restarting. |
5xx other |
Internal device error. Inspect the 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
{
"version": "1.9.3",
"git": "48e313fa2b"
}
Analytics Status
GET {{edgeUrl}}/analytics/v2/version
Analytics Status
Returns the deployed version and git revision of the Analytics microservice running on this edge device. Use this as a fast liveness probe before issuing functional calls to Analytics, and as the source of truth when filing a support ticket ("what version is in the field?"). A successful 200 OK response proves the service is up, reachable, and responding within your client timeout.
Analytics owns processors, groups, variables, models, and the pipeline runtime. If this is down, processed metrics will stop updating but raw tag data continues to flow.
Endpoint
GET {{edgeUrl}}/analytics/v2/version
{{edgeUrl}} resolves to the HTTPS base URL of the edge device (for example https://10.17.8.42). Analytics listens on the same host behind the device's reverse proxy at the path above; you do not need to target the Analytics port directly.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None. This is a parameterless GET.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
version |
string | Semantic version of the deployed Analytics build. |
git |
string | Short git commit hash of the build, useful for matching to a release in source control. |
Example response
{
"version": "1.17.5",
"git": "04d3664a17"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing Authorization header or wrong API token. |
403 Forbidden |
Token is valid but lacks read access to Analytics. |
404 Not Found |
The reverse proxy is up but does not know about this service path. Usually a misconfiguration. |
502 Bad Gateway / 503 Service Unavailable |
Analytics is not running, crashed, or is restarting. |
5xx other |
Internal device error. Inspect the 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
{
"version": "1.17.5",
"git": "04d3664a17"
}
Marketplace Status
GET {{edgeUrl}}/apps/version
Marketplace Status
Returns the deployed version and git revision of the Marketplace microservice running on this edge device. Use this as a fast liveness probe before issuing functional calls to Marketplace, and as the source of truth when filing a support ticket ("what version is in the field?"). A successful 200 OK response proves the service is up, reachable, and responding within your client timeout.
Marketplace controls Edge Applications (Docker containers deployed on the device). If this is down you cannot install, start, or stop edge apps.
Endpoint
GET {{edgeUrl}}/apps/version
{{edgeUrl}} resolves to the HTTPS base URL of the edge device (for example https://10.17.8.42). Marketplace listens on the same host behind the device's reverse proxy at the path above; you do not need to target the Marketplace port directly.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None. This is a parameterless GET.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
version |
string | Semantic version of the deployed Marketplace build. |
git |
string | Short git commit hash of the build, useful for matching to a release in source control. |
Example response
{
"version": "1.23.19",
"git": "43e98fc37c"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing Authorization header or wrong API token. |
403 Forbidden |
Token is valid but lacks read access to Marketplace. |
404 Not Found |
The reverse proxy is up but does not know about this service path. Usually a misconfiguration. |
502 Bad Gateway / 503 Service Unavailable |
Marketplace is not running, crashed, or is restarting. |
5xx other |
Internal device error. Inspect the 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
{
"version": "1.23.19",
"git": "43e98fc37c"
}
Integrations Status
GET {{edgeUrl}}/cc/version
Integrations (CC) Status
Returns the deployed version and git revision of the Integrations (CC) microservice running on this edge device. Use this as a fast liveness probe before issuing functional calls to Integrations (CC), and as the source of truth when filing a support ticket ("what version is in the field?"). A successful 200 OK response proves the service is up, reachable, and responding within your client timeout.
Integrations -- referred to internally as CC ("Cloud Connectors") -- forwards tag data to MQTT, Kafka, AWS, Azure, etc. If this is down, downstream cloud systems will stop receiving data even though the device looks healthy.
Endpoint
GET {{edgeUrl}}/cc/version
{{edgeUrl}} resolves to the HTTPS base URL of the edge device (for example https://10.17.8.42). Integrations (CC) listens on the same host behind the device's reverse proxy at the path above; you do not need to target the Integrations port directly.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None. This is a parameterless GET.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
version |
string | Semantic version of the deployed Integrations (CC) build. |
git |
string | Short git commit hash of the build, useful for matching to a release in source control. |
Example response
{
"version": "1.15.5",
"git": "3a1ecffeea"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing Authorization header or wrong API token. |
403 Forbidden |
Token is valid but lacks read access to Integrations (CC). |
404 Not Found |
The reverse proxy is up but does not know about this service path. Usually a misconfiguration. |
502 Bad Gateway / 503 Service Unavailable |
Integrations (CC) is not running, crashed, or is restarting. |
5xx other |
Internal device error. Inspect the 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
{
"version": "1.15.5",
"git": "3a1ecffeea"
}
OPC UA Status
GET {{edgeUrl}}/opcua/version
OPC UA Status
Returns the deployed version and git revision of the OPC UA microservice running on this edge device. Use this as a fast liveness probe before issuing functional calls to OPC UA, and as the source of truth when filing a support ticket ("what version is in the field?"). A successful 200 OK response proves the service is up, reachable, and responding within your client timeout.
This is the OPC UA server that LitmusEdge exposes to clients (not the OPC UA client used to scrape PLCs, which lives inside DeviceHub). If this is down, third-party OPC UA clients cannot read tags from the device.
Endpoint
GET {{edgeUrl}}/opcua/version
{{edgeUrl}} resolves to the HTTPS base URL of the edge device (for example https://10.17.8.42). OPC UA listens on the same host behind the device's reverse proxy at the path above; you do not need to target the OPC UA service port directly.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None. This is a parameterless GET.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
version |
string | Semantic version of the deployed OPC UA build. |
git |
string | Short git commit hash of the build, useful for matching to a release in source control. |
Example response
{
"version": "1.12.6",
"git": "75b07950c7"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing Authorization header or wrong API token. |
403 Forbidden |
Token is valid but lacks read access to OPC UA. |
404 Not Found |
The reverse proxy is up but does not know about this service path. Usually a misconfiguration. |
502 Bad Gateway / 503 Service Unavailable |
OPC UA is not running, crashed, or is restarting. |
5xx other |
Internal device error. Inspect the 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
{
"version": "1.12.6",
"git": "75b07950c7"
}
DeviceManagement Status
GET {{edgeUrl}}/dm/version
DeviceManagement Status
Returns the deployed version and git revision of the DeviceManagement microservice running on this edge device. Use this as a fast liveness probe before issuing functional calls to DeviceManagement, and as the source of truth when filing a support ticket ("what version is in the field?"). A successful 200 OK response proves the service is up, reachable, and responding within your client timeout.
DeviceManagement (DM) owns host-level configuration: networking, certificates, backup/restore, system services, support bundles, etc. A failure here usually means the device is in a degraded state requiring console access.
Endpoint
GET {{edgeUrl}}/dm/version
{{edgeUrl}} resolves to the HTTPS base URL of the edge device (for example https://10.17.8.42). DeviceManagement listens on the same host behind the device's reverse proxy at the path above; you do not need to target the DeviceManagement port directly.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None. This is a parameterless GET.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
version |
string | Semantic version of the deployed DeviceManagement build. |
git |
string | Short git commit hash of the build, useful for matching to a release in source control. |
Example response
{
"version": "5.9.16",
"git": "7e892d15db"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing Authorization header or wrong API token. |
403 Forbidden |
Token is valid but lacks read access to DeviceManagement. |
404 Not Found |
The reverse proxy is up but does not know about this service path. Usually a misconfiguration. |
502 Bad Gateway / 503 Service Unavailable |
DeviceManagement is not running, crashed, or is restarting. |
5xx other |
Internal device error. Inspect the 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
{
"git": "7e892d15db",
"version": "5.9.16"
}
Licensing Status
GET {{edgeUrl}}/lic/v2/version
Licensing Status
Returns the deployed version and git revision of the Licensing microservice running on this edge device. Use this as a fast liveness probe before issuing functional calls to Licensing, and as the source of truth when filing a support ticket ("what version is in the field?"). A successful 200 OK response proves the service is up, reachable, and responding within your client timeout.
Licensing governs which features and how many devices/tags are unlocked. If this is down the device keeps running on its last cached license; new activations and renewals will fail.
Endpoint
GET {{edgeUrl}}/lic/v2/version
{{edgeUrl}} resolves to the HTTPS base URL of the edge device (for example https://10.17.8.42). Licensing listens on the same host behind the device's reverse proxy at the path above; you do not need to target the Licensing port directly.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None. This is a parameterless GET.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
version |
string | Semantic version of the deployed Licensing build. |
git |
string | Short git commit hash of the build, useful for matching to a release in source control. |
Example response
{
"version": "1.6.26",
"git": "f9a81c705d"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing Authorization header or wrong API token. |
403 Forbidden |
Token is valid but lacks read access to Licensing. |
404 Not Found |
The reverse proxy is up but does not know about this service path. Usually a misconfiguration. |
502 Bad Gateway / 503 Service Unavailable |
Licensing is not running, crashed, or is restarting. |
5xx other |
Internal device error. Inspect the 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
{
"version": "1.6.26",
"git": "f9a81c705d"
}
Host Device Info
GET {{edgeUrl}}/dm/host/info
Host Device Info
Returns the static, host-level metadata of the edge device: hostname, country, timezone, DNS servers, NTP servers, default gateway, docker bridge subnet, and the user-provided description. This is the same information shown on the Device Info tile of the LE dashboard.
Use this endpoint to confirm a device's identity before issuing destructive calls, to render a "you are connected to ..." banner in custom dashboards, or to capture environment snapshots for support tickets.
Endpoint
GET {{edgeUrl}}/dm/host/info
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
country |
string | Two-letter ISO 3166-1 country code configured for the device. |
description |
string | Free-form description set by the operator (often includes MAC + site). |
dns |
string[] | Resolver IPs the device uses for DNS lookups. |
docker.bip |
string (CIDR) | Docker bridge IP/subnet used by edge applications. |
etcHosts |
object | null |
gateway.ipv4 |
string | IPv4 default gateway. |
hostname |
string | Linux hostname of the device. |
ntp |
string[] | NTP servers the device synchronizes time against. |
timezone |
string | IANA timezone name (e.g. UTC, America/Los_Angeles). |
Example response
{
"country": "US",
"description": "Litmus Edge (aa:bb:cc:dd:ee:ff) - SJ sensor",
"dns": ["8.8.8.8", "8.8.4.4"],
"docker": { "bip": "10.30.50.1/24" },
"etcHosts": null,
"gateway": { "ipv4": "10.17.8.1" },
"hostname": "litmus-edge-aabbccddeeff",
"ntp": ["0.pool.ntp.org", "1.pool.ntp.org", "2.pool.ntp.org"],
"timezone": "UTC"
}
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to DeviceManagement. |
502 / 503 |
DeviceManagement service is unreachable. Check DeviceManagement Status. |
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
{
"country": "US",
"description": "Litmus Edge (aa:bb:cc:dd:ee:ff)- SJ sensor",
"dns": [
"8.8.8.8",
"8.8.4.4"
],
"docker": {
"bip": "10.30.50.1/24"
},
"etcHosts": null,
"gateway": {
"ipv4": "10.17.8.1"
},
"hostname": "litmus-edge-aabbccddeeff",
"ntp": [
"0.pool.ntp.org",
"1.pool.ntp.org",
"2.pool.ntp.org"
],
"timezone": "UTC"
}
Device Storage Utilization
GET {{edgeUrl}}/dm/deviceinfo/stor
Device Storage Utilization
Returns disk usage statistics for the partition that holds device data. Sizes are reported in kilobytes (KB). Use this to render the storage tile on the dashboard, or to alert when the free pool drops below a threshold.
The reported partition is the one mounted as the LE data volume, not the OS root partition. On a typical edge device the OS partition is small and the data partition is sized for retention.
Endpoint
GET {{edgeUrl}}/dm/deviceinfo/stor
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json. All values are integers in KB.
| Field | Type | Description |
|---|---|---|
dataFree |
integer | Free space on the data partition (KB). |
dataSize |
integer | Used space on the data partition (KB). |
totalSize |
integer | Total size of the data partition (KB). Approximately dataFree + dataSize. |
Example response
{
"dataFree": 209650284,
"dataSize": 18447636,
"totalSize": 229162880
}
Computing percent used
percentUsed = dataSize / totalSize * 100
= 18447636 / 229162880 * 100
~= 8.05 %
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to DeviceManagement. |
502 / 503 |
DeviceManagement service is unreachable. |
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
{
"dataFree": 209650284,
"dataSize": 18447636,
"totalSize": 229162880
}
Network Utilization (Last 1 min)
GET {{edgeUrl}}/sysinfo/system/net?beginShiftSec=360&groupByInMSec=10000
Network Utilization (Last 1 min)
Returns a time series of network bytes sent and received by the device, used to render the Network sparkline on the dashboard. The series is bucketed by groupByInMSec and trimmed to the most recent beginShiftSec seconds.
Values are in bytes per second, averaged within each bucket. Buckets are labelled with the start time of the bucket in RFC 3339 UTC format.
Endpoint
GET {{edgeUrl}}/sysinfo/system/net?beginShiftSec=360&groupByInMSec=10000
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Query parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
beginShiftSec |
integer | Yes | n/a | Window size in seconds. The series covers now - beginShiftSec to now. The dashboard uses 360 (6 min) to render a "last 1 min" view with a small server-side buffer. |
groupByInMSec |
integer | Yes | n/a | Bucket width in milliseconds. The dashboard uses 10000 (10 s buckets). |
Smaller groupByInMSec produces a higher-resolution chart but more data points. Keep both values aligned with the polling cadence of your client so buckets do not lag or repeat.
Response
200 OK -- application/json. The shape is a generic "rows of named columns" format used by every /sysinfo/system/* endpoint.
| Field | Type | Description |
|---|---|---|
columns |
string[] | Column names. Always ["time", "recieved", "sent"] for this endpoint. Note the deliberate spelling recieved. |
values |
array[] | One row per bucket. Each row is [time (ISO 8601 UTC), recieved (bytes/s), sent (bytes/s)]. |
Example response
{
"columns": ["time", "recieved", "sent"],
"values": [
["2023-07-31T21:59:11Z", 2990.73, 3322.04],
["2023-07-31T21:59:21Z", 4339.52, 4664.84],
["2023-07-31T21:59:31Z", 2763.30, 2938.80]
]
}
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed beginShiftSec / groupByInMSec. |
401 Unauthorized |
Missing or invalid credentials. |
502 / 503 |
sysinfo service is unreachable. |
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
{
"columns": [
"time",
"recieved",
"sent"
],
"values": [
[
"2023-07-31T21:59:11Z",
2990.7297261916765,
3322.04409731697
],
[
"2023-07-31T21:59:21Z",
4339.517470419101,
4664.841270457664
],
[
"2023-07-31T21:59:31Z",
2763.2997424604637,
2938.7997261038654
],
[
"2023-07-31T21:59:41Z",
2969.695886892016,
3367.948977573456
],
[
"2023-07-31T21:59:51Z",
6676.492527849511,
4029.2765411399396
],
[
"2023-07-31T22:00:01Z",
3533.6577169186626,
2667.9925730122486
],
[
"2023-07-31T22:00:11Z",
3204.959117296857,
3395.892426338166
],
[
"2023-07-31T22:00:21Z",
3908.024429337631,
4878.504994946361
],
[
"2023-07-31T22:00:31Z",
3616.1075913345185,
3023.7210209226346
],
[
"2023-07-31T22:00:41Z",
3908.70676414442,
3890.2133560124867
],
[
"2023-07-31T22:00:51Z",
6415.343232160673,
6262.539820595305
],
[
"2023-07-31T22:01:01Z",
3289.3578900965763,
2959.881976638627
],
[
"2023-07-31T22:01:11Z",
3648.359146079702,
3479.3841959063707
],
[
"2023-07-31T22:01:21Z",
5520.433651319147,
5725.0572183552285
],
[
"2023-07-31T22:01:31Z",
2757.2200667767015,
3268.8639992725307
],
[
"2023-07-31T22:01:41Z",
3737.2640156383786,
3209.725557589095
],
[
"2023-07-31T22:01:51Z",
3750.3630651944463,
4132.914307176313
],
[
"2023-07-31T22:02:01Z",
2579.1428250157,
2886.804787399854
],
[
"2023-07-31T22:02:11Z",
2940.7348252277725,
3335.9185607501204
],
[
"2023-07-31T22:02:21Z",
3871.8894689752196,
4096.900479776527
],
[
"2023-07-31T22:02:31Z",
3578.0473353756097,
3187.9914438496394
],
[
"2023-07-31T22:02:41Z",
4837.635725557517,
3684.2470996136763
],
[
"2023-07-31T22:02:51Z",
4469.949301516476,
5822.122213000333
],
[
"2023-07-31T22:03:01Z",
3037.9474669950037,
3014.453286761883
],
[
"2023-07-31T22:03:11Z",
2990.5317533546004,
3358.320134931432
],
[
"2023-07-31T22:03:21Z",
4532.105346991466,
4987.735510824861
],
[
"2023-07-31T22:03:31Z",
3120.307331616967,
2783.569120177594
],
[
"2023-07-31T22:03:41Z",
3173.251571075144,
3606.93061813605
],
[
"2023-07-31T22:03:51Z",
5069.2581808863115,
6084.53047794436
],
[
"2023-07-31T22:04:01Z",
2999.740539090264,
3439.7584743812768
],
[
"2023-07-31T22:04:11Z",
2763.0011864789512,
3291.4910122057413
],
[
"2023-07-31T22:04:21Z",
4654.368770046074,
4254.394112016327
],
[
"2023-07-31T22:04:31Z",
2831.9095943836255,
3169.803354233126
],
[
"2023-07-31T22:04:41Z",
3947.868184542754,
3166.977776866372
],
[
"2023-07-31T22:04:51Z",
6364.062975790826,
5888.765740927549
],
[
"2023-07-31T22:05:01Z",
2962.566004819056,
3513.019812684599
]
]
}
Memory Utilization (Last 1 min)
GET {{edgeUrl}}/sysinfo/system/mem?beginShiftSec=360&groupByInMSec=10000
Memory Utilization (Last 1 min)
Returns a time series of system memory usage, expressed as a percentage of total RAM in use. This is the same data behind the dashboard's Memory sparkline.
The series is bucketed and windowed exactly like Network Utilization (Last 1 min) -- see that endpoint for parameter semantics.
Endpoint
GET {{edgeUrl}}/sysinfo/system/mem?beginShiftSec=360&groupByInMSec=10000
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
beginShiftSec |
integer | Yes | Window size in seconds (dashboard uses 360). |
groupByInMSec |
integer | Yes | Bucket width in milliseconds (dashboard uses 10000). |
Response
200 OK -- application/json.
| Field | Type | Description |
|---|---|---|
columns |
string[] | Always ["time", "mean_used_percent"]. |
values |
array[] | One row per bucket. Each row is [time (ISO 8601 UTC), mean_used_percent]. mean_used_percent is the average percent of RAM in use during the bucket, 0 -> 100. |
Example response
{
"columns": ["time", "mean_used_percent"],
"values": [
["2023-07-31T22:00:41Z", 60.21],
["2023-07-31T22:00:51Z", 60.28],
["2023-07-31T22:01:01Z", 60.14]
]
}
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed beginShiftSec / groupByInMSec. |
401 Unauthorized |
Missing or invalid credentials. |
502 / 503 |
sysinfo service is unreachable. |
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
{
"columns": [
"time",
"mean_used_percent"
],
"values": [
[
"2023-07-31T22:00:41Z",
60.212857043298186
],
[
"2023-07-31T22:00:51Z",
60.27682367113686
],
[
"2023-07-31T22:01:01Z",
60.14446004201388
],
[
"2023-07-31T22:01:11Z",
60.12469758967772
],
[
"2023-07-31T22:01:21Z",
60.113298089463676
],
[
"2023-07-31T22:01:31Z",
60.08980217635873
],
[
"2023-07-31T22:01:41Z",
60.11912228826299
],
[
"2023-07-31T22:01:51Z",
60.135947751461025
],
[
"2023-07-31T22:02:01Z",
60.03539320808817
],
[
"2023-07-31T22:02:11Z",
60.068894796053485
],
[
"2023-07-31T22:02:21Z",
60.06526089423853
],
[
"2023-07-31T22:02:31Z",
60.07292693368378
],
[
"2023-07-31T22:02:41Z",
60.079647163067605
],
[
"2023-07-31T22:02:51Z",
59.91746562727119
],
[
"2023-07-31T22:03:01Z",
59.945143016437186
],
[
"2023-07-31T22:03:11Z",
59.942405145206735
],
[
"2023-07-31T22:03:21Z",
59.96186892068138
],
[
"2023-07-31T22:03:31Z",
59.934490208376886
],
[
"2023-07-31T22:03:41Z",
60.01329112033691
],
[
"2023-07-31T22:03:51Z",
60.03529364913434
],
[
"2023-07-31T22:04:01Z",
60.60163475802196
],
[
"2023-07-31T22:04:11Z",
60.54503549276704
],
[
"2023-07-31T22:04:21Z",
60.555837639258094
],
[
"2023-07-31T22:04:31Z",
60.557679479904024
],
[
"2023-07-31T22:04:41Z",
60.58017980347062
],
[
"2023-07-31T22:04:51Z",
60.55922264368846
],
[
"2023-07-31T22:05:01Z",
60.586452017562195
],
[
"2023-07-31T22:05:11Z",
60.571518174487025
],
[
"2023-07-31T22:05:21Z",
60.59098194996167
],
[
"2023-07-31T22:05:31Z",
60.56096492538057
],
[
"2023-07-31T22:05:41Z",
60.571916410302364
],
[
"2023-07-31T22:05:51Z",
60.56708780104139
],
[
"2023-07-31T22:06:01Z",
60.40391067570662
],
[
"2023-07-31T22:06:11Z",
60.42252820007368
],
[
"2023-07-31T22:06:21Z",
60.43965234013321
],
[
"2023-07-31T22:06:31Z",
60.412323407305635
]
]
}
CPU Utilization (Last 1 min)
GET {{edgeUrl}}/sysinfo/system/cpu?beginShiftSec=360&groupByInMSec=10000
CPU Utilization (Last 1 min)
Returns a time series breakdown of CPU usage by mode (system, user, idle), bucketed and windowed the same way as the memory and network endpoints. This is the source for the dashboard's CPU sparkline.
The three modes sum to (approximately) 100 per bucket; small drift is normal because each is sampled independently.
Endpoint
GET {{edgeUrl}}/sysinfo/system/cpu?beginShiftSec=360&groupByInMSec=10000
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
beginShiftSec |
integer | Yes | Window size in seconds (dashboard uses 360). |
groupByInMSec |
integer | Yes | Bucket width in milliseconds (dashboard uses 10000). |
Response
200 OK -- application/json.
| Field | Type | Description |
|---|---|---|
columns |
string[] | Always ["time", "system", "user", "idle"]. |
values |
array[] | Each row is [time, system %, user %, idle %]. Values are aggregated over the bucket. To compute "busy" use 100 - idle or system + user. |
Example response
{
"columns": ["time", "system", "user", "idle"],
"values": [
["2023-07-31T22:01:31Z", 4.34, 7.05, 88.62],
["2023-07-31T22:01:41Z", 4.28, 7.25, 88.47],
["2023-07-31T22:01:51Z", 4.23, 7.38, 88.38]
]
}
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed beginShiftSec / groupByInMSec. |
401 Unauthorized |
Missing or invalid credentials. |
502 / 503 |
sysinfo service is unreachable. |
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
{
"columns": [
"time",
"system",
"user",
"idle"
],
"values": [
[
"2023-07-31T22:01:31Z",
4.335483870949717,
7.045161290274512,
88.61935483832514
],
[
"2023-07-31T22:01:41Z",
4.280556987940589,
7.246003093999703,
88.47343991610845
],
[
"2023-07-31T22:01:51Z",
4.233350542290552,
7.382550336147276,
88.38409912426671
],
[
"2023-07-31T22:02:01Z",
4.300798351636475,
7.622971928627538,
88.07622971748744
],
[
"2023-07-31T22:02:11Z",
4.252577319668052,
7.113402061913822,
88.63402061811809
],
[
"2023-07-31T22:02:21Z",
4.281661078033668,
7.144699509889155,
88.57363941282786
],
[
"2023-07-31T22:02:31Z",
4.3096774195665715,
7.019354838806279,
88.67096774252843
],
[
"2023-07-31T22:02:41Z",
4.356792987885293,
7.037896364987759,
88.60531064727701
],
[
"2023-07-31T22:02:51Z",
4.3096774192091996,
7.019354838468871,
88.67096774066958
],
[
"2023-07-31T22:03:01Z",
4.145211122534004,
7.1575695160623205,
88.69721936230287
],
[
"2023-07-31T22:03:11Z",
4.517294785833696,
7.356737222583346,
88.12596799248448
],
[
"2023-07-31T22:03:21Z",
4.201030927867221,
7.036082474212575,
88.76288659702008
],
[
"2023-07-31T22:03:31Z",
4.103225806419089,
6.709677419433919,
89.18709677339592
],
[
"2023-07-31T22:03:41Z",
4.254770500241377,
7.400722021776609,
88.3445074790327
],
[
"2023-07-31T22:03:51Z",
4.334365324980228,
7.223942208150205,
88.441692465518
],
[
"2023-07-31T22:04:01Z",
4.616971885627786,
9.027598658860862,
86.35542945551136
],
[
"2023-07-31T22:04:11Z",
4.622933884274536,
7.618801653124269,
87.75826446455548
],
[
"2023-07-31T22:04:21Z",
4.310789881192737,
7.124419204939052,
88.56479091221544
],
[
"2023-07-31T22:04:31Z",
4.276146316382928,
6.929417825665815,
88.79443585885092
],
[
"2023-07-31T22:04:41Z",
4.197785217619184,
7.030646407355486,
88.7715683741259
],
[
"2023-07-31T22:04:51Z",
4.409489427520152,
7.478081485491046,
88.11242908848978
],
[
"2023-07-31T22:05:01Z",
4.203197524480908,
7.11707065495295,
88.67973181906517
],
[
"2023-07-31T22:05:11Z",
4.30856553160872,
7.3787409700787485,
88.31269350011462
],
[
"2023-07-31T22:05:21Z",
4.147346728422643,
7.006697578441986,
88.84595569283549
],
[
"2023-07-31T22:05:31Z",
4.306343475947582,
6.9365652399237945,
88.75709128337814
],
[
"2023-07-31T22:05:41Z",
4.382572828179492,
7.269914926562969,
88.34751224630794
],
[
"2023-07-31T22:05:51Z",
4.224626481198814,
7.13549716640227,
88.63987635209904
],
[
"2023-07-31T22:06:01Z",
4.254770500139196,
7.271789582378107,
88.47343991583163
],
[
"2023-07-31T22:06:11Z",
2.816901408553576,
14.775928296875117,
82.40717029650908
],
[
"2023-07-31T22:06:21Z",
4.120525366817594,
6.953386556785759,
88.9260880745978
],
[
"2023-07-31T22:06:31Z",
4.202113947002388,
6.702758442992122,
89.09512761120595
],
[
"2023-07-31T22:06:41Z",
4.226804123767637,
6.932989690610913,
88.8402061853214
],
[
"2023-07-31T22:06:51Z",
4.335483870845517,
7.638709677440056,
88.02580645036251
],
[
"2023-07-31T22:07:01Z",
4.227893787191983,
7.5277133281587965,
88.24439288554957
],
[
"2023-07-31T22:07:11Z",
4.305233307403976,
7.166795565760567,
88.52797112638528
],
[
"2023-07-31T22:07:21Z",
4.25696594445935,
6.991744066159677,
88.75128999088273
]
]
}
List of Devices
POST {{edgeUrl}}/devicehub/v2
List of Devices
Returns the ID and Name of every device currently configured in DeviceHub. Used by the LE dashboard to render the "Total Devices" tile and the recent-devices list. Call this when you need a lightweight roster of devices without loading their full configuration, registers, or driver state.
This is intentionally a minimal projection. For richer fields (driver, description, registers, tags, status) use DeviceHub > Devices > List Devices and add fields to the GraphQL selection set.
Endpoint
POST {{edgeUrl}}/devicehub/v2
Content-Type: application/json
DeviceHub exposes a single GraphQL endpoint. The operation is selected by the query body, not the URL path. The Postman item is preconfigured with Content-Type: application/json and the GraphQL body mode.
Authentication
HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.
Request body (GraphQL)
query ListDevices {
ListDevices(input: { IDs: null }) {
ID
Name
}
}
Arguments
| Argument | GraphQL type | Required | Description |
|---|---|---|---|
input.IDs |
[ID!] |
No | Optional list of device IDs to filter by. Pass null (or omit) to return every device. Unknown IDs are ignored. |
You can request additional fields on each Device (e.g. Driver, Description, StoppedState, Tags { ... }) by adding them to the selection set.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
data.ListDevices |
[Device!]! |
Array of devices. Empty array if none are configured. |
data.ListDevices[].ID |
ID |
Device UUID. Use this as the Postman variable {{deviceID}} in other DeviceHub calls. |
data.ListDevices[].Name |
String |
Display name of the device. |
Example response
{
"data": {
"ListDevices": [
{ "ID": "41FBD12E-C6CD-4539-AD50-336D278B207C", "Name": "Rack 2b M258" },
{ "ID": "474E42B0-C7B8-42DE-8DE2-FFED7030A563", "Name": "DTA windows tia" },
{ "ID": "4C4B9CCC-F5E4-4C2E-A4C0-EAF5C32B0D1A", "Name": "CVE demo device" }
]
}
}
Errors
GraphQL endpoints return 200 OK even on logical errors. Inspect the errors array in the response body:
{ "errors": [ { "message": "...", "path": ["ListDevices"], "extensions": { "code": "..." } } ] }
extensions.code |
Meaning |
|---|---|
UNAUTHENTICATED |
Missing or invalid API token. |
FORBIDDEN |
Token lacks read access to DeviceHub. |
BAD_USER_INPUT |
Invalid IDs value (e.g. wrong type). |
INTERNAL_SERVER_ERROR |
DeviceHub fault. Retry, then escalate via System > Support. |
Non-200 HTTP responses mean DeviceHub itself is unreachable. See DeviceHub Status.
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
GraphQL Query
query ListDevices {
ListDevices(input: {IDs: null}) {
ID
Name
}
}
Response
Status: 200 OK
{
"data": {
"ListDevices": [
{
"ID": "41FBD12E-C6CD-4539-AD50-336D278B207C",
"Name": "Rack 2b M258"
},
{
"ID": "474E42B0-C7B8-42DE-8DE2-FFED7030A563",
"Name": "DTA windows tia"
},
{
"ID": "4C4B9CCC-F5E4-4C2E-A4C0-EAF5C32B0D1A",
"Name": "CVE demo device"
},
{
"ID": "4FDB80F5-6110-411D-9132-1AE4FBC1B53F",
"Name": "Data Logger"
},
{
"ID": "779F42F3-54FC-4A87-B9A6-CD39CFA4A97D",
"Name": "Simulator2"
},
{
"ID": "BAFD349E-21B6-408A-AE2F-B9C682912571",
"Name": "Boiler"
},
{
"ID": "CDC283FB-72E2-42DF-A587-4D6299D70C9A",
"Name": "sim1"
},
{
"ID": "EEF5EE7F-54C7-415A-B1C7-4F9386112DEB",
"Name": "D14 Boiler Power PAC4200"
}
]
}
}
Number of Tags
POST {{edgeUrl}}/devicehub/v2
Number of Tags
Returns the total count of registers (also called tags) across every device configured in DeviceHub. Used by the LE dashboard to render the "Total Tags" tile. This is a server-side count, much cheaper than listing tags and counting client-side.
In DeviceHub vocabulary, a register is one data point a driver reads or writes -- e.g. one Modbus holding register, one OPC UA node, one MQTT topic.
Endpoint
POST {{edgeUrl}}/devicehub/v2
Content-Type: application/json
Authentication
HTTP Basic Auth. Username is your API token, password is empty. The same token is valid across /devicehub/v2, /analytics/v2, /cc, /opcua, and the other LE services.
Request body (GraphQL)
query RegistersCount {
RegistersCount {
Count
}
}
No arguments are accepted; the query always returns the system-wide total. To count registers on a single device, use DeviceHub > Tags > List Tags with a DeviceID filter and count client-side.
Response
200 OK -- application/json
| Field | Type | Description |
|---|---|---|
data.RegistersCount.Count |
Int |
Total number of registers across all devices. |
Example response
{
"data": {
"RegistersCount": {
"Count": 6543
}
}
}
Errors
GraphQL endpoints return 200 OK even on logical errors. Inspect errors:
extensions.code |
Meaning |
|---|---|
UNAUTHENTICATED |
Missing or invalid API token. |
FORBIDDEN |
Token lacks read access to DeviceHub. |
INTERNAL_SERVER_ERROR |
DeviceHub fault. Retry, then escalate via 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
GraphQL Query
query RegistersCount {
RegistersCount {
Count
}
}
Response
Status: 200 OK
{
"data": {
"RegistersCount": {
"Count": 6543
}
}
}
Number of Analytics Processors
GET {{edgeUrl}}/analytics/v2/processors
Number of Analytics Processors
Returns the full list of analytics processors configured on the device. The dashboard uses the length of this array to render the "Processors" tile.
A processor is a single node in an analytics pipeline: a generator, a transform (filter, math, aggregation), a sink, etc. Processors are wired together by their outputs field to form a directed graph that runs inside the Analytics service.
To get just a count without the payload, call this and take length. For filtered counts (e.g. only active processors), filter the array client-side or use the richer queries under Analytics > Instances.
Endpoint
GET {{edgeUrl}}/analytics/v2/processors
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json. An array of processor objects.
| Field | Type | Description |
|---|---|---|
ID |
string | Processor UUID. |
name |
string | Display name, often "Flow - [N]" for generated processors. |
outputs |
string[] | IDs of downstream processors this one feeds. Used to reconstruct the pipeline DAG. |
function |
string | Processor kind: Generator, Transform, Sink, etc. |
active |
boolean | Whether the processor is currently running. |
parameters |
object | Function-specific configuration. The keys depend on function (e.g. a Generator exposes formula, amplitude_multiplier, periodicity, timerInterval, ...). |
Example response
[
{
"ID": "1538BC97-423F-43B6-A7E5-DECD93E50E21",
"name": "Flow - [2537]",
"outputs": [
"47946E33-E91A-4159-8B7D-B786B1BDD0F6",
"D959C143-E26F-48FE-B491-D84C3A35D305"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "sin(t)",
"generatorType": "User Defined",
"periodicity": "30",
"strength": "10",
"timerInterval": "1000"
}
}
]
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to Analytics. |
502 / 503 |
Analytics service is unreachable. Check Analytics Status. |
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": "1538BC97-423F-43B6-A7E5-DECD93E50E21",
"name": "Flow - [2537]",
"outputs": [
"47946E33-E91A-4159-8B7D-B786B1BDD0F6",
"D959C143-E26F-48FE-B491-D84C3A35D305",
"D9AA2CEA-05C2-4B4F-9A91-AF39669E866D"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "sin(t)",
"generatorType": "User Defined",
"periodicity": "30",
"strength": "10",
"timerInterval": "1000"
}
},
{
"ID": "1FAB8D4D-C708-4010-BF17-2474DC7B6D46",
"name": "sensor3",
"outputs": [],
"function": "DataHub Subscribe",
"active": true,
"parameters": {
"format": "json",
"topic": "sensorNov2021Three"
}
},
{
"ID": "4D0803C4-847F-4E96-9FEB-4B83AF662F16",
"name": "Generator - [5412]",
"outputs": [
"7B2D501B-E029-40E0-B294-C360B983AEF7"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "sin(t)",
"generatorType": "User Defined",
"periodicity": "30",
"strength": "10",
"timerInterval": "1000"
}
},
{
"ID": "E864AF72-1CAD-4451-9AB9-802DB23236F5",
"name": "Database Output - [297]",
"outputs": [],
"eventInputs": [
"150BB3E6-548C-4D1A-BE12-2790615E0055"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "variable1",
"retention_policy": "autogen"
}
},
{
"ID": "CDC39506-0F43-4C7F-BBF3-A1F27010AB2E",
"name": "Expression - [2748]",
"outputs": [
"F9414534-124E-4E03-8101-C578F522CC35"
],
"eventInputs": [
"903EAB72-F865-4BD2-8059-857FF6D4AB88"
],
"function": "Expression",
"active": true,
"parameters": {
"expression": "(Celsius_value * 9/5) + 32",
"output_field_name": "value",
"pass_through_value": "false"
},
"definitions": {
"Celsius": "903EAB72-F865-4BD2-8059-857FF6D4AB88"
}
},
{
"ID": "E157E410-B8E8-4528-B58D-65424301ECD5",
"name": "Generator - [195]",
"outputs": [
"9D9C48E6-8B98-4F3D-8270-09C0EF0A0000"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "sin(t)",
"generatorType": "User Defined",
"periodicity": "30",
"strength": "10",
"timerInterval": "1000"
}
},
{
"ID": "E9F954B9-03CB-4E14-8C43-EED18E5738C7",
"name": "DataHub Publish - [8679]",
"outputs": [],
"eventInputs": [
"150BB3E6-548C-4D1A-BE12-2790615E0055"
],
"function": "DataHub Publish",
"active": true,
"parameters": {
"single_topic": "true",
"topic": "output2"
}
},
{
"ID": "47946E33-E91A-4159-8B7D-B786B1BDD0F6",
"name": "Database Output - [4207]",
"outputs": [],
"eventInputs": [
"1538BC97-423F-43B6-A7E5-DECD93E50E21"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "just.name",
"retention_policy": "autogen"
}
},
{
"ID": "7B2D501B-E029-40E0-B294-C360B983AEF7",
"name": "Flow - [7365]",
"outputs": [],
"eventInputs": [
"4D0803C4-847F-4E96-9FEB-4B83AF662F16"
],
"function": "DataHub Publish",
"active": true,
"parameters": {
"single_topic": "true",
"topic": "variable2"
}
},
{
"ID": "BC1255DF-D281-4644-B64B-41381B3C68E7",
"name": "Database Output - [8402]",
"outputs": [],
"eventInputs": [
"903EAB72-F865-4BD2-8059-857FF6D4AB88"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "sensorNov2021",
"retention_policy": "autogen"
}
},
{
"ID": "97EF0827-2A00-44D6-8BB7-D44911FBA693",
"name": "Generator - [2504]",
"outputs": [
"03F0289E-C249-482F-944E-5B6B431B1D7F"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "sin(t)",
"generatorType": "User Defined",
"periodicity": "30",
"strength": "10",
"timerInterval": "1000"
}
},
{
"ID": "DF3EE661-6B18-469C-AE65-CF430C0F4BF8",
"name": "Flow - [2537]",
"outputs": [],
"eventInputs": [
"D959C143-E26F-48FE-B491-D84C3A35D305"
],
"function": "DataHub Publish",
"active": true,
"parameters": {
"single_topic": "true",
"topic": "analytics.publish.oGnibcEdy4ZzMTd91oNHw"
}
},
{
"ID": "E151F5D7-0FC9-4339-8FD8-9A49DD2B50F7",
"name": "DataHub Subscribe - [4029]",
"outputs": [],
"function": "DataHub Subscribe",
"active": true,
"parameters": {
"format": "json",
"topic": "images"
}
},
{
"ID": "F1B26FF6-7B69-4ED0-A6DB-7CCA391711CF",
"name": "Flow - [4893]",
"outputs": [],
"eventInputs": [
"150BB3E6-548C-4D1A-BE12-2790615E0055"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "variable5",
"retention_policy": "autogen"
}
},
{
"ID": "F9414534-124E-4E03-8101-C578F522CC35",
"name": "sensorfahrenheit",
"outputs": [],
"eventInputs": [
"CDC39506-0F43-4C7F-BBF3-A1F27010AB2E"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "sensorNovFahrenheit",
"retention_policy": "autogen"
}
},
{
"ID": "54197B04-455A-4DF6-A175-5CD2DA0EAFF6",
"name": "Flow - [7659]",
"outputs": [
"EE72FD8C-64F1-4FFB-961D-D94245CB8C71"
],
"function": "DataHub Subscribe",
"active": true,
"parameters": {
"format": "json",
"topic": "devicehub.alias.sim1.sine1"
}
},
{
"ID": "6EE21D13-0D47-4BDA-A8BF-DA541D76338B",
"name": "Flow - [2986]",
"outputs": [],
"eventInputs": [
"FE4FF29D-AEB1-4B83-A9F0-E663435D6020"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "variable2",
"retention_policy": "autogen"
}
},
{
"ID": "71FC22C0-013E-43EB-94B2-FBF671283ABF",
"name": "sensor2",
"outputs": [
"903EAB72-F865-4BD2-8059-857FF6D4AB88"
],
"function": "DataHub Subscribe",
"active": true,
"parameters": {
"format": "json",
"topic": "sensorNov2021Two"
}
},
{
"ID": "9D9C48E6-8B98-4F3D-8270-09C0EF0A0000",
"name": "Flow - [333]",
"outputs": [],
"eventInputs": [
"E157E410-B8E8-4528-B58D-65424301ECD5"
],
"function": "DataHub Publish",
"active": true,
"parameters": {
"single_topic": "true",
"topic": "variable3"
}
},
{
"ID": "D9AA2CEA-05C2-4B4F-9A91-AF39669E866D",
"name": "DataHub Publish - [588]",
"outputs": [],
"eventInputs": [
"1538BC97-423F-43B6-A7E5-DECD93E50E21"
],
"function": "DataHub Publish",
"active": true,
"parameters": {
"single_topic": "true",
"topic": "variable1"
}
},
{
"ID": "903EAB72-F865-4BD2-8059-857FF6D4AB88",
"name": "Inputs Average - [921]",
"outputs": [
"17CC3610-10EE-49C0-9A1B-63E3D06877D0",
"BC1255DF-D281-4644-B64B-41381B3C68E7",
"CDC39506-0F43-4C7F-BBF3-A1F27010AB2E"
],
"valueInputs": [
"D321BAB2-4298-41E4-AF9F-C3BB45BBBE27",
"DFDE39D9-7F8D-4BE5-8338-DFCC77DF7EFE",
"71FC22C0-013E-43EB-94B2-FBF671283ABF"
],
"function": "Inputs Average",
"active": true,
"parameters": {
"field_name": "value",
"pass_through_value": "false",
"processing_type": "float"
}
},
{
"ID": "EE72FD8C-64F1-4FFB-961D-D94245CB8C71",
"name": "Flow - [7659]",
"outputs": [],
"eventInputs": [
"54197B04-455A-4DF6-A175-5CD2DA0EAFF6"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "pd",
"typed": "autogen"
}
},
{
"ID": "17CC3610-10EE-49C0-9A1B-63E3D06877D0",
"name": "DataHub Publish - [2124]",
"outputs": [],
"eventInputs": [
"903EAB72-F865-4BD2-8059-857FF6D4AB88"
],
"function": "DataHub Publish",
"active": true,
"parameters": {
"single_topic": "true",
"topic": "sensorNov2021"
}
},
{
"ID": "A73A30E7-C308-4D50-889C-2C8E2FC02D8C",
"name": "Generator - [5528]",
"outputs": [
"B87977B2-B239-48D5-8277-E38C4FA2DF3B"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "sin(t)",
"generatorType": "User Defined",
"periodicity": "30",
"strength": "10",
"timerInterval": "1000"
}
},
{
"ID": "CD42F877-640E-41C7-B7C5-6333EE1C148B",
"name": "Generator - [2371]",
"outputs": [
"C07162D4-574A-48D2-85F1-5CE3E9EA6402"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "sin(t)",
"generatorType": "User Defined",
"periodicity": "30",
"strength": "10",
"timerInterval": "1000"
}
},
{
"ID": "D321BAB2-4298-41E4-AF9F-C3BB45BBBE27",
"name": "sensor4",
"outputs": [
"903EAB72-F865-4BD2-8059-857FF6D4AB88"
],
"function": "DataHub Subscribe",
"active": true,
"parameters": {
"format": "json",
"topic": "sensorNov2021Four"
}
},
{
"ID": "D959C143-E26F-48FE-B491-D84C3A35D305",
"name": "Flow - [2537]",
"outputs": [
"DF3EE661-6B18-469C-AE65-CF430C0F4BF8"
],
"eventInputs": [
"1538BC97-423F-43B6-A7E5-DECD93E50E21"
],
"function": "Expression",
"active": true,
"parameters": {
"expression": "A_value < 100 ? \"hello world! \\n \\u263a\": \"NO\"",
"output_field_name": "value",
"pass_through_value": "false"
},
"definitions": {
"A": "1538BC97-423F-43B6-A7E5-DECD93E50E21"
}
},
{
"ID": "DCD477BC-63D9-48C9-B8B5-5A493DD95B96",
"name": "DataHub Publish - [7054]",
"outputs": [],
"eventInputs": [
"150BB3E6-548C-4D1A-BE12-2790615E0055"
],
"function": "DataHub Publish",
"active": true,
"parameters": {
"single_topic": "true",
"topic": "output"
}
},
{
"ID": "DFDE39D9-7F8D-4BE5-8338-DFCC77DF7EFE",
"name": "sensor1",
"outputs": [
"903EAB72-F865-4BD2-8059-857FF6D4AB88"
],
"function": "DataHub Subscribe",
"active": true,
"parameters": {
"format": "json",
"topic": "sensorNov2021One"
}
},
{
"ID": "FE4FF29D-AEB1-4B83-A9F0-E663435D6020",
"name": "Generator - [5867]",
"outputs": [
"6EE21D13-0D47-4BDA-A8BF-DA541D76338B"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "sin(t)",
"generatorType": "User Defined",
"periodicity": "30",
"strength": "10",
"timerInterval": "1000"
}
},
{
"ID": "03F0289E-C249-482F-944E-5B6B431B1D7F",
"name": "Flow - [1338]",
"outputs": [],
"eventInputs": [
"97EF0827-2A00-44D6-8BB7-D44911FBA693"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "variable3",
"retention_policy": "autogen"
}
},
{
"ID": "150BB3E6-548C-4D1A-BE12-2790615E0055",
"name": "Generator - [4357]",
"outputs": [
"DCD477BC-63D9-48C9-B8B5-5A493DD95B96",
"E864AF72-1CAD-4451-9AB9-802DB23236F5",
"E9F954B9-03CB-4E14-8C43-EED18E5738C7",
"F1B26FF6-7B69-4ED0-A6DB-7CCA391711CF"
],
"function": "Generator",
"active": true,
"parameters": {
"amplitude_multiplier": "1",
"formula": "1.1",
"generatorType": "User Defined",
"periodicity": "1",
"strength": "10",
"timerInterval": "1000"
}
},
{
"ID": "B87977B2-B239-48D5-8277-E38C4FA2DF3B",
"name": "Flow - [6390]",
"outputs": [],
"eventInputs": [
"A73A30E7-C308-4D50-889C-2C8E2FC02D8C"
],
"function": "DataHub Publish",
"active": true,
"parameters": {
"single_topic": "true",
"topic": "variable4"
}
},
{
"ID": "C07162D4-574A-48D2-85F1-5CE3E9EA6402",
"name": "Flow - [6240]",
"outputs": [],
"eventInputs": [
"CD42F877-640E-41C7-B7C5-6333EE1C148B"
],
"function": "Database Output",
"active": true,
"parameters": {
"database": "tsdata",
"measurement": "variable4",
"retention_policy": "autogen"
}
}
]
Number of Analytics Groups
GET {{edgeUrl}}/analytics/v2/groups
Number of Analytics Groups
Returns the names of all analytics groups defined on the device. The dashboard uses the length of this array to render the "Groups" tile.
A group is a logical bucket that processors are tagged into; the most common use is to render related processors together in the UI and to scope permissions. The default group is default; product-specific groups (e.g. sensorAnalytics, pd) are created automatically by certain LE features.
Endpoint
GET {{edgeUrl}}/analytics/v2/groups
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json. An array of strings (not objects); each string is a group name.
Example response
["pd", "sensorAnalytics", "default"]
To count groups, take the length of the array. To get processors in a group, use the Analytics > Instances > List Processors endpoint with the group filter.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to Analytics. |
502 / 503 |
Analytics service is unreachable. |
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
[
"pd",
"sensorAnalytics",
"default"
]
Number of Flows
GET {{edgeUrl}}/flows-manager/flows
Number of Flows
Returns the full list of flows defined in Flows Manager (LE's Node-RED runtime). The dashboard uses the length of this array to render the "Flows" tile.
A flow here is the Flows-Manager-level grouping that contains one or more tabs, where each tab is a Node-RED flow surface in the UI. Most edge deployments have a single flow with several tabs.
Endpoint
GET {{edgeUrl}}/flows-manager/flows
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json. An array of flow objects.
| Field | Type | Description |
|---|---|---|
id |
integer | Flow ID (auto-incremented, starts at 1). |
name |
string | Flow name (e.g. flow-1). |
memory_limit |
integer | Soft memory cap in MB. 0 means no explicit limit. |
secret |
string | Encryption key used to encrypt sensitive fields inside the flow JSON. Empty if unset. |
tabs |
object[] | Node-RED tabs inside this flow. Each tab has id (NR node ID) and label (display name). |
Example response
[
{
"id": 1,
"name": "flow-1",
"memory_limit": 0,
"secret": "",
"tabs": [
{ "id": "d2c028f7.3edfd", "label": "Flow 1" },
{ "id": "6a066af5.d68d14", "label": "Flow 2" },
{ "id": "bf24c84c.f34d28", "label": "Flow 3" },
{ "id": "166b0a3cbcb7ad33", "label": "Flow 4" }
]
},
{
"id": 2,
"name": "flow-2",
"memory_limit": 0,
"secret": "",
"tabs": []
}
]
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to Flows Manager. |
502 / 503 |
Flows Manager service is unreachable. Check Flows Manager Status. |
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": 1,
"name": "flow-1",
"memory_limit": 0,
"secret": "",
"tabs": [
{
"id": "d2c028f7.3edfd",
"label": "Flow 1"
},
{
"id": "6a066af5.d68d14",
"label": "Flow 2"
},
{
"id": "bf24c84c.f34d28",
"label": "Flow 3"
},
{
"id": "166b0a3cbcb7ad33",
"label": "Flow 4"
}
]
},
{
"id": 2,
"name": "flow-2",
"memory_limit": 1024,
"secret": "",
"tabs": [
{
"id": "20c9a135.443d1e",
"label": "Flow 1"
}
]
},
{
"id": 3,
"name": "flow-3",
"memory_limit": 1024,
"secret": "",
"tabs": [
{
"id": "1f4d06ac43dd7191",
"label": "Flow 1"
}
]
}
]
Number of Integrations
GET {{edgeUrl}}/cc/instances
Number of Integrations
Returns the full list of Integration instances configured on the device. The dashboard uses the length of this array to render the "Integrations" tile.
An instance is one concrete configured target -- a specific MQTT broker, a specific Kafka cluster, a specific Azure IoT Hub, etc. Each instance is backed by a provider (driver template). For the provider catalog, see Integration > Streaming.
Sensitive data: the response includes
configJSON for each instance. For most providers, secret fields (passwords, access keys, tokens) come back masked as<protected>, but the full config of plaintext fields is returned. Treat this response as sensitive and avoid logging it verbatim.
Endpoint
GET {{edgeUrl}}/cc/instances
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json. An array of instance objects.
| Field | Type | Description |
|---|---|---|
instanceId |
string | Instance UUID. |
providerId |
string | Provider slug (e.g. generic-mqtt-ssl, aws-iot-core, kafka). |
config |
string | JSON-encoded string holding the provider-specific configuration. Decode before reading. |
enabled |
boolean | Whether this instance is currently enabled. |
errorLogging |
boolean | Whether to surface errors from this instance in System > Events. |
tagSyncEnabled |
boolean | Whether tag selection is synced between LE and the upstream system. |
system |
boolean | true if this is a system-managed (non-user-created) instance. |
online |
boolean | Last-known connection state. |
status |
string | Human-readable status (e.g. Online, Offline, Error: ...). |
Example response
[
{
"instanceId": "418ed743-f0cc-4e9f-8b91-6329ba88c5fc",
"providerId": "generic-mqtt-ssl",
"config": "{\"clientId\":\"XYZ\",\"hostname\":\"mqtt.clarify.io\",\"port\":8883,\"password\":\"<protected>\",\"username\":\"ABC\"}",
"enabled": true,
"errorLogging": true,
"tagSyncEnabled": true,
"system": false,
"online": true,
"status": "Online"
}
]
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to Integrations (CC). |
502 / 503 |
Integrations service is unreachable. Check Integrations Status. |
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
[
{
"instanceId": "418ed743-f0cc-4e9f-8b91-6329ba88c5fc",
"providerId": "generic-mqtt-ssl",
"config": "{\"clientId\":\"XYZ\",\"hostname\":\"mqtt.clarify.io\",\"name\":\"ClarifyIOssl\",\"password\":\"XYZ=\",\"port\":8883,\"qos\":0,\"throttlingLimit\":0,\"topic\":\"833dd1d4-9d73-4c01-8104-e36b73b62c15\",\"username\":\"ABC\",\"willPayloadType\":\"string\",\"willQoS\":0,\"willRetained\":false,\"workersCount\":100}",
"enabled": true,
"errorLogging": true,
"tagSyncEnabled": true,
"system": false,
"online": true,
"status": "ONLINE",
"sizeOnDisk": 25600
},
{
"instanceId": "6519965d-c6b2-4dcf-bf21-ff89c8968f32",
"providerId": "generic-mqtt-ssl",
"config": "{\"caCert\":\"-----BEGIN CERTIFICATE-----\\abcd\\n-----END CERTIFICATE-----\",\"clientId\":\"2ea9g28plimcks2kma5g8x2me\",\"hostname\":\"internaltest.la2.space\",\"name\":\"default-ssl\",\"password\":\"cklp4for20hd6vfj1vhdle4pi4\",\"port\":8883,\"topic\":\"loop/data/2ea9g28plimcks2kma5g8x2me/43k2fg48g8j99t1s34dp17f3t/json\",\"username\":\"ABC\"}",
"enabled": false,
"errorLogging": false,
"tagSyncEnabled": true,
"system": true,
"online": false,
"status": "DISABLED",
"sizeOnDisk": 0
},
{
"instanceId": "8ba1721c-2b13-488e-899c-65da6379cb8b",
"providerId": "gcloud-pubsub",
"config": "{\"key\":\"\\u003cprotected\\u003e\",\"name\":\"data-rate-test\",\"projectId\":\"iot-server\",\"publishByteThreshold\":0,\"publishCountThreshold\":1000,\"publishDelayThreshold\":0,\"topic\":\"projects/iot-server/topics/v-connector\"}",
"enabled": false,
"errorLogging": true,
"tagSyncEnabled": false,
"system": false,
"online": false,
"status": "DISABLED",
"sizeOnDisk": 95739
}
]
Number of Cloud Storages
GET {{edgeUrl}}/cloudstorage/jobs
Number of Cloud Storages
Returns the full list of Cloud Storage jobs configured on the device. The dashboard uses the length of this array to render the "Cloud Storage" tile.
A Cloud Storage job synchronizes a local directory on the edge device with an external object store (AWS S3, Azure Blob, etc.) on a schedule. Each job has a source path, destination bucket/container, credentials, and a cron-like trigger.
Sensitive data: credentials are returned but secret components (access keys, secret keys, SAS tokens) come back masked as
<protected>.
Endpoint
GET {{edgeUrl}}/cloudstorage/jobs
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json. An array of job objects.
| Field | Type | Description |
|---|---|---|
id |
string | Job UUID. |
name |
string | Display name of the job. |
provider |
string | Storage backend (AWS S3, Azure Blob, GCS, ...). |
status |
string | Last-known run state (disabled, idle, running, error, ...). |
enabled |
boolean | Whether the job is enabled on its schedule. |
source |
string | Local filesystem path that is being synced from. |
destination |
string | Remote bucket/container (and optional prefix) that is being synced to. |
last_run |
string | Timestamp of the last run, or "-" if it has never run. |
next_run |
string | Timestamp of the next scheduled run, or "-". |
mode |
string | Sync mode (copy, move, mirror). |
time |
string | Schedule unit (minutes, hours, days). |
count |
integer | Schedule magnitude. With time="minutes" and count=5, runs every 5 minutes. |
cred_encrypt |
boolean | Whether the credential blob is stored encrypted at rest. |
credentials |
object | Provider-specific credentials. Secrets are masked as <protected>. |
Example response
[
{
"id": "424b2d92-76dd-11ef-940a-005056b9afd3",
"name": "aws-s3",
"provider": "AWS S3",
"status": "disabled",
"enabled": false,
"source": "/ftp-data/",
"destination": "h-data",
"last_run": "-",
"next_run": "-",
"mode": "copy",
"time": "minutes",
"count": 5,
"cred_encrypt": false,
"credentials": {
"aws": {
"region": "hk",
"accessKeyID": "<protected>",
"secretAccessKey": "<protected>"
}
}
}
]
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to Cloud Storage. |
502 / 503 |
Cloud Storage service is unreachable. |
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": "424b2d92-76dd-11ef-940a-005056b9afd3",
"name": "aws-s3",
"provider": "AWS S3",
"status": "disabled",
"enabled": false,
"source": "/ftp-data/",
"destination": "h-data",
"last_run": "-",
"next_run": "-",
"mode": "copy",
"time": "minutes",
"count": 5,
"cred_encrypt": false,
"credentials": {
"aws": {
"region": "hk",
"accessKeyID": "<protected>",
"secretAccessKey": "<protected>"
}
}
}
]
Number of Edge Applications
GET {{edgeUrl}}/apps
Number of Edge Applications
Returns the full list of Edge Applications installed on the device. The dashboard uses the length of this array to render the "Edge Applications" tile.
An Edge Application is a Docker-based workload deployed by Marketplace -- either from the LE Marketplace catalog or as a user-supplied container. Each app may consist of multiple containers (e.g. an application container plus its database sidecar).
Endpoint
GET {{edgeUrl}}/apps
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json. An array of application objects.
| Field | Type | Description |
|---|---|---|
id |
string | Application UUID. |
name |
string | Application display name. |
status |
string | Overall app state (Running, Stopped, Restarting, Errored, ...). |
containersState |
object[] | One entry per container inside this app. Each has containerName and state (raw Docker state). |
statusChangedAt |
string | ISO 8601 timestamp of the last status transition. |
image |
string | Docker image reference of the primary container, including tag. |
Example response
[
{
"id": "ca877b46-1a8c-11ed-8791-94c6911b9c77",
"name": "MySQL",
"status": "Running",
"containersState": [
{ "containerName": "mysql-mysql", "state": "" },
{}
],
"statusChangedAt": "2023-07-08T15:30:39+00:00",
"image": "mysql:8.0.23"
}
]
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to Marketplace. |
502 / 503 |
Marketplace service is unreachable. Check Marketplace Status. |
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": "ca877b46-1a8c-11ed-8791-94c6911b9c77",
"name": "MySQL",
"status": "Running",
"containersState": [
{
"containerName": "mysql-mysql",
"state": ""
},
{}
],
"statusChangedAt": "2023-07-08T15:30:39+00:00",
"image": "mysql:8.0.23"
}
]
Active Online Users
GET {{edgeUrl}}/auth/v3/users/active
Active Online Users
Returns the users currently authenticated to the LitmusEdge UI (i.e. who hold an unexpired session). The dashboard uses this to render the "Active Users" tile.
Each entry is a snapshot of the user account; full session metadata (last seen, IP, role) is not returned by this endpoint. For audit-grade session tracking use System > Access Control > Users instead.
Endpoint
GET {{edgeUrl}}/auth/v3/users/active
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens. OAuth2 bearer tokens are also accepted, see the How-To: Use OAuth2 Authorization collection.
Parameters
None.
Response
200 OK -- application/json. An array of user objects.
| Field | Type | Description |
|---|---|---|
userId |
string | Internal user identifier (often the username for local accounts). |
username |
string | Login name used to sign in. |
firstName |
string | First name, as configured on the user account. |
lastName |
string | Last name, as configured on the user account. |
The array is empty ([]) when no users have an active session, including when the caller's own token is a service token rather than a user session.
Example response
[
{
"userId": "admin",
"username": "admin",
"firstName": "System",
"lastName": "Administrator"
}
]
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks read access to the auth service. |
502 / 503 |
Auth service is unreachable. |
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
[
{
"userId": "admin",
"username": "admin",
"firstName": "System",
"lastName": "Administrator"
}
]