Minnesota Air Quality
Northern Twin Cities Metro is the worst air in Minnesota right now at an index of 25, which is Good, from fine particles (PM2.5). AirNow carries 17 reporting areas in the state. No air quality alert is in force.
- Reporting areas
- 17
- Worst index now
- 25
- Alerts in force
- 0
- Towns under smoke
- Unavailable
Radar
Reflectivity now over Minnesota. Open it to see the particulate forecast on the map.























Radar mosaic and map layers from NOAA MRMS and NOAA National Air Quality Forecast Capability. Boundaries from the Iowa Environmental Mesonet.
Alerts in force
An Air Quality Alert is issued by the National Weather Service on behalf of a state or local agency when pollution is expected to reach a level that harms health. An Air Stagnation Advisory means the air will not move enough to clear what is already in it.
None are in force in Minnesota right now. All Minnesota warnings.
By city, now and the days ahead17
Every AirNow reporting area in Minnesota: what its monitors measured this hour, and what the state or local agency that forecasts for it expects today and tomorrow. Each area links to the nearest town’s page.
| Reporting area | Now | Category now | Today | Tomorrow | Pollutant |
|---|---|---|---|---|---|
| Northern Twin Cities Metro | 25 | Good | Good | Good | PM2.5 |
| Central Minnesota | 22 | Good | Good | Good | PM2.5 |
| Twin Cities | 22 | Good | Good | Good | PM2.5 |
| Duluth Area | 21 | Good | Good | Good | PM2.5 |
| Minnesota Arrowhead | 21 | Good | Good | Good | PM2.5 |
| North Central Minnesota | 21 | Good | Good | Good | PM2.5 |
| Southern Twin Cities Metro | 20 | Good | Good | Good | Ozone |
| Southwestern Minnesota | 20 | Good | Good | Good | PM2.5 |
| St. Cloud Area | 20 | Good | Good | Good | PM2.5 |
| West Central Minnesota | 20 | Good | Good | Good | PM2.5 |
| East Central Minnesota | 19 | Good | Good | Good | PM2.5 |
| Mississippi River Valley | 19 | Good | Good | Good | Ozone |
| Rochester Area | 19 | Good | Good | Good | Ozone |
| South Central Minnesota | 19 | Good | Good | Good | Ozone |
| Red River Valley North | 18 | Good | Good | Good | PM2.5 |
| Red River Valley South | 18 | Good | Good | Good | PM2.5 |
| Northwestern Minnesota | 17 | Good | Good | Good | Ozone |
The forecaster’s discussion
Written by Minnesota Pollution Control Agency for Northern Twin Cities Metro and filed with AirNow.
Continued below normal temperatures and the lack of wind moving persistently from a source region of elevated concentrations of fine particle pollution into Minnesota means continued Green (good) AQI statewide through the weekend and into next week.
Smoke
NOAA’s Hazard Mapping System smoke analysis could not be read just now.
What this means
The index runs from 0 to 500. Good is 0 to 50, Moderate to 100, Unhealthy for Sensitive Groups to 150, Unhealthy to 200, Very Unhealthy to 300, and Hazardous above that. The figure reported for a place is the highest index among the pollutants measured there, and the pollutant that produced it is named beside it.
What these numbers are. An index beside a monitor’s name is a measurement, published hourly by AirNow and preliminary until the operating agency certifies it. A category for today or tomorrow is a state or local agency forecaster’s own forecast for a reporting area. An hourly index is NOAA’s air quality model on a five-kilometer grid, not a reading from any instrument. Where a town has no monitor within reach, only the model figures appear, and the page says so.
Towns
Air quality for any town in Minnesota: what is measured nearby, the category forecast for today and tomorrow, and NOAA’s model hour by hour. Largest first.
- Minneapolis410,939 people
- Saint Paul303,176 people
- Rochester112,225 people
- Bloomington86,435 people
- Duluth86,110 people
- Brooklyn Park79,149 people
- Plymouth75,907 people
- Maple Grove68,385 people
- Woodbury67,855 people
- Eagan66,286 people
- Saint Cloud65,842 people
- Eden Prairie63,496 people
- West Coon Rapids62,528 people
- Coon Rapids62,240 people
- Blaine62,124 people
- Burnsville61,481 people
- Lakeville60,633 people
- Minnetonka51,669 people
- Apple Valley51,221 people
- Edina50,138 people
- Minnetonka Mills50,117 people
- Saint Louis Park45,250 people
- Moorhead42,005 people
- Mankato41,044 people
- Maplewood40,567 people
- Shakopee39,981 people
- Richfield36,216 people
- Cottage Grove35,918 people
- Roseville35,580 people
- Inver Grove Heights34,857 people
- Andover32,213 people
- Brooklyn Center30,770 people
- Savage30,391 people
- Longfellow Community29,295 people
- Oakdale28,080 people
- Fridley27,713 people
- Winona27,094 people
- Shoreview26,477 people
- Ramsey25,828 people
- Owatonna25,725 people
- Chanhassen25,332 people
- Prior Lake25,282 people
- White Bear Lake25,205 people
- Chaska25,199 people
- Austin24,563 people
- Elk River23,963 people
- Champlin23,894 people
- Faribault23,650 people
- Rosemount23,413 people
- Crystal22,943 people
- Farmington22,731 people
- Hastings22,554 people
- New Brighton22,351 people
- Golden Valley21,270 people
- Lino Lakes21,050 people
- New Hope21,032 people
- Northfield20,380 people
- South Saint Paul20,160 people
- Columbia Heights19,715 people
- Willmar19,638 people
- Forest Lake19,618 people
- West Saint Paul19,540 people
- Stillwater18,924 people
- Albert Lea17,674 people
- Hopkins17,591 people
- Anoka17,350 people
- Sartell16,788 people
- Red Wing16,445 people
- Saint Michael16,399 people
- Hibbing16,204 people
- Ham Lake16,062 people
- Buffalo16,026 people
- Otsego15,551 people
- Bemidji14,594 people
- Robbinsdale14,418 people
- Hugo14,388 people
- Hutchinson13,913 people
- Marshall13,652 people
- North Mankato13,529 people
- Sauk Rapids13,424 people
- Brainerd13,371 people
- New Ulm13,327 people
- Monticello13,299 people
- Fergus Falls13,281 people
- Vadnais Heights13,266 people
- Worthington13,090 people
- Mounds View12,914 people
- Rogers12,562 people
- Cloquet12,075 people
- Waconia11,968 people
- Alexandria11,843 people
- East Bethel11,692 people
- North Saint Paul11,460 people
- Mendota Heights11,223 people
- Saint Peter11,196 people
- Grand Rapids11,127 people
- Big Lake10,368 people
- Little Canada10,319 people
- Fairmont10,221 people
- North Branch10,215 people
- Arden Hills9,951 people
- Hermantown9,706 people
- Mound9,336 people
- Waseca9,241 people
- Detroit Lakes9,002 people
- Thief River Falls8,752 people
- Victoria8,676 people
- Little Falls8,649 people
- East Grand Forks8,643 people
- Virginia8,587 people
- Cambridge8,451 people
- Oak Grove8,439 people
- Lake Elmo8,406 people
- Saint Anthony8,226 people
- Mahtomedi8,116 people
- Orono8,006 people
- Baxter7,934 people
- Wyoming7,813 people
- Crookston7,787 people
- Shorewood7,614 people
- New Prague7,582 people
- Waite Park7,517 people
- Albertville7,345 people
- Saint Francis7,218 people
- Minnetrista7,178 people
- Belle Plaine6,918 people
- Litchfield6,657 people
- Saint Joseph6,534 people
- Spring Lake Park6,473 people
- International Falls6,158 people
- Kasson6,123 people
- Jordan6,076 people
- Stewartville6,037 people
- Medina5,973 people
- Delano5,875 people
- Falcon Heights5,571 people
- Corcoran5,552 people
- Glencoe5,521 people
- Isanti5,464 people
- Morris5,352 people
- Zimmerman5,350 people
- Byron5,328 people
- Saint Paul Park5,279 people
- Montevideo5,217 people
- Dayton5,096 people
- Redwood Falls5,061 people
- Lake City5,027 people
- Chisholm4,981 people
- North Oaks4,968 people
- Circle Pines4,958 people
- Chisago City4,932 people
- Oak Park Heights4,831 people
- La Crescent4,826 people
- Elko New Market4,705 people
- Becker4,700 people
- Princeton4,680 people
- Luverne4,677 people
- Wayzata4,610 people
- Saint James4,605 people
- Nowthen4,582 people
- Windom4,550 people
- Lindstrom4,401 people
- Dilworth4,366 people
- Rockford4,358 people
- Sauk Centre4,357 people
- Carver4,311 people
- Watertown4,289 people
- Wadena4,176 people
- Grant4,147 people
- Goodview4,144 people
- Pipestone4,141 people
- Cold Spring4,094 people
- Cannon Falls4,062 people
- Scandia4,057 people
- Columbus4,007 people
- Le Sueur3,999 people
- Park Rapids3,947 people
- Centerville3,930 people
- Deephaven3,843 people
- Lonsdale3,843 people
- Independence3,741 people
- Saint Charles3,735 people
- Bayport3,714 people
- Norwood Young America3,677 people
- Eveleth3,673 people
- Melrose3,616 people
- Two Harbors3,578 people
- Collegeville3,516 people
- Newport3,480 people
- Mora3,462 people
- Sleepy Eye3,443 people
- Ely3,408 people
- Zumbrota3,365 people
- Long Prairie3,347 people
- Pine Island3,337 people
- Saint Augusta3,317 people
- Annandale3,304 people
- Breckenridge3,290 people
- Hanover3,289 people
- Perham3,278 people
170 smaller towns
- Benson3,240 people
- Plainview3,237 people
- Blue Earth3,236 people
- Jackson3,234 people
- Montrose3,079 people
- Pine City3,078 people
- Rush City3,072 people
- Proctor3,068 people
- Afton2,966 people
- Arnold2,960 people
- Greenfield2,919 people
- Montgomery2,915 people
- Staples2,885 people
- Milaca2,883 people
- Mountain Iron2,880 people
- Eagle Lake2,841 people
- Chatfield2,799 people
- Caledonia2,787 people
- Sandstone2,768 people
- Moose Lake2,748 people
- Osseo2,748 people
- Granite Falls2,747 people
- Cohasset2,745 people
- Cokato2,727 people
- Roseau2,715 people
- Branch2,696 people
- Dodge Center2,690 people
- Foley2,656 people
- Albany2,647 people
- Barnesville2,577 people
- Glenwood2,568 people
- Lake Crystal2,527 people
- Parkville2,525 people
- Rockville2,514 people
- Lauderdale2,506 people
- Pelican Rapids2,461 people
- Le Center2,459 people
- Wabasha2,451 people
- Paynesville2,433 people
- Spring Valley2,413 people
- Olivia2,356 people
- Breezy Point2,350 people
- Crosby2,345 people
- Winsted2,296 people
- Saint Bonifacius2,283 people
- Excelsior2,279 people
- Janesville2,254 people
- Madelia2,250 people
- Wells2,247 people
- Gaylord2,245 people
- Pequot Lakes2,243 people
- Hawley2,179 people
- Arlington2,169 people
- Crosslake2,141 people
- Mountain Lake2,117 people
- Tracy2,117 people
- Maple Lake2,092 people
- Springfield2,068 people
- Aitkin2,053 people
- Slayton2,053 people
- Lexington2,049 people
- Howard Lake2,039 people
- Eyota2,032 people
- Nisswa2,011 people
- Hoyt Lakes2,004 people
- Coleraine1,999 people
- Blooming Prairie1,993 people
- Mayer1,903 people
- Esko1,869 people
- Waterville1,849 people
- Lakeland1,839 people
- Ortonville1,815 people
- Kenyon1,814 people
- Silver Bay1,813 people
- Hinckley1,806 people
- Long Lake1,800 people
- Warroad1,799 people
- Gilbert1,792 people
- Maple Plain1,785 people
- Clearwater1,783 people
- Braham1,770 people
- Mapleton1,731 people
- Red Lake1,731 people
- Osakis1,719 people
- Rushford1,712 people
- Canby1,709 people
- Spring Park1,705 people
- Lester Prairie1,686 people
- Aurora1,666 people
- Ada1,656 people
- Lakefield1,656 people
- Cologne1,605 people
- Rock Creek1,600 people
- Lewiston1,571 people
- Warren1,563 people
- Tonka Bay1,537 people
- Young America (historical)1,530 people
- Babbitt1,519 people
- Norwood (historical)1,506 people
- Fosston1,498 people
- Dundas1,481 people
- Stacy1,470 people
- Avon1,466 people
- Madison1,462 people
- Oronoco1,446 people
- Dawson1,444 people
- Dassel1,437 people
- Richmond1,435 people
- Red Lake Falls1,406 people
- Waverly1,396 people
- Bagley1,394 people
- Oakport1,387 people
- Glyndon1,380 people
- Winnebago1,378 people
- Frazee1,371 people
- Minneota1,363 people
- Winthrop1,363 people
- Pierz1,362 people
- Wheaton1,362 people
- Rice1,361 people
- Appleton1,341 people
- Menahga1,339 people
- Redby1,334 people
- New London1,328 people
- Grand Marais1,327 people
- Clara City1,320 people
- Hayfield1,320 people
- Preston1,299 people
- Spring Grove1,293 people
- Starbuck1,264 people
- Medford1,249 people
- Fulda1,243 people
- New York Mills1,225 people
- Mahnomen1,222 people
- Adrian1,220 people
- Royalton1,215 people
- Renville1,213 people
- Cottonwood1,212 people
- Little Rock1,208 people
- Mantorville1,200 people
- Spicer1,196 people
- New Richland1,188 people
- Goodhue1,174 people
- Fairfax1,172 people
- Grand Meadow1,149 people
- Elbow Lake1,144 people
- Birchwood1,139 people
- Edgerton1,139 people
- Nicollet1,138 people
- Harris1,125 people
- Atwater1,124 people
- Tyler1,110 people
- Dellwood1,094 people
- Madison Lake1,094 people
- Sherburn1,089 people
- Wanamingo1,081 people
- Hector1,076 people
- Truman1,069 people
- Baudette1,063 people
- Elgin1,055 people
- Lake Saint Croix Beach1,051 people
- Keewatin1,049 people
- Carlton1,048 people
- Eden Valley1,036 people
- Shafer1,036 people
- Lake Shore1,023 people
- Taylors Falls1,014 people
- East Gull Lake1,011 people
- Parkers Prairie1,005 people
- Vineland1,001 people
Smaller places have pages too; search for one on the air quality landing page.
Sources
Observations and daily forecasts from AirNow, the US Environmental Protection Agency’s program with NOAA, the National Park Service, NASA, tribal, state and local agencies. Hourly forecasts from NOAA’s National Air Quality Forecast Capability. Smoke analysis from NOAA’s Hazard Mapping System. Alerts from the National Weather Service. Index categories and breakpoints are EPA’s, as revised in 2024.