Sensor.Community APIairsofia.info ↗
Access real-time and historical air quality data from the global Sensor.Community network. Filter by country, sensor type, or geographic area via 7 endpoints.
curl -X GET 'https://api.parse.bot/scraper/c89a4243-25eb-47a7-a92c-c6773bde0e4c/get_current_sensors_by_area?radius=10&latitude=48.8566&longitude=2.3522' \ -H 'X-API-Key: $PARSE_API_KEY'
Fetches current sensor readings filtered by geographic area using a lat/lon center point and radius in kilometers. Returns an array of sensor reading objects including location, sensor metadata, and measurement values.
| Param | Type | Description |
|---|---|---|
| radius | string | Search radius in kilometers. |
| latitude | string | Latitude of the center point. |
| longitude | string | Longitude of the center point. |
{
"type": "object",
"fields": {
"data": "array of sensor reading objects, each containing id, timestamp, location, sensor metadata, and sensordatavalues"
},
"sample": {
"data": [
{
"id": 29221785719,
"sensor": {
"id": 42119,
"pin": "3",
"sensor_type": {
"id": 20,
"name": "BMP280",
"manufacturer": "Bosch"
}
},
"location": {
"id": 27783,
"indoor": 0,
"country": "BG",
"altitude": "523.8",
"latitude": "42.782",
"longitude": "23.274",
"exact_location": 0
},
"timestamp": "2026-05-07 20:12:01",
"sampling_rate": null,
"sensordatavalues": [
{
"id": 68025666435,
"value": "94964.13",
"value_type": "pressure"
},
{
"id": 68025666438,
"value": "14.72",
"value_type": "temperature"
}
]
}
],
"status": "success"
}
}About the Sensor.Community API
This API exposes 7 endpoints for querying real-time and historical air quality sensor data from the Sensor.Community global network, covering thousands of sensors worldwide. You can retrieve current readings filtered by geographic area using get_current_sensors_by_area, pull country-wide snapshots, filter by sensor model, or fetch a specific sensor's latest measurements. Each reading includes location coordinates, sensor metadata, and one or more sensordatavalues fields for pollutant and environmental metrics.
Current Sensor Data
Three endpoints cover live sensor snapshots. get_current_sensors_by_area accepts latitude, longitude, and radius (in kilometers) to return all sensors within that circle. get_current_sensors_by_country takes a two-letter country_code (e.g. BG, DE, RU) and returns all active sensors in that country. get_current_sensors_by_type filters the global feed by sensor model name — supported values include SDS011, BME280, BMP280, DHT22, PMS5003, and SPS30. All three return arrays of objects containing id, timestamp, location, sensor metadata, and sensordatavalues.
Single-Sensor and Map Endpoints
get_sensor_latest_readings takes a numeric sensor_id and returns recent reading objects for that specific device — useful for dashboards tracking individual nodes. get_map_overview_data returns a large global array of sensor data points and accepts a data_type parameter of either dust (particulate matter) or temp (temperature), matching the two primary measurement classes the network tracks.
Combined Filtering and Archives
get_sensors_by_multiple_filters combines country_code, sensor_type, and area parameters (latitude, longitude, radius) in a single call; at least one filter must be provided, and area filters require all three coordinate fields together. For historical data, get_archive_files accepts a required year and an optional date in YYYY-MM-DD format, returning an object with an url pointing to the archive directory and a files array listing available CSV filenames for download.
- Map real-time particulate matter readings across a city using
get_current_sensors_by_areawith a center coordinate and radius. - Compare PM2.5 and PM10 levels across countries by iterating
get_current_sensors_by_countrywith different country codes. - Track a specific community sensor over time using
get_sensor_latest_readingswith its numeric sensor ID. - Build sensor-type coverage reports by querying
get_current_sensors_by_typefor SDS011 versus PMS5003 deployments. - Populate a global air quality map layer with
get_map_overview_datausingdustortempas the data type. - Download historical CSV archives for offline analysis via
get_archive_fileswith a specific year and date folder. - Cross-filter by both country and sensor model using
get_sensors_by_multiple_filtersto narrow results for regional studies.
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does Sensor.Community have an official developer API?+
What does `sensordatavalues` contain in the response objects?+
sensordatavalues array where each entry represents one measured quantity — for example P1 and P2 for particulate matter from a dust sensor, or temperature and humidity from a BME280. The fields present depend on the sensor model attached to that node.Can I retrieve sensor readings at a specific historical timestamp rather than from archive files?+
get_archive_files, but does not support querying by arbitrary historical timestamp. You can fork this API on Parse and revise it to add an endpoint that queries a specific date-range from the archive data.Does `get_map_overview_data` cover all sensor measurement types?+
data_type parameter accepts only dust (particulate matter) and temp (temperature). Other sensor value types such as humidity, pressure, or noise are not exposed through this endpoint. You can fork the API on Parse and revise it to add an endpoint covering additional measurement categories.Are there any limitations on geographic area queries?+
get_current_sensors_by_area or the area filter in get_sensors_by_multiple_filters, all three parameters — latitude, longitude, and radius — must be provided together; omitting any one of them will not produce a valid area filter. The radius unit is kilometers, and very large radii may return a significant number of sensor objects depending on network density in that region.