Litmus Edge Manager 3.0.x - Edge Lifecycle: Activation

Activation Config List

GET {{LEM_URL}}/api/v1/activation/config/list?projectId={{project_id}}

Activation Config List

Returns the activation configurations available to the project. Each carries an activation code, expiresAt, allowed device count, current usage counts, attached license keys / templates, lease TTL, license type, and license-server settings.

Endpoint

GET {{LEM_URL}}/api/v1/activation/config/list?projectId={{project_id}}

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## 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

[
    {
        "projectId": "462j1mq70mph31wa100t1yuxa",
        "code": "V9ZUA-DY6FX-CFC7V-JJY7D-V3OVF",
        "expiresAt": 1722668400000,
        "deviceCount": 10,
        "usageCount": 1,
        "usages": [
            "1a5wiavluwxuhwai5leb1v0hc"
        ],
        "licenseKeys": [],
        "templateNames": [],
        "leaseTtl": 365,
        "licenseType": "NODE_LOCKED",
        "licenseServerHost": null,
        "licenseServerPort": 0,
        "options": {
            "DEFAULT_PASSWORD_POLICY": false
        },
        "createdOn": 1691104130000,
        "wgPersistentKeepalive": null,
        "firstUnusedLicense": null
    }
]

Add Activation Config

POST {{LEM_URL}}/api/v1/activation/config

Add Activation Config

Creates a new activation configuration in the project. The server generates the activation code if code: null. The config is what new devices use during onboarding to bind to the right project / license / template set.

Endpoint

POST {{LEM_URL}}/api/v1/activation/config

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Request body
{
  "projectId": "{{project_id}}",
  "code": null,
  "expiresAt": 1756191600000,
  "deviceCount": 10,
  "leaseTtl": 365,
  "licenseSkus": [],
  "templateNames": [],
  "licenseType": "NODE_LOCKED",
  "licenseServerHost": null,
  "licenseServerPort": 5053,
  "options": { "DEFAULT_PASSWORD_POLICY": false }
}

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}}",
    "code": null,
    "expiresAt": 1756191600000,
    "deviceCount": 10,
    "leaseTtl": 365,
    "licenseSkus": [],
    "templateNames": [],
    "licenseType": "NODE_LOCKED",
    "licenseServerHost": null,
    "licenseServerPort": 5053,
    "options": {
        "DEFAULT_PASSWORD_POLICY": false
    },
    "wgPersistentKeepalive": null
}

Response

Status: 200 OK

{
    "projectId": "{{project_id}}",
    "code": "4JOOD-2CWAQ-KNDWX-7EUUM-9Y7LF",
    "expiresAt": 1756191600000,
    "deviceCount": 10,
    "usageCount": 0,
    "usages": [],
    "templateNames": [],
    "leaseTtl": 365,
    "licenseType": "NODE_LOCKED",
    "licenseServerHost": null,
    "licenseServerPort": 0,
    "options": {
        "DEFAULT_PASSWORD_POLICY": false
    },
    "createdOn": null,
    "wgPersistentKeepalive": null,
    "licenseSkus": []
}

Delete Activation Config

DELETE {{LEM_URL}}/api/v1/activation/config

Delete Activation Config

Deletes an activation code from a project. Devices already activated with the code stay activated; new devices can no longer use it. Delete any ZeroTouch configuration that embeds the code first.

Endpoint

DELETE {{LEM_URL}}/api/v1/activation/config

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)

Request body

application/json

Field Type Required Description
projectId string Yes Project ID.
code string Yes Activation code, from Activation Config List.

Response

204 No Content, empty body. The spec documents 200.

Errors

HTTP status When it happens
401 Unauthorized Missing or invalid X-AuthToken.
404 Not Found Activation config with code <code> not found.

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

Request Body

{
    "projectId": "{{project_id}}",
    "code": "{{activation_code}}"
}

Response

Status: 204 No Content


Requests List

GET {{LEM_URL}}/api/v1/activation/request?projectId={{project_id}}

Requests List

Returns activation requests for the project. Each request represents a device asking to onboard, with hardware info, activation code used, current status, message, and per-step timestamps.

Endpoint

GET {{LEM_URL}}/api/v1/activation/request?projectId={{project_id}}

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Errors
HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

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

Response

Status: 200 OK

