{"city":"Ribeirão Preto","country":"Brazil","lat":-21.177499771118164,"lon":-47.810279846191406,"range":"48h","license":"CC BY 4.0","source":"https://cerns.io","hourly":[{"datetime_utc":"2026-05-28T15:00:00Z","aqi":51,"aqi_min":51,"aqi_max":51,"pm25":12.1,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T16:00:00Z","aqi":35,"aqi_min":35,"aqi_max":35,"pm25":8.4,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T18:00:00Z","aqi":47,"aqi_min":47,"aqi_max":47,"pm25":11.28,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T20:00:00Z","aqi":31,"aqi_min":31,"aqi_max":31,"pm25":7.44,"pm10":null,"stations":1},{"datetime_utc":"2026-05-28T22:00:00Z","aqi":371,"aqi_min":25,"aqi_max":500,"pm25":338.12,"pm10":null,"stations":2},{"datetime_utc":"2026-05-29T01:00:00Z","aqi":46,"aqi_min":46,"aqi_max":46,"pm25":11.04,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T02:00:00Z","aqi":53,"aqi_min":53,"aqi_max":53,"pm25":13.05,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T05:00:00Z","aqi":154,"aqi_min":154,"aqi_max":154,"pm25":61.31,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T06:00:00Z","aqi":16,"aqi_min":16,"aqi_max":16,"pm25":3.84,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T07:00:00Z","aqi":42,"aqi_min":42,"aqi_max":42,"pm25":10.08,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T09:00:00Z","aqi":140,"aqi_min":140,"aqi_max":140,"pm25":51.34,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T12:00:00Z","aqi":20,"aqi_min":20,"aqi_max":20,"pm25":4.8,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T13:00:00Z","aqi":69,"aqi_min":24,"aqi_max":100,"pm25":20.58,"pm10":null,"stations":2},{"datetime_utc":"2026-05-29T15:00:00Z","aqi":63,"aqi_min":63,"aqi_max":63,"pm25":17.81,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T17:00:00Z","aqi":34,"aqi_min":34,"aqi_max":34,"pm25":8.16,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T19:00:00Z","aqi":23,"aqi_min":11,"aqi_max":34,"pm25":5.4,"pm10":null,"stations":2},{"datetime_utc":"2026-05-29T20:00:00Z","aqi":30,"aqi_min":30,"aqi_max":30,"pm25":7.2,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T21:00:00Z","aqi":19,"aqi_min":19,"aqi_max":19,"pm25":4.56,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T22:00:00Z","aqi":28,"aqi_min":28,"aqi_max":28,"pm25":6.72,"pm10":null,"stations":1},{"datetime_utc":"2026-05-29T23:00:00Z","aqi":36,"aqi_min":36,"aqi_max":36,"pm25":8.64,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T01:00:00Z","aqi":182,"aqi_min":182,"aqi_max":182,"pm25":115.54,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T02:00:00Z","aqi":15,"aqi_min":2,"aqi_max":29,"pm25":3.72,"pm10":null,"stations":2},{"datetime_utc":"2026-05-30T04:00:00Z","aqi":126,"aqi_min":126,"aqi_max":126,"pm25":45.65,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T05:00:00Z","aqi":80,"aqi_min":80,"aqi_max":80,"pm25":25.89,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T06:00:00Z","aqi":152,"aqi_min":152,"aqi_max":152,"pm25":57.44,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T07:00:00Z","aqi":51,"aqi_min":23,"aqi_max":65,"pm25":12.14,"pm10":null,"stations":2},{"datetime_utc":"2026-05-30T08:00:00Z","aqi":38,"aqi_min":23,"aqi_max":52,"pm25":9.05,"pm10":null,"stations":2},{"datetime_utc":"2026-05-30T09:00:00Z","aqi":72,"aqi_min":72,"aqi_max":72,"pm25":22.09,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T12:00:00Z","aqi":23,"aqi_min":23,"aqi_max":23,"pm25":5.52,"pm10":null,"stations":1},{"datetime_utc":"2026-05-30T13:00:00Z","aqi":32,"aqi_min":32,"aqi_max":32,"pm25":7.68,"pm10":null,"stations":1}],"daily":[{"date":"2026-05-28","aqi_avg":107,"aqi_min":31,"aqi_max":371,"aqi_color":"#ea580c","aqi_label":"Unhealthy for sensitive groups","pm25_avg":75.5,"pm10_avg":null,"hours":5,"stations_avg":1},{"date":"2026-05-29","aqi_avg":52,"aqi_min":16,"aqi_max":154,"aqi_color":"#d97706","aqi_label":"Moderate","pm25_avg":15.6,"pm10_avg":null,"hours":15,"stations_avg":1},{"date":"2026-05-30","aqi_avg":77,"aqi_min":15,"aqi_max":182,"aqi_color":"#d97706","aqi_label":"Moderate","pm25_avg":30.5,"pm10_avg":null,"hours":10,"stations_avg":1}]}