Hannibal
Census-designated place in Monroe County, Ohio

Hannibal is an unincorporated community (census-designated place) in Monroe County, Ohio, with 314 residents (2020 Census). It sits at 679 ft (207 m) above sea level. The nearest town is New Martinsville, 1.9 miles S.
- 314residents (2020 Census)
- 679 ftelevation · 207 m
- 1.1 sq miland area · 2.9 km²
- 282 / sq mipopulation density
- 43931ZIP code
About Hannibal
Hannibal is an unincorporated community and census-designated place (CDP) in eastern Ohio Township, Monroe County, Ohio, United States. It has a post office with the ZIP code 43931. In the 2020 Census, it had a population of 314, down from 411 in 2010.
Hannibal was originally called "Baresville", named for the founder Jacob Bare. A post office called Hannibal was opened and the town's name was soon changed to match.
Hannibal is served by the Switzerland of Ohio Local School District and is home to the K-12 building that houses both River Elementary School and River High School.
Text: Wikipedia · CC BY-SA 4.0
Hannibal weather: 7-day forecast
Loading the National Weather Service forecast…
Source: National Weather Service (NOAA).
Live webcams in Hannibal
Webcams: Windy.com
Living in Hannibal
- Median household income
- $77,824
- Median home value
- $161,200
- Median age
- 58.1
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, OH population
Hannibal had 314 residents in the 2020 Census.
| 2020 Census | 314 |
|---|---|
| Density | 282 per sq mi (109 per km²) |
Source: U.S. Census Bureau, Decennial Census.
Hannibal at a glance
| State | Ohio (OH) |
|---|---|
| County | Monroe County |
| Type | Census-designated place |
| Population | 314 (2020) |
| Land area | 1.12 sq mi (2.9 km²) |
| Water area | 0.08 sq mi (0.21 km²) |
| Elevation | 679 ft (207 m) |
| Coordinates | 39.6718° N, 80.8715° W |
| ZIP code | 43931 |
| Census code (GEOID) | 3933222 |
Sources: U.S. Census Bureau (Gazetteer, ZCTA), USGS GNIS, Wikidata.
Towns near Hannibal
- New Martinsville, WV1.9 mi S
- Sardis3.5 mi SW
- Paden City, WV5.8 mi SW
- Clarington7.3 mi N
- Sistersville, WV10.3 mi SW
- Antioch10.4 mi W
- Reader, WV10.5 mi SE
- Middlebourne, WV12.4 mi S
- Pine Grove, WV12.4 mi SE
- Powhatan Point13.6 mi N
- Woodsfield14.4 mi NW
- Friendly, WV14.9 mi SW
Straight-line distance between town centers.
Frequently asked questions about Hannibal
What county is Hannibal in?
Hannibal is in Monroe County, Ohio.
What is the population of Hannibal, OH?
314 people lived in Hannibal at the 2020 Census.
What is the ZIP code of Hannibal, OH?
The ZIP code of Hannibal is 43931.
What is the elevation of Hannibal?
679 feet (207 m) above sea level.
What towns are near Hannibal?
New Martinsville (1.9 mi), Sardis (3.5 mi), Paden City (5.8 mi), Clarington (7.3 mi), Sistersville (10.3 mi).
Last updated: