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.