SlimSlim/Telemetry

Get device telemetry and alerts

  • Sandbox: available
  • Staging: available
  • Production: unknown
GET
/v1/slim/telemetry/{deviceId}

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

  • deviceId is either the device identifier (for example Sleepiz/3001000) or the Device resource id (a UUID). A UUID is resolved to the identifier.
  • The response deviceId is the identifier the telemetry is keyed by.
  • telemetry and alerts have the same shape as one entry of GET /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'

Authorization

bearer
headerAuthorizationBearer <JWT>

Path Parameters

deviceId*string

Device identifier (for example Sleepiz/3001000) or Device resource id (UUID).

Length1 <= length

Response Body

Current telemetry and alerts for the device.

application/json
  1. response
deviceId*string
telemetry?
alerts?
Example Request
curl -X GET 'https://api.sandbox.ovok.com/v1/slim/telemetry/string'
Example Response
{  "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' ```