Skip to content
Eden Engine

Last Five Minutes of Readings from One Sensor: PM2.5, PM10, Temperature, Humidity (Sensor.Community)

sensor/sensor-readings

The readings of one Sensor.Community sensor from the last five minutes, by its numeric sensor id (shown on the Sensor.Community map and returned by sensors-in-area): the sensor's hardware type and location (id, position, country, indoor or outdoor) and up to 30 readings, newest first, each with its UTC time and values (PM10 and PM2.5 in micrograms per cubic metre, temperature, humidity, pressure, noise). A sensor that sent nothing in the window answers a count of 0. Data from Sensor.Community (sensor.community). Served by Eden Engine; not an official Sensor.Community product.

activeper callv1

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

Sensor.Community

Data from Sensor.Community (sensor.community), contributed by its community. Served by Eden Engine; not an official Sensor.Community 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.

agent
// 1. search: find the tool
omnial_search({ query: "what you need" })

// 2. inspect: price and input schema
omnial_inspect({ tool: "sensor/sensor-readings" })

// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "sensor/sensor-readings" })

// 4. run: price the exact call first, then run it
omnial_execute({ tool: "sensor/sensor-readings", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "sensor/sensor-readings", input: { /* ... */ } })

// 5. settle: the call is charged when it finishes, nothing to do

Not 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.

ChargePrice
Per call
$0.0026
Updated
Oct 25, 2026

Input and output schemas

Input schema
input_schema.json
{
  "type": "object",
  "required": [
    "sensor_id"
  ],
  "properties": {
    "sensor_id": {
      "type": "integer",
      "maximum": 999999999,
      "minimum": 1,
      "description": "Sensor.Community sensor id (the API id shown on the map, not the chip id), a positive integer."
    }
  },
  "additionalProperties": false
}
Output schema
output_schema.json
{
  "type": "object",
  "required": [
    "count",
    "returned",
    "truncated",
    "readings"
  ],
  "properties": {
    "count": {
      "type": "integer",
      "description": "Readings the API returned for the last five minutes."
    },
    "indoor": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "True for an indoor sensor. Null when not given."
    },
    "country": {
      "type": [
        "string",
        "null"
      ],
      "description": "Two-letter country code. Null when not given."
    },
    "altitude": {
      "type": [
        "number",
        "null"
      ],
      "description": "Altitude in metres. Null when not given."
    },
    "latitude": {
      "type": [
        "number",
        "null"
      ],
      "description": "Latitude in degrees. Null when not given."
    },
    "readings": {
      "type": "array",
      "items": {
        "type": "object",
        "required": [
          "timestamp",
          "values"
        ],
        "properties": {
          "values": {
            "type": "array",
            "items": {
              "type": "object",
              "required": [
                "value_type",
                "value"
              ],
              "properties": {
                "value": {
                  "type": "number",
                  "description": "The value, in the unit of its value_type."
                },
                "value_type": {
                  "type": "string",
                  "description": "What is measured: P1 (PM10) and P2 (PM2.5) in micrograms per cubic metre, temperature in degrees Celsius, humidity in percent, pressure and pressure_at_sealevel in pascals, noise_LAeq, noise_LA_min and noise_LA_max in decibels."
                }
              },
              "additionalProperties": true
            },
            "description": "The values of that reading."
          },
          "timestamp": {
            "type": "string",
            "description": "Time of the reading, UTC ISO 8601."
          }
        },
        "additionalProperties": true
      },
      "description": "Newest first."
    },
    "returned": {
      "type": "integer",
      "description": "How many are listed in readings (at most 30)."
    },
    "longitude": {
      "type": [
        "number",
        "null"
      ],
      "description": "Longitude in degrees. Null when not given."
    },
    "sensor_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "The sensor id. Null when the sensor sent no reading in the window."
    },
    "truncated": {
      "type": "boolean",
      "description": "True when count exceeds 30 and only the newest 30 are listed."
    },
    "location_id": {
      "type": [
        "integer",
        "null"
      ],
      "description": "Sensor.Community location id; several sensors share one. Null when not given."
    },
    "sensor_type": {
      "type": [
        "string",
        "null"
      ],
      "description": "The hardware, for example SDS011. Null when the sensor sent no reading in the window or the type is not given."
    },
    "exact_location": {
      "type": [
        "boolean",
        "null"
      ],
      "description": "False when the owner chose to have the position blurred. Null when not given."
    }
  },
  "description": "The bounded reading list.",
  "additionalProperties": true
}