| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density (/mi²) | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Grafton | 1 | 3,989 | 4,160 | -0.85% | 1,208 | 3 | City |
| Park River | 2 | 1,350 | 1,418 | -0.95% | 521 | 3 | City |
| Minto | 3 | 607 | 618 | -0.49% | 422 | 1 | City |
| Hoople | 4 | 240 | 251 | -0.83% | 444 | 1 | City |
| Fordville | 5 | 197 | 206 | -1.01% | 195 | 1 | City |
| Edinburg | 6 | 191 | 198 | -1.04% | 603 | 0 | City |
| Adams | 7 | 120 | 125 | -0.83% | 123 | 1 | City |
| Forest River | 8 | 109 | 108 | 0% | 218 | 1 | City |
| Lankin | 9 | 96 | 103 | -2.04% | 334 | 0 | City |
| Pisek | 10 | 85 | 89 | -1.16% | 746 | 0 | City |
| Fairdale | 11 | 30 | 32 | -3.23% | 95 | 0 | City |
Grafton is the largest city in Walsh County, with a population of 3,989.
Fairdale is the smallest city in Walsh County, with a population of 30.
There are 11 cities in Walsh County, North Dakota.