Litmus Edge Manager 3.0.x - Edge Lifecycle: Audit Logs

Get Audit Records

GET {{LEM_URL}}/api/v1/logs/v2?companyName={{company_name}}&requestedPage=0&limit=1

New in 2.35.

Get Audit Records

Returns the company's audit records (schema v2), newest first by default. What a caller sees follows the owner / project access model: company owners see everything, other users only the projects they belong to.

Endpoint

GET {{LEM_URL}}/api/v1/logs/v2?companyName={{company_name}}&requestedPage=0&limit=10

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
companyName query Required. The company. Omitting it answers 400 Missing required parameter 'companyName'.
projectId query Restrict to one project.
from / to query Time window, Unix epoch milliseconds.
category query Multi-value. USER_MANAGEMENT, DEVICE_LIFECYCLE, APPLICATIONS, SOFTWARE_UPDATES, DATA_PIPELINE, ASSET_MANAGEMENT, AI_ML, CERTIFICATES, SYSTEM, ALERTS, SECURITY, LICENSES. See Get Audit Categories.
context query Multi-value. Narrower than category, e.g. device, template-applied, edge-oauth-client.
contextId query The id of the object a record is about, e.g. a device id.
level query INFO, WARN, ERROR.
action query CREATE, MODIFY, DELETE, EXECUTE.
origin query UI, API_TOKEN, AUTOMATED, TUI.
module query API, ADMIN, JOBS, ALERTS, ACTIVATION, CONFIG, CLICKHOUSE_SINK, KEYCLOAK.
username query Multi-value. Case-insensitive prefix match on each, OR-combined.
sourceIp query Source IP prefix, case-sensitive.
search query Free-text search.
filter query Legacy filter string.
order query EVENT_TIME_ASC, EVENT_TIME_DESC, LEVEL_ASC, LEVEL_DESC, CONTEXT_ASC, CONTEXT_DESC, ...
requestedPage query Page, 0 first.
limit query Page size, default 10, max 1000.

Response

200 OK. A page: pageNum, pagesCount, size, totalSize, elements. Each record:

Field Meaning
eventTime Unix epoch milliseconds.
level, action, origin, module As in the filters above. module can be null.
username The actor. API-token actions show as token=<token name>; automated ones as system.
category, categoryLabel, context, contextId What the record is about.
message Human-readable summary.
details Context-specific object, or null.
companyName, realCompanyName, projectId, projectName Scope.
sourceIp, errorCode, subtaskId When applicable.
accessLevel ADMIN or USER.
{
  "pageNum": 0,
  "pagesCount": 35,
  "size": 1,
  "totalSize": 35,
  "elements": [
    {
      "companyName": "hg-test",
      "projectId": "c8con68kzh7hwgmc32raesiaw",
      "eventTime": 1791835780750,
      "level": "INFO",
      "username": "system",
      "context": "device-connectivity",
      "contextId": "105yoa1s3t5yhq1dgjj3runpy",
      "message": "Connectivity Changed: Device '105yoa1s3t5yhq1dgjj3runpy' went offline.",
      "accessLevel": "ADMIN",
      "details": null,
      "action": "EXECUTE",
      "origin": "AUTOMATED",
      "module": "JOBS",
      "category": "DEVICE_LIFECYCLE",
      "categoryLabel": "Device Lifecycle",
      "projectName": "project01"
    }
  ]
}

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": 107,
  "size": 1,
  "totalSize": 107,
  "elements": [
    {
      "companyName": "test",
      "projectId": null,
      "eventTime": 1791917896390,
      "level": "INFO",
      "username": "token=ps",
      "context": "audit-report",
      "contextId": null,
      "contextDescription": null,
      "message": "Report Exported: Audit report (106 rows) was exported by 'token=ps'.",
      "accessLevel": "ADMIN",
      "details": {
        "format": "csv",
        "exportedRows": 106,
        "totalMatched": 106,
        "filters": {
          "companyName": "test"
        }
      },
      "action": "EXECUTE",
      "origin": "API_TOKEN",
      "module": "API",
      "sourceIp": "10.17.4.128",
      "errorCode": null,
      "subtaskId": null,
      "category": "SYSTEM",
      "realCompanyName": "test",
      "projectName": null,
      "categoryLabel": "System"
    }
  ]
}

