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
| Type | Description | Cadence |
|---|---|---|
| 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.
| Parameter | Type | Description | Default |
|---|---|---|---|
startTime | Unix timestamp (seconds) or ISO 8601 string | Start of the time range | — |
endTime | Unix timestamp (seconds) or ISO 8601 string | End of the time range | — |
downsampleRate | Integer | Return 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"
}
]
| Field | Description |
|---|---|
timestamp | Unix epoch seconds |
utcDate | ISO 8601 UTC datetime |
steamTemp | Steam-side probe temperature (°F) |
condensateTemp | Condensate-side probe temperature (°F) |
macAddress | Sensor 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 }
}
}
}
}
}
]
| Field | Description |
|---|---|
timestamp | Unix epoch seconds |
tempAmbient | Ambient temperature (°C) |
humidity | Relative 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
| Data | Retention |
|---|---|
| Raw sensor readings | ~1.5 years (548 days) |
| Sensor aggregates | ~6 months (180 days) |
| Events and alarm history | Indefinite |
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 Range | Suggested downsampleRate |
|---|---|
| Up to 6 hours | 1 (no downsampling) |
| 6 hours to 3 days | 10 |
| 3 days to 2 weeks | 60 |
| 2 weeks or more | 300+ |
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.
Related
- Machine Health Monitoring Overview — what MHM sensors measure and how alarm thresholds work
- REST API — authentication and base URL
- Data Broker — streaming sensor data via MQTT instead of polling