Cities
Polk County, Iowa contains all or part of 20 incorporated cities, ranging from Des Moines, the largest city with territory in the county, to small communities with estimated populations below 500 residents. This guide compares the latest official population estimates for cities located wholly or partly within Polk County, making it easier to understand the relative size of communities across the county.
Largest Cities in Polk County
Des Moines is by far the largest city with territory in Polk County, with an official 2025 population estimate of 212,086. Ankeny is the second-largest at 77,833 residents, followed by West Des Moines with 74,224 and Urbandale with 48,570. These are the largest cities included in this guide based on the latest U.S. Census Bureau population estimates.
Johnston, Altoona, Clive, Grimes, and Norwalk make up the next group of larger communities, with 2025 population estimates ranging from 15,004 to 25,065. Pleasant Hill and Bondurant each have more than 9,000 residents. Population estimates provide a useful way to compare the overall size of these communities, although several cities extend across county boundaries.
Smaller Communities in Polk County
Polk City has an estimated 2025 population of 6,630, followed by Windsor Heights with 5,059 and Carlisle with 4,532. Mitchellville has 2,671 residents, while Granger has 2,179 and Elkhart has 1,097. Runnells, Alleman, and Sheldahl each have fewer than 500 residents, with Sheldahl the smallest community in this list at an estimated 306 residents.
Population size does not necessarily reflect the geographic size or character of a city. Some communities occupy relatively large areas with lower population densities, while others are more compact and densely developed. In addition, several cities cross county boundaries, so the figures below represent each city’s total estimated population rather than only the portion located within Polk County.
Polk County Cities by Population
| City | 2025 Population Estimate |
|---|---|
| Des Moines | 212,086 |
| Ankeny | 77,833 |
| West Des Moines | 74,224 |
| Urbandale | 48,570 |
| Johnston | 25,065 |
| Altoona | 22,796 |
| Clive | 19,861 |
| Grimes | 17,405 |
| Norwalk | 15,004 |
| Pleasant Hill | 11,239 |
| Bondurant | 9,647 |
| Polk City | 6,630 |
| Windsor Heights | 5,059 |
| Carlisle | 4,532 |
| Mitchellville | 2,671 |
| Granger | 2,179 |
| Elkhart | 1,097 |
| Runnells | 461 |
| Alleman | 440 |
| Sheldahl | 306 |
Population figures are U.S. Census Bureau Vintage 2025 population estimates and reflect the estimated population of each entire city as of July 1, 2025. For consistency, this table uses the same Vintage 2025 estimate series for every city rather than substituting separate Special Census counts that may be available for individual communities. For cities that extend into neighboring counties, the figures include residents living outside Polk County and should not be interpreted as the population of the Polk County portion alone. Carlisle, Granger, Norwalk, and Sheldahl have portions within Polk County and extend into neighboring counties, while several other cities in this list also cross county boundaries.