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 config JSON 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"
    }
]

View this page as Markdown