[
    {
        "entryID": 4,
        "code": "V9ZUA-DY6FX-CFC7V-JJY7D-V3OVF",
        "hostname": "litmus-edge-94c6911b9c77",
        "macAddress": "a1:b2:c3:d4:e5:00,a0:c5:89:af:cd:af",
        "info": {
            "type": "litmusedge",
            "version": "3.5.4",
            "memoryGb": 7847,
            "storageGb": 223791,
            "virtualization": null,
            "hw": "physical"
        },
        "status": "ACTIVATED",
        "message": "",
        "projectId": "462j1mq70mph31wa100t1yuxa",
        "deviceId": "1a5wiavluwxuhwai5leb1v0hc",
        "createdOn": 1691104159000,
        "hostID": "94c6911b9c77",
        "provisionStatus": [
            {
                "stage": "ACTIVATION",
                "stageName": "Activation",
                "stageStatus": "DONE",
                "step": "RECEIVED",
                "stepName": "Activation request received",
                "properties": {},
                "stepStatus": "DONE",
                "message": null,
                "updatedAt": 1691104169263
            },
            {
                "stage": "ACTIVATION",
                "stageName": "Activation",
                "stageStatus": "DONE",
                "step": "APPROVED",
                "stepName": "Activation request approved",
                "properties": {},
                "stepStatus": "DONE",
                "message": null,
                "updatedAt": 1691104170160
            },
            {
                "stage": "ACTIVATION",
                "stageName": "Activation",
                "stageStatus": "DONE",
                "step": "CONFIRMED",
                "stepName": "Activation request confirmed",
                "properties": {},
                "stepStatus": "DONE",
                "message": null,
                "updatedAt": 1691104179588
            },
            {
                "stage": "PROVISION",
                "stageName": "Provision",
                "stageStatus": "DONE",
                "step": "LICENSE_GENERATED",
                "stepName": "Offline license generated",
                "properties": {},
                "stepStatus": "SKIPPED",
                "message": "No license key defined",
                "updatedAt": 1691104179596
            },
            {
                "stage": "PROVISION",
                "stageName": "Provision",
                "stageStatus": "DONE",
                "step": "LICENSE_PROVISIONED",
                "stepName": "License provisioned to the device",
                "properties": {},
                "stepStatus": "SKIPPED",
                "message": "No license key defined",
                "updatedAt": 1691104179597
            }
        ],
        "zerotierNodeId": "19a0049b29",
        "prettyName": "Litmus Edge (a1:b2:c3:d4:e5:00)- SJ office sensor",
        "templates": [],
        "licenseType": "NODE_LOCKED",
        "updatedBy": "user_name"
    }
]

Activation Status Summary

GET {{LEM_URL}}/api/v1/activation/status-summaries?projectId={{project_id}}

Activation Status Summary

Counts the project's activation requests by status. Backs the status chips above the Activation > Requests table.

Endpoint

GET {{LEM_URL}}/api/v1/activation/status-summaries?projectId={{project_id}}

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)

Query parameters

Parameter Type Required Description
projectId string Yes Project ID.

Response

200 OK. Array of {status, cnt}, one entry per status that has at least one request (ACTIVATED, PENDING, REJECTED, ...). A project with no requests returns [].

Errors

HTTP status When it happens
401 Unauthorized Missing or invalid X-AuthToken.
400 Bad Request projectId missing.

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

Response

Status: 200 OK

[
    {
        "status": "ACTIVATED",
        "cnt": 1
    }
]

Request Details

GET {{LEM_URL}}/api/v1/activation/config?code={{activation_code}}&projectId={{project_id}}

Request Details

Returns the configuration backing one activation request identified by its code. Same shape as one element of Activation Config List.

Endpoint

GET {{LEM_URL}}/api/v1/activation/config?code={{activation_code}}&projectId={{project_id}}

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## 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

{
    "projectId": "462j1mq70mph31wa100t1yuxa",
    "code": "V9ZUA-DY6FX-CFC7V-JJY7D-V3OVF",
    "expiresAt": 1722668400000,
    "deviceCount": 10,
    "usageCount": 1,
    "usages": [
        "1a5wiavluwxuhwai5leb1v0hc"
    ],
    "licenseKeys": [],
    "templateNames": [],
    "leaseTtl": 365,
    "licenseType": "NODE_LOCKED",
    "licenseServerHost": null,
    "licenseServerPort": 0,
    "options": {
        "DEFAULT_PASSWORD_POLICY": false
    },
    "createdOn": 1691104130000,
    "wgPersistentKeepalive": null,
    "firstUnusedLicense": null
}

Approve Request

POST {{LEM_URL}}/api/v1/activation/request/status

Approve Request

Approves a pending activation request. After approval, LEM provisions the device's license / template / certificate set.

Endpoint

POST {{LEM_URL}}/api/v1/activation/request/status

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Request body
{
  "entryID": {{project_entry_id}},
  "projectId": "{{project_id}}",
  "status": "APPROVED"
}

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

{
    "entryID": {{project_entry_id}},
    "projectId": "{{project_id}}",
    "status": "APPROVED"
}

Reject Request

POST {{LEM_URL}}/api/v1/activation/request/status

Reject Request

Rejects a pending activation request. The device's onboarding attempt fails.

Endpoint

POST {{LEM_URL}}/api/v1/activation/request/status

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Request body
{
  "entryID": {{project_entry_id}},
  "projectId": "{{project_id}}",
  "status": "REJECTED"
}

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

{
    "entryID": {{project_entry_id}},
    "projectId": "{{project_id}}",
    "status": "REJECTED"
}

Retry Failed Request

POST {{LEM_URL}}/api/v1/activation/request/request-retry-provision?entryId={{project_entry_id}}&projectId={{project_id}}

Retry Failed Request

Re-runs the provisioning step for a failed activation request. Useful when the original failure was transient (license-server blip, image download glitch).

Endpoint

POST {{LEM_URL}}/api/v1/activation/request/request-retry-provision?entryId={{project_entry_id}}&projectId={{project_id}}

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Errors
HTTP status When it happens
400 Bad Request Missing or malformed query/body parameter.
401 Unauthorized Missing or invalid credentials.
403 Forbidden Token lacks permission for this operation.
404 Not Found Target entity does not exist.
5xx Service is unreachable, restarting, or internally errored. Inspect device logs under System > Support.

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

Response

Status: 204 No Content


List ZeroTouch Configs

GET {{LEM_URL}}/api/v1/zt/{{project_id}}/config

List ZeroTouch Configs

Returns the Zero-Touch configurations for the project. Each Zero-Touch config produces a .zip bundle that ships with new devices for hands-off provisioning -- the device boots, reads the bundle, and self-registers with LEM.

Endpoint

GET {{LEM_URL}}/api/v1/zt/{{project_id}}/config

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Response

200 OK -- application/json. Paged. Each entry: id, projectId, configName, staticIPEnabled, asyncSubtaskId, ztBundleFileName, ztBundleFileSize, checksum.

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": [
        {
            "id": "f490e8e5-9ea6-4e38-917f-1a0332b990c7",
            "projectId": "39abjcmqdc6r4gsctj7zjufnv",
            "configName": "ui-test",
            "staticIPEnabled": false,
            "asyncSubtaskId": "ce28b00e-d841-44cf-b43d-23fe237bc0d5",
            "ztBundleFileName": "39abjcmqdc6r4gsctj7zjufnv/zerotouch-ui-test-f490e8e5.zip",
            "ztBundleFileSize": 2055,
            "checksum": "sha256:5bcdf55c86a3cdcbc30f32c6019e3c0fb417272601dfe77304b835e9658cafff",
            "createdBy": "demo",
            "createTime": 1755721657000,
            "updatedBy": "demo",
            "updateTime": 1755721666000,
            "generatedBy": "demo",
            "generateTime": 1755721665000,
            "ztConfig": {
                "version": "1.0",
                "activation": {
                    "code": "5GFPO-4GMZ5-FDENG-HTVG9-WXSL9",
                    "url": "https://10.17.10.247",
                    "cert": "-----BEGIN CERTIFICATE-----\nMIIDSzCCAjOgAwIBAgIUQYLKBq7xn4lfOvZmkNyaAD+HoxAwDQYJKoZIhvcNAQELBQAwLTErMCkGA1UEAxMiTGl0bXVzIEVkZ2UgTWFuYWdlciBDQSAyNTA4MjMxMjIzOTAeFw0yNTA4MTkyMjM4NTVaFw00NTA4MTQyMjM5MjRaMC0xKzApBgNVBAMTIkxpdG11cyBFZGdlIE1hbmFnZXIgQ0EgMjUwODIzMTIyMzkwggEiMA0GCSqGSIb3DQEBAQUAA4IBDwAwggEKAoIBAQCwzdhYBvlK+Cwy7mxEI9J86B+6JjMpMN3Wul0U2PZ8O/B8vQ+UOpAqNT8sRm1jMHv4zo0UTmpwg5SR1u8gSokkSB6cnUItbOZRwVMKmnJnonw4DMKawgD1LuXqdUbSVrzte80YetR93ugkWSlC6Cwr8qdXoBjzBU7KqEivGK/KpSWigyN/185asBrFQtwQxODD7CVleYa2XWwdazqmLTea8ogYmIoIEByQAoODZ+Gp4m7t3rsPin4X+aGrMteHQi4yNDvHE9UL3J8e+2iIDT1DkbpIepT+vxZsx7IC7mGH7s7xYtLYIycVZlEs9qevf/zVQ4lDIrxIe6JwdhG0PFGnAgMBAAGjYzBhMA4GA1UdDwEB/wQEAwIBBjAPBgNVHRMBAf8EBTADAQH/MB0GA1UdDgQWBBS/NdppA6lG+Gy0WlZ151/562Ia/jAfBgNVHSMEGDAWgBS/NdppA6lG+Gy0WlZ151/562Ia/jANBgkqhkiG9w0BAQsFAAOCAQEALAqI3IT30t1/a+afBM7mxK/PYPPZPcKnI6E7zhEmSaUMg6Y2EdHHiv5gNHX1AwQLItO34yTm1xkykUTI4n1tEMloXdmKNflz6o0Ec/HrtcqKP9Cln14NAwiahtXJloS/YihBCBn3DuH5XUmBcKbvJn8qQ4CUH6SoFvcu7AJ/SVBuJUacIMJBS9cdTWQ8OKdIzY9nwT2VOyQ76at+gSXLikLMNSr7au/eg7zEKg5t1PD3rhdNSMtabwj2WKDxXSol1wfGXf9gPkSOiXS5xGDPXxrhJS220v43ZKwUlsDQfri80VkrT3m5p1EZQVRrjJUFHXCKGS9hipI7gN2MqKmwdg==\n-----END CERTIFICATE-----"
                },
                "containers": [
                    {
                        "name": "hello",
                        "run-cmd": "/bin/bash"
                    }
                ]
            },
            "asyncSubtaskStatus": "SUCCESS",
            "asyncSubtaskProgress": 1
        }
    ]
}

