Devices
Get Device State
Live snapshot of a device — battery, storage, recording state, connectivity, last heartbeat
GET
Returns the live runtime snapshot of a device. Same field shape as
Fields the device reports — all optional. The device may not report every field on every heartbeat, so clients should default missing values defensively.
GET /v1/devices/{id} for runtime fields,
just curated (no settings, no metadata, lighter payload — designed for
polling at a few-second cadence).
The recording_state object is forwarded verbatim from the device’s most
recent heartbeat. Whether the device is currently reachable is not
returned as a server field; derive it client-side from last_heartbeat_at
(Date.now() - last_heartbeat_at < 15 * 60 * 1000 is the convention).
The device’s unique identifier (e.g.,
dev_abc123).Response Fields
recording_state (jsonb passthrough)
Fields the device reports — all optional. The device may not report every field on every heartbeat, so clients should default missing values defensively.
Notes on shape
This endpoint returns the same field names asGET /v1/devices/{id} for everything in the runtime snapshot. The two endpoints differ only in what they omit:
GET /v1/devices/{id}includes the full device entity —status,model,firmware_version,serial_number,settings(with hierarchical config resolved),mac_address,metadata, etc.GET /v1/devices/{id}/stateincludes only the runtime snapshot — cheaper to poll, no settings resolution cost.
/state for live UI polling (1–10 s cadence). Use /devices/{id} once per session for device identity + configuration.
