# Interstate 35 in Iowa

Interstate 35 (I-35) is a north–south Interstate Highway in the United States that runs from Laredo, Texas, to Duluth, Minnesota. In Iowa, the highway runs from south to north through the center of the state, roughly parallel to U.S. Highway 69 (US 69) and US 65. It enters the state near Lamoni from Missouri and continues north through the southern Iowa drift plain. In the Des Moines area, I-35 runs concurrently with I-80, and the two highways bypass Des Moines to the west and north. I-235, the only auxiliary route of I-35 in the state, serves the suburbs and downtown Des Moines; it begins and ends at the two interchanges where I-35 and I-80 meet. Near Mason City and Clear Lake, US 18 and Iowa Highway 27 (Iowa 27) overlap with I-35. Shortly after, US 18 splits off to the west in Clear Lake, while Iowa 27 runs with I-35 until they reach the Minnesota state line.
Construction of I-35 in Iowa took place over 17 years. The first 10-mile-long (16 km) section of the route that stretched from Cumming to Urbandale was opened on September 21, 1958. In the next 14 years, new sections of the route opened regularly, only leaving the section between Mason City and US 20 incomplete. On November 14, 1975, the last 50-mile-long (80 km) section of the route was completed and connected the two noncontiguous sections of I-35.

## Route description
### Southern Iowa

I-35 enters Iowa at the Missouri state line near the town of Lamoni. An interchange that provides access to the adjacent US 69 and East 100th Street is situated over the state border. The highway travels to the north-northeast for four miles (6.4 km) until it again meets US 69 on the eastern edge of Lamoni. North of Lamoni is a rest area which overlooks the Grand River and provides pedestrian access to Decatur County's Slip Bluff County Park. North of the Grand River, the Interstate straightens to a north–south alignment. Near Decatur City, it intersects Iowa 2 at a diamond interchange. Continuing north, the Interstate slightly eases to the east. Two rural interchanges, for County Road J20 (CR J20) and CR H45/Elk Street, and another in Van Wert for CR J14/East Line Street dot the 21 miles (34 km) separating Decatur City and Osceola.
The Osceola area is served by three interchanges for I-35. The first is a partial cloverleaf interchange with US 34. This junction is so configured because of US 34's proximity to the BNSF Railway line, which carries Amtrak's California Zephyr. The next exit for CR H33/Kansas Street serves a casino and western Osceola. Northwest of Osceola is the western end of Iowa 152, which connects I-35 and US 69 at a narrow point between the two routes. Further north, the small towns of New Virginia, Truro, and St. Charles are each served by an interchange. The Iowa 92 exit just east of Bevington connects I-35 to the larger communities of Winterset and Indianola, to the west and east, respectively. The interchange for Cumming is the last before the Interstate enters the Des Moines metropolitan area.

### Central Iowa

I-35 continues north, enters the Des Moines metropolitan area, and meets the Iowa 5 freeway in West Des Moines at exit 68. Further on in West Des Moines, at the West Mixmaster Interchange, I-35 meets I-80 and I-235. I-235 serves downtown Des Moines, while I-35 and I-80 overlap and serve the Des Moines's western and northern suburbs using I-80's exit numbering. On the Clive–Urbandale city border, I-35 and I-80 meet US 6/Hickman Road. Further north in Urbandale, they meet Iowa 141/Northwest Urbandale Drive/Southeast Grimes Boulevard and turn eastward. They also meet US 69/Northeast 14th Street north of Des Moines. Between Des Moines and Ankeny, at the East Mixmaster interchange, I-35 and I-80 separate at an interchange where they also meet I-235.
I-35 then turns north to go through Ankeny. It continues north and at Ames meets US 30. Ames is also served by the Interstate 35 Business Loop (I-35 BL). I-35 continues north and meets Iowa 175 near Ellsworth and meets the US 20 freeway near the community of Williams. It continues north until the Wright County line, where it turns northeast. On this northeasterly alignment, I-35 meets Iowa 3.

### Northern Iowa