Create or Update ZeroTouch Config

POST {{LEM_URL}}/api/v1/zt/{{project_id}}/config

Create or Update ZeroTouch Config

Saves a ZeroTouch configuration: the activation settings a new Litmus Edge device picks up on first boot. Leave id null to create; set it to update that configuration. The activation code must already exist in the project (Add Activation Config).

Endpoint

POST {{LEM_URL}}/api/v1/zt/{{project_id}}/config

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)

Path parameters

Parameter Type Required Description
project_id string Yes Project ID.

Request body

application/json

Field Type Required Description
id string No Configuration ID. null to create.
configName string Yes Display name.
staticIPEnabled boolean No Ship a static IP configuration in the bundle.
ztConfig.version string Yes Bundle format version, 1.0.
ztConfig.activation.code string Yes Activation code in this project.
ztConfig.containers array Yes Containers to deploy on first boot; [] for none.

Response

200 OK. The saved configuration. LEM fills ztConfig.activation.url (this LEM's address) and ztConfig.activation.cert (the LEM CA certificate the device will trust), plus createdBy / updatedBy (token=<token name> for API calls) and timestamps. ztBundleFileName stays null until a bundle is generated.

Errors

HTTP status When it happens
401 Unauthorized Missing or invalid X-AuthToken.
400 Bad Request Invalid activation code in activation: the code is not in this project.
409 Conflict ztConfig missing or not an object (the message is a Java cast error).

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

{
    "id": null,
    "configName": "Plant 2 gateways",
    "staticIPEnabled": false,
    "ztConfig": {
        "version": "1.0",
        "activation": {
            "code": "{{activation_code}}"
        },
        "containers": []
    }
}

Response

Status: 200 OK

{
    "id": "b0b092e1-0b74-4eb7-b4ec-7b6668f8ff70",
    "projectId": "b83xktzsmclqsz3o9e2nblqc5",
    "configName": "Plant 2 gateways",
    "staticIPEnabled": false,
    "asyncSubtaskId": null,
    "ztBundleFileName": null,
    "ztBundleFileSize": 0,
    "checksum": null,
    "createdBy": "token=<token name>",
    "createTime": 1792096379000,
    "updatedBy": "token=<token name>",
    "updateTime": 1792096379000,
    "generatedBy": null,
    "generateTime": null,
    "ztConfig": {
        "version": "1.0",
        "activation": {
            "code": "Z2URE-S79YR-X9Y2X-LZCDZ-9MZEY",
            "url": "https://<LEM host>",
            "cert": "-----BEGIN CERTIFICATE-----\nMIID...\n-----END CERTIFICATE-----\n"
        },
        "containers": []
    }
}

Delete ZeroTouch Config

DELETE {{LEM_URL}}/api/v1/zt/{{project_id}}/config/{{zt_config_id}}

Delete ZeroTouch Config

Deletes a ZeroTouch configuration. The activation code it references is not touched.

Endpoint

DELETE {{LEM_URL}}/api/v1/zt/{{project_id}}/config/{{zt_config_id}}

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)

