🌿 Air Quality

Real-time EPA Air Quality Index and pollutant breakdown powered by Open-Meteo.

Hourly data
Detecting location…
PM2.5
μg/m³
PM10
μg/m³
Ozone (O₃)
μg/m³
NO₂
μg/m³

AQI — Past 24 Hours

Loading…
24h ago Now

EPA AQI Scale

<div id="guide-good" class="flex items-start gap-3 p-2 rounded-lg transition-all" style="background:#052e16"> <div class="rounded px-2 py-0.5 text-xs font-bold font-mono flex-shrink-0" style="color:#22c55e;background:#22c55e22">0–50</div> <div> <div class="text-xs font-semibold" style="color:#22c55e">Good</div> <div class="text-xs text-slate-500">Air quality is satisfactory.</div> </div> </div> <div id="guide-moderate" class="flex items-start gap-3 p-2 rounded-lg transition-all" style="background:#1c1500"> <div class="rounded px-2 py-0.5 text-xs font-bold font-mono flex-shrink-0" style="color:#eab308;background:#eab30822">51–100</div> <div> <div class="text-xs font-semibold" style="color:#eab308">Moderate</div> <div class="text-xs text-slate-500">Acceptable; some pollutants may be a concern for a small number of people.</div> </div> </div> <div id="guide-unhealthy" class="flex items-start gap-3 p-2 rounded-lg transition-all" style="background:#1c0700"> <div class="rounded px-2 py-0.5 text-xs font-bold font-mono flex-shrink-0" style="color:#f97316;background:#f9731622">101–150</div> <div> <div class="text-xs font-semibold" style="color:#f97316">Unhealthy for Sensitive Groups</div> <div class="text-xs text-slate-500">Members of sensitive groups may experience health effects.</div> </div> </div> <div id="guide-unhealthy" class="flex items-start gap-3 p-2 rounded-lg transition-all" style="background:#1c0000"> <div class="rounded px-2 py-0.5 text-xs font-bold font-mono flex-shrink-0" style="color:#ef4444;background:#ef444422">151–200</div> <div> <div class="text-xs font-semibold" style="color:#ef4444">Unhealthy</div> <div class="text-xs text-slate-500">Everyone may begin to experience health effects.</div> </div> </div> <div id="guide-very" class="flex items-start gap-3 p-2 rounded-lg transition-all" style="background:#0f0015"> <div class="rounded px-2 py-0.5 text-xs font-bold font-mono flex-shrink-0" style="color:#a855f7;background:#a855f722">201–300</div> <div> <div class="text-xs font-semibold" style="color:#a855f7">Very Unhealthy</div> <div class="text-xs text-slate-500">Health warnings of emergency conditions.</div> </div> </div> <div id="guide-hazardous" class="flex items-start gap-3 p-2 rounded-lg transition-all" style="background:#150000"> <div class="rounded px-2 py-0.5 text-xs font-bold font-mono flex-shrink-0" style="color:#991b1b;background:#991b1b22">301+</div> <div> <div class="text-xs font-semibold" style="color:#991b1b">Hazardous</div> <div class="text-xs text-slate-500">Health alert: everyone may experience serious health effects.</div> </div> </div>

Current Advice

🌿

Air Quality Portrait

A FLUX portrait styled by current AQI

🌬️

Generate a portrait of Matthew styled by the current air quality

Model:

Data: Open-Meteo Air Quality API · Part of awesome-public-real-time-datasets