Oklahoma Water Quality Report (2026)

By Echo Water Research Team 17 min read
Oklahoma Water Quality Report (2026)

Oklahoma Tap Water Quality Report

502 cities analyzed • 3,004,857 people served

Updated March 2026 • Data from EWG & EPA SDWIS

502
Cities Analyzed
8.7
Avg Above Guidelines
3,004,857
Total Population Served
Best Water Quality
Wyandotte (0 above guidelines)
Most Concerns
Arcadia (20 above guidelines)

Most Common Contaminants in Oklahoma

Contaminant Found In % of Cities
Total trihalomethanes (TTHMs) carcinogen 434 of 502 86%
Dibromochloromethane carcinogen 413 of 502 82%
Bromodichloromethane carcinogen 391 of 502 78%
Haloacetic acids (HAA5) carcinogen 356 of 502 71%
Chloroform carcinogen 345 of 502 69%
Bromoform carcinogen 307 of 502 61%
Dichloroacetic acid carcinogen 303 of 502 60%
Nitrate and nitrite carcinogen 289 of 502 58%
Dibromoacetic acid 259 of 502 52%
Trichloroacetic acid carcinogen 252 of 502 50%

City-by-City Water Quality Rankings

Ranked by number of contaminants above EWG health guidelines (most to fewest).

