Appearance
Device Status
GET /api/v1/devices/status
Returns a list of all devices across your authorized networks.
Query parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
site_id | integer or integer[] | No | Filter by one or more site IDs (e.g. ?site_id=1&site_id=2) |
location_id | integer or integer[] | No | Filter by one or more location IDs |
Response 200
json
{
"status": true,
"message": "Success",
"data": {
"count": 2,
"rows": [
{
"id": 101,
"name": "Store Entrance Camera",
"network": { "id": 1, "name": "Retail Network A" },
"site": { "id": 5, "name": "CBD Store" },
"location": { "id": 12, "name": "Entrance" },
"status": "online",
"last_active_timestamp": "2026-03-30T04:10:00.000Z",
"source": "heartbeat"
}
]
}
}Status values
online- device sent a heartbeatoffline- no heartbeat received
GET /api/v1/devices/status/:id
Returns status for a single device by its ID.
Path parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
id | integer | Yes | Device ID |
Response 200
json
{
"status": true,
"message": "Success",
"data": {
"id": 101,
"name": "Store Entrance Camera",
"network": { "id": 1, "name": "Retail Network A" },
"site": { "id": 5, "name": "CBD Store" },
"location": { "id": 12, "name": "Entrance" },
"status": "offline",
"last_active_timestamp": "2026-03-30T03:45:00.000Z",
"source": "heartbeat"
}
}Errors
400 INVALID_PARAM, 403 FORBIDDEN_NETWORKS, 404 NOT_FOUND