Iowa towns
All 141 Iowa towns and cities with 2,500 or more people. The typical Iowa town has a median home value of $156,300 and household income of $69,254.
Iowa town rankings
- The 25 Best Small Towns to Retire in Iowa
- The 25 Most Affordable Small Towns in Iowa
- The 18 Best Small Towns for Families in Iowa
- 25 Small Towns in Iowa With the Cheapest Homes
- 25 Small Towns in Iowa With the Mildest Winters
- The 25 Most Walkable Small Towns in Iowa
- 25 Small Towns in Iowa With the Fewest Tornadoes Since 1950
- The 25 Best Small Towns for First-Time Home Buyers in Iowa
All Iowa towns
| Town | County | People | Median home | Income | Jan low |
|---|---|---|---|---|---|
| Des Moines | Polk County | 214,133 | $194,700 | $65,932 | 14° |
| Cedar Rapids | Linn County | 137,710 | $187,100 | $70,424 | 11° |
| Davenport | Scott County | 101,724 | $166,400 | $66,200 | 13° |
| Sioux City | Woodbury County | 85,797 | $173,600 | $68,906 | 9° |
| Iowa City | Johnson County | 74,828 | $285,900 | $58,546 | 15° |
| West Des Moines | Polk County | 68,723 | $309,000 | $86,594 | 14° |
| Ankeny | Polk County | 67,887 | $331,000 | $108,198 | 12° |
| Waterloo | Black Hawk County | 67,314 | $152,600 | $57,480 | 11° |
| Ames | Story County | 66,427 | $277,400 | $60,991 | 11° |
| Council Bluffs | Pottawattamie County | 62,799 | $171,800 | $64,578 | 15° |
| Dubuque | Dubuque County | 59,667 | $204,800 | $65,845 | 10° |
| Urbandale | Polk County | 45,580 | $335,500 | $112,795 | 13° |
| Marion | Linn County | 41,535 | $241,700 | $86,743 | 13° |
| Cedar Falls | Black Hawk County | 40,713 | $263,600 | $76,987 | 11° |
| Bettendorf | Scott County | 39,102 | $306,500 | $100,495 | 14° |
| Marshalltown | Marshall County | 27,591 | $127,700 | $69,068 | 9° |
| Mason City | Cerro Gordo County | 27,338 | $142,000 | $64,804 | 7° |
| Ottumwa | Wapello County | 25,529 | $106,300 | $61,103 | 14° |
| Fort Dodge | Webster County | 24,871 | $144,100 | $60,649 | 7° |
| Clinton | Clinton County | 24,469 | $118,200 | $60,230 | 14° |
| Johnston | Polk County | 24,064 | $369,100 | $106,551 | 13° |
| Burlington | Des Moines County | 23,982 | $114,300 | $59,000 | 16° |
| Waukee | Dallas County | 23,940 | $350,500 | $101,029 | 14° |
| Muscatine | Muscatine County | 23,797 | $153,600 | $58,117 | 13° |
| Coralville | Johnson County | 22,318 | $298,500 | $69,144 | 15° |
| North Liberty | Johnson County | 20,479 | $303,800 | $102,102 | 15° |
| Altoona | Polk County | 19,565 | $274,600 | $86,114 | 12° |
| Clive | Polk County | 18,601 | $401,100 | $132,121 | 14° |
| Indianola | Warren County | 15,833 | $237,500 | $75,453 | 12° |
| Newton | Jasper County | 15,760 | $153,700 | $57,771 | 10° |
| Grimes | Polk County | 15,392 | $304,700 | $120,037 | 13° |
| Norwalk | Warren County | 12,799 | $303,100 | $102,722 | 14° |
| Boone | Boone County | 12,460 | $173,000 | $69,222 | 9° |
| Oskaloosa | Mahaska County | 11,558 | $153,300 | $64,004 | 12° |
| Spencer | Clay County | 11,325 | $184,800 | $59,667 | 7° |
| Storm Lake | Buena Vista County | 11,269 | $172,200 | $62,765 | 9° |
| Le Mars | Plymouth County | 10,571 | $219,200 | $74,701 | 7° |
| Pella | Marion County | 10,464 | $292,700 | $84,111 | 13° |
| Waverly | Bremer County | 10,394 | $223,300 | $80,284 | 11° |
| Carroll | Carroll County | 10,321 | $188,700 | $69,706 | 10° |
| Fort Madison | Lee County | 10,270 | $94,200 | $50,705 | 17° |
| Pleasant Hill | Polk County | 10,147 | $295,100 | $90,508 | 14° |
| Keokuk | Lee County | 9,900 | $104,300 | $52,711 | 17° |
| Grinnell | Poweshiek County | 9,564 | $209,500 | $65,320 | 10° |
| Fairfield | Jefferson County | 9,416 | $156,000 | $51,311 | 14° |
| Mount Pleasant | Henry County | 9,274 | $160,900 | $61,042 | 13° |
| Denison | Crawford County | 8,373 | $150,200 | $65,684 | 10° |
| Sioux Center | Sioux County | 8,229 | $290,800 | $92,983 | 9° |
| Perry | Dallas County | 7,836 | $121,400 | $68,910 | 10° |
| Webster City | Hamilton County | 7,825 | $127,200 | $63,430 | 7° |
| Clear Lake | Cerro Gordo County | 7,687 | $259,500 | $79,415 | 7° |
| Knoxville | Marion County | 7,595 | $160,300 | $61,599 | 13° |
| Decorah | Winneshiek County | 7,587 | $244,500 | $64,366 | 10° |
| Creston | Union County | 7,536 | $114,500 | $52,633 | 11° |
| Charles City | Floyd County | 7,396 | $115,400 | $59,180 | 9° |
| Bondurant | Polk County | 7,365 | $318,800 | $135,674 | 12° |
| Washington | Washington County | 7,352 | $152,300 | $55,373 | 12° |
| Hiawatha | Linn County | 7,183 | $216,900 | $66,270 | 13° |
| Nevada | Story County | 6,925 | $182,400 | $75,094 | 10° |
| Atlantic | Cass County | 6,792 | $149,900 | $61,141 | 10° |
| Eldridge | Scott County | 6,726 | $350,500 | $106,316 | 13° |
| Orange City | Sioux County | 6,267 | $264,000 | $82,122 | 9° |
| Adel | Dallas County | 6,153 | $327,900 | $95,250 | 10° |
| Maquoketa | Jackson County | 6,128 | $132,500 | $60,240 | 11° |
| Independence | Buchanan County | 6,064 | $165,300 | $73,806 | 8° |
| Asbury | Dubuque County | 5,943 | $339,000 | $124,957 | 10° |
| Oelwein | Fayette County | 5,920 | $96,300 | $46,653 | 9° |
| Estherville | Emmet County | 5,904 | $101,400 | $54,124 | 5° |
| Red Oak | Montgomery County | 5,596 | $99,700 | $50,109 | 13° |
| Polk City | Polk County | 5,543 | $414,800 | $164,389 | 13° |
| DeWitt | Clinton County | 5,514 | $237,100 | $92,587 | 14° |
| Sheldon | O'Brien County | 5,512 | $192,700 | $62,159 | 5° |
| Algona | Kossuth County | 5,487 | $160,800 | $56,040 | 6° |
| Anamosa | Jones County | 5,450 | $172,600 | $60,650 | 9° |
| Spirit Lake | Dickinson County | 5,439 | $215,100 | $65,720 | 7° |
| Osceola | Clarke County | 5,415 | $146,300 | $68,284 | 11° |
| Centerville | Appanoose County | 5,412 | $103,000 | $46,563 | 12° |
| Clarinda | Page County | 5,369 | $114,200 | $46,348 | 12° |
| Winterset | Madison County | 5,353 | $192,500 | $67,708 | 10° |
| Windsor Heights | Polk County | 5,252 | $267,900 | $91,707 | 14° |
| Cherokee | Cherokee County | 5,199 | $136,700 | $61,750 | 7° |
| Iowa Falls | Hardin County | 5,106 | $123,800 | $50,417 | 8° |
| Glenwood | Mills County | 5,073 | $206,200 | $71,790 | 12° |
| Manchester | Delaware County | 5,065 | $139,400 | $61,191 | 8° |
| Sergeant Bluff | Woodbury County | 5,015 | $298,500 | $123,481 | 9° |
| Vinton | Benton County | 4,938 | $152,300 | $66,495 | 8° |
| Shenandoah | Page County | 4,925 | $116,700 | $59,783 | 14° |
| Harlan | Shelby County | 4,893 | $152,500 | $57,488 | 10° |
| Humboldt | Humboldt County | 4,792 | $173,600 | $74,500 | 9° |
| Le Claire | Scott County | 4,710 | $318,700 | $104,844 | 14° |
| Camanche | Clinton County | 4,570 | $172,400 | $64,153 | 14° |
| Evansdale | Black Hawk County | 4,561 | $150,300 | $60,397 | 11° |
| Mount Vernon | Linn County | 4,527 | $245,200 | $112,656 | 13° |
| Tiffin | Johnson County | 4,512 | $338,500 | $100,952 | 15° |
| Dyersville | Dubuque County | 4,477 | $234,100 | $83,559 | 11° |
| Hampton | Franklin County | 4,337 | $99,400 | $47,088 | 8° |
| Forest City | Winnebago County | 4,285 | $143,500 | $69,205 | 6° |
| Huxley | Story County | 4,244 | $297,100 | $112,094 | 10° |
| Chariton | Lucas County | 4,193 | $81,900 | $46,979 | 11° |
| Jefferson | Greene County | 4,182 | $155,800 | $58,895 | 9° |
| Carlisle | Warren County | 4,160 | $234,300 | $109,191 | 14° |
| Rock Valley | Sioux County | 4,059 | $231,200 | $76,250 | 9° |
| Monticello | Jones County | 4,040 | $175,200 | $70,015 | 9° |
| Cresco | Howard County | 3,888 | $117,200 | $60,608 | 6° |
| West Liberty | Muscatine County | 3,858 | $180,000 | $69,345 | 12° |
| Waukon | Allamakee County | 3,827 | $147,200 | $60,269 | 8° |
| Carter Lake | Pottawattamie County | 3,791 | $169,400 | $85,349 | 15° |
| Albia | Monroe County | 3,721 | $130,300 | $70,455 | 13° |
| Emmetsburg | Palo Alto County | 3,706 | $114,300 | $55,833 | 7° |
| Osage | Mitchell County | 3,627 | $160,700 | $68,730 | 6° |
| Eagle Grove | Wright County | 3,601 | $104,600 | $63,125 | 6° |
| Saylorville | Polk County | 3,584 | $314,300 | $117,821 | 12° |
| New Hampton | Chickasaw County | 3,494 | $167,700 | $62,870 | 6° |
| Robins | Linn County | 3,353 | $413,400 | $122,262 | 13° |
| Story City | Story County | 3,352 | $215,600 | $96,605 | 11° |
| Williamsburg | Iowa County | 3,346 | $204,300 | $58,059 | 10° |
| Milford | Dickinson County | 3,321 | $218,400 | $63,369 | 8° |
| West Burlington | Des Moines County | 3,197 | $124,000 | $48,542 | 16° |
| Tipton | Cedar County | 3,149 | $165,500 | $61,115 | 12° |
| Tama | Tama County | 3,130 | $106,800 | $68,661 | 9° |
| Garner | Hancock County | 3,065 | $186,300 | $70,726 | 6° |
| Solon | Johnson County | 3,018 | $309,400 | $113,295 | 15° |
| Wilton | Muscatine County | 2,924 | $189,200 | $76,648 | 14° |
| Onawa | Monona County | 2,906 | $145,800 | $62,143 | 9° |
| Sibley | Osceola County | 2,860 | $122,000 | $55,070 | 5° |
| Fairfax | Linn County | 2,828 | $274,500 | $114,375 | 11° |
| Clarion | Wright County | 2,810 | $116,200 | $64,625 | 6° |
| Madrid | Boone County | 2,802 | $185,600 | $89,844 | 12° |
| Grundy Center | Grundy County | 2,796 | $177,900 | $80,357 | 9° |
| Park View | Scott County | 2,709 | $276,000 | $113,409 | 13° |
| Hawarden | Sioux County | 2,700 | $136,300 | $74,167 | 7° |
| Bloomfield | Davis County | 2,682 | $132,000 | $60,769 | 15° |
| Missouri Valley | Harrison County | 2,678 | $148,500 | $71,818 | 10° |
| Eldora | Hardin County | 2,663 | $133,000 | $77,188 | 8° |
| Kalona | Washington County | 2,630 | $257,900 | $80,129 | 15° |
| Rock Rapids | Lyon County | 2,611 | $206,700 | $63,942 | 6° |
| Center Point | Linn County | 2,579 | $212,400 | $95,192 | 8° |
| Hudson | Black Hawk County | 2,546 | $242,700 | $120,481 | 11° |
| West Branch | Cedar County | 2,509 | $216,100 | $92,209 | 12° |
| Jesup | Buchanan County | 2,508 | $190,200 | $89,408 | 8° |
| Postville | Allamakee County | 2,503 | $104,700 | $49,485 | 7° |
Iowa counties
- Allamakee County
- Appanoose County
- Benton County
- Black Hawk County
- Boone County
- Bremer County
- Buchanan County
- Buena Vista County
- Carroll County
- Cass County
- Cedar County
- Cerro Gordo County
- Cherokee County
- Chickasaw County
- Clarke County
- Clay County
- Clinton County
- Crawford County
- Dallas County
- Davis County
- Delaware County
- Des Moines County
- Dickinson County
- Dubuque County
- Emmet County
- Fayette County
- Floyd County
- Franklin County
- Greene County
- Grundy County
- Hamilton County
- Hancock County
- Hardin County
- Harrison County
- Henry County
- Howard County
- Humboldt County
- Iowa County
- Jackson County
- Jasper County
- Jefferson County
- Johnson County
- Jones County
- Kossuth County
- Lee County
- Linn County
- Lucas County
- Lyon County
- Madison County
- Mahaska County
- Marion County
- Marshall County
- Mills County
- Mitchell County
- Monona County
- Monroe County
- Montgomery County
- Muscatine County
- O'Brien County
- Osceola County
- Page County
- Palo Alto County
- Plymouth County
- Polk County
- Pottawattamie County
- Poweshiek County
- Scott County
- Shelby County
- Sioux County
- Story County
- Tama County
- Union County
- Wapello County
- Warren County
- Washington County
- Webster County
- Winnebago County
- Winneshiek County
- Woodbury County
- Wright County