uRADMonitor › Open data
811 sensors online in 43 countries · data since 2000 · CC BY 4.0
Every uRADMonitor station publishes its measurements to an open network. You can read the data on the live map, download it as CSV or JSON from the dashboard, embed it on your website, or query it through the REST API. The data is free to use under the Creative Commons Attribution 4.0 license.
Create a free account, log in to the dashboard and open the API tab. It shows your user ID and your user key. Send them with every call as two HTTP headers:
X-User-id: YOUR_USER_ID X-User-hash: YOUR_USER_KEY
Your account sees the units you own and the units you were given access to. All calls use HTTPS and return JSON.
Errors come back as {"error": "..."}.
Base URL: https://data.uradmonitor.com/api/v1/
| Call | Returns |
|---|---|
GET /devices | Your units, with the latest value (last_XX), a moving average of the latest readings (avg_XX) and the name and unit (param_XX) of every sensor, plus location, status, firmware, hardware and AQI. |
GET /devices/{id} | The sensors of one unit, with names and units. |
GET /devices/{id}/{sensor} | Readings of one sensor over the last 24 hours. |
GET /devices/{id}/{sensor}/{start}/{stop} | Readings between start and stop, given in seconds before now (stop is optional). Use all for every sensor, all-raw for every sensor without compensation, and last as start for the latest record only. Maximum span: 60 days for one sensor, 1 day for all. |
GET /devices/{id}/average/{start}/{stop} | Daily minimum, maximum and average of every parameter, up to 120 days. |
Example, PM2.5 from one unit over the last hour:
curl -H "X-User-id: YOUR_USER_ID" -H "X-User-hash: YOUR_USER_KEY" \ https://data.uradmonitor.com/api/v1/devices/82000466/pm25/3600
Best practice: read /devices once and use the last_XX fields. Request time series only for the
units and intervals you need.
| Field | Meaning |
|---|---|
id | Unique unit ID (8 hex digits). The first byte identifies the model. |
timefirst, timelast | Unix time of the first and of the latest upload. |
timelocal | Seconds since the unit last restarted. |
latitude, longitude, altitude, speed | Position. Units set to "randomise" by their owner show slightly shifted coordinates to everyone except the owner. |
city, country | Base city and 2-letter country code. |
placement | 0 indoor, 1 outdoor. |
status | 1 online, null offline. |
mobile | 1 for mobile units. |
versionsw, versionhw | Firmware and hardware version. |
detector, factor | Geiger tube and its conversion factor from CPM to dose rate (µSv/h). |
aqi | European Air Quality Index, 1 to 6: Good, Fair, Moderate, Poor, Very poor, Extremely poor (EEA bands revised in 2024), computed from PM2.5 and PM10. |
note, picture, owner | Owner's note, picture URL, owner user ID. |
param_XX, last_XX, avg_XX | Name and unit, latest value and moving average of sensor XX. |
Each unit reports the sensors of its model. GET /devices/{id} lists them.
| Group | Key | Meaning | Unit |
|---|---|---|---|
| Air quality | pm1, pm25, pm10 | PM1.0, PM2.5, PM10 | µg/m³ |
pm03no … pm10no | Particle counts (0.3 to 10 µm) | no/0.1L | |
co2 | Carbon dioxide | ppm | |
ch2o | Formaldehyde | ppb | |
o3, no2 | Ozone, nitrogen dioxide | ppb | |
co | Carbon monoxide | ppm | |
voc | Volatile organic compounds (sensor resistance, index or µg/m³, depending on model) | Ohm / Index / µg/m³ | |
vocaqi | VOC air quality index | AQI | |
gas1 … gas4 | Configurable electrochemical cells (name given in param_gasN) | ppm (O2: % vol) | |
| Radiation | cpm, cpm2 | Geiger counter counts per minute. Dose rate in µSv/h = cpm × factor | cpm |
radon | Radon concentration | Bq/m³ | |
| Climate and weather | temperature, humidity, pressure | Air temperature, relative humidity, barometric pressure (second sensor: suffix 2) | °C, % RH, Pa |
windspeed, windgust | Wind speed and gust | m/s | |
windforce | Wind force | Beaufort | |
winddirection | Wind direction | ° | |
rain, rainrate | Rain accumulation and intensity | mm, mm/h | |
irradiance | Solar irradiance | W/m² | |
illuminance | Illuminance | lux | |
uv | UV | mW/cm² | |
| Noise | noise, noisemax | Sound level and maximum (second microphone: noise2, noise2max) | dB |
| Water | wtemperature, turbidity, do, orp, ec, ph | Water temperature, turbidity, dissolved oxygen, redox potential, conductivity, pH | °C, NTU, µg/L, mV, ms/cm, pH |
| Device | signal | Radio signal strength | dBm |
battery, voltage, duty | Battery voltage, Geiger tube voltage and duty cycle | V, V, ‰ | |
speed, altitude, sats | Mobile units: speed, altitude, GPS satellites | km/h, m, no |
The Shield protects the network against abuse. It counts every call per IP address and refuses calls above the limits until the hour or the day resets. Limits for registered users:
| Downloads / hour | Downloads / day | Uploads / hour | Uploads / day |
|---|---|---|---|
| 1,000 | 5,000 | 10,000 | 100,000 |
Calls without credentials have lower limits. If you need more for a research or public project, contact us.
Every upload from a unit you own adds one credit to your account. Credits accumulate and are shown in the API tab of the dashboard. They are not consumed by API calls at this time.
Every city and sensor page has a free embed code: a small live card plus a text link. It refreshes on its own and works on any website, including school and municipality sites.
The data is published under Creative Commons Attribution 4.0 (CC BY 4.0). Use of the API is also governed by the General Terms and the API Terms. When you publish results, cite: uRADMonitor environmental monitoring network, Magnasci SRL, https://www.uradmonitor.com.
Monthly summary and network news. One email a month, unsubscribe anytime.
Readings are indicative and not a substitute for official regulatory monitoring.