There are
179 mi
from St Louis, MO to Keokuk, IA
That's the driving distance. It would take 3 hours 40 mins to go from St Louis, Missouri to Keokuk, Iowa.
The flight distance (direct flight from St Louis, MO to Keokuk, IA) is 138.22 mi.
179 mi = 287.67 kms