LitmusEdgeManager 2.31.x API Documentation/Edge Lifecycle Management/Templates - LE, LEM, LUNS API Docs
Templates List
GET {{LEM_URL}}/api/v1/template/list?companyName={{company_name}}&limit=10&projectId={{project_id}}
Templates List
Returns the templates available in one company / project. A template is a saved configuration snapshot (devices, flows, analytics processors, integrations, digital twin models) that can be applied to new devices during onboarding.
Endpoint
GET {{LEM_URL}}/api/v1/template/list?companyName={{company_name}}&limit=10&projectId={{project_id}}
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. Each entry: companyName, projectId, deviceId, scope, timestamp, name, desc, parameterized, stat (JSON-encoded stats string).
Errors
| HTTP status | When it happens |
|---|---|
400 Bad Request |
Missing or malformed query/body parameter. |
401 Unauthorized |
Missing or invalid credentials. |
403 Forbidden |
Token lacks permission for this operation. |
404 Not Found |
Target entity does not exist. |
5xx |
Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support. |
TLS note: edge devices use a self-signed certificate by default. Either install the device CA in your client trust store or disable certificate verification when calling this endpoint directly.
Response
Status: 200 OK
[
{
"companyName": "Litmus",
"projectId": "231234adf323424124445",
"deviceId": "231234adf323424124445",
"scope": "COMPANY",
"timestamp": 1523234233,
"name": "Litmus/<project ID>/<device ID>/PROJECT/1523234233",
"desc": "Template for Siemens devices",
"parameterized": false,
"stat":"{\"devices\":8,\"flows\":2,\"marketplace\":{\"marketplaces\":3,\"applications\":1,\"registries\":15},\"connectors\":3,\"analytics\":62,\"dtwin\":{\"instances\":3,\"models\":2}}"
}
]
Template Composition
GET {{LEM_URL}}/api/v1/template/composition?projectId={{project_id}}&deviceId={{device_id}}
Template Composition
Returns the composition catalog for a device -- what is available to include in a new template (auth providers, connectors, devices, country, etc.). Use this as the basis for the creationOptions body of Create Template.
Endpoint
GET {{LEM_URL}}/api/v1/template/composition?projectId={{project_id}}&deviceId={{device_id}}
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
{
"auth": {
"providers": null
},
"connectors": [
{
"id": "843e6ca7-f995-4a5b-80ad-29610230cb7b",
"name": "data-rate-test",
"provider": "gcloud-pubsub"
},
{
"id": "c1736c10-804d-4d6e-9cbc-ba5f2cb7d4c0",
"name": "ClarifyIOssl",
"provider": "generic-mqtt-ssl"
}
],
"country": false,
"devices": [
{
"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": "AB CLX API testing"
},
{
"id": "779F42F3-54FC-4A87-B9A6-CD39CFA4A97D",
"name": "Simulator2"
},
{
"id": "89C52E9A-0901-4D8D-B842-7B533F64E1B7",
"name": "ClassificationSimulator"
},
{
"id": "BAFD349E-21B6-408A-AE2F-B9C682912571",
"name": "Boiler"
},
{
"id": "CDC283FB-72E2-42DF-A587-4D6299D70C9A",
"name": "sim1"
}
],
"dns": false,
"docker": false,
"dtwin": {
"instances": [
{
"id": "d0c8844d-ef72-4933-bb5e-b74372b33f4b",
"name": "Instance1"
},
{
"id": "5992744a-65b9-431f-880c-4efa2644a57f",
"name": "apiInstance"
}
],
"models": [
{
"id": "d9117ae5-3f3e-4436-9a2a-6dd725fbd8fb",
"name": "Digital-Twin-1"
},
{
"id": "3a923971-5dfc-4633-b5af-a6bf8c0b60e9",
"name": "apiTest"
}
]
},
"flows": [
{
"id": "1",
"label": "flow-1"
},
{
"id": "4",
"label": "videoprocessing"
}
],
"groups": [
{
"name": "default"
},
{
"name": "ml-classification"
},
{
"name": "sensorAnalytics"
}
],
"marketplace": {
"catalogs": [
{
"applications": null,
"id": "2de5c161-1a8d-11ed-8d9d-94c6911b9c77",
"name": "Solutions Catalog"
},
{
"applications": [
{
"id": "ca877b46-1a8c-11ed-8791-94c6911b9c77",
"name": "MySQL"
}
],
"id": "c93dbe1b-1a8c-11ed-8d9d-94c6911b9c77",
"name": "Catalog Applications"
},
{
"applications": null,
"id": "default-marketplace",
"name": "Default Marketplace Catalog"
}
],
"registries": [
{
"id": "06c1831c-e1c3-4dec-9462-927045c68cc5",
"name": "Elastic docker registry"
},
{
"id": "1c3e352b-18d9-476c-bffb-c2d6860b91af",
"name": "GOOGLE REGISTRY"
},
{
"id": "37089c8a-a4bf-4743-ba91-a308a3d2879b",
"name": "Elastic docker registry"
},
{
"id": "4eb828ff-ada3-404c-ad0b-63551ee1e42f",
"name": "Public Docker Hub"
},
{
"id": "507380c5-e3a9-475c-9b8f-8dcfef9f6bc1",
"name": "Microsoft Docker Container registry"
},
{
"id": "619022b2-2144-4bd0-9d24-18c0be55d158",
"name": "Microsoft Docker Container registry"
},
{
"id": "694a9804-4a20-4d61-bbef-c5c72e969a94",
"name": "Elastic public docker registry"
},
{
"id": "6a77715d-0ade-4040-bae0-f41568d07e8c",
"name": "Public docker repository"
},
{
"id": "70f7c354-af13-4768-b6a5-ff969e2f1a5f",
"name": "Elastic docker repository"
},
{
"id": "8e22251d-d304-11ec-a0f9-94c6911b9c77",
"name": "litmusjupyter"
},
{
"id": "b90acb33-a037-4f84-8311-e17ffabe8ccf",
"name": "Public docker hub"
},
{
"id": "d6ea3123-d2d2-49a7-82e3-5fc9ff4aefdc",
"name": "GCR-solutions-registry"
},
{
"id": "e2d72df6-50df-11ee-abb6-94c6911b9c77",
"name": ""
},
{
"id": "eb33db83-3bfd-4eff-8a6f-a7ca72cebaab",
"name": "Microsoft Docker Container registry"
},
{
"id": "faedaf64-acdd-4a34-8238-3003e8ad77c5",
"name": "Public docker hub"
}
]
},
"ntp": false,
"opcua": [
{
"name": "EdgeDevice",
"type": "FOLDER"
},
{
"name": "Users",
"type": "CONFIG"
},
{
"name": "Modes",
"type": "CONFIG"
},
{
"name": "Policies",
"type": "CONFIG"
},
{
"name": "Enabled",
"type": "CONFIG"
},
{
"name": "Certificates",
"type": "CONFIG"
}
],
"timezone": false
}
List all Variables of Template
GET {{LEM_URL}}/api/v1/template/list-variables?templateName={{template_name}}
List all Variables of Template
Returns the variables declared in one template. Variables are placeholders that get substituted when the template is applied to a new device.
Endpoint
GET {{LEM_URL}}/api/v1/template/list-variables?templateName={{template_name}}
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
[
{
"name": "Variable name",
"type": "String value",
"description": "Variable description"
}
]
Create Template
POST {{LEM_URL}}/api/v1/template/create
Create Template
Creates a new template from one source device. The body specifies which categories (auth, connectors, devices, country, ...) to include.
Endpoint
POST {{LEM_URL}}/api/v1/template/create
Authentication
HTTP Basic Auth. Username is your API token, password is empty. Tokens are managed under System > Access Control > Tokens.
Request body
{
"deviceId": "1a5wiavluwxuhwai5leb1v0hc",
"templateDescription": "newTemplate",
"creationOptions": {
"auth": { "providers": [] },
"connectors": ["843e6ca7-..."],
"country": true,
"devices": ["41FBD12E-..."]
}
}
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
{
"deviceId": "1a5wiavluwxuhwai5leb1v0hc",
"templateDescription": "newTemplate",
"creationOptions": {
"auth": {
"providers": []
},
"connectors": [
"843e6ca7-f995-4a5b-80ad-29610230cb7b",
"c1736c10-804d-4d6e-9cbc-ba5f2cb7d4c0"
],
"country": true,
"devices": [
"41FBD12E-C6CD-4539-AD50-336D278B207C",
"474E42B0-C7B8-42DE-8DE2-FFED7030A563",
"4C4B9CCC-F5E4-4C2E-A4C0-EAF5C32B0D1A",
"779F42F3-54FC-4A87-B9A6-CD39CFA4A97D",
"89C52E9A-0901-4D8D-B842-7B533F64E1B7",
"BAFD349E-21B6-408A-AE2F-B9C682912571",
"CDC283FB-72E2-42DF-A587-4D6299D70C9A"
],
"dns": true,
"docker": true,
"digitalTwin": {
"instances": [
{
"id": "d0c8844d-ef72-4933-bb5e-b74372b33f4b",
"name": "Instance1"
},
{
"id": "5992744a-65b9-431f-880c-4efa2644a57f",
"name": "apiInstance"
}
],
"models": [
{
"id": "d9117ae5-3f3e-4436-9a2a-6dd725fbd8fb",
"name": "Digital-Twin-1"
},
{
"id": "3a923971-5dfc-4633-b5af-a6bf8c0b60e9",
"name": "apiTest"
}
]
},
"flows": [
"1",
"4"
],
"groups": [
"default",
"ml-classification",
"sensorAnalytics"
],
"marketplace": {
"catalogs": [
{
"id": "2de5c161-1a8d-11ed-8d9d-94c6911b9c77",
"name": "Solutions Catalog",
"applications": []
},
{
"id": "c93dbe1b-1a8c-11ed-8d9d-94c6911b9c77",
"name": "Catalog Applications",
"applications": [
{
"id": "ca877b46-1a8c-11ed-8791-94c6911b9c77",
"name": "MySQL"
}
]
},
{
"id": "default-marketplace",
"name": "Default Marketplace Catalog",
"applications": []
}
],
"registries": [
{
"id": "06c1831c-e1c3-4dec-9462-927045c68cc5",
"name": "Elastic docker registry"
},
{
"id": "1c3e352b-18d9-476c-bffb-c2d6860b91af",
"name": "GOOGLE REGISTRY"
},
{
"id": "37089c8a-a4bf-4743-ba91-a308a3d2879b",
"name": "Elastic docker registry"
},
{
"id": "4eb828ff-ada3-404c-ad0b-63551ee1e42f",
"name": "Public Docker Hub"
},
{
"id": "507380c5-e3a9-475c-9b8f-8dcfef9f6bc1",
"name": "Microsoft Docker Container registry"
},
{
"id": "619022b2-2144-4bd0-9d24-18c0be55d158",
"name": "Microsoft Docker Container registry"
},
{
"id": "694a9804-4a20-4d61-bbef-c5c72e969a94",
"name": "Elastic public docker registry"
},
{
"id": "6a77715d-0ade-4040-bae0-f41568d07e8c",
"name": "Public docker repository"
},
{
"id": "70f7c354-af13-4768-b6a5-ff969e2f1a5f",
"name": "Elastic docker repository"
},
{
"id": "8e22251d-d304-11ec-a0f9-94c6911b9c77",
"name": "litmusjupyter"
},
{
"id": "b90acb33-a037-4f84-8311-e17ffabe8ccf",
"name": "Public docker hub"
},
{
"id": "d6ea3123-d2d2-49a7-82e3-5fc9ff4aefdc",
"name": "GCR-solutions-registry"
},
{
"id": "e2d72df6-50df-11ee-abb6-94c6911b9c77",
"name": ""
},
{
"id": "eb33db83-3bfd-4eff-8a6f-a7ca72cebaab",
"name": "Microsoft Docker Container registry"
},
{
"id": "faedaf64-acdd-4a34-8238-3003e8ad77c5",
"name": "Public docker hub"
}
]
},
"ntp": true,
"opcua": [
{
"name": "EdgeDevice",
"type": "FOLDER"
},
{
"name": "Users",
"type": "CONFIG"
},
{
"name": "Modes",
"type": "CONFIG"
},
{
"name": "Policies",
"type": "CONFIG"
},
{
"name": "Enabled",
"type": "CONFIG"
},
{
"name": "Certificates",
"type": "CONFIG"
}
],
"timezone": true
}
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}