LitmusEdgeManager 2.31.x API Documentation/Edge Lifecycle Management/AI/ML Models - LE, LEM, LUNS API Docs

Step 1 of Upload New AI/ML Model

POST {{LEM_URL}}/api/v1/file/{{project_id}}/mlModel/motionModel.zip/upload-url

Step 1 of Upload New AI/ML Model

Step 1 of a three-step pre-signed-URL upload flow. LEM returns an upload URL signed by its object storage; step 2 uploads the file to that URL.

Endpoint

POST {{LEM_URL}}/api/v1/file/{{project_id}}/mlModel/motionModel.zip/upload-url

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Request body

{
  "projectId": "{{project_id}}",
  "fileName": "motionModel.zip"
}

Response

200 OK -- application/json

{ "url": "https://10.17.3.103/files/.../motionModel.zip?..." }

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

{
    "projectId": "{{project_id}}",
    "fileName": "motionModel.zip"
}

Response

Status: 200 OK

{
    "url": "https://10.17.3.103/files/462j1mq70mph31wa100t1yuxa/mlModel/motionModel.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ZBE3Hey7R88GtiYw%2F20241218%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241218T141532Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8a7fd062731b25a2bd3887e11fa790a5e26436430ee1509424108b0252e494ca"
}

Step 2 of Upload New AI?ML Model

PUT {{LEM_URL}}/files/{{project_id}}/mlModel/motionModel.zip?X-Amz-Algorithm=AWS4-HMAC-SHA256&X-Amz-Credential=ZBE3Hey7R88GtiYw%2F20241218%2Fus-east-1%2Fs3%2Faws4_request&X-Amz-Date=20241218T141532Z&X-Amz-Expires=604800&X-Amz-SignedHeaders=host&X-Amz-Signature=8a7fd062731b25a2bd3887e11fa790a5e26436430ee1509424108b0252e494ca

Step 2 of Upload New AI/ML Model

