Hannibal
City in Marion County, Missouri

Hannibal is a city in Marion County, Missouri, with 17,108 residents (2020 Census). It sits at 502 ft (153 m) above sea level. The nearest town is Fall Creek, 7.2 miles NE.
- 17,108residents (2020 Census)
- 502 ftelevation · 153 m
- 16.0 sq miland area · 41.5 km²
- 1,069 / sq mipopulation density
- 63401ZIP code
About Hannibal
Hannibal is a city along the Mississippi River in Marion and Ralls counties in Missouri, United States. According to the 2020 U.S. census, the population was 17,108, making it the largest city in Marion County. The bulk of the city is in Marion County, with a tiny sliver in the south extending into Ralls County.
Nestled on the Mississippi River, commerce and traffic has long been an integral part of Hannibal's development, including by river, rail and the interstate/highway system. Today the city is intersected by Interstate 72 and U.S. Routes 24, 36, and 61. Hannibal is approximately 110 miles (180 km) northwest of St. Louis (also bordering the Mississippi), 195 miles (314 km) east-northeast of Kansas City and 194 miles (312 km) miles east of Saint Joseph (both cities on the Missouri River), and approximately 100 miles (160 km) west of Springfield, Illinois.
Hannibal is not the county seat, but it has one of two county courthouses. There is also one in Palmyra, the county seat of Marion County, which is located more centrally in the county. Hannibal is the principal city of the Hannibal, Missouri micropolitan area, which consists of both Marion and Ralls counties.
Text: Wikipedia · CC BY-SA 4.0
Hannibal weather: 7-day forecast
Loading the National Weather Service forecast…
Source: National Weather Service (NOAA).
Nearest webcams to Hannibal
There are no webcams in Hannibal itself. These are the closest, 47 miles away or more.
Webcams: Windy.com
Living in Hannibal
- Median household income
- $53,721
- Median home value
- $127,700
- Median rent
- $805/mo
- Median age
- 38.5
Do you know Hannibal? Tell us about it
Help other travelers: share what makes Hannibal special. We review every message before publishing it.
Map of Hannibal
Tap any street on the map to see it in Street View below. Map: © OpenStreetMap contributors.
Hannibal Street View
Drag the image to look around and tap the arrows on the ground to move. If it says there is no imagery, tap a nearby street on the map above.
Open in Google Maps ›Hannibal, MO population
Hannibal had 17,108 residents in the 2020 Census.
| 2020 Census | 17,108 |
|---|---|
| Density | 1,069 per sq mi (413 per km²) |
Source: U.S. Census Bureau, Decennial Census.
Hannibal at a glance
| State | Missouri (MO) |
|---|---|
| County | Marion County |
| Type | City |
| Population | 17,108 (2020) |
| Land area | 16.01 sq mi (41.5 km²) |
| Water area | 0.46 sq mi (1.19 km²) |
| Elevation | 502 ft (153 m) |
| Coordinates | 39.7086° N, 91.3995° W |
| ZIP code | 63401 |
| Official website | hannibal-mo.gov |
| Census code (GEOID) | 2930214 |
Sources: U.S. Census Bureau (Gazetteer, ZCTA), USGS GNIS, Wikidata.
Towns near Hannibal
- Fall Creek, IL7.2 mi NE
- Rensselaer8.0 mi W
- Saverton8.2 mi SE
- New London8.6 mi S
- Palmyra9.1 mi NW
- Hull, IL10.6 mi E
- Payson, IL11.1 mi NE
- Plainville, IL12.7 mi NE
- Kinderhook, IL13.1 mi E
- Center15.4 mi SW
- Adams, IL15.4 mi NE
- Frankford15.5 mi S
Straight-line distance between town centers.
Frequently asked questions about Hannibal
What county is Hannibal in?
Hannibal is in Marion County, Missouri.
What is the population of Hannibal, MO?
17,108 people lived in Hannibal at the 2020 Census.
What is the ZIP code of Hannibal, MO?
The ZIP code of Hannibal is 63401.
What is the elevation of Hannibal?
502 feet (153 m) above sea level.
What towns are near Hannibal?
Fall Creek (7.2 mi), Rensselaer (8.0 mi), Saverton (8.2 mi), New London (8.6 mi), Palmyra (9.1 mi).
Last updated: