Measurement History of One Station Sensor: Values with Min, Max and Mean over a Time Window (openSenseMap)
opensensemap/sensor-measurements
Measurements of one sensor of an openSenseMap station for a time window, newest first: the platform's default is the last two days, or give a from and to time in UTC. Returns the total count in the window, the minimum, maximum and mean of all of them and the newest 200 readings (time, value, position), with the oldest and newest times. Use list-boxes then get-box to find the station and sensor ids. Data from openSenseMap (opensensemap.org). Served by Eden Engine; not an official openSenseMap product.
Price
$0.0026 per call
You pay the price shown. If a call turns out to cost more than its quote, you pay the actual price, capped at twice the quote. No monthly minimum. Top-ups start at $0.50.
Data source
Data from openSenseMap (opensensemap.org), contributed by its community. Served by Eden Engine; not an official openSenseMap product.
Use it
Five steps: search, inspect, learn, run, settle. No per-tool setup; your agent reaches this tool through the meta-tools it already has.
Connect once and your AI can find and run this tool, and any other it needs.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "opensensemap/sensor-measurements" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "opensensemap/sensor-measurements" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "opensensemap/sensor-measurements", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "opensensemap/sensor-measurements", input: { /* ... */ } })
// 5. settle: the call is charged when it finishes, nothing to doNot connected yet? Point your MCP client at https://mcp.eden-engine.com/mcp, then copy a config for your client.
Pricing
Every charge this tool can incur.
| Charge | Price |
|---|---|
Per call | $0.0026 |
- Updated
- Oct 25, 2026
Input and output schemas
Input schema
{
"type": "object",
"required": [
"sensor_id"
],
"properties": {
"box_id": {
"type": "string",
"default": "000000000000000000000000",
"pattern": "^[0-9a-f]{24}$",
"description": "Station id, 24 lowercase hexadecimal characters. Optional: the platform answers by sensor_id and does not check it."
},
"to_date": {
"type": "string",
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]Z$",
"description": "End of the window, UTC, YYYY-MM-DDTHH:MM:SSZ. Omit for now. Must not be before from_date."
},
"from_date": {
"type": "string",
"pattern": "^[0-9]{4}-(0[1-9]|1[0-2])-(0[1-9]|[12][0-9]|3[01])T([01][0-9]|2[0-3]):[0-5][0-9]:[0-5][0-9]Z$",
"description": "Start of the window, UTC, YYYY-MM-DDTHH:MM:SSZ. Omit for two days before to_date (or before now)."
},
"sensor_id": {
"type": "string",
"pattern": "^[0-9a-f]{24}$",
"description": "Sensor id, 24 lowercase hexadecimal characters, from get-box or list-boxes."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"count",
"returned",
"truncated",
"measurements"
],
"properties": {
"max": {
"type": [
"number",
"null"
],
"description": "Highest value in the window. Null when there are no measurements."
},
"min": {
"type": [
"number",
"null"
],
"description": "Lowest value in the window. Null when there are no measurements."
},
"mean": {
"type": [
"number",
"null"
],
"description": "Mean of the values in the window, four decimals. Null when there are no measurements."
},
"count": {
"type": "integer",
"description": "Numeric measurements the platform returned for the window (it returns at most 10,000)."
},
"newest": {
"type": [
"string",
"null"
],
"description": "Time of the newest listed measurement, UTC ISO 8601. Null when there are none."
},
"oldest": {
"type": [
"string",
"null"
],
"description": "Time of the oldest measurement in the window, UTC ISO 8601. Null when there are none."
},
"returned": {
"type": "integer",
"description": "How many are listed in measurements (at most 200)."
},
"truncated": {
"type": "boolean",
"description": "True when count exceeds 200 and only the newest 200 are listed; min, max and mean still cover all of count."
},
"measurements": {
"type": "array",
"items": {
"type": "object",
"required": [
"time",
"value"
],
"properties": {
"time": {
"type": "string",
"description": "Measurement time, UTC ISO 8601."
},
"value": {
"type": "number",
"description": "The value, in the sensor's unit."
},
"latitude": {
"type": [
"number",
"null"
],
"description": "Latitude where it was taken. Null when not recorded."
},
"longitude": {
"type": [
"number",
"null"
],
"description": "Longitude where it was taken. Null when not recorded."
}
},
"additionalProperties": true
},
"description": "Newest first, at most 200."
}
},
"description": "The bounded, summarised series.",
"additionalProperties": true
}