# City Detected Above Guidelines Above Legal People Served
1 Edmond 36 20 0 79,408
2 Arcadia 36 20 0 300
3 Moore 38 18 0 55,083
4 Yukon 30 18 0 22,498
5 Mustang 29 18 0 18,576
6 Piedmont 32 18 0 7,542
7 Norman 36 17 0 100,939
8 Stillwater 30 17 1 53,000
9 Ponca City 25 17 1 27,155
10 Bethany 24 17 0 20,307
11 Martha 24 17 0 205
12 Broken Arrow 27 16 1 116,330
13 El Reno 29 16 0 16,212
14 Newcastle 29 16 0 7,900
15 Marlow 29 16 0 6,426
16 Tipton 23 16 0 916
17 Olustee 24 16 1 607
18 Oklahoma City 27 15 0 644,000
19 Midwest City 28 15 0 55,935
20 Del City 32 15 0 22,128
21 Altus 22 15 0 18,717
22 Davidson 20 15 0 0
23 Arapaho 19 15 0 0
24 Lawton 24 14 0 92,757
25 Enid 22 14 0 49,347
26 Shawnee 22 14 0 29,990
27 Fort Sill 24 14 0 23,000
28 Bixby 24 14 0 18,750
29 Afton 19 14 0 1,428
30 Geronimo 24 14 0 1,200
31 Meeker 22 14 0 1,044
32 Union City 23 14 1 618
33 Drummond 23 14 0 405
34 Medicine Park 24 14 0 382
35 Clinton 18 14 0 0
36 Sand Springs 21 13 0 28,774
37 Duncan 22 13 0 23,000
38 Sapulpa 20 13 0 19,702
39 Chickasha 19 13 0 16,036
40 Glenpool 25 13 0 12,500
41 Coweta 22 13 0 9,450
42 Hastings 20 13 0 8,276
43 Cache 15 13 0 3,000
44 Catoosa 24 13 0 2,668
45 Newkirk 14 13 0 2,243
46 Tinker AFB 23 13 0 2,100
47 Coffeyville 24 13 0 1,050
48 South Coffeyville 24 13 0 790
49 Washington 14 13 0 600
50 Welling 26 13 0 418
51 Terral 20 13 0 386
52 Grandfield 17 13 2 0
53 Snyder 15 13 0 0
54 Mountain Park 16 13 1 0
55 Calvin 16 13 0 0
56 Tulsa 24 12 0 471,000
57 Muskogee 22 12 0 38,310
58 Bartlesville 22 12 0 34,748
59 Collinsville 21 12 0 25,375
60 Owasso 24 12 0 23,000
61 Jenks 24 12 0 16,924
62 Woodward 17 12 0 15,000
63 Tahlequah 25 12 0 14,458
64 Weatherford 15 12 0 10,833
65 Guthrie 14 12 0 9,925
66 Pryor 17 12 0 8,784
67 Idabel 15 12 1 6,952
68 Sayre 16 12 0 4,375
69 Nowata 18 12 2 3,971
70 Amber 16 12 0 3,930
71 Dewey 22 12 0 3,490
72 Wewoka 16 12 1 3,450
73 Cordell 14 12 0 2,903
74 Walters 17 12 0 2,551
75 Wainwright 22 12 0 2,550
76 Agra 14 12 0 2,525
77 Oktaha 22 12 0 2,280
78 Ochelata 22 12 0 2,250
79 Chouteau 17 12 0 2,100
80 Ratliff City 15 12 0 2,000
81 Comanche 14 12 1 1,649
82 Shidler 13 12 0 1,500
83 Konawa 17 12 0 1,479
84 Vian 18 12 0 1,445
85 Garber 12 12 0 1,225
86 Sperry 24 12 0 1,200
87 Temple 15 12 1 1,146
88 Ramona 22 12 0 900
89 Mutual 15 12 0 755
90 Vici 16 12 0 668
91 Calumet 14 12 0 600
92 Oakhurst 24 12 0 575
93 Canute 13 12 0 524
94 Indiahoma 14 12 1 350
95 Red Rock 16 12 1 293
96 Coyle 14 12 0 289
97 Taft 22 12 1 250
98 Dallas 18 12 0 225
99 Red Bird 18 12 1 153
100 Headrick 14 12 0 84
101 Douglas 12 12 0 32
102 Watts 25 12 0 0
103 Frederick 17 12 0 0
104 Fort Supply 17 12 0 0
105 Cleo Springs 15 12 1 0
106 Ardmore 18 11 0 24,893
107 Madill 23 11 0 17,587
108 Durant 21 11 0 15,545
109 Sallisaw 17 11 0 13,460
110 Guymon 23 11 0 11,442
111 Anadarko 13 11 0 6,804
112 Vinita 12 11 0 6,472
113 Porum 15 11 0 5,000
114 Tuttle 16 11 0 4,500
115 Big Cabin 12 11 0 3,750
116 Blair 13 11 0 2,662
117 Westville 14 11 0 2,598
118 Wynnewood 12 11 0 2,307
119 Pawnee 14 11 0 2,230
120 Waurika 15 11 1 2,100
121 Stilwell 14 11 0 1,675
122 Minco 12 11 0 1,632
123 Kansas 12 11 0 1,500
124 Okeene 14 11 0 1,240
125 Stillwell 14 11 0 1,025
126 Custer City 11 11 0 960
127 Sentinel 13 11 0 859
128 Wellston 13 11 0 825
129 Ryan 15 11 1 800
130 Dill City 13 11 0 526
131 San Jose 18 11 0 500
132 Capron 13 11 0 426
133 Carter 12 11 0 330
134 Kendrick 15 11 1 266
135 Rocky 12 11 0 202
136 Faxon 12 11 0 134
137 Bird Island 13 11 0 100
138 Davis 14 11 0 0
139 Hollister 12 11 0 0
140 Disney 12 11 0 0
141 Perkins 14 11 0 0
142 Council Hill 14 11 0 0
143 Lenapah 14 11 0 0
144 Mcalester 16 10 0 18,206
145 Claremore 17 10 0 15,873
146 Miami 16 10 0 13,704
147 Okmulgee 15 10 0 13,495
148 Elk City 19 10 0 10,510
149 Skiatook 12 10 0 8,110
150 Wagoner 17 10 0 7,982
151 Oologah 12 10 0 7,725
152 Purcell 17 10 0 6,693
153 Alva 11 10 0 5,208
154 Fort Gibson 12 10 0 4,700
155 Ketchum 12 10 0 4,025
156 Eufaula 14 10 1 3,574
157 Hulbert 13 10 0 3,395
158 Elgin 11 10 0 3,300
159 Stigler 12 10 0 3,000
160 Muldrow 21 10 0 2,948
161 Mcloud 15 10 0 2,939
162 Roland 12 10 0 2,842
163 Calera 14 10 1 2,815
164 Healdton 11 10 0 2,785
165 Checotah 12 10 0 2,774
166 Morris 15 10 1 2,377
167 Hollis 10 10 0 2,264
168 Crowder 13 10 0 2,203
169 Arkoma 21 10 0 2,180
170 Mounds 12 10 0 2,100
171 Lexington 13 10 0 2,086
172 Burns Flat 12 10 0 2,057
173 Warner 13 10 0 2,020
174 Goldsby 12 10 0 2,000
175 Schulter 16 10 0 1,890
176 Terlton 15 10 0 1,775
177 Marshall 12 10 0 1,618
178 Granite 11 10 0 1,425
179 Yale 13 10 1 1,227
180 Goodwell 11 10 0 1,200
181 Okay 12 10 0 1,110
182 Gore 13 10 0 1,075
183 Quinton 12 10 0 1,071
184 Waynoka 12 10 0 993
185 Pond Creek 11 10 0 982
186 Seiling 10 10 0 860
187 Canton 13 10 0 650
188 Eucha 12 10 0 465
189 Butler 13 10 0 437
190 North Miami 16 10 0 433
191 Red Oak 16 10 0 412
192 Chandler 13 10 0 400
193 Ralston 11 10 0 335
194 Randlett 12 10 1 320
195 Eakly 11 10 1 277
196 Mulhall 12 10 0 225
197 Dougherty 10 10 0 224
198 Orlando 12 10 0 201
199 Glencoe 13 10 1 150
200 Devol 12 10 2 150
201 Marland 13 10 0 142
202 Hillsdale 12 10 1 110
203 Spencer 10 10 0 0
204 Burneyville 10 10 0 0
205 Leedey 10 10 0 0
206 Hennessey 10 10 0 0
207 Alex 11 10 0 0
208 Burlington 10 10 0 0
209 Jet 10 10 0 0
210 Maysville 14 10 2 0
211 Dacoma 11 10 0 0
212 Buffalo 12 10 0 0
213 Hammon 11 10 0 0
214 Beaver 13 10 0 0
215 Forgan 14 10 0 0
216 Goltry 10 10 0 0
217 Dover 10 10 0 0
218 Davenport 13 10 0 0
219 Chelsea 12 10 0 0
220 Delaware 13 10 0 0
221 Kellyville 13 10 0 0
222 Cushing 11 10 0 0
223 Stroud 14 10 0 0
224 Lamont 11 10 0 0
225 Pauls Valley 15 9 0 6,256
226 Tecumseh 13 9 1 6,098
227 Henryetta 12 9 0 6,096
228 Hugo 12 9 1 5,536
229 Holdenville 11 9 0 4,732
230 Hartshorne 15 9 1 4,221
231 Pawhuska 13 9 0 3,800
232 Mannford 13 9 0 3,735
233 Tonkawa 9 9 0 3,299
234 Hominy 12 9 1 2,584
235 Salina 12 9 0 2,578
236 Colbert 14 9 0 2,312
237 Locust Grove 10 9 0 1,600
238 Inola 12 9 1 1,589
239 Fairfax 13 9 1 1,555
240 Allen 9 9 0 1,380
241 Waukomis 9 9 0 1,366
242 Beggs 11 9 1 1,364
243 Okarche 10 9 1 1,110
244 Elmore City 10 9 0 1,107
245 Langley 10 9 0 950
246 Dewar 12 9 0 917
247 Haileyville 13 9 0 889
248 Savanna 12 9 0 800
249 Copan 11 9 0 733
250 Verden 11 9 0 659
251 Jay 12 9 0 653
252 Mannsville 14 9 0 587
253 Lahoma 15 9 0 577
254 Cement 12 9 0 530
255 Bernice 10 9 0 504
256 Gans 11 9 0 495
257 Blanchard 9 9 0 473
258 Boynton 12 9 2 450
259 Sparks 10 9 0 404
260 Lehigh 9 9 0 396
261 Muse 17 9 0 373
262 Avant 10 9 2 361
263 Clarita 10 9 0 360
264 Pocasset 11 9 0 300
265 Lookeba 13 9 1 275
266 Cookson 10 9 0 272
267 Ladera Ranch 11 9 0 250
268 Braman 10 9 0 244
269 Sawyer 12 9 1 235
270 Park Hill 10 9 0 208
271 Cheyenne 9 9 0 200
272 Burbank 11 9 0 150
273 Jose 11 9 0 114
274 Carlton Landing 14 9 0 38
275 Laverne 11 9 0 0
276 Langston 10 9 0 0
277 Hobart 15 9 0 0
278 Nash 10 9 0 0
279 Weleetka 12 9 0 0
280 Ada 14 8 0 22,600
281 Spiro 12 8 0 9,077
282 Poteau 15 8 1 7,939
283 Broken Bow 9 8 0 5,685
284 Adair 11 8 0 3,360
285 Cleveland 8 8 0 3,200
286 Wilburton 9 8 0 3,025
287 Atoka 13 8 0 3,000
288 Tishomingo 8 8 0 2,783
289 Ninnekah 11 8 0 2,425
290 Porter 11 8 0 2,400
291 Perry 8 8 0 2,100
292 Krebs 9 8 0 2,051
293 Coalgate 9 8 0 2,005
294 Okemah 9 8 0 1,823
295 Preston 9 8 0 1,695
296 Howe 11 8 0 1,593
297 Rush Springs 8 8 0 1,278
298 Geary 11 8 1 1,258
299 Barnsdall 11 8 2 1,243
300 Thomas 10 8 0 1,238
301 Webbers Falls 11 8 0 1,200
302 Stonewall 14 8 0 1,162
303 Crescent 10 8 0 1,146
304 Stringtown 12 8 0 952
305 Blackwell 9 8 0 920
306 Fittstown 14 8 0 896
307 Colcord 9 8 0 877
308 New Port Richey 9 8 0 860
309 Boswell 14 8 1 850
310 Twin Oaks 9 8 0 750
311 Kiowa 11 8 1 731
312 Proctor 8 8 0 675
313 Fort Cobb 8 8 0 667
314 Smithville 10 8 0 600
315 Covington 8 8 0 553
316 Dibble 9 8 0 550
317 Eldorado 8 8 0 446
318 Spavinaw 9 8 0 432
319 Wanette 12 8 2 402
320 Medford 9 8 0 400
321 Francis 8 8 0 390
322 Asher 11 8 2 375
323 Longdale 10 8 0 363
324 Mangum 8 8 0 175
325 Fairmont 9 8 0 147
326 Tullahassee 11 8 2 106
327 Choctaw 9 8 0 105
328 Ft. Supply 10 8 0 43
329 Cashion 10 8 0 0
330 Greenfield 11 8 1 0
331 Roosevelt 8 8 0 0
332 Gotebo 11 8 0 0
333 Luther 9 8 0 0
334 Morrison 10 8 0 0
335 Mead 15 8 0 0
336 Milburn 8 8 0 0
337 Aline 8 8 1 0
338 Boise City 8 8 0 0
339 Meno 11 8 0 0
340 Depew 10 8 0 0
341 Grant 13 8 0 0
342 Fort Towson 11 8 0 0
343 Wister 10 7 0 40,000
344 Antlers 11 7 2 4,825
345 Pocola 11 7 1 4,700
346 Haworth 9 7 0 3,842
347 Heavener 12 7 0 3,000
348 Hinton 10 7 0 2,600
349 Wayne 8 7 0 1,897
350 Garvin 9 7 0 1,847
351 Monroe 10 7 0 1,800
352 Whitesboro 12 7 1 1,643
353 Talihina 9 7 1 1,500
354 Wetumka 10 7 0 1,451
355 Panama 11 7 0 1,400
356 Clayton 8 7 0 1,200
357 Shattuck 9 7 0 1,200
358 Cyril 10 7 0 1,168
359 Fairview 7 7 0 1,000
360 Valliant 11 7 0 999
361 Wright City 10 7 0 792
362 Millerton 9 7 0 755
363 Nashoba 8 7 1 725
364 Chattanooga 10 7 0 627
365 Keota 10 7 1 564
366 Mccurtain 10 7 1 560
367 Bokoshe 10 7 1 450
368 Hodgen 11 7 0 425
369 Taloga 10 7 0 372
370 Cromwell 9 7 1 337
371 Pittsburg 10 7 2 280
372 Cail/mayor 11 7 0 275
373 Bromide 10 7 0 163
374 Slick 8 7 0 148
375 Hitchcock 7 7 0 141
376 Ringling 10 7 0 41
377 Fargo 7 7 0 0
378 Reydon 7 7 0 0
379 Helena 9 7 0 0
380 Drumright 8 7 0 0
381 Stuart 12 7 0 0
382 Seminole 7 6 0 6,899
383 Kingston 7 6 0 1,600
384 Caddo 9 6 0 1,500
385 Velma 7 6 0 960
386 Tyrone 9 6 0 880
387 Welch 9 6 1 800
388 Achille 6 6 0 506
389 Ravia 6 6 0 459
390 Turpin 6 6 0 412
391 Swink 9 6 0 373
392 Colony 6 6 0 0
393 Paoli 7 6 0 0
394 Mountain View 7 6 0 0
395 Corn 6 6 0 0
396 Wapanucka 6 6 0 0
397 Ames 9 6 0 0
398 Bessie 6 6 0 0
399 Bristow 8 6 0 0
400 Prague 10 6 0 0
401 Albion 9 6 1 0
402 Boley 6 6 0 0
403 Dustin 6 6 0 0
404 Sulphur 5 5 0 4,929
405 Carnegie 8 5 0 3,900
406 Stratford 5 5 0 1,575
407 Oilton 10 5 0 1,435
408 Fletcher 8 5 0 1,022
409 Texhoma 5 5 0 935
410 Binger 5 5 0 708
411 Carney 8 5 0 649
412 Optima 7 5 0 400
413 Kremlin 7 5 1 320
414 Mooreland 6 5 0 315
415 Soper 7 5 0 300
416 Freedom 6 5 0 275
417 Blue Jacket 7 5 0 274
418 Liberal 5 5 0 98
419 Boise 5 5 0 24
420 Marietta 7 5 0 0
421 Gage 5 5 0 0
422 Coleman 8 5 0 0
423 Braggs 6 5 0 0
424 Lone Grove 9 4 0 4,863
425 Watonga 5 4 0 2,816
426 Wilson 8 4 0 1,600
427 Hydro 6 4 0 1,060
428 Quapaw 4 4 0 906
429 Erick 7 4 0 857
430 Roff 6 4 0 800
431 Tupelo 4 4 0 377
432 Gracemont 6 4 0 336
433 Hardesty 5 4 0 277
434 Grove 6 4 0 200
435 Harrah 7 4 0 200
436 Cartwright 5 4 0 52
437 Riverside 8 4 0 50
438 Apache 4 4 0 0
439 Ringwood 4 4 0 0
440 Oakwood 6 4 0 0
441 Hooker 8 4 0 0
442 Deer Creek 4 4 0 0
443 Bennington 6 4 0 0
444 Paden 8 4 0 0
445 Bison 3 3 0 1,980
446 Sterling 5 3 0 762
447 Tryon 3 3 0 448
448 Prue 6 3 0 387
449 Kaw City 5 3 0 372
450 Nicoma Park 4 3 0 318
451 Keyes 3 3 0 315
452 Kingfisher 3 3 0 237
453 St. Louis 3 3 0 225
454 Noble 5 3 1 170
455 Camargo 4 3 0 150
456 Lincoln 6 3 0 136
457 Adams 3 3 0 135
458 Loco 3 3 0 122
459 Wakita 3 3 0 100
460 Jones 3 3 0 0
461 Manchester 3 3 0 0
462 Ripley 3 3 0 0
463 Commerce 3 3 0 0
464 Bokchito 6 3 0 0
465 Bowlegs 4 3 0 0
466 Nichols Hills 4 2 0 4,020
467 Lone Wolf 2 2 0 3,744
468 Thackerville 6 2 0 2,000
469 Lindsay 4 2 0 1,570
470 Maud 2 2 0 1,136
471 Gould 3 2 0 1,132
472 Hendrix 5 2 0 820
473 Amorita 2 2 0 550
474 Wynona 2 2 0 450
475 Duke 4 2 0 318
476 Mill Creek 3 2 0 310
477 Leon 2 2 0 300
478 Longwood 3 2 0 225
479 Englewood 4 2 0 225
480 Sasakwa 2 2 0 210
481 Denver 2 2 0 200
482 Sharon 2 2 0 175
483 Bradley 2 2 0 0
484 Cherokee 2 2 0 0
485 Carmen 4 2 0 0
486 Arnett 2 2 0 0
487 Gate 4 2 0 0
488 Jennings 2 2 0 0
489 Haskell 1 1 0 1,765
490 Fairland 1 1 0 1,025
491 Earlsboro 2 1 0 450
492 Osage 1 1 0 275
493 Hanna 1 1 0 175
494 Hallett 1 1 0 168
495 Foss 1 1 0 127
496 Willow 3 1 0 114
497 Houston 3 1 0 75
498 Las Vegas 3 1 0 70
499 Loyal 1 1 0 0
500 Billings 1 1 0 0
501 Wyandotte 0 0 0 750
502 Kenefic 2 0 0 165

