Bring data together.
Import approved CSV exports or connect sensor gateways.
Data freshness by provenance
| Provenance | Rows | Latest observation | Age |
|---|---|---|---|
| Modelled (CAMS) - not a ground station; index pre-dates the CPCB switch | 14 | 2026-11-10 08:00 | 5.4 h |
| Modelled (CAMS) - not a ground station | 14 | 2026-11-10 11:00 | 2.4 h |
Age is measured against the observation timestamp, not the time it was pulled. A stale source is a stale source even if the import succeeded.
Live sources
Pull current pollutant and weather values for every configured zone from real external services. Each row keeps its own source, timestamp and quality flag.
| Source | Kind | Status |
|---|---|---|
| CPCB · data.gov.in | Official ground stations | Needs CPCB_API_KEY |
| Open-Meteo · CAMS | Modelled reanalysis — not a sensor | Available (no key) |
A modelled value is not a measurement. CAMS rows are stored as Modelled (CAMS) - not a ground station so they are never mistaken for CPCB readings.
Reference directories
Official geography and infrastructure are imported from their own pages and kept separate from measurements.
CSV readings import
Required: station, zone, observed_at, pm25, pm10, aqi. Optional: no2, so2, co, o3, source, latitude, longitude, quality_flag.
Sensor API
POST JSON to /api/ingest/reading with X-API-Key. Configure CLEAN_AIR_INGEST_TOKEN.
{"station":"Sensor-001","zone":"Udyog Vihar","observed_at":"2026-11-10T08:30:00","pm25":82.4,"pm10":151.2,"aqi":151}| Source | Seen | Loaded | Status | Time (UTC) | Notes |
|---|---|---|---|---|---|
| Live sources | 7 | 7 | Completed | 2026-11-10 11:39 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Live sources | 7 | 7 | Completed | 2026-11-10 11:35 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Completed | 2026-11-10 11:19 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Completed | 2026-11-10 11:19 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Completed | 2026-11-10 09:15 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Completed | 2026-11-10 09:06 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Completed | 2026-11-10 09:06 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Completed | 2026-11-10 09:06 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Completed | 2026-11-10 08:42 | CPCB not configured: set CPCB_API_KEY (free from data.gov.in) to add official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Partial | 2026-11-10 08:40 | CPCB skipped: set CPCB_API_KEY (free from data.gov.in) to pull official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Partial | 2026-11-10 08:37 | CPCB skipped: set CPCB_API_KEY (free from data.gov.in) to pull official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Partial | 2026-11-10 08:37 | CPCB skipped: set CPCB_API_KEY (free from data.gov.in) to pull official ground stations. |
| Open-Meteo CAMS (7 zones) | 7 | 7 | Partial | 2026-11-10 07:41 | CPCB skipped: set CPCB_API_KEY (free from data.gov.in) to pull official ground stations. |