Skip to main content

Get device telemetry

GET /fhir/Device/{id}/telemetry
GET /fhir/R4/Device/{id}/telemetry
GET /fhir/R5/Device/{id}/telemetry
devhttps://api.sandbox.ovok.com

Returns the current effective telemetry for a device as a FHIR searchset Bundle of Observations, derived from the device's state machine snapshot. One Observation per metric is included: presence, heart rate (when a fresh value is cached), respiratory rate (when a fresh value is cached), and sleep status. Each Observation uses its own effectiveInstant so clients can reason about staleness per metric.

Example cURL request

curl -X GET \
'https://api.dev.ovok.com/fhir/R4/Device/87ea5dfc-8b8e-384d-8489-79496e706390/telemetry' \
-H 'Authorization: Bearer <token>'

Example JSON response

{
"resourceType": "Bundle",
"type": "searchset",
"total": 4,
"entry": [
{
"resource": {
"resourceType": "Observation",
"id": "presence",
"status": "final",
"code": {
"coding": [
{
"system": "https://sleepiz.com/fhir/CodeSystem/observation-codes",
"code": "presence-detection",
"display": "Presence detection"
}
]
},
"subject": { "reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390" },
"device": { "reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390" },
"effectiveInstant": "2026-04-22T10:00:00.000Z",
"valueBoolean": true
}
},
{
"resource": {
"resourceType": "Observation",
"id": "heartRate",
"status": "final",
"code": {
"coding": [{ "system": "http://loinc.org", "code": "8867-4", "display": "Heart rate" }]
},
"subject": { "reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390" },
"device": { "reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390" },
"effectiveInstant": "2026-04-22T10:00:00.000Z",
"valueQuantity": { "value": 72, "unit": "beats/min", "system": "http://unitsofmeasure.org", "code": "/min" }
}
},
{
"resource": {
"resourceType": "Observation",
"id": "respiratoryRate",
"status": "final",
"code": {
"coding": [{ "system": "http://loinc.org", "code": "9279-1", "display": "Respiratory rate" }]
},
"subject": { "reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390" },
"device": { "reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390" },
"effectiveInstant": "2026-04-22T10:00:00.000Z",
"valueQuantity": { "value": 14, "unit": "breaths/min", "system": "http://unitsofmeasure.org", "code": "/min" }
}
},
{
"resource": {
"resourceType": "Observation",
"id": "sleep",
"status": "final",
"code": {
"coding": [{ "system": "http://loinc.org", "code": "107145-5", "display": "Sleep status" }]
},
"subject": { "reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390" },
"device": { "reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390" },
"effectiveInstant": "2026-04-22T10:00:00.000Z",
"valueCodeableConcept": { "text": "asleep" }
}
}
]
}

Parameters

NameInTypeRequiredDescription
idpathstringyesFHIR Device id whose latest telemetry observations should be returned.

Responses

CodeDescription
200Success.
400The request could not be operated by the server.
401The resource owner or authorization server denied the request.
404The requested resource could not be found.
422The request could not be validated by the server.
500The server encountered an unexpected condition. Please try again later.

200DeviceTelemetryResponseDto (application/json)

  • resourceType: string (required)
  • type: string (required)
  • total: number
  • entry: object[] (required)
    • resource: object (required)
    • fullUrl: string

Example

{
"resourceType": "Bundle",
"type": "searchset",
"total": 4,
"entry": [
{
"resource": {
"resourceType": "Observation",
"id": "presence",
"status": "final",
"code": {
"coding": [
{
"system": "https://sleepiz.com/fhir/CodeSystem/observation-codes",
"code": "presence-detection",
"display": "Presence detection"
}
]
},
"subject": {
"reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390"
},
"effectiveInstant": {},
"valueBoolean": true
}
},
{
"resource": {
"resourceType": "Observation",
"id": "heartRate",
"status": "final",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "8867-4",
"display": "Heart rate"
}
]
},
"subject": {
"reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390"
},
"effectiveInstant": {},
"valueQuantity": {
"value": 72,
"unit": "beats/min",
"system": "http://unitsofmeasure.org",
"code": "/min"
}
}
},
{
"resource": {
"resourceType": "Observation",
"id": "respiratoryRate",
"status": "final",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "9279-1",
"display": "Respiratory rate"
}
]
},
"subject": {
"reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390"
},
"effectiveInstant": {},
"valueQuantity": {
"value": 14,
"unit": "breaths/min",
"system": "http://unitsofmeasure.org",
"code": "/min"
}
}
},
{
"resource": {
"resourceType": "Observation",
"id": "sleep",
"status": "final",
"code": {
"coding": [
{
"system": "http://loinc.org",
"code": "107145-5",
"display": "Sleep status"
}
]
},
"subject": {
"reference": "Device/87ea5dfc-8b8e-384d-8489-79496e706390"
},
"effectiveInstant": {},
"valueCodeableConcept": {
"text": "asleep"
}
}
}
]
}