Skip to main content

Time-Series Data

The platform collects continuous sensor readings from steam traps and machines at roughly 60-second intervals. You can query this data via the REST API to build custom dashboards, feed data historians, perform offline analysis, or export readings to external systems.

Sensor Reading Types

TypeDescriptionCadence
STM (steam trap monitoring)Temperature readings from steam and condensate probes~60 s
MHM (machine health monitoring)Vibration velocity and acceleration, humidity, and ambient temperature from machine sensors~60 s

API Endpoints

Steam Trap Readings

GET /v2020-07/steamtraps/{id}/timeseries

Returns time-series temperature readings for a single steam trap. The {id} is the Shoplogix trap UUID.

Machine Readings

GET /v2020-07/machines/{id}/timeseries

Returns time-series vibration, humidity, and temperature readings for a single machine. The {id} is the Shoplogix machine UUID.

Eversensor Readings (Data Services v1)

GET /ds/v1/eversensors/{mac}/readings

Returns raw readings directly by sensor MAC address, without requiring a machine or steam trap association. Useful for sensor-level data access.


Query Parameters

All three endpoints support the following parameters for filtering and controlling response size.

ParameterTypeDescriptionDefault
startTimeUnix timestamp (seconds) or ISO 8601 stringStart of the time range
endTimeUnix timestamp (seconds) or ISO 8601 stringEnd of the time range
downsampleRateIntegerReturn 1 out of every N readings. A value of 60 returns one reading per minute when the sensor reports every second.No downsampling

When neither startTime nor endTime is provided, the API applies a default data limit to protect response size. For large time ranges, always specify both bounds and use downsampleRate to manage payload size.


Response Shape

Responses are an array of reading objects. The fields present depend on the sensor type.

Steam Trap Reading

[
{
"timestamp": 1699841520,
"utcDate": "2023-11-13T04:12:00Z",
"steamTemp": 212.4,
"condensateTemp": 198.7,
"macAddress": "AA:BB:CC:DD:EE:FF"
}
]
FieldDescription
timestampUnix epoch seconds
utcDateISO 8601 UTC datetime
steamTempSteam-side probe temperature (°F)
condensateTempCondensate-side probe temperature (°F)
macAddressSensor MAC address

Machine (MHM) Reading

[
{
"timestamp": 1699841520,
"utcDate": "2023-11-13T04:12:00Z",
"macAddress": "AA:BB:CC:DD:EE:FF",
"tempAmbient": 22.3,
"humidity": 41.2,
"mhmMetrics": {
"vibrationMetrics": {
"velocityMetrics": {
"overallLevels": {
"xAxisOverallLevel": { "ips": 0.142 },
"yAxisOverallLevel": { "ips": 0.098 },
"zAxisOverallLevel": { "ips": 0.211 }
}
},
"accelerationMetrics": {
"maxLevels": {
"xAxisMaxLevel": { "mg": 12.4 },
"yAxisMaxLevel": { "mg": 8.9 },
"zAxisMaxLevel": { "mg": 15.1 }
}
}
}
}
}
]
FieldDescription
timestampUnix epoch seconds
tempAmbientAmbient temperature (°C)
humidityRelative humidity (%)
mhmMetrics.vibrationMetrics.velocityMetrics.overallLevels.*Overall vibration velocity per axis (in/s)
mhmMetrics.vibrationMetrics.accelerationMetrics.maxLevels.*Peak vibration acceleration per axis (mg) — MVM Eversensor 2 only

Data Retention

DataRetention
Raw sensor readings~1.5 years (548 days)
Sensor aggregates~6 months (180 days)
Events and alarm historyIndefinite

Queries outside the retention window will return an empty result rather than an error.


Downsampling Guidance

For time ranges longer than a few hours, use downsampleRate to limit response size and improve performance.

Time RangeSuggested downsampleRate
Up to 6 hours1 (no downsampling)
6 hours to 3 days10
3 days to 2 weeks60
2 weeks or more300+

Downsampling selects 1 reading out of every N by index — it does not aggregate or average. For trend visualization this is usually sufficient. For fault analysis or threshold validation, query a narrower window without downsampling.