PFAS in Minnesota Drinking Water
Ranked by number of PFAS compounds detected · Data from EPA SDWIS & UCMR
PFAS in Minnesota: what the data shows
Minnesota has 189 cities with PFAS monitoring data from the EPA's UCMR 5 program. PFAS ("forever chemicals") were detected in 144 of those cities (76%), with some cities exceeding the EPA's 2024 maximum contaminant levels of 4 ppt. The state average is better than the national average. 16 cities exceed the EPA MCL for at least one PFAS compound. PFAS are linked to cancer, immune system disruption, and developmental issues. The 2024 EPA rule requires water systems exceeding the MCL to notify customers and reduce levels by 2029. PFAS data comes from the EPA's Unregulated Contaminant Monitoring Rule 5 (UCMR 5), which required large water systems to test for 29 PFAS compounds between 2023–2025. Not all systems have completed testing — cities without data may still have PFAS present.
Cities exceeding EPA MCL (4 ppt each)
PFAS data across Minnesota
Each dot is a city, colored by overall water quality grade. PFAS-tested cities are shown; those exceeding the 4 ppt EPA MCL appear in red. Size reflects population served.
Top 10 cities by pfas level in Minnesota
Highest PFAS levels (compounds)
All Minnesota cities ranked by pfas level
| # | City | Level | Level | Exceeds? | Violations | Grade |
|---|---|---|---|---|---|---|
| 1 | Sauk Rapids | 9 compounds | Yes | 2 | B+ | |
| 2 | Waite Park | 8 compounds | Yes | 0 | B+ | |
| 3 | Woodbury | 7 compounds | Yes | 0 | B+ | |
| 4 | Hastings | 7 compounds | Yes | 8 | C+ | |
| 5 | Brooklyn Park | 6 compounds | Yes | 0 | B+ | |
| 6 | Stillwater | 6 compounds | Yes | 8 | C+ | |
| 7 | South St. Paul | 6 compounds | Yes | 6 | B+ | |
| 8 | Becker | 6 compounds | Yes | 0 | A | |
| 9 | Shakopee | 5 compounds | No | 7 | B | |
| 10 | Oak Park Heights | 5 compounds | No | 1 | A | |
| 11 | Alexandria | 4 compounds | Yes | 0 | B | |
| 12 | Newport | 4 compounds | Yes | 0 | A- | |
| 13 | Apple Valley | 3 compounds | No | 0 | B+ | |
| 14 | Inver Grove Heights | 3 compounds | No | 37 | D | |
| 15 | Brooklyn Center | 3 compounds | Yes | 0 | A | |
| 16 | Anoka | 3 compounds | No | 4 | A | |
| 17 | Monticello | 3 compounds | No | 6 | B | |
| 18 | Robbinsdale | 3 compounds | No | 0 | A | |
| 19 | Lake Elmo | 3 compounds | Yes | 6 | B | |
| 20 | North St. Paul | 3 compounds | Yes | 1 | A | |
| 21 | St. Paul | 2 compounds | No | 5 | B- | |
| 22 | Rochester | 2 compounds | No | 1 | C+ | |
| 23 | Plymouth | 2 compounds | No | 2 | A- | |
| 24 | Maple Grove | 2 compounds | No | 0 | B+ | |
| 25 | Blaine | 2 compounds | No | 3 | A- | |
| 26 | Eagan | 2 compounds | No | 0 | A- | |
| 27 | Burnsville | 2 compounds | No | 0 | A- | |
| 28 | Minnetonka | 2 compounds | No | 0 | A | |
| 29 | Edina | 2 compounds | No | 1 | B+ | |
| 30 | St. Louis Park | 2 compounds | No | 5 | A- | |
| 31 | Moorhead | 2 compounds | No | 0 | B+ | |
| 32 | Cottage Grove | 2 compounds | No | 4 | A- | |
| 33 | White Bear Lake | 2 compounds | Yes | 0 | A- | |
| 34 | Northfield | 2 compounds | No | 0 | A- | |
| 35 | Golden Valley | 2 compounds | No | 0 | A- | |
| 36 | Andover | 2 compounds | No | 3 | A+ | |
| 37 | Rogers | 2 compounds | No | 0 | A+ | |
| 38 | Cloquet | 2 compounds | Yes | 0 | A- | |
| 39 | Marshall | 2 compounds | No | 0 | B+ | |
| 40 | Big Lake | 2 compounds | No | 1 | A | |
| 41 | Fairmont | 2 compounds | No | 3 | A- | |
| 42 | East Grand Forks | 2 compounds | No | 0 | A | |
| 43 | Princeton | 2 compounds | Yes | 0 | A- | |
| 44 | Dilworth | 2 compounds | No | 1 | A- | |
| 45 | Wayzata | 2 compounds | No | 0 | A- | |
| 46 | Pipestone | 2 compounds | No | 2 | A | |
| 47 | Shorewood | 2 compounds | No | 0 | A- | |
| 48 | Melrose | 2 compounds | No | 3 | A | |
| 49 | Lakeland | 2 compounds | No | 0 | A+ | |
| 50 | Minneapolis | 1 compounds | No | 2 | B- | |
| 51 | Bloomington | 1 compounds | No | 1 | A | |
| 52 | St. Cloud | 1 compounds | No | 2 | A- | |
| 53 | Lakeville | 1 compounds | No | 2 | A- | |
| 54 | Coon Rapids | 1 compounds | No | 2 | A | |
| 55 | Eden Prairie | 1 compounds | No | 0 | A- | |
| 56 | Prior Lake | 1 compounds | No | 1 | B+ | |
| 57 | Mankato | 1 compounds | No | 8 | F | |
| 58 | Richfield | 1 compounds | No | 0 | A+ | |
| 59 | Roseville | 1 compounds | No | 0 | A | |
| 60 | Albertville | 1 compounds | No | 0 | A- | |
| 61 | Winona | 1 compounds | No | 10 | A | |
| 62 | Chaska | 1 compounds | No | 2 | B+ | |
| 63 | Savage | 1 compounds | No | 5 | A- | |
| 64 | Oakdale | 1 compounds | No | 1 | B+ | |
| 65 | Fridley | 1 compounds | No | 0 | A- | |
| 66 | Farmington | 1 compounds | No | 0 | A- | |
| 67 | Rosemount | 1 compounds | No | 1 | B+ | |
| 68 | Owatonna | 1 compounds | No | 0 | A | |
| 69 | Austin | 1 compounds | No | 0 | B+ | |
| 70 | Shoreview | 1 compounds | No | 0 | A | |
| 71 | Faribault | 1 compounds | No | 2 | B+ | |
| 72 | Chanhassen | 1 compounds | No | 0 | B+ | |
| 73 | Crystal | 1 compounds | No | 0 | A+ | |
| 74 | New Brighton | 1 compounds | No | 1 | A | |
| 75 | Columbia Heights | 1 compounds | No | 0 | B+ | |
| 76 | Willmar | 1 compounds | No | 3 | A- | |
| 77 | New Hope | 1 compounds | No | 0 | A- | |
| 78 | Sartell | 1 compounds | No | 0 | A- | |
| 79 | Hopkins | 1 compounds | No | 0 | B+ | |
| 80 | Lino Lakes | 1 compounds | No | 1 | C+ | |
| 81 | Albert Lea | 1 compounds | No | 0 | A- | |
| 82 | Ramsey | 1 compounds | No | 0 | A+ | |
| 83 | Red Wing | 1 compounds | No | 5 | A | |
| 84 | Lake Benton | 1 compounds | No | 1 | A- | |
| 85 | North Mankato | 1 compounds | No | 1 | A- | |
| 86 | Fergus Falls | 1 compounds | No | 11 | C | |
| 87 | New Ulm | 1 compounds | No | 0 | B+ | |
| 88 | Worthington | 1 compounds | No | 0 | B+ | |
| 89 | Waconia | 1 compounds | No | 0 | B+ | |
| 90 | Mounds View | 1 compounds | No | 0 | A+ | |
| 91 | Vadnais Heights | 1 compounds | No | 0 | B+ | |
| 92 | Hugo | 1 compounds | No | 0 | A+ | |
| 93 | St. Peter | 1 compounds | No | 1 | A+ | |
| 94 | Victoria | 1 compounds | No | 3 | A- | |
| 95 | Detroit Lakes | 1 compounds | No | 36 | C- | |
| 96 | Arden Hills | 1 compounds | No | 0 | A | |
| 97 | Mound | 1 compounds | No | 1 | A- | |
| 98 | Waseca | 1 compounds | No | 0 | A | |
| 99 | Little Falls | 1 compounds | No | 0 | A | |
| 100 | Thief River Falls | 1 compounds | No | 20 | B- | |
| 101 | New Prague | 1 compounds | No | 1 | A- | |
| 102 | Mahtomedi | 1 compounds | No | 0 | A | |
| 103 | Luverne | 1 compounds | No | 0 | A- | |
| 104 | Belle Plaine | 1 compounds | No | 0 | A+ | |
| 105 | Crookston | 1 compounds | No | 0 | B- | |
| 106 | Kasson | 1 compounds | No | 0 | A | |
| 107 | Litchfield | 1 compounds | No | 3 | A- | |
| 108 | Jordan | 1 compounds | No | 1 | A | |
| 109 | Zimmerman | 1 compounds | No | 0 | A+ | |
| 110 | Carver | 1 compounds | No | 0 | A- | |
| 111 | Welch | 1 compounds | No | 0 | B+ | |
| 112 | Delano | 1 compounds | No | 0 | A | |
| 113 | Jeffers | 1 compounds | No | 0 | A | |
| 114 | Minnetrista | 1 compounds | No | 0 | A | |
| 115 | Circle Pines | 1 compounds | No | 0 | A- | |
| 116 | Glencoe | 1 compounds | No | 1 | A | |
| 117 | St. Paul Park | 1 compounds | No | 0 | A- | |
| 118 | Morris | 1 compounds | No | 10 | D | |
| 119 | Montevideo | 1 compounds | No | 0 | A+ | |
| 120 | Redwood Falls | 1 compounds | No | 0 | B+ | |
| 121 | Watertown | 1 compounds | No | 1 | A- | |
| 122 | Lake City | 1 compounds | No | 6 | A | |
| 123 | Elko-New Market | 1 compounds | No | 4 | A+ | |
| 124 | Windom | 1 compounds | No | 0 | B+ | |
| 125 | St. James | 1 compounds | No | 0 | A | |
| 126 | Morton | 1 compounds | No | 0 | C+ | |
| 127 | Eveleth | 1 compounds | No | 7 | A- | |
| 128 | Hamel | 1 compounds | No | 2 | A | |
| 129 | Lesueur | 1 compounds | No | 0 | A | |
| 130 | Centerville | 1 compounds | No | 0 | A- | |
| 131 | Lonsdale | 1 compounds | No | 2 | A | |
| 132 | Mora | 1 compounds | No | 2 | A- | |
| 133 | Chisago City | 1 compounds | No | 0 | A | |
| 134 | Long Prairie | 1 compounds | No | 1 | A | |
| 135 | Sleepy Eye | 1 compounds | No | 0 | A | |
| 136 | Annandale | 1 compounds | No | 0 | A | |
| 137 | Breckenridge | 1 compounds | No | 0 | A- | |
| 138 | Jackson | 1 compounds | No | 0 | B+ | |
| 139 | Blue Earth | 1 compounds | No | 0 | A- | |
| 140 | Arlington | 1 compounds | No | 1 | A- | |
| 141 | Ortonville | 1 compounds | No | 0 | A- | |
| 142 | St. Clair | 1 compounds | No | 0 | A | |
| 143 | Holdingford | 1 compounds | No | 0 | A | |
| 144 | Amboy | 1 compounds | No | 14 | C+ | |
| 145 | Duluth | 0 compounds | No | 1 | A- | |
| 146 | Champlin | 0 compounds | No | 0 | A | |
| 147 | Elk River | 0 compounds | No | 0 | A | |
| 148 | Otsego | 0 compounds | No | 3 | A+ | |
| 149 | Buffalo | 0 compounds | No | 0 | A- | |
| 150 | Hibbing | 0 compounds | No | 1 | C | |
| 151 | Bemidji | 0 compounds | No | 7 | C | |
| 152 | Brainerd | 0 compounds | No | 3 | B+ | |
| 153 | Hutchinson | 0 compounds | No | 0 | A | |
| 154 | Forest Lake | 0 compounds | No | 0 | A | |
| 155 | Grand Rapids | 0 compounds | No | 1 | B+ | |
| 156 | Cambridge | 0 compounds | No | 0 | A | |
| 157 | Baxter | 0 compounds | No | 0 | A+ | |
| 158 | St. Joseph | 0 compounds | No | 1 | A- | |
| 159 | Virginia | 0 compounds | No | 0 | A- | |
| 160 | Isanti | 0 compounds | No | 2 | A+ | |
| 161 | Hermantown | 0 compounds | No | 0 | A+ | |
| 162 | Spring Lake Park | 0 compounds | No | 4 | A- | |
| 163 | Stewartville | 0 compounds | No | 0 | A | |
| 164 | Byron | 0 compounds | No | 0 | A | |
| 165 | North Branch | 0 compounds | No | 0 | A | |
| 166 | International Falls | 0 compounds | No | 0 | A | |
| 167 | Onamia | 0 compounds | No | 1 | D | |
| 168 | St. Francis | 0 compounds | No | 2 | A+ | |
| 169 | Lindstrom | 0 compounds | No | 1 | A- | |
| 170 | Lacrescent | 0 compounds | No | 3 | A | |
| 171 | Chisholm | 0 compounds | No | 0 | A- | |
| 172 | Sauk Centre | 0 compounds | No | 2 | A- | |
| 173 | Park Rapids | 0 compounds | No | 9 | A | |
| 174 | Wadena | 0 compounds | No | 0 | A+ | |
| 175 | Cannon Falls | 0 compounds | No | 0 | A | |
| 176 | Cold Spring | 0 compounds | No | 10 | A | |
| 177 | Wyoming | 0 compounds | No | 1 | A+ | |
| 178 | Norwood Young America | 0 compounds | No | 2 | A | |
| 179 | St. Charles | 0 compounds | No | 0 | A | |
| 180 | Two Harbors | 0 compounds | No | 0 | A | |
| 181 | Perham | 0 compounds | No | 1 | A | |
| 182 | Plainview | 0 compounds | No | 0 | A- | |
| 183 | Pine Island | 0 compounds | No | 0 | A- | |
| 184 | Ely | 0 compounds | No | 3 | B- | |
| 185 | Elgin | 0 compounds | No | 2 | A+ | |
| 186 | Bird Island | 0 compounds | No | 1 | A | |
| 187 | Mabel | 0 compounds | No | 0 | A+ | |
| 188 | Ranier | 0 compounds | No | 0 | A+ | |
| 189 | Floodwood | 0 compounds | No | 5 | A+ |
Frequently asked questions about pfas in Minnesota
Does Minnesota tap water contain PFAS?
PFAS were detected in 144 of 189 Minnesota cities tested under EPA's UCMR 5 program. 16 cities exceed the 2024 EPA MCL of 4 ppt for individual PFAS compounds.
How can I remove PFAS from my drinking water in Minnesota?
Reverse osmosis (RO) systems are the most effective at removing PFAS, typically removing 90%+ of compounds. High-quality activated carbon block filters (NSF 58-certified for RO, or NSF 53 for solid carbon) also provide significant reduction. Standard pitcher filters vary widely in PFAS removal.