Get device telemetry and alerts
- Sandbox: available
- Staging: available
- Production: unknown
Returns the current telemetry and alerts for one device. Use it to poll the resident detail view.
Auth: bearer token. The caller must be a practitioner, an admin or a System Owner, and needs Device:read.
Scope: the caller's project (from the token). Only devices in that project are found.
Behaviour
deviceIdis either the device identifier (for exampleSleepiz/3001000) or the Device resource id (a UUID). A UUID is resolved to the identifier.- The response
deviceIdis the identifier the telemetry is keyed by. telemetryandalertshave the same shape as one entry ofGET /v1/slim/device/live/telemetry.- The device is looked up among the first 1000 devices of your project, including devices without a resident.
- Telemetry is read fresh on every request.
Example
curl -X GET 'https://api.sandbox.ovok.com/v1/slim/telemetry/c3499c27-2973-0a7f-807e-fb8676a92dcb' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk'bearerAuthorizationBearer <JWT>deviceId*stringDevice identifier (for example Sleepiz/3001000) or Device resource id (UUID).
1 <= lengthCurrent telemetry and alerts for the device.
application/json- response
deviceId*stringtelemetry?alerts?curl -X GET 'https://api.sandbox.ovok.com/v1/slim/telemetry/string'{ "deviceId": "string", "telemetry": { "active": { "value": "string", "ts": 0 }, "effectiveHeartRate": { "value": "string", "ts": 0 }, "effectiveRespiratoryRate": { "value": "string", "ts": 0 }, "effectiveSleepStatus": { "value": "string", "ts": 0 }, "lastMeasurementTime": { "value": "string", "ts": 0 }, "lastActivityTime": { "value": "string", "ts": 0 }, "name": { "value": "string", "ts": 0 }, "effectiveOxygenSaturation": { "value": "string", "ts": 0 }, "effectivePulseRate": { "value": "string", "ts": 0 }, "effectiveSystolicBloodPressure": { "value": "string", "ts": 0 }, "effectiveDiastolicBloodPressure": { "value": "string", "ts": 0 }, "effectiveHeartRateVariability": { "value": "string", "ts": 0 }, "effectivePerfusionIndex": { "value": "string", "ts": 0 }, "effectiveBodyTemperature": { "value": "string", "ts": 0 }, "roomTemperature": { "value": "string", "ts": 0 }, "humidity": { "value": "string", "ts": 0 }, "soundLevel": { "value": "string", "ts": 0 }, "infrared": { "value": "string", "ts": 0 }, "illuminance": { "value": "string", "ts": 0 }, "airQualityIndex": { "value": "string", "ts": 0 }, "tvoc": { "value": "string", "ts": 0 }, "eco2": { "value": "string", "ts": 0 } }, "alerts": { "heartRate": { "alert": true, "value": { "property1": null, "property2": null }, "message": { "property1": null, "property2": null }, "communicationRequestId": "string", "observationId": "string", "color": "string", "state": "alert", "updatedAt": "string" }, "respiratoryRate": { "alert": true, "value": { "property1": null, "property2": null }, "message": { "property1": null, "property2": null }, "communicationRequestId": "string", "observationId": "string", "color": "string", "state": "alert", "updatedAt": "string" }, "outOfBed": { "outOfBed": true, "communicationRequestId": "string", "sinceTime": "string" } }}Get last-received observation ids for a device GET
Returns, for one device, the ids of the most recent Observations received for heart rate, respiratory rate, sleep status and presence, plus the latest batch. Unlike `effectiveIds`, these change on every reading, whether or not the displayed value changed. **Auth:** bearer token. The caller must be a practitioner, an admin or a System Owner, and needs `Device:read`. **Scope:** a device identifier only resolves when the device is visible to your token and in the caller's project. ## Behaviour - `deviceId` is either the device identifier or the Device resource id (a UUID). - Each field is an Observation id, or `null` when nothing has been received for it yet. - Only devices whose readings carry their own Observation id fill these fields. For other devices every field is `null`. - A device that is not found returns every field `null`, not an error. - Lookups of a device are cached for up to 10 minutes, and misses for 30 seconds. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/telemetry/c3499c27-2973-0a7f-807e-fb8676a92dcb/lastIds' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```
Get current threshold GET
Returns the home's threshold configuration: the alert limits every resident follows unless they have limits of their own. > **Deprecated.** Use `GET /v2/slim/threshold`. This v1 route stays available, unchanged, until every client has moved. **Auth:** Bearer token. The caller must be a practitioner, an admin, a super admin, or hold the "System Owner" access policy. The access policy must grant `PlanDefinition:read` (an admin or super admin who holds no access policy skips this check). **Scope:** The caller's project (from the token). ## Behaviour - Read-only. - A home that has never saved thresholds gets the default template, with no `id`: heart rate on at 40–110 and respiratory rate on at 8–25 (the limits a new home is seeded with), and every other metric disabled. - If the stored thresholds cannot be read, the route answers 502, never the default template. - Units: `durationOfOutOfBed` is in seconds, `sleepDuration` in hours. - The home's limit ranges and the optional vitals (SpO₂, pulse rate, perfusion index, body temperature) are only on the v2 route. - Heart-rate and respiratory-rate limits are evaluated by Signals. Ovok stores them and forwards them to Signals. ## Example ```bash curl -X GET 'https://api.sandbox.ovok.com/v1/slim/threshold' \ -H 'Authorization: Bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJpYXQiOjE3NjcyNjg4MDAsImV4cCI6MTc2NzI3MjQwMH0.Ql3B_ztDvctlyZ2z0vp4sl3ExXRQGkzmxdmTAqxNzZk' ```