| City | Rank | 2026 Pop. ↓ | 2020 Pop. | Annual Change | Density (/mi²) | Area (mi²) | Type |
|---|---|---|---|---|---|---|---|
| Oskaloosa | 1 | 11,482 | 11,544 | -0.1% | 1,426 | 8 | City |
| New Sharon | 2 | 1,244 | 1,256 | -0.24% | 1,325 | 1 | City |
| Fremont | 3 | 677 | 695 | -0.59% | 637 | 1 | City |
| University Park | 4 | 469 | 486 | -0.64% | 603 | 1 | City |
| Beacon | 5 | 427 | 430 | -0.23% | 550 | 1 | City |
| Rose Hill | 6 | 156 | 160 | -0.64% | 1,099 | 0 | City |
| Leighton | 7 | 151 | 155 | -0.66% | 1,624 | 0 | City |
| Barnes City | 8 | 144 | 152 | -1.37% | 245 | 1 | City |
| Keomah Village | 9 | 107 | 110 | -0.93% | 1,698 | 0 | City |
Oskaloosa is the largest city in Mahaska County, with a population of 11,482.
Keomah Village is the smallest city in Mahaska County, with a population of 107.
There are 9 cities in Mahaska County, Iowa.