# List devices with telemetry (compatibility)

Canonical page: https://docs.ovok.com/api/slim/query/list-devices-with-telemetry-compatibility

`GET /v1/slim/query`

Compatibility route for older query clients. Returns device rows joined with their resident, location, zone and telemetry. For new integrations, use `GET /v1/slim/device/live` or the `/v1/slim/patient` routes.

**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). The `project` parameter is ignored.

## Behaviour

- `mustInclude` lists the resources a row must have to be returned. `shouldInclude` lists the resources added to each row when present. Both are comma-separated lists of `organization`, `device`, `location`, `patient` and `telemetry`.
- Every entry in `mustInclude` must also be in `shouldInclude`. `telemetry` in either list needs `device` in the same list.
- When `mustInclude` contains `patient`, the query runs on the older resident-oriented path, which reads telemetry from the device database and Redis. Otherwise it runs on the same path as `GET /v1/slim/device/live`.
- Without `includeUnassigned=true`, rows without a resident are left out when `patient` is required.
- `organization` takes `Organization/<id>`, `assigned` or `unassigned`.
- `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/v1/slim/query?mustInclude=device,telemetry&shouldInclude=organization,device,location,patient,telemetry&page=0&count=20' \
  -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk'
```
