{"city":"Forest Grove","country":"United States","lat":45.519840240478516,"lon":-123.11065673828125,"range":"48h","license":"CC BY 4.0","source":"https://cerns.io","hourly":[{"datetime_utc":"2026-07-20T01:00:00Z","aqi":12,"aqi_min":7,"aqi_max":28,"pm25":3.03,"pm10":null,"stations":13},{"datetime_utc":"2026-07-20T02:00:00Z","aqi":13,"aqi_min":7,"aqi_max":25,"pm25":3.08,"pm10":null,"stations":13},{"datetime_utc":"2026-07-20T03:00:00Z","aqi":13,"aqi_min":7,"aqi_max":25,"pm25":3.22,"pm10":null,"stations":14},{"datetime_utc":"2026-07-20T04:00:00Z","aqi":20,"aqi_min":7,"aqi_max":63,"pm25":4.68,"pm10":null,"stations":15},{"datetime_utc":"2026-07-20T05:00:00Z","aqi":15,"aqi_min":7,"aqi_max":26,"pm25":3.45,"pm10":null,"stations":15},{"datetime_utc":"2026-07-20T06:00:00Z","aqi":14,"aqi_min":7,"aqi_max":26,"pm25":3.42,"pm10":null,"stations":14},{"datetime_utc":"2026-07-20T07:00:00Z","aqi":18,"aqi_min":8,"aqi_max":42,"pm25":4.28,"pm10":null,"stations":14},{"datetime_utc":"2026-07-20T08:00:00Z","aqi":15,"aqi_min":8,"aqi_max":28,"pm25":3.71,"pm10":null,"stations":13},{"datetime_utc":"2026-07-20T09:00:00Z","aqi":16,"aqi_min":8,"aqi_max":28,"pm25":3.76,"pm10":null,"stations":12},{"datetime_utc":"2026-07-20T10:00:00Z","aqi":17,"aqi_min":9,"aqi_max":28,"pm25":4.07,"pm10":null,"stations":14},{"datetime_utc":"2026-07-20T11:00:00Z","aqi":20,"aqi_min":9,"aqi_max":46,"pm25":4.68,"pm10":null,"stations":16},{"datetime_utc":"2026-07-20T12:00:00Z","aqi":19,"aqi_min":8,"aqi_max":36,"pm25":4.55,"pm10":null,"stations":14},{"datetime_utc":"2026-07-20T13:00:00Z","aqi":19,"aqi_min":9,"aqi_max":33,"pm25":4.49,"pm10":null,"stations":13},{"datetime_utc":"2026-07-20T14:00:00Z","aqi":23,"aqi_min":9,"aqi_max":76,"pm25":5.57,"pm10":null,"stations":15},{"datetime_utc":"2026-07-20T15:00:00Z","aqi":38,"aqi_min":9,"aqi_max":153,"pm25":9.24,"pm10":null,"stations":15},{"datetime_utc":"2026-07-20T16:00:00Z","aqi":49,"aqi_min":8,"aqi_max":180,"pm25":11.66,"pm10":null,"stations":18},{"datetime_utc":"2026-07-20T17:00:00Z","aqi":42,"aqi_min":8,"aqi_max":150,"pm25":10.14,"pm10":null,"stations":16},{"datetime_utc":"2026-07-20T18:00:00Z","aqi":16,"aqi_min":8,"aqi_max":29,"pm25":3.9,"pm10":null,"stations":13},{"datetime_utc":"2026-07-20T19:00:00Z","aqi":20,"aqi_min":8,"aqi_max":51,"pm25":4.93,"pm10":null,"stations":17},{"datetime_utc":"2026-07-20T20:00:00Z","aqi":20,"aqi_min":8,"aqi_max":42,"pm25":4.65,"pm10":null,"stations":14},{"datetime_utc":"2026-07-20T21:00:00Z","aqi":28,"aqi_min":8,"aqi_max":106,"pm25":6.83,"pm10":null,"stations":18},{"datetime_utc":"2026-07-20T22:00:00Z","aqi":17,"aqi_min":7,"aqi_max":29,"pm25":3.98,"pm10":null,"stations":12},{"datetime_utc":"2026-07-20T23:00:00Z","aqi":67,"aqi_min":19,"aqi_max":177,"pm25":19.59,"pm10":null,"stations":8},{"datetime_utc":"2026-07-21T00:00:00Z","aqi":26,"aqi_min":21,"aqi_max":35,"pm25":6.34,"pm10":null,"stations":3},{"datetime_utc":"2026-07-21T01:00:00Z","aqi":44,"aqi_min":8,"aqi_max":162,"pm25":10.62,"pm10":null,"stations":17},{"datetime_utc":"2026-07-21T02:00:00Z","aqi":24,"aqi_min":8,"aqi_max":55,"pm25":5.68,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T03:00:00Z","aqi":53,"aqi_min":9,"aqi_max":180,"pm25":13.24,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T04:00:00Z","aqi":72,"aqi_min":10,"aqi_max":284,"pm25":22.01,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T05:00:00Z","aqi":28,"aqi_min":10,"aqi_max":60,"pm25":6.82,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T06:00:00Z","aqi":55,"aqi_min":10,"aqi_max":186,"pm25":14.24,"pm10":null,"stations":19},{"datetime_utc":"2026-07-21T07:00:00Z","aqi":30,"aqi_min":11,"aqi_max":74,"pm25":7.33,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T08:00:00Z","aqi":30,"aqi_min":10,"aqi_max":69,"pm25":7.29,"pm10":null,"stations":11},{"datetime_utc":"2026-07-21T09:00:00Z","aqi":48,"aqi_min":30,"aqi_max":67,"pm25":11.49,"pm10":null,"stations":4},{"datetime_utc":"2026-07-21T10:00:00Z","aqi":28,"aqi_min":10,"aqi_max":50,"pm25":6.7,"pm10":null,"stations":15},{"datetime_utc":"2026-07-21T11:00:00Z","aqi":25,"aqi_min":11,"aqi_max":46,"pm25":6.13,"pm10":null,"stations":16},{"datetime_utc":"2026-07-21T12:00:00Z","aqi":29,"aqi_min":13,"aqi_max":52,"pm25":6.91,"pm10":null,"stations":12},{"datetime_utc":"2026-07-21T13:00:00Z","aqi":38,"aqi_min":14,"aqi_max":65,"pm25":8.96,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T14:00:00Z","aqi":31,"aqi_min":12,"aqi_max":49,"pm25":7.39,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T15:00:00Z","aqi":29,"aqi_min":13,"aqi_max":48,"pm25":6.97,"pm10":null,"stations":12},{"datetime_utc":"2026-07-21T16:00:00Z","aqi":44,"aqi_min":33,"aqi_max":53,"pm25":10.59,"pm10":null,"stations":4},{"datetime_utc":"2026-07-21T17:00:00Z","aqi":32,"aqi_min":15,"aqi_max":51,"pm25":7.7,"pm10":null,"stations":13},{"datetime_utc":"2026-07-21T18:00:00Z","aqi":45,"aqi_min":18,"aqi_max":81,"pm25":10.9,"pm10":null,"stations":17},{"datetime_utc":"2026-07-21T19:00:00Z","aqi":48,"aqi_min":20,"aqi_max":74,"pm25":11.4,"pm10":null,"stations":12},{"datetime_utc":"2026-07-21T20:00:00Z","aqi":69,"aqi_min":25,"aqi_max":172,"pm25":20.62,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T21:00:00Z","aqi":66,"aqi_min":24,"aqi_max":106,"pm25":19.15,"pm10":null,"stations":14},{"datetime_utc":"2026-07-21T22:00:00Z","aqi":74,"aqi_min":56,"aqi_max":100,"pm25":23.07,"pm10":null,"stations":5},{"datetime_utc":"2026-07-21T23:00:00Z","aqi":77,"aqi_min":63,"aqi_max":105,"pm25":24.41,"pm10":null,"stations":3},{"datetime_utc":"2026-07-22T00:00:00Z","aqi":76,"aqi_min":71,"aqi_max":81,"pm25":23.95,"pm10":null,"stations":2}],"daily":[{"date":"2026-07-20","aqi_avg":23,"aqi_min":12,"aqi_max":67,"aqi_color":"#059669","aqi_label":"Good","pm25_avg":5.7,"pm10_avg":null,"hours":23,"stations_avg":14},{"date":"2026-07-21","aqi_avg":44,"aqi_min":24,"aqi_max":77,"aqi_color":"#059669","aqi_label":"Good","pm25_avg":11.5,"pm10_avg":null,"hours":24,"stations_avg":12},{"date":"2026-07-22","aqi_avg":76,"aqi_min":76,"aqi_max":76,"aqi_color":"#d97706","aqi_label":"Moderate","pm25_avg":23.9,"pm10_avg":null,"hours":1,"stations_avg":2}]}