Get Audit Categories

GET {{LEM_URL}}/api/v1/logs/v2/categories

New in 2.35.

Get Audit Categories

Lists the audit categories and the contexts each one groups. Use the codes as the category and context filters of Get Audit Records and Export Audit Records.

Endpoint

GET {{LEM_URL}}/api/v1/logs/v2/categories

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. A list of {code, name, contexts: [{code, description}]}.

[
  {
    "code": "USER_MANAGEMENT",
    "name": "User Management",
    "contexts": [
      { "code": "company", "description": "Company" },
      { "code": "edge-oauth-client", "description": "Edge device OAuth client" },
      { "code": "api-token", "description": "API token" }
    ]
  }
]

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": "USER_MANAGEMENT",
    "name": "User Management",
    "contexts": [
      {
        "code": "company",
        "description": "Company"
      },
      {
        "code": "edge-oauth-client",
        "description": "Edge device OAuth client"
      },
      {
        "code": "mqtt-dm-account",
        "description": "MQTT DM account"
      },
      {
        "code": "mqtt-account",
        "description": "MQTT account"
      },
      {
        "code": "project",
        "description": "Project"
      },
      {
        "code": "grant",
        "description": "Project grant permissions"
      },
      {
        "code": "revoke",
        "description": "Project revoke permissions"
      },
      {
        "code": "team",
        "description": "Team"
      },
      {
        "code": "team-member",
        "description": "Team member"
      },
      {
        "code": "audit",
        "description": "Audit"
      },
      {
        "code": "api-token",
        "description": "API token"
      },
      {
        "code": "user-password",
        "description": "User password"
      },
      {
        "code": "role",
        "description": "Role"
      },
      {
        "code": "user",
        "description": "User"
      },
      {
        "code": "oidc-config",
        "description": "OIDC configuration"
      },
      {
        "code": "identity-provider",
        "description": "Identity provider"
      }
    ]
  },
  {
    "code": "DEVICE_LIFECYCLE",
    "name": "Device Lifecycle",
    "contexts": [
      {
        "code": "activation",
        "description": "Edge device activation"
      },
      {
        "code": "batch-dm",
        "description": "Batch edge device management"
      },
      {
        "code": "deactivation",
        "description": "Edge device deactivation"
      },
      {
        "code": "device",
        "description": "Edge device"
      },
      {
        "code": "device-connectivity",
        "description": "Edge device connectivity"
      },
      {
        "code": "device-ha",
        "description": "Edge device high availability"
      }
    ]
  },
  {
    "code": "APPLICATIONS",
    "name": "Applications",
    "contexts": [
      {
        "code": "device-service",
        "description": "Edge device system service"
      },
      {
        "code": "grafana",
        "description": "Grafana"
      },
      {
        "code": "marketplace-application",
        "description": "Marketplace application"
      },
      {
        "code": "mpcs",
        "description": "MPCS"
      },
      {
        "code": "template-applied",
        "description": "Template applied"
      },
      {
        "code": "template-updated",
        "description": "Template updated"
      },
      {
        "code": "template-parameterized",
        "description": "Template parameterized"
      },
      {
        "code": "template-variable-mapping-updated",
        "description": "Template variable mapping updated"
      }
    ]
  },
  {
    "code": "SOFTWARE_UPDATES",
    "name": "Software Updates",
    "contexts": [
      {
        "code": "le-upgrade",
        "description": "LE firmware upgrade"
      },
      {
        "code": "lem-upgrade",
        "description": "LEM self-upgrade"
      }
    ]
  },
  {
    "code": "DATA_PIPELINE",
    "name": "Data Pipeline",
    "contexts": [
      {
        "code": "device-analytics",
        "description": "Edge device analytics"
      },
      {
        "code": "device-log-forwarding",
        "description": "Edge device log forwarding"
      },
      {
        "code": "git-sync",
        "description": "Git synchronization"
      },
      {
        "code": "integration",
        "description": "Data pipeline integration configuration"
      },
      {
        "code": "device-events-forwarding",
        "description": "Edge device events forwarding"
      },
      {
        "code": "instance-data-export",
        "description": "Instance configuration export"
      },
      {
        "code": "instance-data-import",
        "description": "Instance configuration import"
      },
      {
        "code": "database-dump-download",
        "description": "Database dump download (sensitive-filtered)"
      },
      {
        "code": "registry-image",
        "description": "Docker registry image"
      },
      {
        "code": "registry-config",
        "description": "Docker registry configuration"
      },
      {
        "code": "data-lifecycle-policy",
        "description": "Data lifecycle (retention/purge) policy"
      },
      {
        "code": "audit-forwarding",
        "description": "Audit log forwarding to remote syslog"
      }
    ]
  },
  {
    "code": "ASSET_MANAGEMENT",
    "name": "Asset Management",
    "contexts": [
      {
        "code": "asset-hierarchy",
        "description": "Industrial Asset Hierarchy"
      },
      {
        "code": "digital-twins",
        "description": "Digital Twins"
      }
    ]
  }
]

