List Devices
Returns a paginated list of all devices accessible to the current account, with basic information and current state for each device.
This is the preferred endpoint for dashboards, bulk lists, and background sync. For a single device's latest state, use Get Device.
Endpoint
http
GET /wlte/v1/devicesAuthorization Requirements
| Scope | Required | Description |
|---|---|---|
device:read | Yes | List devices accessible to the current account |
Request
Full URL:
http
GET {baseUrl}/wlte/v1/devicesRequest headers:
http
Authorization: Bearer {accessToken}
Accept: application/jsonQuery parameters:
| Parameter | Type | Required | Rule |
|---|---|---|---|
page | integer | No | Default 1, minimum 1 |
pageSize | integer | No | Default 20, range 1 to 100 |
See Pagination Rules for the pagination field definitions.
Success Response
HTTP status:
text
200 OKResponse body:
json
{
"code": "SUCCESS",
"message": "OK.",
"requestId": "req_001",
"data": {
"devices": [
{
"deviceId": "abc123456789",
"name": "YourDeviceName-A",
"deviceType": "SM4_T_TH",
"status": "ONLINE",
"peripherals": {
"relays": [
{
"index": 1,
"on": false
},
{
"index": 2,
"on": false
},
{
"index": 3,
"on": true
},
{
"index": 4,
"on": false
}
],
"digitalInputs": [
{
"index": 1,
"active": false
},
{
"index": 2,
"active": false
},
{
"index": 3,
"active": false
},
{
"index": 4,
"active": false
}
],
"sensors": [
{
"index": 1,
"type": "TEMP",
"value": 30.4,
"unit": "C",
"status": "ONLINE"
},
{
"index": 2,
"type": "TEMP",
"value": 32.6,
"unit": "C",
"status": "ONLINE"
},
{
"index": 2,
"type": "HUMI",
"value": 54,
"unit": "%",
"status": "ONLINE"
}
]
},
"stateUpdatedAt": "2026-04-29T10:28:45.258Z"
},
{
"deviceId": "xyz987654321",
"name": "YourDeviceName-B",
"deviceType": "UNSUPPORTED",
"status": "OFFLINE",
"stateUpdatedAt": "2026-04-29T09:12:03.011Z"
}
],
"stats": {
"total": 2,
"online": 1,
"offline": 1
},
"pagination": {
"page": 1,
"pageSize": 20,
"total": 2,
"totalPages": 1,
"hasNext": false,
"hasPrev": false
}
}
}Item Rules
- Default ordering is
deviceIdascending; sorting parameters are not supported in this version deviceTypeis the stable device capability type codestatsreflects the current authorized device scope, not the current page size- When
deviceTypereturnsUNSUPPORTED, no OpenAPI device type definition is currently available for that device, so it cannot be integrated through the standard capability model yet - A single sensor interface may return multiple reading types at the same
index. Useindex + typeto identify one sensor reading
Response data Schema
| Field | Type | Required | Description |
|---|---|---|---|
devices | array<Device> | Yes | Device list for the current page. Empty pages return [] |
stats | object | Yes | Status counts across the current authorized device scope |
stats.total | integer | Yes | Total number of devices |
stats.online | integer | Yes | Number of online devices |
stats.offline | integer | Yes | Number of offline devices |
pagination | object | Yes | Pagination information. See Pagination Rules for field details |
pagination.page | integer | Yes | Current page number, starting from 1 |
pagination.pageSize | integer | Yes | Current page size |
pagination.total | integer | Yes | Total number of items |
pagination.totalPages | integer | Yes | Total number of pages |
pagination.hasNext | boolean | Yes | Whether a next page exists |
pagination.hasPrev | boolean | Yes | Whether a previous page exists |
Device Schema
| Field | Type | Required | Description |
|---|---|---|---|
deviceId | string | Yes | Unique device identifier |
name | string | Yes | Device display name |
deviceType | string | Yes | Device capability type code used to identify the device capability profile |
status | string | Yes | Device connectivity status. Enum: ONLINE, OFFLINE |
peripherals | object | No | Current device peripheral state |
peripherals.relays | array<RelayState> | No | Relay state list. See Relay Outputs |
peripherals.digitalInputs | array<DigitalInputState> | No | Digital input state list. See Digital Inputs |
peripherals.sensors | array<SensorState> | No | Sensor reading list. See Sensor Readings |
peripherals.analogInputs | array<AnalogInputState> | No | Analog input reading list. See Analog Input Readings |
stateUpdatedAt | string | Yes | Device state update time in RFC3339 UTC |
Error Responses
Possible responses:
400 INVALID_REQUEST401 AUTH_REQUIRED401 AUTH_INVALID401 AUTH_EXPIRED403 AUTH_SCOPE_DENIED429 RATE_LIMITED500 INTERNAL_ERROR
