Litmus Edge Manager 3.0.x - Admin Console: Integration
Kafka Access Control Lists (ACLs)
GET {{LEM_adminURL}}/admin/v1/kafka-auth/acl
Kafka Access Control Lists (ACLs)
Returns the Kafka ACLs configured on LEM's bundled Kafka instance. Each row: (username, topic, operation).
Endpoint
GET {{LEM_adminURL}}/admin/v1/kafka-auth/acl
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
[
{
"username": "admin",
"topic": "lem.mqtt.ea13siviozaattgjd5unuoya7",
"operation": "READ"
},
{
"username": "admin",
"topic": "lem.mqtt.emdlptxsqpdravb1cyzya6ws2",
"operation": "WRITE"
},
{
"username": "admin",
"topic": "lem.mqtt.emdlptxsqpdravb1cyzya6ws2",
"operation": "READ"
},
{
"username": "admin",
"topic": "lem.mqtt.emdlptxsqpdravb1cyzya6ws2",
"operation": "DELETE"
}
]
Kafka Topics
GET {{LEM_adminURL}}/admin/v1/kafka-auth/topic
Kafka Topics
Returns every topic in LEM's bundled Kafka. Topic names follow LEM conventions like lem.mqtt.<projectId>, lem.events.<projectId>.
Endpoint
GET {{LEM_adminURL}}/admin/v1/kafka-auth/topic
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
[
{
"name": "lem.mqtt.cse9ecyxjifs7yhizoqiydyu3"
},
{
"name": "lem.events.llg72k2ip2nnu2yt5lk58l6j"
},
{
"name": "action-log"
},
{
"name": "lem.events.8h0lim73udgl5r8ex4v0d1vr7"
},
{
"name": "lem.events.ea13siviozaattgjd5unuoya7"
},
{
"name": "lem.mqtt.2prp72ljt3e2149umck473xrl"
},
{
"name": "lem.mqtt.462j1mq70mph31wa100t1yuxa"
},
{
"name": "lem.events.6d02e1nglkzlc1tv650o4yy0u"
},
{
"name": "lem.events.cse9ecyxjifs7yhizoqiydyu3"
},
{
"name": "lem.events.detk20ap42y5rcvfsdfe9790"
},
{
"name": "lem.mqtt.detk20ap42y5rcvfsdfe9790"
},
{
"name": "lem.mqtt.6d02e1nglkzlc1tv650o4yy0u"
},
{
"name": "lem.mqtt.8h0lim73udgl5r8ex4v0d1vr7"
},
{
"name": "lem.events.ejthz6njrlve8g9n9k51m3wa2"
},
{
"name": "data.compacted"
},
{
"name": "lem.events.462j1mq70mph31wa100t1yuxa"
},
{
"name": "lem.mqtt.emdlptxsqpdravb1cyzya6ws2"
},
{
"name": "lem.events.2prp72ljt3e2149umck473xrl"
},
{
"name": "lem.mqtt.ejthz6njrlve8g9n9k51m3wa2"
},
{
"name": "lem.mqtt.llg72k2ip2nnu2yt5lk58l6j"
},
{
"name": "lem.events.emdlptxsqpdravb1cyzya6ws2"
},
{
"name": "lem.mqtt.ea13siviozaattgjd5unuoya7"
}
]
Kafka User List
GET {{LEM_adminURL}}/admin/v1/kafka-auth/user
Kafka User List
Returns the Kafka SASL users provisioned on LEM. Use for diagnostics; user creation goes through Kafka's tooling rather than this read endpoint.
Endpoint
GET {{LEM_adminURL}}/admin/v1/kafka-auth/user
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
[
{
"username": "admin"
},
{
"username": "test1"
}
]
Create Kafka User
POST {{LEM_adminURL}}/admin/v1/kafka-auth/user
Create Kafka User
Creates a Kafka user that external clients use to read LEM data streams. The user is created without a password: set one with Change Kafka User Password, then grant topic access with Add Kafka ACL.
Endpoint
POST {{LEM_adminURL}}/admin/v1/kafka-auth/user
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
| Field | Type | Required | Description |
|---|---|---|---|
username |
string | Yes | New user name. |
Response
201 Created with {"code": "S", "message": null, "messageDetails": null}.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
400 Bad Request |
User '<name>' already exists. |
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
{
"username": "analytics-reader"
}
Response
Status: 201 Created
{
"code": "S",
"message": null,
"messageDetails": null
}
Change Kafka User Password
POST {{LEM_adminURL}}/admin/v1/kafka-auth/user/change-password
Change Kafka User Password
Sets the password of a Kafka user. Also used right after Create Kafka User, which creates the user without one.
Endpoint
POST {{LEM_adminURL}}/admin/v1/kafka-auth/user/change-password
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
| Field | Type | Required | Description |
|---|---|---|---|
username |
string | Yes | Existing Kafka user. |
newPassword |
string | Yes | New password. |
Response
200 OK with an empty body.
The call also returns 200 for a user that does not exist, so check Kafka User List first.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
{
"username": "analytics-reader",
"newPassword": "ChangeMe-2024!"
}
Response
Status: 200 OK
Add Kafka ACL
POST {{LEM_adminURL}}/admin/v1/kafka-auth/acl
Add Kafka ACL
Grants a Kafka user one operation on one topic. Add one binding per operation. List topics with Kafka Topics and current bindings with Kafka Access Control Lists (ACLs).
Endpoint
POST {{LEM_adminURL}}/admin/v1/kafka-auth/acl
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
| Field | Type | Required | Description |
|---|---|---|---|
username |
string | Yes | Kafka user. |
topic |
string | Yes | Topic name, e.g. lem.events.<projectId>. |
operation |
string | Yes | One of ALL, READ, WRITE, CREATE, DELETE, ALTER, DESCRIBE, CLUSTER_ACTION, DESCRIBE_CONFIGS, ALTER_CONFIGS, IDEMPOTENT_WRITE, CREATE_TOKENS, DESCRIBE_TOKENS, ANY. |
Response
200 OK with {"code": "S", "message": null, "messageDetails": null}.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
500 Internal Server Error |
operation is not one of the listed values ({"code": "E", "message": "Internal 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
{
"username": "analytics-reader",
"topic": "lem.events.{{project_id}}",
"operation": "READ"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Remove Kafka ACL
DELETE {{LEM_adminURL}}/admin/v1/kafka-auth/acl
Remove Kafka ACL
Removes one ACL binding. The body must match the binding exactly (same user, topic and operation).
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/kafka-auth/acl
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
Same body as Add Kafka ACL.
Response
200 OK with {"code": "S", "message": null, "messageDetails": null}. Removing a binding that does not exist also returns 200.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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
{
"username": "analytics-reader",
"topic": "lem.events.{{project_id}}",
"operation": "READ"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Delete Kafka User
DELETE {{LEM_adminURL}}/admin/v1/kafka-auth/user/{{kafka_username}}
Delete Kafka User
Deletes a Kafka user.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/kafka-auth/user/{{kafka_username}}
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
| Path parameter | Type | Required | Description |
|---|---|---|---|
kafka_username |
string | Yes | Kafka user name. |
Response
204 No Content, empty body.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
400 Bad Request |
User '<name>' doesn't exists. |
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
Clickhouse Ports
GET {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/interface
Clickhouse Ports
Returns LEM's Clickhouse listener configuration: HTTP, HTTPS, native, MySQL ports with connection strings, current state, and any per-network bindings.
Endpoint
GET {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/interface
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
[
{
"type": "HTTP",
"connectionString": "http://10.17.3.103:8123/clickhouse",
"port": 8123,
"state": false,
"networks": []
},
{
"type": "HTTPS",
"connectionString": "https://10.17.3.103:8543/clickhouse",
"port": 8543,
"state": true,
"networks": []
},
{
"type": "NATIVE",
"connectionString": "jdbc:clickhouse://10.17.3.103:9000",
"port": 9000,
"state": false,
"networks": []
},
{
"type": "MYSQL",
"connectionString": "jdbc:mysql://10.17.3.103:9004",
"port": 9004,
"state": false,
"networks": []
}
]
Enable/Disable Clickhouse Port
POST {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/interface
Enable / Disable Clickhouse Port
Toggles one Clickhouse port's state. state: true enables, false disables. type selects the listener (NATIVE, HTTP, HTTPS, MYSQL).
Endpoint
POST {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/interface
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 |
{
"type": "NATIVE",
"state": false,
"port": 9000,
"networks": []
}
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
{
"type": "NATIVE",
"state": false,
"port": 9000,
"networks": []
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Clickhouse User List
GET {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/user
Clickhouse User List
Returns the Clickhouse users provisioned on LEM.
Endpoint
GET {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/user
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
[
{
"username": "admin"
}
]
Create Clickhouse User
POST {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/user
Create Clickhouse User
Creates a new Clickhouse user.
Endpoint
POST {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/user
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 |
{
"username": "apiusername",
"password": "<strong-password>",
"isNewUser": null
}
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
{
"username": "apiusername",
"password": "123134rsdf4q221@1W",
"isNewUser": null
}
Response
Status: 201 Created
{
"code": "S",
"message": null,
"messageDetails": null
}
Change Clickhouse User Password
POST {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/user/change-password
Change Clickhouse User Password
Sets a new password for a ClickHouse user. The server does not enforce a password policy here.
Endpoint
POST {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/user/change-password
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
| Field | Type | Required | Description |
|---|---|---|---|
username |
string | Yes | Existing ClickHouse user. |
password |
string | Yes | New password. |
Response
200 OK with {"code": "S", "message": null, "messageDetails": null}.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
404 Not Found |
User 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
{
"username": "grafana_reader",
"password": "ChangeMe-2024!"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Delete Clickhouse User
DELETE {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/user/apiusername
Delete Clickhouse User
Removes a Clickhouse user. The username goes in the path.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/user/apiusername
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
Clickhouse Access Control Lists (ACLs)
GET {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/acl
Clickhouse Access Control Lists (ACLs)
Returns per-(user, company, project) Clickhouse access grants.
Endpoint
GET {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/acl
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
[
{
"username": "admin",
"projectId": "emdlptxsqpdravb1cyzya6ws2",
"projectName": "kafka",
"companyName": "production"
}
]
Clickhouse ACL Projects
GET {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/project
Clickhouse ACL Projects
Lists every project on the server with its company. The admin console uses it to pick the projectId for Add Clickhouse ACL.
Endpoint
GET {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/project
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
None.
Response
200 OK. Array of {projectId, projectName, companyName, realCompanyName}. companyName is the company slug, realCompanyName its display name.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
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": "b8zxnqwuhnbqoytsqfs928f9u",
"projectName": "project1",
"companyName": "archie",
"realCompanyName": "Archie"
},
{
"projectId": "30jol3hs1odsiwzlo70t1zwcn",
"projectName": "project2",
"companyName": "archie",
"realCompanyName": "Archie"
},
{
"projectId": "b83xktzsmclqsz3o9e2nblqc5",
"projectName": "hg",
"companyName": "hg",
"realCompanyName": "hg"
},
{
"projectId": "1a5kz8nzch6cw4q1dmxswoaui",
"projectName": "aa",
"companyName": "test",
"realCompanyName": "test"
}
]
Add Clickhouse ACL
POST {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/acl
Add Clickhouse ACL
Gives a ClickHouse user read access to one project's data.
Endpoint
POST {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/acl
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
| Field | Type | Required | Description |
|---|---|---|---|
username |
string | Yes | ClickHouse user. |
projectId |
string | Yes | Project ID, from Clickhouse ACL Projects. |
The server does not check that projectId exists: an unknown ID is stored and shows up in Clickhouse Access Control Lists (ACLs) with null project and company names.
Response
201 Created with {"code": "S", "message": null, "messageDetails": null}.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
400 Bad Request |
Project ID already presents for user <name>. |
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
{
"username": "grafana_reader",
"projectId": "{{project_id}}"
}
Response
Status: 201 Created
{
"code": "S",
"message": null,
"messageDetails": null
}
Remove Clickhouse ACL
DELETE {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/acl
Remove Clickhouse ACL
Removes a user's access to one project. Deleting the user (Delete Clickhouse User) removes all of its ACLs as well.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/clickhouse-mgmt/acl
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
Same body as Add Clickhouse ACL.
Response
204 No Content, empty body.
Errors
| HTTP status | When it happens |
|---|---|
401 Unauthorized |
Missing or invalid X-AuthToken. |
404 Not Found |
Project ID not found for user <name>. |
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
{
"username": "grafana_reader",
"projectId": "{{project_id}}"
}
Response
Status: 204 No Content
Prometheus URL
GET {{LEM_adminURL}}/admin/v1/prometheus
Prometheus URL
Returns LEM's Prometheus server URL, enabled state, and the configured Alert Manager URL.
Endpoint
GET {{LEM_adminURL}}/admin/v1/prometheus
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 |
{
"serverUrl": "http://10.17.3.103:9090",
"enabled": true,
"alertManagerUrl": null
}
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
{
"serverUrl": "http://10.17.3.103:9090",
"enabled": true,
"alertManagerUrl": null
}
Enable/Disable Prometheus URL
PUT {{LEM_adminURL}}/admin/v1/prometheus/enable?isEnabled=true
Enable / Disable Prometheus URL
Toggles whether Prometheus is exposed on the LEM admin surface. isEnabled=true enables; false disables.
Endpoint
PUT {{LEM_adminURL}}/admin/v1/prometheus/enable?isEnabled=true
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
{
"code": "S",
"message": null,
"messageDetails": null
}
Test Alert Manager
POST {{LEM_adminURL}}/admin/v1/prometheus/alert-manager/external-url-validate
Test Alert Manager
Validates that an Alert Manager URL is reachable, without persisting it.
Endpoint
POST {{LEM_adminURL}}/admin/v1/prometheus/alert-manager/external-url-validate
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 |
{ "alertManagerUrl": "10.0.0.0:1000" }
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
{
"alertManagerUrl": "10.0.0.0:1000"
}
Set Alert Manager URL
POST {{LEM_adminURL}}/admin/v1/prometheus/alert-manager/external-url
Set Alert Manager URL
Configures the external Alert Manager URL. Pair with Test Alert Manager first to validate.
Endpoint
POST {{LEM_adminURL}}/admin/v1/prometheus/alert-manager/external-url
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 |
{ "alertManagerUrl": "10.10.0.1:1000" }
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
{
"alertManagerUrl": "10.10.0.1:1000"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Syslog Settings
GET {{LEM_adminURL}}/admin/v1/config/syslog/settings
Syslog Settings
Returns the configured syslog forwarding target.
Endpoint
GET {{LEM_adminURL}}/admin/v1/config/syslog/settings
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 |
{ "enabled": false, "host": "10.17.3.103", "port": 514 }
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
{
"enabled": false,
"host": "10.17.3.103",
"port": 514
}
Enable/Disable Logs Forwarding
POST {{LEM_adminURL}}/admin/v1/config/syslog/settings
Enable / Disable Logs Forwarding
Configures syslog forwarding -- the same endpoint both saves the target and toggles enabled flag.
Endpoint
POST {{LEM_adminURL}}/admin/v1/config/syslog/settings
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 |
{ "enabled": true, "host": "10.17.3.103", "port": 514 }
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
{
"enabled": true,
"host": "10.17.3.103",
"port": 514
}
Response
Status: 201 Created
Syslog Test Message
POST {{LEM_adminURL}}/admin/v1/config/syslog/test
Syslog Test Message
Sends a test message to the configured syslog target.
Endpoint
POST {{LEM_adminURL}}/admin/v1/config/syslog/test
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 |
{ "message": "Test message" }
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
{
"message": "Test message"
}
Response
Status: 200 OK
Get DigiCert Settings
GET {{LEM_adminURL}}/admin/v1/domain/ssl/digicert/settings
Get DigiCert Settings
Returns the DigiCert IoT API integration settings used by LEM when issuing certificates to managed devices.
Endpoint
GET {{LEM_adminURL}}/admin/v1/domain/ssl/digicert/settings
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 |
{
"url": "https://one.digicert.com/iot/api/v1",
"profileId": "",
"passcode": null,
"duration": 365
}
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
{
"url": "https://one.digicert.com/iot/api/v1",
"profileId": "",
"passcode": null,
"duration": 365
}
Get Git Schedule Settings
GET {{LEM_adminURL}}/admin/v1/git/schedule
Get Git Schedule Settings
Returns the configured automatic git-sync schedule.
Endpoint
GET {{LEM_adminURL}}/admin/v1/git/schedule
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 |
{ "enable": true, "periodFrequency": "HOURLY" }
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
{
"enable": true,
"periodFrequency": "HOURLY"
}
Set Git Schedule Settings
POST {{LEM_adminURL}}/admin/v1/git/schedule
Set Git Schedule Settings
Configures the automatic git-sync schedule. periodFrequency is HOURLY, DAILY, ...
Endpoint
POST {{LEM_adminURL}}/admin/v1/git/schedule
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 |
{ "enable": true, "periodFrequency": "HOURLY" }
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
{
"enable": true,
"periodFrequency": "HOURLY"
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Delete Git Schedule Settings
DELETE {{LEM_adminURL}}/admin/v1/git/schedule
Delete Git Schedule Settings
Removes the git-sync schedule entirely. Manual syncs still work via Sync Git Template.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/git/schedule
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
{
"code": "S",
"message": null,
"messageDetails": null
}
Get Git Provider Config
GET {{LEM_adminURL}}/admin/v1/git/provider
Get Git Provider Config
Returns the configured git provider type and SSH URL.
Endpoint
GET {{LEM_adminURL}}/admin/v1/git/provider
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 |
{
"type": "GITHUB",
"sshUrl": "git@github.com:username/repo.git"
}
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
{
"type": "GITHUB",
"sshUrl": "git@github.com:username/repo.git"
}
Create/Update Git Provider Config
POST {{LEM_adminURL}}/admin/v1/git/provider
Create / Update Git Provider Config
Creates or replaces the git provider config. Only one provider is supported at a time -- this overrides any existing.
Endpoint
POST {{LEM_adminURL}}/admin/v1/git/provider
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 |
{ "type": "GITHUB", "sshUrl": "git@github.com/..." }
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
{
"type": "GITHUB",
"sshUrl": "git@github.com/..."
}
Response
Status: 201 Created
{
"type": "GITHUB",
"sshUrl": "git@github.com:username/repo.git"
}
Delete Git Provider Config
DELETE {{LEM_adminURL}}/admin/v1/git/provider
Delete Git Provider Config
Removes the git provider configuration.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/git/provider
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 |
204 No Content on success.
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
Validate Provider Configuration
POST {{LEM_adminURL}}/admin/v1/git/provider/validate
Validate Provider Configuration
Tests a git provider configuration by attempting to connect (read + write access).
Endpoint
POST {{LEM_adminURL}}/admin/v1/git/provider/validate
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 |
{ "type": "GITHUB", "sshUrl": "git@github.com/..." }
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
{
"type": "GITHUB",
"sshUrl": "git@github.com/..."
}
Response
Status: 200 OK
{
"code": "S",
"message": "Repository access successful",
"messageDetails": "Successfully validated read and write access to repository at git@github.com:rhysnickerson-litmus/git-integration-test.git"
}
Get Git Provider Public Key
GET {{LEM_adminURL}}/admin/v1/git/provider/public-key?providerType=GITHUB
Get Git Provider Public Key
Returns the SSH public key that LEM uses to authenticate to the git provider. Install this in the git provider's deploy-key settings (or service account) to grant LEM access. providerType is GITHUB, GITLAB, or AZURE_DEVOPS.
Endpoint
GET {{LEM_adminURL}}/admin/v1/git/provider/public-key?providerType=GITHUB
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.
Request Body
{
"track": true,
"syncOnBackup": true
}
Response
Status: 200 OK
{
"publicKey": "ssh-ed25519 AAAAC3NzaC1lZDI1NTE5AAAAICkcU+SRAr7Eg38ymZczzRC53IKRsa87gQVrJPzxeeAC generated-by-admin-api",
"publicKeyFingerprint": "SHA256:vuJwtudKzjRlH/zIoTJ5cBcfkJHLl4+WRyWGgfGP5Zc",
"privateKeyType": "ED25519"
}
Update Git Tracking Settings
PUT {{LEM_adminURL}}/admin/v1/git/tracking/{{project_id}}
Update Git Tracking Settings
Updates per-project git tracking flags: whether to track the project and whether to sync on backup.
Endpoint
PUT {{LEM_adminURL}}/admin/v1/git/tracking/{{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 |
{ "track": true, "syncOnBackup": true }
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
{
"track": true,
"syncOnBackup": true
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Sync Git Template
POST {{LEM_adminURL}}/admin/v1/git/tracking/{{project_id}}/sync
Sync Git Template
Triggers a manual git sync for one project. Pair with Get Tracking Overview (Paginated) to observe progress.
Endpoint
POST {{LEM_adminURL}}/admin/v1/git/tracking/{{project_id}}/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) |
| ## Request body |
{}
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
{}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Get Tracking Overview (Paginated)
GET {{LEM_adminURL}}/admin/v1/git/tracking?companyName=companyName&projectId=projectId
Get Tracking Overview (Paginated)
Returns the paginated git tracking history: per-project sync status, last sync time, devices count, and async task ID.
Endpoint
GET {{LEM_adminURL}}/admin/v1/git/tracking?companyName=companyName&projectId=projectId
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": 10,
"totalSize": 1,
"elements": [
{
"projectId": "8apk5dk9k2stgubim64uwqxsr",
"projectName": "ProjectA",
"realCompanyName": "CompanyA",
"companyName": "companya",
"track": true,
"syncOnBackup": true,
"numberOfEdgeDevices": 1,
"numberOfSyncedDevices": 1,
"lastSyncTime": 1767974431273,
"asyncSubtaskId": "83a9c422-675b-4f6f-99ac-d2256e8e2d8c",
"status": "SUCCESS",
"message": null,
"commitHash": "e98702151edafb9d07901c7b79b6bfd65405fd37"
}
]
}
Get AI Assistant Config
GET {{LEM_adminURL}}/admin/v1/ai-assistant-settings
Get AI Assistant Config
Returns the current AI Assistant integration config: base URL, chat / embed model names, embedding-support flag, and any additional API headers. The API key is masked / omitted.
Endpoint
GET {{LEM_adminURL}}/admin/v1/ai-assistant-settings
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
{
"baseUrl": "https://api.openai.com/v1",
"apiKey": null,
"chatModel": "gpt-4.1-mini",
"embedModel": "text-embedding-ada-002",
"isEmbedSupported": true,
"apiHeaders": []
}
Update AI Assistant Config
POST {{LEM_adminURL}}/admin/v1/ai-assistant-settings
Update AI Assistant Config
Updates the AI Assistant config. Run Validate AI Assistant Config first to confirm reachability.
Endpoint
POST {{LEM_adminURL}}/admin/v1/ai-assistant-settings
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 |
{
"baseUrl": "https://api.openai.com/v1",
"apiHeaders": [{ "name": "key", "value": "value", "isProtected": true }],
"apiKey": "password",
"chatModel": "gpt-4.1-mini",
"embedModel": "text-embedding-ada-002",
"isEmbedSupported": true
}
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
{
"baseUrl": "https://api.openai.com/v1",
"apiHeaders": [
{
"name": "key",
"value": "value",
"isProtected": true
}
],
"apiKey": "password",
"chatModel": "gpt-4.1-mini",
"embedModel": "text-embedding-ada-002",
"isEmbedSupported": true
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Validate AI Assistant Config
POST {{LEM_adminURL}}/admin/v1/ai-assistant-settings/validate
Validate AI Assistant Config
Validates AI Assistant settings without persisting them.
Endpoint
POST {{LEM_adminURL}}/admin/v1/ai-assistant-settings/validate
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 |
Same shape as Update AI Assistant Config.
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
{
"baseUrl": "https://api.openai.com/v1",
"apiHeaders": [
{
"name": "key",
"value": null,
"isProtected": true
}
],
"apiKey": null,
"chatModel": "gpt-4.1-mini",
"embedModel": "text-embedding-ada-002",
"isEmbedSupported": true
}
Response
Status: 200 OK
{
"code": "S",
"message": null,
"messageDetails": null
}
Delete AI Assistant API Key
DELETE {{LEM_adminURL}}/admin/v1/ai-assistant-settings/apikey
Delete AI Assistant API Key
Removes the stored API key, leaving the rest of the config intact. Use to rotate secrets without re-entering everything.
Endpoint
DELETE {{LEM_adminURL}}/admin/v1/ai-assistant-settings/apikey
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
{
"code": "S",
"message": null,
"messageDetails": null
}