{"city":"Saint John","country":"Canada","lat":45.27075958251953,"lon":-66.05615997314453,"range":"7d","license":"CC BY 4.0","source":"https://cerns.io","hourly":[{"datetime_utc":"2026-05-23T17:00:00Z","aqi":94,"aqi_min":77,"aqi_max":108,"pm25":32.42,"pm10":null,"stations":3},{"datetime_utc":"2026-05-23T18:00:00Z","aqi":42,"aqi_min":42,"aqi_max":42,"pm25":10.08,"pm10":null,"stations":1},{"datetime_utc":"2026-05-23T21:00:00Z","aqi":24,"aqi_min":24,"aqi_max":24,"pm25":5.76,"pm10":null,"stations":1},{"datetime_utc":"2026-05-23T23:00:00Z","aqi":100,"aqi_min":100,"aqi_max":100,"pm25":35.4,"pm10":null,"stations":1},{"datetime_utc":"2026-05-24T03:00:00Z","aqi":94,"aqi_min":94,"aqi_max":94,"pm25":32.55,"pm10":null,"stations":1},{"datetime_utc":"2026-05-24T05:00:00Z","aqi":43,"aqi_min":11,"aqi_max":80,"pm25":10.39,"pm10":null,"stations":3},{"datetime_utc":"2026-05-24T06:00:00Z","aqi":15,"aqi_min":15,"aqi_max":15,"pm25":3.6,"pm10":null,"stations":1},{"datetime_utc":"2026-05-24T07:00:00Z","aqi":18,"aqi_min":14,"aqi_max":22,"pm25":4.32,"pm10":null,"stations":2},{"datetime_utc":"2026-05-24T11:00:00Z","aqi":38,"aqi_min":38,"aqi_max":38,"pm25":9.12,"pm10":null,"stations":1},{"datetime_utc":"2026-05-24T13:00:00Z","aqi":90,"aqi_min":17,"aqi_max":142,"pm25":30.64,"pm10":null,"stations":4},{"datetime_utc":"2026-05-24T14:00:00Z","aqi":170,"aqi_min":16,"aqi_max":250,"pm25":92.24,"pm10":null,"stations":3},{"datetime_utc":"2026-05-24T15:00:00Z","aqi":22,"aqi_min":15,"aqi_max":28,"pm25":5.2,"pm10":null,"stations":3},{"datetime_utc":"2026-05-24T16:00:00Z","aqi":22,"aqi_min":15,"aqi_max":28,"pm25":5.2,"pm10":null,"stations":3},{"datetime_utc":"2026-05-24T17:00:00Z","aqi":87,"aqi_min":81,"aqi_max":92,"pm25":28.98,"pm10":null,"stations":2},{"datetime_utc":"2026-05-24T18:00:00Z","aqi":26,"aqi_min":26,"aqi_max":26,"pm25":6.24,"pm10":null,"stations":1},{"datetime_utc":"2026-05-24T19:00:00Z","aqi":131,"aqi_min":131,"aqi_max":131,"pm25":47.68,"pm10":null,"stations":1},{"datetime_utc":"2026-05-24T20:00:00Z","aqi":60,"aqi_min":24,"aqi_max":83,"pm25":16.54,"pm10":null,"stations":2},{"datetime_utc":"2026-05-24T22:00:00Z","aqi":13,"aqi_min":11,"aqi_max":16,"pm25":3.24,"pm10":null,"stations":2},{"datetime_utc":"2026-05-24T23:00:00Z","aqi":51,"aqi_min":51,"aqi_max":51,"pm25":12.1,"pm10":null,"stations":1},{"datetime_utc":"2026-05-25T01:00:00Z","aqi":30,"aqi_min":30,"aqi_max":30,"pm25":7.2,"pm10":null,"stations":1},{"datetime_utc":"2026-05-25T03:00:00Z","aqi":18,"aqi_min":6,"aqi_max":30,"pm25":4.32,"pm10":null,"stations":2},{"datetime_utc":"2026-05-25T08:00:00Z","aqi":20,"aqi_min":18,"aqi_max":21,"pm25":4.68,"pm10":null,"stations":2},{"datetime_utc":"2026-05-25T09:00:00Z","aqi":86,"aqi_min":10,"aqi_max":151,"pm25":28.95,"pm10":null,"stations":2},{"datetime_utc":"2026-05-25T10:00:00Z","aqi":58,"aqi_min":10,"aqi_max":109,"pm25":15.56,"pm10":null,"stations":3},{"datetime_utc":"2026-05-25T11:00:00Z","aqi":20,"aqi_min":18,"aqi_max":21,"pm25":4.68,"pm10":null,"stations":2},{"datetime_utc":"2026-05-25T12:00:00Z","aqi":67,"aqi_min":14,"aqi_max":88,"pm25":19.81,"pm10":null,"stations":3},{"datetime_utc":"2026-05-25T13:00:00Z","aqi":20,"aqi_min":19,"aqi_max":22,"pm25":4.92,"pm10":null,"stations":2},{"datetime_utc":"2026-05-25T14:00:00Z","aqi":184,"aqi_min":79,"aqi_max":263,"pm25":119.24,"pm10":null,"stations":2},{"datetime_utc":"2026-05-25T18:00:00Z","aqi":39,"aqi_min":39,"aqi_max":39,"pm25":9.36,"pm10":null,"stations":1},{"datetime_utc":"2026-05-25T21:00:00Z","aqi":8,"aqi_min":8,"aqi_max":8,"pm25":1.92,"pm10":null,"stations":1},{"datetime_utc":"2026-05-25T23:00:00Z","aqi":38,"aqi_min":30,"aqi_max":45,"pm25":9.0,"pm10":null,"stations":2},{"datetime_utc":"2026-05-26T01:00:00Z","aqi":23,"aqi_min":14,"aqi_max":35,"pm25":5.58,"pm10":null,"stations":4},{"datetime_utc":"2026-05-26T02:00:00Z","aqi":85,"aqi_min":21,"aqi_max":146,"pm25":28.08,"pm10":null,"stations":3},{"datetime_utc":"2026-05-26T03:00:00Z","aqi":190,"aqi_min":5,"aqi_max":388,"pm25":130.22,"pm10":null,"stations":3},{"datetime_utc":"2026-05-26T05:00:00Z","aqi":14,"aqi_min":14,"aqi_max":14,"pm25":3.36,"pm10":null,"stations":1},{"datetime_utc":"2026-05-26T06:00:00Z","aqi":24,"aqi_min":24,"aqi_max":24,"pm25":5.76,"pm10":null,"stations":1},{"datetime_utc":"2026-05-26T08:00:00Z","aqi":24,"aqi_min":24,"aqi_max":24,"pm25":5.76,"pm10":null,"stations":1},{"datetime_utc":"2026-05-26T14:00:00Z","aqi":500,"aqi_min":500,"aqi_max":500,"pm25":769.14,"pm10":null,"stations":1},{"datetime_utc":"2026-05-26T15:00:00Z","aqi":21,"aqi_min":21,"aqi_max":21,"pm25":5.04,"pm10":null,"stations":1},{"datetime_utc":"2026-05-26T17:00:00Z","aqi":28,"aqi_min":28,"aqi_max":28,"pm25":6.72,"pm10":null,"stations":1},{"datetime_utc":"2026-05-26T18:00:00Z","aqi":48,"aqi_min":22,"aqi_max":76,"pm25":11.4,"pm10":null,"stations":4},{"datetime_utc":"2026-05-26T19:00:00Z","aqi":25,"aqi_min":20,"aqi_max":30,"pm25":6.0,"pm10":null,"stations":3},{"datetime_utc":"2026-05-26T21:00:00Z","aqi":35,"aqi_min":35,"aqi_max":35,"pm25":8.4,"pm10":null,"stations":1},{"datetime_utc":"2026-05-26T22:00:00Z","aqi":67,"aqi_min":59,"aqi_max":75,"pm25":19.71,"pm10":null,"stations":2},{"datetime_utc":"2026-05-26T23:00:00Z","aqi":17,"aqi_min":10,"aqi_max":24,"pm25":4.08,"pm10":null,"stations":2},{"datetime_utc":"2026-05-27T00:00:00Z","aqi":161,"aqi_min":25,"aqi_max":197,"pm25":75.29,"pm10":null,"stations":2},{"datetime_utc":"2026-05-27T01:00:00Z","aqi":64,"aqi_min":11,"aqi_max":167,"pm25":18.37,"pm10":null,"stations":4},{"datetime_utc":"2026-05-27T02:00:00Z","aqi":28,"aqi_min":23,"aqi_max":31,"pm25":6.62,"pm10":null,"stations":5},{"datetime_utc":"2026-05-27T03:00:00Z","aqi":27,"aqi_min":12,"aqi_max":42,"pm25":6.4,"pm10":null,"stations":3},{"datetime_utc":"2026-05-27T04:00:00Z","aqi":51,"aqi_min":11,"aqi_max":103,"pm25":12.3,"pm10":null,"stations":5},{"datetime_utc":"2026-05-27T10:00:00Z","aqi":21,"aqi_min":16,"aqi_max":26,"pm25":5.04,"pm10":null,"stations":2},{"datetime_utc":"2026-05-27T11:00:00Z","aqi":21,"aqi_min":19,"aqi_max":23,"pm25":5.04,"pm10":null,"stations":2},{"datetime_utc":"2026-05-27T12:00:00Z","aqi":25,"aqi_min":22,"aqi_max":27,"pm25":5.88,"pm10":null,"stations":2},{"datetime_utc":"2026-05-27T13:00:00Z","aqi":31,"aqi_min":27,"aqi_max":35,"pm25":7.44,"pm10":null,"stations":2},{"datetime_utc":"2026-05-27T14:00:00Z","aqi":61,"aqi_min":61,"aqi_max":61,"pm25":16.86,"pm10":null,"stations":1},{"datetime_utc":"2026-05-27T18:00:00Z","aqi":258,"aqi_min":258,"aqi_max":258,"pm25":208.02,"pm10":null,"stations":1},{"datetime_utc":"2026-05-27T19:00:00Z","aqi":107,"aqi_min":107,"aqi_max":107,"pm25":37.94,"pm10":null,"stations":1},{"datetime_utc":"2026-05-27T21:00:00Z","aqi":127,"aqi_min":76,"aqi_max":166,"pm25":45.92,"pm10":null,"stations":3},{"datetime_utc":"2026-05-27T23:00:00Z","aqi":47,"aqi_min":20,"aqi_max":63,"pm25":11.3,"pm10":null,"stations":2},{"datetime_utc":"2026-05-28T01:00:00Z","aqi":28,"aqi_min":28,"aqi_max":28,"pm25":6.72,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T11:00:00Z","aqi":27,"aqi_min":27,"aqi_max":27,"pm25":6.48,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T13:00:00Z","aqi":16,"aqi_min":16,"aqi_max":16,"pm25":3.84,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T14:00:00Z","aqi":10,"aqi_min":10,"aqi_max":10,"pm25":2.4,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T15:00:00Z","aqi":20,"aqi_min":17,"aqi_max":29,"pm25":4.86,"pm10":null,"stations":4},{"datetime_utc":"2026-05-28T17:00:00Z","aqi":19,"aqi_min":13,"aqi_max":25,"pm25":4.56,"pm10":null,"stations":2},{"datetime_utc":"2026-05-28T21:00:00Z","aqi":42,"aqi_min":23,"aqi_max":57,"pm25":10.24,"pm10":null,"stations":2},{"datetime_utc":"2026-05-28T22:00:00Z","aqi":21,"aqi_min":21,"aqi_max":21,"pm25":5.04,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T23:00:00Z","aqi":35,"aqi_min":35,"aqi_max":35,"pm25":8.4,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T00:00:00Z","aqi":21,"aqi_min":21,"aqi_max":21,"pm25":5.04,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T01:00:00Z","aqi":500,"aqi_min":500,"aqi_max":500,"pm25":1127.03,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T02:00:00Z","aqi":23,"aqi_min":23,"aqi_max":23,"pm25":5.52,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T03:00:00Z","aqi":30,"aqi_min":30,"aqi_max":30,"pm25":7.2,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T05:00:00Z","aqi":17,"aqi_min":17,"aqi_max":17,"pm25":4.08,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T07:00:00Z","aqi":63,"aqi_min":63,"aqi_max":63,"pm25":17.81,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T08:00:00Z","aqi":16,"aqi_min":12,"aqi_max":20,"pm25":3.84,"pm10":null,"stations":2},{"datetime_utc":"2026-05-29T09:00:00Z","aqi":21,"aqi_min":20,"aqi_max":22,"pm25":5.04,"pm10":null,"stations":2},{"datetime_utc":"2026-05-29T11:00:00Z","aqi":74,"aqi_min":23,"aqi_max":113,"pm25":22.95,"pm10":null,"stations":2},{"datetime_utc":"2026-05-29T12:00:00Z","aqi":33,"aqi_min":22,"aqi_max":43,"pm25":7.92,"pm10":null,"stations":3},{"datetime_utc":"2026-05-29T13:00:00Z","aqi":34,"aqi_min":34,"aqi_max":34,"pm25":8.16,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T14:00:00Z","aqi":80,"aqi_min":24,"aqi_max":154,"pm25":26.03,"pm10":null,"stations":4},{"datetime_utc":"2026-05-29T15:00:00Z","aqi":22,"aqi_min":22,"aqi_max":22,"pm25":5.28,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T16:00:00Z","aqi":35,"aqi_min":21,"aqi_max":55,"pm25":8.27,"pm10":null,"stations":3},{"datetime_utc":"2026-05-29T21:00:00Z","aqi":58,"aqi_min":58,"aqi_max":58,"pm25":15.43,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T22:00:00Z","aqi":24,"aqi_min":16,"aqi_max":34,"pm25":5.8,"pm10":null,"stations":6},{"datetime_utc":"2026-05-29T23:00:00Z","aqi":18,"aqi_min":6,"aqi_max":30,"pm25":4.32,"pm10":null,"stations":2},{"datetime_utc":"2026-05-30T00:00:00Z","aqi":23,"aqi_min":23,"aqi_max":23,"pm25":5.52,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T01:00:00Z","aqi":30,"aqi_min":28,"aqi_max":32,"pm25":7.2,"pm10":null,"stations":3},{"datetime_utc":"2026-05-30T02:00:00Z","aqi":6,"aqi_min":6,"aqi_max":6,"pm25":1.44,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T03:00:00Z","aqi":88,"aqi_min":28,"aqi_max":137,"pm25":29.64,"pm10":null,"stations":3},{"datetime_utc":"2026-05-30T04:00:00Z","aqi":12,"aqi_min":5,"aqi_max":19,"pm25":2.88,"pm10":null,"stations":2},{"datetime_utc":"2026-05-30T05:00:00Z","aqi":27,"aqi_min":26,"aqi_max":29,"pm25":6.48,"pm10":null,"stations":3},{"datetime_utc":"2026-05-30T06:00:00Z","aqi":28,"aqi_min":28,"aqi_max":28,"pm25":6.72,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T08:00:00Z","aqi":28,"aqi_min":26,"aqi_max":29,"pm25":6.6,"pm10":null,"stations":2},{"datetime_utc":"2026-05-30T09:00:00Z","aqi":29,"aqi_min":29,"aqi_max":29,"pm25":6.96,"pm10":null,"stations":1}],"daily":[{"date":"2026-05-23","aqi_avg":65,"aqi_min":24,"aqi_max":100,"aqi_color":"#d97706","aqi_label":"Moderate","pm25_avg":20.9,"pm10_avg":null,"hours":4,"stations_avg":2},{"date":"2026-05-24","aqi_avg":59,"aqi_min":13,"aqi_max":170,"aqi_color":"#d97706","aqi_label":"Moderate","pm25_avg":20.5,"pm10_avg":null,"hours":15,"stations_avg":2},{"date":"2026-05-25","aqi_avg":49,"aqi_min":8,"aqi_max":184,"aqi_color":"#059669","aqi_label":"Good","pm25_avg":19.1,"pm10_avg":null,"hours":12,"stations_avg":2},{"date":"2026-05-26","aqi_avg":79,"aqi_min":14,"aqi_max":500,"aqi_color":"#d97706","aqi_label":"Moderate","pm25_avg":72.1,"pm10_avg":null,"hours":14,"stations_avg":2},{"date":"2026-05-27","aqi_avg":74,"aqi_min":21,"aqi_max":258,"aqi_color":"#d97706","aqi_label":"Moderate","pm25_avg":33.0,"pm10_avg":null,"hours":14,"stations_avg":2},{"date":"2026-05-28","aqi_avg":24,"aqi_min":10,"aqi_max":42,"aqi_color":"#059669","aqi_label":"Good","pm25_avg":5.8,"pm10_avg":null,"hours":9,"stations_avg":2},{"date":"2026-05-29","aqi_avg":63,"aqi_min":16,"aqi_max":500,"aqi_color":"#d97706","aqi_label":"Moderate","pm25_avg":75.3,"pm10_avg":null,"hours":17,"stations_avg":2},{"date":"2026-05-30","aqi_avg":30,"aqi_min":6,"aqi_max":88,"aqi_color":"#059669","aqi_label":"Good","pm25_avg":8.2,"pm10_avg":null,"hours":9,"stations_avg":2}]}