Litmus Edge Manager 3.0.x - Edge Lifecycle: Certificates
Get Certificates
GET {{LEM_URL}}/api/v1/device-certificates?filter=&issuer=&limit=10&order=EXPIRESAFTER_ASC&projectId={{project_id}}&requestedPage=0
Get Certificates
Returns the paginated catalog of device certificates known to LEM with filters (issuer, free text, sort order). Each entry includes device identity + cert metadata (subject, issuer, validity window).
Endpoint
GET {{LEM_URL}}/api/v1/device-certificates?filter=&issuer=&limit=10&order=EXPIRESAFTER_ASC&projectId={{project_id}}&requestedPage=0
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
{
"pageNum": 0,
"pagesCount": 1,
"size": 3,
"totalSize": 3,
"elements": [
{
"id": "d344225d-57b1-4b40-9135-3ef26bf5db6b",
"companyName": "solutions",
"projectId": "462j1mq70mph31wa100t1yuxa",
"projectName": "parth",
"deviceId": "1a5wiavluwxuhwai5leb1v0hc",
"deviceName": "litmus-edge-94c6911b9c77",
"deviceFriendlyName": "Litmus Edge (94:c6:91:1b:9c:77)- SJ office sensor",
"isOnline": true,
"subject": "litmus-edge-94c6911b9c77",
"issuer": "litmus-edge-94c6911b9c77",
"issuedOn": 1645479540000,
"expiresAfter": 1866490740000,
"origin": "EDGE",
"authority": "UNKNOWN",
"online": true
},
{
"id": "b39eb705-7e97-4542-b571-32e7d038a2cd",
"companyName": "solutions",
"projectId": "462j1mq70mph31wa100t1yuxa",
"projectName": "parth",
"deviceId": "3y0vcdju38zvqjrlm5lcpm1l",
"deviceName": "litmus-edge-080027b4a1c8",
"deviceFriendlyName": "Litmus Edge (08:00:27:b4:a1:c8)",
"isOnline": false,
"subject": "litmus-edge-080027b4a1c8",
"issuer": "litmus-edge-080027b4a1c8",
"issuedOn": 1728818700000,
"expiresAfter": 1949743500000,
"origin": "EDGE",
"authority": "UNKNOWN",
"online": false
},
{
"id": "0ff8e8dd-ebbc-4992-a557-68b95b9fccef",
"companyName": "solutions",
"projectId": "462j1mq70mph31wa100t1yuxa",
"projectName": "parth",
"deviceId": "vkrih85ka6fn7zcofirk20vs",
"deviceName": "litmus-edge-005056b965c2",
"deviceFriendlyName": "VM",
"isOnline": true,
"subject": "litmus-edge-005056b965c2",
"issuer": "litmus-edge-005056b965c2",
"issuedOn": 1733861400000,
"expiresAfter": 1954786200000,
"origin": "EDGE",
"authority": "UNKNOWN",
"online": true
}
]
}
Issue New Certificate
POST {{LEM_URL}}/api/v1/device-certificates/new
Issue New Certificate
Issues a new device certificate from LEM's CA (or another configured authority). The commonName, SAN list, DNS list, and TTL drive the cert contents.
Endpoint
POST {{LEM_URL}}/api/v1/device-certificates/new
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 |
{
"commonName": "litmus-edge-005056b965c2",
"sansList": ["10.17.3.76"],
"dnsList": [],
"ttlDays": 2555,
"authority": "LOCAL",
"id": "f548d8a2-7ea6-4443-bf35-e7cde578e72a",
"projectId": "{{project_id}}",
"deviceId": "{{edge_device_id}}"
}
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
{
"commonName": "litmus-edge-005056b965c2",
"sansList": [
"10.17.3.76"
],
"dnsList": [],
"ttlDays": 2555,
"authority": "LOCAL",
"id": "f548d8a2-7ea6-4443-bf35-e7cde578e72a",
"projectId": "{{project_id}}",
"deviceId": "{{edge_device_id}}"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Reset to Edge Default
POST {{LEM_URL}}/api/v1/device-certificates/reset
Reset to Edge Default
Resets the device's HTTPS certificate to the LE-built-in self-signed cert. Use when a custom cert has expired or broken access.
Endpoint
POST {{LEM_URL}}/api/v1/device-certificates/reset
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}}",
"deviceId": "{{edge_device_id}}"
}
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}}",
"deviceId": "{{edge_device_id}}"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Upload Custom Certificate
POST {{LEM_URL}}/api/v1/device-certificates/user-defined?deviceId={{device_id}}&projectId={{project_id}}
Upload Custom Certificate
Uploads a custom certificate + private key + CA chain bundle to a device. Three multipart parts: certificate, privateKey, caCertificate.
Endpoint
POST {{LEM_URL}}/api/v1/device-certificates/user-defined?deviceId={{device_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) |
| ## Request body |
Multipart form-data with three parts:
| Form key | Type | Description |
|---|---|---|
certificate |
file | Leaf certificate (PEM). |
privateKey |
file | Matching private key (PEM). |
caCertificate |
file | CA chain (PEM). |
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
List instance-level CA certificates
GET {{LEM_URL}}/api/v1/ca-certificates/instance
List instance-level CA certificates
Lists the instance-level CA certificates that are distributed to devices so they can validate server certificates. This is the fleet-API view of the instance CA trust store.
Endpoint
GET {{LEM_URL}}/api/v1/ca-certificates/instance
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 |
A list of instance-level CA certificate records (id, subject, issuer, validity).
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
[]
Download instance-level CA certificate PEM
GET {{LEM_URL}}/api/v1/ca-certificates/instance/{{id}}/download
Download instance-level CA certificate PEM
Downloads a single instance-level CA certificate as a PEM file.
Endpoint
GET {{LEM_URL}}/api/v1/ca-certificates/instance/{id}/download
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 |
| id | path | The CA certificate id. |
Response
The certificate in PEM format.
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.
Trigger CA certificate sync to devices
POST {{LEM_URL}}/api/v1/ca-certificates/{{project_id}}/sync
Trigger CA certificate sync to devices
Pushes the current instance CA certificate set to a project's devices, so they pick up newly added or removed CAs. Optionally target specific devices.
Endpoint
POST {{LEM_URL}}/api/v1/ca-certificates/{projectId}/sync
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 |
| projectId | path | Required. Project whose devices to sync. |
Request body
SyncRequest { deviceIds: [string] }. Omit / empty deviceIds to sync all devices in the project.
Response
SyncResponse (sync outcome per device).
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
{
"deviceIds": [
"string"
]
}