K-31 begins at a diamond interchange with
U.S. Highway 69 (US-69) near
Fulton in
Bourbon County and heads west on a two-lane road to
Mapleton. The highway turns north for , then turns west again at a junction with
K-52. west of this point, K-31 enters the town of
Kincaid, where it begins an
concurrency with
US-59, and also overlaps
US-169 south of
Garnett. In Garnett, K-31 leaves US-59 to the west and heads towards
Harris where it turns north, again. It turns west at the
Franklin County line and overlaps the border until it enters
Coffey County, where it continues west toward
Waverly. Leaving the town, K-31 heads north again toward
Interstate 35 (I-35), and
Melvern. It shares a short wrong-way concurrency with I-35 before arriving in Melvern, where it once again turns west. The highway begins a concurrency with
US-75, where it heads toward, and passes through
Lyndon. North of the city, K-31 again turns west toward
Osage City. It begins a concurrency with
US-56 north of the town and travels north to
Burlingame, where it leaves US-56 and heads west toward
Harveyville. After passing through Harveyville, K-31 terminates at
K-99 in rural
Wabaunsee County. Almost all of K-31's alignment is maintained by the Kansas Department of Transportation. The entire brick section within Burlingame is maintained by the city. The section of K-31 in Osage City from K-170 to slightly east of 9th Street is maintained by the city. ==History==