Shortly after meeting Iowa 3, I-35 turns north again and meets both US 18 and Iowa 27 near Clear Lake at exit 190. I-35 overlaps US 18 and Iowa 27 through the Clear Lake area, which is also served with I-35 BL. US 18 separates in Clear Lake at exit 194, and I-35 and Iowa 27, which serves as the designation in Iowa for the Avenue of the Saints, overlap for the rest of the way to the Minnesota border, meeting Iowa 9 near Hanlontown at exit 203.

### Services

The Iowa Department of Transportation (Iowa DOT) operates 37 rest areas and one scenic overlook in 20 locations along its 780 miles (1,260 km) of Interstate Highway. Along I-35, there are five locations that have facilities accessible to each direction of traffic. A sixth is under construction in northern Polk County. Parking areas are divided so passenger automobiles are separated from large trucks. Common among all of the rest stops are separate men's and women's restrooms, payphones with TDD capabilities, weather reporting kiosks, vending machines, and free wireless Internet. Many stations have family restrooms and dump stations for recreational vehicles.
The first rest areas along Iowa's Interstates were built in the 1960s. They were modest facilities; separate buildings housed the restrooms and vending machines. A few rest stops had another building with local tourist information. The newer facilities feature one large building housing as many as 28 more toilets than the older buildings, in addition to all the other common rest area amenities. They also feature artwork by local Iowa artists. Each new rest area is designed around a theme. For instance, the facility near Story City celebrates the history of transportation in the state. Story County is the home of Iowa DOT and the location where the historic Lincoln Highway and I-35 intersect.

### Transit

Jefferson Lines provides intercity bus service along the length of I-35 in Iowa serving seven communities along the route. The Des Moines Bus Station serves as a major transfer point along the I-35 route.

## History

The first section of I-35, a 10-mile-long (16 km) stretch from Cumming to Urbandale, opened around September 21, 1958. Within five years, the Interstate had grown to 55 miles (89 km), extending from US 34 in Osceola to the eastern interchange with I-80 and I-235. The next two sections of I-35 were the 25 miles (40 km) from Ankeny to US 30 near Ames and the 30 miles (48 km) from Ames to US 20 near Williams.
By 1972, I-35 was completed at the Missouri and Minnesota state lines. In southern Iowa, the last section, from Iowa 2 near Decatur City to the state line, was completed on December 2, 1970. In northern Iowa, the section from Iowa 9 near Hanlontown to the state line opened on December 12, 1972. The last section of I-35 to open, from US 20 to Mason City, opened on November 14, 1975.

## Exit list