Step 2: PUT the file bytes to the pre-signed URL returned by step 1. This call goes directly to the storage backend, not the LEM API. (The Postman item's name has a typo: AI?ML.)

Endpoint

PUT {{LEM_URL}}/files/{{project_id}}/mlModel/motionModel.zip?<signing-params>

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Request body

Raw binary upload of the model ZIP.

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Response

Status: 200 OK


Step 3 of Upload New Model

POST {{LEM_URL}}/api/v1/file/{{project_id}}/mlModel/motionModel.zip

Step 3 of Upload New Model

Step 3: notify LEM that the upload is complete. LEM records the metadata and makes the file available for Deploy ML model.

Endpoint

POST {{LEM_URL}}/api/v1/file/{{project_id}}/mlModel/motionModel.zip

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Request body

{ "description": "" }

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

{
    "description": ""
}

Response

Status: 200 OK

{
    "code": "S",
    "message": null,
    "messageDetails": null
}

Deploy ML model

POST {{LEM_URL}}/api/v1/async-task/task-with-subtasks

Deploy ML Model

Deploys a staged AI/ML model to one or more devices via an async task. Body is the same async-task envelope as Applications > Launch Application to Edge Device; the task type is ANALYTICS_ML_MODEL_UPLOAD.

Endpoint

POST {{LEM_URL}}/api/v1/async-task/task-with-subtasks

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Request body

{
  "name": "Upload AI/ML Models (1 edge device)",
  "projectId": "{{project_id}}",
  "subtasks": [
    {
      "deviceId": "{{edge_device_id}}",
      "num": 0,
      "params": { "fileName": "motionModel.zip" },
      "type": "ANALYTICS_ML_MODEL_UPLOAD"
    }
  ],
  "type": "ANALYTICS_ML_MODEL_UPLOAD",
  "waitForOnline": false
}

Response

200 OK -- application/json

{ "taskId": "ca549da1-e645-4f21-8865-487cb5a4aac1" }

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Request Body

{
    "name": "Upload AI/ML Models (1 edge device)",
    "description": "",
    "params": {},
    "projectId": "{{project_id}}",
    "subtasks": [
        {
            "deviceId": "{{edge_device_id}}",
            "num": 0,
            "params": {
                "fileName": "motionModel.zip"
            },
            "type": "ANALYTICS_ML_MODEL_UPLOAD",
            "plannedExecTime": 0
        }
    ],
    "type": "ANALYTICS_ML_MODEL_UPLOAD",
    "waitForOnline": false
}

Response

Status: 200 OK

{
    "taskId": "ca549da1-e645-4f21-8865-487cb5a4aac1"
}

Verify If Deploy Task is Complete

GET {{LEM_URL}}/api/v1/async-task/{{task_id}}/subtasks

Verify If Deploy Task is Complete

Returns the subtasks for one async task with their progress, status, and per-device messages. Use to monitor a deployment.

Endpoint

GET {{LEM_URL}}/api/v1/async-task/{{task_id}}/subtasks

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Response

Status: 200 OK

[
    {
        "id": "5dda70d0-5d2a-489f-85d9-c3169620f1f1",
        "taskId": "20bb4e40-5656-43c5-880b-4cf0fa9c4d07",
        "num": 0,
        "deviceId": "vkrih85ka6fn7zcofirk20vs",
        "devicePrettyName": "VM",
        "type": "ANALYTICS_ML_MODEL_UPLOAD",
        "params": {
            "fileName": "motionModel.zip"
        },
        "plannedExecTime": 0,
        "progress": 1,
        "status": "SUCCESS",
        "msg": null,
        "startTime": 1734532298000,
        "stopTime": 1734532298000,
        "context": null,
        "createdOn": 1734532294000,
        "updatedOn": 1734532298000,
        "createdBy": "parthshah",
        "updatedBy": "parthshah",
        "done": true
    }
]

Get Models

GET {{LEM_URL}}/api/v1/analytics/{{project_id}}/models

Get Models

Returns the AI/ML models currently installed on every device in the project. Each device record carries totalSize plus an array of models[] with name, absolute path, and size.

Endpoint

GET {{LEM_URL}}/api/v1/analytics/{{project_id}}/models

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Response

Status: 200 OK

{
    "pageNum": 0,
    "pagesCount": 1,
    "size": 3,
    "totalSize": 3,
    "elements": [
        {
            "projectId": "462j1mq70mph31wa100t1yuxa",
            "deviceId": "1a5wiavluwxuhwai5leb1v0hc",
            "hostname": "litmus-edge-94c6911b9c77",
            "prettyName": "Litmus Edge (94:c6:91:1b:9c:77)- SJ office sensor",
            "isOnline": true,
            "totalSize": 141852176,
            "models": [
                {
                    "name": "coco",
                    "absolutePath": "/var/lib/loopedge-analytics2/models/coco",
                    "size": 136145199,
                    "deploymentSource": "LE"
                },
                {
                    "name": "gasFive.tflite",
                    "absolutePath": "/var/lib/loopedge-analytics2/models/gasFive.tflite",
                    "size": 101132,
                    "deploymentSource": "LE"
                },
                {
                    "name": "motionModel",
                    "absolutePath": "/var/lib/loopedge-analytics2/models/motionModel",
                    "size": 5094648,
                    "deploymentSource": "LE"
                },
                {
                    "name": "savedmodel4",
                    "absolutePath": "/var/lib/loopedge-analytics2/models/savedmodel4",
                    "size": 511197,
                    "deploymentSource": "LE"
                },
                {
                    "name": ".ipynb_checkpoints",
                    "absolutePath": "/var/lib/loopedge-analytics2/models/.ipynb_checkpoints",
                    "size": 0,
                    "deploymentSource": "LE"
                }
            ],
            "online": true
        },
        {
            "projectId": "462j1mq70mph31wa100t1yuxa",
            "deviceId": "3y0vcdju38zvqjrlm5lcpm1l",
            "hostname": "litmus-edge-080027b4a1c8",
            "prettyName": "Litmus Edge (08:00:27:b4:a1:c8)",
            "isOnline": false,
            "totalSize": 5094648,
            "models": [
                {
                    "name": "motionModel",
                    "absolutePath": "/var/lib/loopedge-analytics2/models/motionModel",
                    "size": 5094648,
                    "deploymentSource": "LE"
                }
            ],
            "online": false
        },
        {
            "projectId": "462j1mq70mph31wa100t1yuxa",
            "deviceId": "vkrih85ka6fn7zcofirk20vs",
            "hostname": "litmus-edge-005056b965c2",
            "prettyName": "VM",
            "isOnline": true,
            "totalSize": 0,
            "models": [],
            "online": true
        }
    ]
}

Models List

GET {{LEM_URL}}/api/v1/analytics/{{project_id}}/model-list

Models List

Returns a flat aggregated list of model names across the project's devices, with total size and the number of devices running each model.

Endpoint

GET {{LEM_URL}}/api/v1/analytics/{{project_id}}/model-list

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Response

200 OK -- application/json. Array of {name, size, count} objects.

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Response

Status: 200 OK

[
    {
        "name": ".ipynb_checkpoints",
        "size": 0,
        "count": 1
    },
    {
        "name": "savedmodel4",
        "size": 511197,
        "count": 1
    },
    {
        "name": "coco",
        "size": 136145199,
        "count": 1
    },
    {
        "name": "gasFive.tflite",
        "size": 101132,
        "count": 1
    },
    {
        "name": "motionModel",
        "size": 5094648,
        "count": 2
    }
]

Get Models on Edge Manager

GET {{LEM_URL}}/api/v1/file/{{project_id}}/list

Get Models on Edge Manager

Returns the AI/ML models uploaded to LEM (not yet deployed). These are staging files in LEM's file store ready for deployment.

Endpoint

GET {{LEM_URL}}/api/v1/file/{{project_id}}/list

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.

Response

Status: 200 OK

{
    "pageNum": 0,
    "pagesCount": 1,
    "size": 1,
    "totalSize": 1,
    "elements": [
        {
            "name": "motionModel.zip",
            "size": 0,
            "lastModified": 1734531634590,
            "fileType": "mlModel",
            "description": ""
        }
    ]
}

Delete Model on LEM

DELETE {{LEM_URL}}/api/v1/file/{{project_id}}/{fileType}/{fileName}

Delete Model on LEM

Removes a staged file from LEM's file store. Pass fileType (mlModel) and fileName in the path.

Endpoint

DELETE {{LEM_URL}}/api/v1/file/{{project_id}}/{fileType}/{fileName}

Authentication

HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.

Errors

HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.


View this page as Markdown