Walsh County is a county in North Dakota, United States, in the Red River Valley along the Minnesota border. It had a population of 10,563 at the 2020 census, and covers 1,282 square miles (3,319 km2) of land, centred near 48°23′N 97°43′W.
Grafton is the county seat, and its postal code is 58237. The county has 13 incorporated cities and several unincorporated communities, sits in the Central time zone, and carries FIPS code 38099.
Towns & Villages in Walsh County
Walsh County’s settlements cluster along the Park and Forest rivers and the Interstate 29 corridor. Grafton anchors the county’s north-central section; the rest are small farm towns of a few hundred residents or fewer.
| Place | Type | Pop. | ZIP |
|---|---|---|---|
| Grafton | City · seat | 4,170 | 58237 |
| Park River | City | — | 58270 |
| Minto | City | — | 58261 |
| Hoople | City | — | 58243 |
| Edinburg | City | — | 58227 |
| Fordville | City | — | 58231 |
| Forest River | City | — | 58233 |
| Adams | City | — | 58210 |
| Ardoch | City | — | — |
| Conway | City | — | — |
| Fairdale | City | — | 58229 |
| Lankin | City | — | 58250 |
| Pisek | City | — | 58273 |
| Cashel | Unincorp. | — | — |
| Kellogg | Unincorp. | — | — |
| Nash | Unincorp. | — | — |
| Oakwood | Unincorp. | — | — |
| Pleasant Valley | Unincorp. | — | — |
| Voss | Unincorp. | — | — |
| Warsaw | Unincorp. | — | — |
ZIP Codes
- 58237 — post office town Grafton (also serves the surrounding townships)
- 58270 — post office town Park River
- 58261 — post office town Minto
- 58243 — post office town Hoople
- 58227 — post office town Edinburg
- 58231 — post office town Fordville
- 58233 — post office town Forest River
- 58210 — post office town Adams
- 58250 — post office town Lankin
- 58273 — post office town Pisek
- 58229 — post office town Fairdale
Ardoch, Cashel, Conway, Kellogg, Nash, Oakwood, Pleasant Valley, Voss, and Warsaw have no ZIP code of their own; mail there is delivered through the nearest listed post office town.
Geography
Walsh County sits in the flat, fertile Red River Valley, drained by the Park River and the Forest River, both tributaries of the Red River of the North that forms the state’s eastern edge nearby. Land is 1,282 square miles (3,319 km2), with 12 square miles (32 km2) of water — sloughs and river bottomland rather than open lakes.
Bordering counties: Pembina County to the north; Kittson County, Minnesota, to the northeast; Marshall County, Minnesota, to the east; Polk County, Minnesota, to the southeast; Grand Forks County to the south; Nelson County to the southwest; Ramsey County to the west; Cavalier County to the northwest.
Demographics
Walsh County had 10,563 residents at the 2020 census, with a 2025 estimate of 10,179. Grafton, the largest city, and Park River, the second-largest, together hold a large share of the county’s population outside the surrounding farm townships. The county’s median household income trails North Dakota’s 2023 state figure of $76,525. About 40% of residents report Norwegian ancestry and roughly 22% German, reflecting the valley’s Scandinavian and German homestead settlement.
Economy & Local Life
Agriculture drives the county economy — wheat, sugar beets, potatoes, and dry edible beans are the leading crops in this stretch of the Red River Valley, supported by grain elevators and beet-processing infrastructure in and around Grafton. Grafton also serves as a regional trade and medical hub for the smaller towns along the Park River corridor. Walsh County’s fair, held each summer in Grafton, is the county’s largest annual gathering.
History
Walsh County was created on May 2, 1881, and organized on August 30, 1881, from Dakota Territory land. It is named for George H. Walsh, a Grand Forks newspaperman and territorial politician. In 1946, a tornado outbreak struck the area, killing eight people in Walsh County alone as part of a storm system that also caused deaths in Minnesota and Manitoba.
Getting There
Interstate 29 runs north-south through the eastern part of the county, with U.S. Route 81 and six state highways (ND-17, 18, 32, 35, 44, and 54) linking the smaller towns to Grafton and Park River.
- Grand Forks — 30 miles south
- Devils Lake — 75 miles west
- Fargo — 115 miles south
- Winnipeg, Manitoba — 115 miles north
The nearest commercial airport is Grand Forks International Airport. Amtrak’s Empire Builder stops at Grand Forks, the closest station to Walsh County.
Frequently Asked Questions
Where is Walsh County, North Dakota?
It is in the northeastern part of the state, in the Red River Valley along the Minnesota border, about 30 miles north of Grand Forks.
What is the Grafton postcode?
Grafton’s ZIP code is 58237.
What is the population of Walsh County?
Walsh County had a population of 10,563 at the 2020 census.
What is the county seat of Walsh County?
Grafton is the county seat.
How big is Walsh County?
The county covers 1,282 square miles (3,319 km2) of land and 12 square miles (32 km2) of water.
What is Walsh County named after?
It is named for George H. Walsh, a Grand Forks newspaperman and territorial-era politician.
What is the largest city in Walsh County?
Grafton, with 4,170 residents at the 2020 census.
More counties in this state: Towns and villages in North Dakota.