# List live device rows (lean)

Canonical page: https://docs.ovok.com/api/slim/device/list-live-device-rows-lean

`GET /v2/slim/device/live`

Lists live device rows for the dashboard's monitoring views, with only the fields the dashboard renders: each device with its resident, room, zone, current readings and alert colours.

**Auth:** bearer token. The caller must be a practitioner, an admin or a System Owner, and needs `search` and `read` on `Patient`, `Device`, `Location`, `Observation` and `Organization`.
**Scope:** the caller's project (from the token) and its sub-projects.

## Behaviour

- The same query, filters, search, sort and paging as `GET /v1/slim/device/live`. The difference is where the rows come from: only the Devices are read, with the resident, room and zone context every Slim write stores on them, instead of a sweep of every Patient, Location and Organization of the project.
- Every field is present; an absent value is `null`.
- The resident, room and zone values are the copies stored on the Device, so what a row shows follows the Device's project and access, not a fresh read of the Patient. Each backend fills in devices no Slim write has touched once per build, after it boots; until then such a device answers `residentState: null` and no zone.
- `id` is the Medplum Device id. `GET /v2/slim/device/live/telemetry` keys its readings by it.
- The device structure is cached and refreshed when you write through the Slim routes. Readings and alerts are read fresh on every request.
- `page` is zero-based. `count` defaults to 20, maximum 100.
- The route returns 503 when the server is at capacity for live reads or the device list cannot be built. Retry shortly.

## Example

```bash
curl -X GET 'https://api.sandbox.ovok.com/v2/slim/device/live?page=0&count=20&sortBy=locationName&orderBy=ASC' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk'
```
