Environment · East Africa
Air quality stations
OpenAQ's monitoring stations in nine East African countries: where they are, which still report, and how the network has grown, stopped and restarted.
Compare country coverage
Station counts are OpenAQ's coverage, not a country's monitoring network, so uneven numbers limit comparisons.
Station coverage across East Africa. Sorted by stations (high to low).
Uganda
#1 · 54.3% of stations
- Stations
- 57
- Reporting
- 49
- Inactive
- 8
Kenya
#2 · 16.2% of stations
- Stations
- 17
- Reporting
- 2
- Inactive
- 15
DR Congo
#3 · 14.3% of stations
- Stations
- 15
- Reporting
- 9
- Inactive
- 6
Ethiopia
#4 · 10.5% of stations
- Stations
- 11
- Reporting
- 1
- Inactive
- 10
Rwanda
#5 · 3.8% of stations
- Stations
- 4
- Reporting
- 2
- Inactive
- 2
Tanzania
#6 · 1.0% of stations
- Stations
- 1
- Reporting
- 1
- Inactive
- 0
Burundi
No OpenAQ stations
- Stations
- 0
- Reporting
- 0
- Inactive
- 0
Somalia
No OpenAQ stations
- Stations
- 0
- Reporting
- 0
- Inactive
- 0
South Sudan
No OpenAQ stations
- Stations
- 0
- Reporting
- 0
- Inactive
- 0
An empty country is empty in OpenAQ's inventory, which says nothing about whether that country monitors air quality.
Latest weekly changes
Baseline release recorded.
Weekly comparisons start with the next collection: new, stopped, restarted and removed stations will be listed here.
How the network changed
Year-end reporting and inactive stations, for all countries or one at a time, alongside regional stations that reported, started and stopped each year.
Stations by country
Stations by year
Readings over time
Parameters reported daily by at least 5 stations, for each country that measures them, from the first reading in Aug 2016 to this week. 5 more, from fewer stations, are listed under What is measured below.
PM2.5 · monthly average by country
What is measured, and by whom
Every parameter OpenAQ returned, including weather and particle counts, in its original units.
Parameters (18)
| Parameter | Units | Stations |
|---|---|---|
| PM2.5 | µg/m³ | 105 |
| PM10 | µg/m³ | 45 |
| Temperature | °C | 41 |
| PM1 | µg/m³ | 39 |
| Relative humidity | % | 39 |
| PM0.3 count | particles/cm³ | 35 |
| BC 375nm | ng/m³ | 2 |
| BC 880nm | ng/m³ | 2 |
| Atmospheric pressure | hPa | 2 |
| Temperature | °F | 2 |
| Wind direction | ° | 2 |
| Wind speed | m/s | 2 |
| BC 470nm | ng/m³ | 1 |
| BC 528nm | ng/m³ | 1 |
| BC 625nm | ng/m³ | 1 |
| CO | ppm | 1 |
| NO₂ | ppb | 1 |
| NO₂ | ppm | 1 |
The same parameter in two units is listed twice; values are never converted or averaged across units.
Providers (10)
| Provider | Stations |
|---|---|
| AirQo | 39 |
| AirGradient | 37 |
| AirNow | 9 |
| HabitatMap | 7 |
| Clarity | 4 |
| GeoHealth | 3 |
| AirNow Kenya | 2 |
| Clean Air Catalyst | 2 |
| Rwanda REMA | 1 |
| StateAir Addis Ababa School | 1 |
Data is accessed through OpenAQ; each provider's own license and attribution apply.
Licenses and data quality
Licenses as OpenAQ publishes them, and how many daily readings are partial or flagged.
Licenses (4)
| License | Stations |
|---|---|
| CC BY 4.0 | 79 |
| US Public Domain | 9 |
| CC0 1.0 | 4 |
| No license supplied | 13 |
OpenAQ's terms require credit to OpenAQ and to each original source.
Data quality
- Partial days
- 34,304
- Flagged by provider
- 7,474
- Negative values
- 3
- No value
- 3,160
A partial day has fewer than 18 of its 24 hours reported. A day can be partial and flagged at once, so these overlap. Nothing is dropped: every chart can show all days or full days only, so the difference stays visible.
Releases (1)
| Data through | Stations |
|---|---|
| 26 Sept 2026Current | 105 |
Each release is immutable and dated, so a figure quoted here traces back to the week it was published.
Reading this dashboard
- Reporting — a daily reading or source report within the last 30 days of the data cutoff.
- Inactive — silent for longer. Stations stop and restart; a stale date is not proof a station has closed.
- Removed — OpenAQ stopped returning it. Only a weekly comparison can see this, so it is recorded from the first release on.
- Restarted — back after a silence of more than 30 days between two readings.
- Full day — a daily reading built from at least 18 of its 24 hours, not flagged by the provider and not negative. Anything else is a partial or flagged day: kept in “All days”, left out of “Full days”.