Air Quality and Weather Sensors Reporting Within a Radius: PM2.5, PM10, Temperature, Humidity (Sensor.Community)
sensor/sensors-in-area
Current readings of the Sensor.Community citizen-science network within 1 to 10 kilometres of a latitude and longitude: one record per sensor that reported in the last five minutes, newest first, at most 60, each with the sensor id and hardware type, the location (id, position, country, indoor or outdoor), the time and its values (PM10 and PM2.5 in micrograms per cubic metre, temperature, humidity, pressure, noise), plus how many sensors reported in all. Data from Sensor.Community (sensor.community). Served by Eden Engine; not an official Sensor.Community 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 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.
// 1. search: find the tool
omnial_search({ query: "what you need" })
// 2. inspect: price and input schema
omnial_inspect({ tool: "sensor/sensors-in-area" })
// 3. learn: read the usage guide at runtime
omnial_learn({ tool: "sensor/sensors-in-area" })
// 4. run: price the exact call first, then run it
omnial_execute({ tool: "sensor/sensors-in-area", input: { /* see input_schema */ }, dry_run: true })
omnial_execute({ tool: "sensor/sensors-in-area", 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": [
"latitude",
"longitude"
],
"properties": {
"latitude": {
"type": "number",
"maximum": 90,
"minimum": -90,
"description": "Latitude of the search centre in degrees, -90 to 90."
},
"longitude": {
"type": "number",
"maximum": 180,
"minimum": -180,
"description": "Longitude of the search centre in degrees, -180 to 180."
},
"radius_km": {
"type": "integer",
"default": 2,
"maximum": 10,
"minimum": 1,
"description": "Search radius in kilometres, 1 to 10. Default 2."
}
},
"additionalProperties": false
}Output schema
{
"type": "object",
"required": [
"readings",
"found",
"returned",
"truncated",
"sensors"
],
"properties": {
"found": {
"type": "integer",
"description": "Distinct sensors that reported in the last five minutes."
},
"sensors": {
"type": "array",
"items": {
"type": "object",
"required": [
"sensor_id",
"timestamp",
"values"
],
"properties": {
"indoor": {
"type": [
"boolean",
"null"
],
"description": "True for an indoor sensor. Null when not given."
},
"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."
},
"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."
},
"longitude": {
"type": [
"number",
"null"
],
"description": "Longitude in degrees. Null when not given."
},
"sensor_id": {
"type": "integer",
"description": "Sensor id; pass it to sensor-readings."
},
"timestamp": {
"type": "string",
"description": "Time of the sensor's newest reading, UTC ISO 8601."
},
"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 (particulates) or BME280 (temperature, humidity, pressure). Null when not given."
},
"exact_location": {
"type": [
"boolean",
"null"
],
"description": "False when the owner chose to have the position blurred. Null when not given."
}
},
"additionalProperties": true
},
"description": "One record per sensor with its newest reading, newest first."
},
"readings": {
"type": "integer",
"description": "Raw readings the API returned (a sensor reports several times in five minutes)."
},
"returned": {
"type": "integer",
"description": "How many are listed in sensors (at most 60)."
},
"truncated": {
"type": "boolean",
"description": "True when found exceeds 60 and only the 60 most recently reporting are listed; narrow the radius."
}
},
"description": "The bounded sensor list.",
"additionalProperties": true
}