Export Audit Records

GET {{LEM_URL}}/api/v1/logs/v2/export?companyName={{company_name}}

New in 2.35.

Export Audit Records

Exports the company's audit records matching the filters as a CSV or PDF file. The export itself is audited: it adds a Report Exported record (context audit-report) naming the format and row count.

Endpoint

GET {{LEM_URL}}/api/v1/logs/v2/export?companyName={{company_name}}&format=csv

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
companyName query Required. The company. Omitting it answers 400 Missing required parameter 'companyName'.
projectId query Restrict to one project.
from / to query Time window, Unix epoch milliseconds.
category query Multi-value. USER_MANAGEMENT, DEVICE_LIFECYCLE, APPLICATIONS, SOFTWARE_UPDATES, DATA_PIPELINE, ASSET_MANAGEMENT, AI_ML, CERTIFICATES, SYSTEM, ALERTS, SECURITY, LICENSES. See Get Audit Categories.
context query Multi-value. Narrower than category, e.g. device, template-applied, edge-oauth-client.
contextId query The id of the object a record is about, e.g. a device id.
level query INFO, WARN, ERROR.
action query CREATE, MODIFY, DELETE, EXECUTE.
origin query UI, API_TOKEN, AUTOMATED, TUI.
module query API, ADMIN, JOBS, ALERTS, ACTIVATION, CONFIG, CLICKHOUSE_SINK, KEYCLOAK.
username query Multi-value. Case-insensitive prefix match on each, OR-combined.
sourceIp query Source IP prefix, case-sensitive.
search query Free-text search.
filter query Legacy filter string.
order query EVENT_TIME_ASC, EVENT_TIME_DESC, LEVEL_ASC, LEVEL_DESC, CONTEXT_ASC, CONTEXT_DESC, ...
format query csv or pdf.

Response

200 OK. The file, as a binary download.

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

"Date & Time","Severity","Category","Sub-Category","User","Action","Origin","Source IP","Description","Outcome","Error Code","Module","Reason","Changes"
"2026-10-13T18:58:16.390Z","INFO","System","test","token=ps","EXECUTE","API_TOKEN","10.17.4.128","Report Exported: Audit report (106 rows) was exported by 'token=ps'.","SUCCESS","","API","",""
"2026-10-13T18:43:24.910Z","INFO","System","test","token=ps","EXECUTE","API_TOKEN","10.17.4.128","Report Exported: Audit report (105 rows) was exported by

View this page as Markdown