Path parameters

Parameter Type Required Description
project_id string Yes Project ID.
zt_config_id string Yes Configuration id, from List ZeroTouch Configs.

Response

200 OK with {"code": "S"}.

An unknown ID also returns 200 OK, with {"code": "E", "message": "ZeroTouch configuration not found"}. Check code, not the status.

Errors

HTTP status When it happens
401 Unauthorized Missing or invalid X-AuthToken.
200 OK with code: E Configuration not found.

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

Response

Status: 200 OK

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

Get device activation status by device ID or by activation entry ID and hostname

GET {{LEM_URL}}/api/v1/activation/device-status?projectId=

Get device activation status by device ID or by activation entry ID and hostname

Reports a device's activation status. Identify the device either by deviceId, or by the activation entryId together with its hostname.

Endpoint

GET {{LEM_URL}}/api/v1/activation/device-status

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Parameters
Parameter In Notes
projectId query Required. Project scope.
deviceId query The device id (one way to identify the device).
entryId query Activation entry id (use with hostname).
hostname query Device hostname (use with entryId).

Response

Activation status for the device (activated / pending and related metadata).

Errors

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

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


Get Activation Request Template Parameters

GET {{LEM_URL}}/api/v1/activation/request/template/vars/v2?projectId={{project_id}}&requestId={{activation_request_id}}&templateName={{template_name}}

New in 3.0.

Get Activation Request Template Parameters

Returns the Solution Template parameter values saved on an activation request, keyed by scope. The Solution Template counterpart of GET /activation/request/template/vars, which serves the LEM-side variables of a 1.x template.

Endpoint

GET {{LEM_URL}}/api/v1/activation/request/template/vars/v2?projectId={{project_id}}&requestId=<id>&templateName=<name>

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Parameters
Parameter In Notes
projectId query Required.
requestId query Required. Activation request id (integer). An unknown id answers 404 Activation request <id> not found in project <projectId>.
templateName query Required. Full template name, e.g. hg-test/default/default/COMPANY/1791836046753.

Response

200 OK.

{
  "templateName": "default/default/default/INSTANCE/1595335856644",
  "parameters": {
    "_global": [{ "UniqueName": "siteId", "UserValue": "NYC-01" }]
  }
}

Parameter values are keyed by scope: _global for parameters declared at the top of the Solution Template, or a component key for parameters declared inside one component. The same UniqueName may exist in _global and in a component; each takes its own value.

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.


Save Activation Request Template Parameters

POST {{LEM_URL}}/api/v1/activation/request/template/vars/v2

New in 3.0.

Save Activation Request Template Parameters

Saves Solution Template parameter values on an activation request, keyed by scope. The counterpart of POST /activation/request/template/vars for a template that declares its parameters in the document. A null UserValue leaves the declared default in place.

Endpoint

POST {{LEM_URL}}/api/v1/activation/request/template/vars/v2

Authentication

API key in a request header (case sensitive). The value is the LEM admin API token.

URL prefix Auth header
{{LEM_URL}}/api/v1/... (main fleet API) X-AuthToken: <token>
{{LEM_adminURL}}/admin/v1/... (admin console, port 8446) X-AuthToken: <token>
{{LEM_URL}}/mpcs/... (Marketplace Catalog) Authorization: <token> (3.0.x also accepts X-AuthToken)
## Request body
Field Type Notes
projectId string Required.
requestId integer Required. Activation request id.
templateName string Required.
parameters object Required. Scope -> list of {UniqueName, UserValue}.
{
  "projectId": "{{project_id}}",
  "requestId": 7,
  "templateName": "default/default/default/INSTANCE/1595335856644",
  "parameters": {
    "_global": [{ "UniqueName": "siteId", "UserValue": "NYC-01" }],
    "historian": [{ "UniqueName": "siteId", "UserValue": "NYC-01-H" }]
  }
}

Response

200 OK. Parameter values are keyed by scope: _global for parameters declared at the top of the Solution Template, or a component key for parameters declared inside one component. The same UniqueName may exist in _global and in a component; each takes its own value.

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": "f00lnx2idyl93gz5kq7c7fpm7",
  "requestId": 7,
  "templateName": "default/default/default/INSTANCE/1595335856644",
  "parameters": {}
}

View this page as Markdown