| County | Location | mi | km | Exit | Destinations | Notes |
| Iowa–Missouri state line | Iowa–Missouri state line | 0.000 | 0.000 | | I-35 south – Kansas City | Continuation into Missouri |
| Iowa–Missouri state line | Iowa–Missouri state line | 0.000 | 0.000 | 114 | US 69 – Lamoni | Exit number follows Missouri numbering; interchange is on the state line |
| Decatur | Lamoni | 4.178 | 6.724 | 4 | US 69 – Lamoni, Davis City | |
| Decatur | Decatur City | 12.823 | 20.637 | 12 | Iowa 2 – Leon, Mount Ayr | |
| Decatur | Long Creek Township | 17.946 | 28.881 | 18 | CR J20 – Grand River, Garden Grove | |
| Decatur | Van Wert | 22.293 | 35.877 | 22 | CR J14 – Van Wert | Former Iowa 258 |
| Clarke | Knox Township | 29.368 | 47.263 | 29 | CR H45 | |
| Clarke | Osceola | 33.177 | 53.393 | 33 | US 34 – Creston, Osceola | Access to Clarke County Hospital |
| Clarke | Osceola | 34.247 | 55.115 | 34 | Clay Street – Osceola | |
| Clarke | Osceola Township | 36.315 | 58.443 | 36 | CR R35 | Former Iowa 152 |
| Warren | Virginia Township | 43.859 | 70.584 | 43 | CR G76 – New Virginia | Former Iowa 207 |
| Warren | Virginia Township | 47.423 | 76.320 | 47 | CR G64 – Truro | Former Iowa 400 |
| Warren | Jackson Township | 51.958 | 83.618 | 52 | CR G50 – St. Marys, St. Charles | Former Iowa 251 |
| Warren | Bevington | 56.753 | 91.335 | 56 | Iowa 92 – Indianola, Winterset | |
| Warren | Cumming | 65.041 | 104.673 | 65 | CR G14 – Norwalk, Cumming | |
| Polk | West Des Moines | 67.858– 68.407 | 109.207– 110.090 | 68 | Iowa 5 south – Norwalk, Carlisle, West Des Moines | Access to Des Moines International Airport |
| Polk | West Des Moines | 69.165 | 111.310 | 69 | Grand Avenue – West Des Moines | Former Iowa 90; access to DMACC West Campus |
| Polk | West Des Moines | 70.406 | 113.307 | 70 | Mills Civic Parkway | |
| Polk | West Des Moines | 72.606– 73.445 | 116.848– 118.198 | 72A | I-235 east – West Des Moines, Des Moines | I-235 exit 123 |
| Polk | West Des Moines | 72.606– 73.445 | 116.848– 118.198 | 72B | I-80 west – Council Bluffs, Omaha | Southern end of I-80 concurrency; no exit number southbound; I-80 east exit 123B |
| Polk | West Des Moines–Clive line | 73.231 | 117.854 | 72C | University Avenue – Clive | Signed as exit 124 southbound; access to MercyOne West Des Moines Medical Center |
| Polk | Clive–Urbandale line | 74.443 | 119.804 | 125 | US 6 (Hickman Road) – Adel, Waukee | Access to Living History Farms |
| Polk | Urbandale | 75.448 | 121.422 | 126 | Douglas Avenue – Urbandale | |
| Polk | Urbandale | 76.452 | 123.038 | 127A | Meredith Drive | Northbound exit and southbound entrance only; opened October 16, 2020 |
| Polk | Urbandale | 76.838 | 123.659 | 127B | Iowa 141 west – Grimes | Signed exit 127 southbound and exit 127B northbound |
| Polk | Urbandale | 77.806 | 125.217 | 128 | 100th Street | Opened in 2018 |
| Polk | Urbandale | 78.811 | 126.834 | 129 | Northwest 86th Street – Camp Dodge | |
| Polk | Urbandale | 80.819 | 130.066 | 131 | Iowa 28 south (Merle Hay Road) – Saylorville Lake | Former Iowa 401 |
| Polk | Saylor Township | 84.844 | 136.543 | 135 | Iowa 415 (2nd Avenue) – Polk City | |
| Polk | Saylor Township | 85.860 | 138.178 | 136 | US 69 (E. 14th Street) – Ankeny | |
| Polk | Ankeny | 86.795– 87.388 | 139.683– 140.637 | 137 | I-80 east / I-235 west – Des Moines, Davenport | Northern end of I-80 overlap; northbound signed as exits 137A (I-235) and 137B (I-80), southbound signed as exits 137A (I-80) and 137B (I-235) |
| Polk | Ankeny | 89.041 | 143.298 | 89 | Corporate Woods Drive | Exit numbers follow I-35 |
| Polk | Ankeny | 90.604 | 145.813 | 90 | Iowa 160 west (Oralabor Road) – Bondurant | Access to Saylorville Lake and Des Moines Area Community College |
| Polk | Ankeny | 92.604 | 149.032 | 92 | 1st Street | Diverging diamond interchange |
| Polk | Ankeny | 94.678 | 152.369 | 94 | NE 36th Street | Opened November 20, 2012 |
| Polk | Elkhart Township | 96.788 | 155.765 | 96 | Polk City, Elkhart | Former Iowa 87 |
| Story | Huxley | 102.752 | 165.363 | 102 | Iowa 210 – Huxley, Maxwell, Slater, Cambridge | |
| Story | Ames | 111.716 | 179.789 | 111 | I-35 Business Loop north / US 30 – Nevada, Ames, Iowa State University | Signed as exits 111A (east) and 111B (west/north) |
| Story | Ames | 113.569 | 182.772 | 113 | I-35 Business Loop south / 13th Street – USDA Veterinary Labs | |
| Story | Milford Township | 116.570 | 187.601 | 116 | CR E29 | |
| Story | Howard Township | 122.989 | 197.932 | 123 | CR E18 – Roland, McCallsburg | Former Iowa 221 |
| Story | Story City | 124.482 | 200.334 | 124 | Story City | |
| Hamilton | Scott Township | 127.974 | 205.954 | 128 | CR D65 – Stanhope, Randall | |
| Hamilton | Ellsworth | 132.955 | 213.970 | 133 | Iowa 175 – Jewell, Eldora | |
| Hamilton | Rose Grove Township | 139.018 | 223.728 | 139 | CR D41 / CR R61 – Kamrar | |
| Hamilton | Rose Grove Township | 142.498 | 229.328 | 142 | US 20 – Waterloo, Fort Dodge | Signed as exits 142A (east) and 142B (west) |
| Hamilton | Williams Township | 144.038 | 231.807 | 144 | CR D25 – Williams, Blairsburg, Ellsworth Community College | Former US 20 |
| Hamilton | Williams Township | 147.046 | 236.648 | 147 | CR D20 – Iowa Falls, Alden | |
| Wright | Vernon Township | 151.369 | 243.605 | 151 | CR R75 – Woolstock | |
| Franklin | Morgan Township | 159.862 | 257.273 | 159 | CR C47 – Dows | Former Iowa 72 |
| Franklin | Scott Township | 165.670 | 266.620 | 165 | Iowa 3 – Clarion, Hampton | Access to Franklin General Hospital |
| Franklin | Marion Township | 170.114 | 273.772 | 170 | CR C25 – Alexander | |
| Franklin | Richland Township | 176.301 | 283.729 | 176 | CR C13 – Sheffield, Belmond | |
| Cerro Gordo | Pleasant Valley Township | 179.924 | 289.560 | 180 | CR B65 – Thornton | |
| Cerro Gordo | Pleasant Valley Township | 182.471 | 293.659 | 182 | CR B60 – Rockwell, Swaledale | |
| Cerro Gordo | Mount Vernon Township | 188.518 | 303.390 | 188 | CR B43 – Burchinal | |
| Cerro Gordo | Lake Township | 190.749– 191.193 | 306.981– 307.695 | 190 | US 18 east / Iowa 27 south (Avenue of the Saints) – Charles City, Mason City | Southern end of US 18/Iowa 27 overlap |
| Cerro Gordo | Clear Lake | 193.194 | 310.916 | 193 | I-35 Business Loop north / CR B35 – Clear Lake, Mason City | |
| Cerro Gordo | Clear Lake | 194.063 | 312.314 | 194 | US 18 west / I-35 Business Loop south / Iowa 122 east – Mason City, Clear Lake | Northern end of US 18 overlap; access to MercyOne North Iowa Medical Center, Mason City Municipal Airport, and North Iowa Area Community College |
| Cerro Gordo | Lincoln Township | 197.753 | 318.253 | 197 | CR B20 – Mason City | |
| Worth | Danville Township | 203.675 | 327.783 | 203 | Iowa 9 – Manly, Forest City | |
| Worth | Brookfield Township | 208.691 | 335.856 | 208 | CR A38 – Joice, Kensett | |
| Worth | Hartland Township | 214.712 | 345.545 | 214 | CR 105 – Lake Mills, Northwood | Former Iowa 105 |
| Worth | Hartland Township | 218.532 | 351.693 | | I-35 north (Avenue of the Saints) / Iowa 27 ends – Minneapolis | Northern end of Iowa 27 (and overlap); continuation into Minnesota |
| 1.000 mi = 1.609 km; 1.000 km = 0.621 mi Concurrency terminus Incomplete access |||||||
* 1 2 3 4 5 6 7 8 9 10 Exit numbers follow I-80