Live in Oklahoma?

Get a free personalized water quality report for your address.

Check Your Water

Recommended Filtration for Oklahoma

Based on the most common contaminants found across Oklahoma (Total trihalomethanes (TTHMs), Dibromochloromethane, Bromodichloromethane), we recommend a reverse osmosis system or high-quality carbon block filter to remove disinfection byproducts and their precursors.

Echo RO System

Removes up to 99.9% of contaminants. The gold standard for drinking water in Oklahoma homes.

View RO Systems

Echo Whole-Home Filter

Protect every tap in your home from chlorine, VOCs, and disinfection byproducts.

View Whole-Home Filters

Echo Hydrogen Water Flask

Once your water is clean, supercharge it with molecular hydrogen for antioxidant and anti-inflammatory benefits.

Shop Hydrogen Flask

Frequently Asked Questions

Is Oklahoma tap water safe to drink?

Water quality varies significantly across Oklahoma. Of the 502 cities analyzed, the average city has 8.7 contaminants above EWG health guidelines. The best water quality was found in Wyandotte. We recommend checking your specific city's report for detailed information.

What city has the best water in Oklahoma?

Based on our analysis, Wyandotte has the fewest contaminants above EWG health guidelines in Oklahoma, with 0 above guideline levels.

What city has the worst water in Oklahoma?

Based on our analysis, Arcadia has the most contaminants above EWG health guidelines in Oklahoma, with 20 above guideline levels.

What's the best water filter for Oklahoma residents?

For most Oklahoma households, we recommend a reverse osmosis (RO) system for drinking water and a whole-home filter for showers and baths. The specific recommendation depends on your city's contaminant profile — check your city's report for personalized guidance.

Data sources: Environmental Working Group (EWG) Tap Water Database, U.S. EPA Safe Drinking Water Information System (SDWIS)

Last updated: March 2026

Methodology: Contaminant levels are compared against both EPA legal limits (Maximum Contaminant Levels) and EWG health guidelines, which are often stricter and based on the latest scientific research.

Share
Leave a comment

This site is protected by hCaptcha and the hCaptcha Privacy Policy and Terms of Service apply.