Documentation Index Fetch the complete documentation index at: https://mintlify.com/lamassuiot/lamassuiot/llms.txt
Use this file to discover all available pages before exploring further.
Get Device Statistics
Retrieve device statistics including total count and distribution across all status types. Supports filtering by DMS, tags, metadata, creation time, and other device fields.
Important: Filtering by status is not permitted on this endpoint. The API always returns the status distribution for all devices matching the other filter criteria.
Query Parameters
Filter expression to narrow statistics scope. Supports all device filter fields except status:
id - Device identifier
dms_owner - DMS identifier
tags - Device tags
creation_timestamp - Device creation time
metadata - Device metadata (using JSONPath)
See filtering examples below.
Response
Total number of devices matching the filter criteria
Device count for each status type. Keys are status values: Devices with no identity assigned
Devices in certificate renewal window
Devices with certificates about to expire
Devices with expired certificates
Devices with revoked certificates
Example: All Devices
Get statistics for all devices in the system:
curl -X GET "https://your-instance.com/api/devmanager/v1/stats" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Example Response
{
"total" : 150 ,
"status_distribution" : {
"NO_IDENTITY" : 10 ,
"ACTIVE" : 100 ,
"RENEWAL_WINDOW" : 15 ,
"ABOUT_TO_EXPIRE" : 5 ,
"EXPIRED" : 8 ,
"REVOKED" : 7 ,
"DECOMMISSIONED" : 5
}
}
Filtering Examples
Filter by DMS
Get statistics for devices managed by a specific DMS:
curl "https://your-instance.com/api/devmanager/v1/stats?filter=dms_owner[eq]:dms-production" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Filter by Tag
Get statistics for devices with a specific tag:
# Case-sensitive tag search
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains]:production" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Case-insensitive tag search
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains_ic]:PRODUCTION" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Filter by Creation Date
Get statistics for devices created after a specific date:
curl "https://your-instance.com/api/devmanager/v1/stats?filter=creation_timestamp[af]:2024-01-01T00:00:00Z" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Get statistics for devices created in a date range:
# Devices created after Jan 1, 2024 and before Mar 1, 2026
curl "https://your-instance.com/api/devmanager/v1/stats?filter=creation_timestamp[af]:2024-01-01T00:00:00Z&filter=creation_timestamp[bf]:2026-03-01T00:00:00Z" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Multiple Filters
Combine multiple filters to narrow the scope:
# Production devices managed by a specific DMS
curl "https://your-instance.com/api/devmanager/v1/stats?filter=dms_owner[eq]:dms-prod&filter=tags[contains]:production" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Sensors created in the last 30 days
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains]:sensor&filter=creation_timestamp[af]:2026-02-07T00:00:00Z" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Use JSONPath to filter by metadata fields:
# Devices in a specific location (metadata)
curl "https://your-instance.com/api/devmanager/v1/stats?filter=metadata[jsonpath]:$.location[?(@=='warehouse-a')]" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Use Cases
Monitor Certificate Health
Identify devices requiring attention based on certificate status:
# Get overall certificate health
curl "https://your-instance.com/api/devmanager/v1/stats" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Example response showing certificate issues:
{
"total" : 500 ,
"status_distribution" : {
"NO_IDENTITY" : 5 ,
"ACTIVE" : 450 ,
"RENEWAL_WINDOW" : 20 ,
"ABOUT_TO_EXPIRE" : 10 ,
"EXPIRED" : 8 ,
"REVOKED" : 5 ,
"DECOMMISSIONED" : 2
}
}
This shows:
20 devices in renewal window (action recommended)
10 devices about to expire (urgent action needed)
8 devices with expired certificates (immediate action required)
DMS Capacity Planning
Get device count per DMS to balance load:
# Statistics for DMS 1
curl "https://your-instance.com/api/devmanager/v1/stats?filter=dms_owner[eq]:dms-1" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Statistics for DMS 2
curl "https://your-instance.com/api/devmanager/v1/stats?filter=dms_owner[eq]:dms-2" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Environment-Specific Metrics
Track device health across different environments:
# Production environment
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains]:production" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Staging environment
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains]:staging" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Development environment
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains]:development" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Device Type Analysis
Break down statistics by device type:
# Sensor statistics
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains]:sensor" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Gateway statistics
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains]:gateway" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
# Controller statistics
curl "https://your-instance.com/api/devmanager/v1/stats?filter=tags[contains]:controller" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Error Responses
Invalid Filter
Attempting to filter by status returns a 400 Bad Request:
# This will fail
curl "https://your-instance.com/api/devmanager/v1/stats?filter=status[eq]:ACTIVE" \
-H "Authorization: Bearer YOUR_JWT_TOKEN"
Response:
{
"err" : "filtering by status is not permitted on stats endpoint"
}
Invalid Field
Using an invalid filter field returns a 400 Bad Request:
{
"err" : "invalid filter field 'invalid_field'"
}
Device Group Statistics Get statistics for a specific device group
List Devices Retrieve individual device records
Notes
When no filters are provided, the endpoint returns statistics for all devices in the system.
The status field cannot be used as a filter on this endpoint. To get devices with a specific status, use the List Devices endpoint with a status filter.