Walsh County is a county in the U.S. state of North Dakota. As of the 2020 census, the population was 10,563, and was estimated to be 10,179 in 2025.

History

The Dakota Territory legislature created the county on May 2, 1881, with areas partitioned from Grand and Pembina counties. It was organized on August 30 of that same year, with Grafton as county seat. It was named for George H. Walsh (1845–1913), a newspaperman and politician in Grand Forks.

In 1946, Walsh County was the site of one of North Dakota's deadliest tornadoes. The storm killed 11 people, including eight in Walsh County, one in Manitoba, and two in Minnesota. The terrain generally slopes to the north and east, but the highest point is its northwestern corner, at ASL.

According to the United States Census Bureau, the county has a total area of , of which is land and (0.96%) is water. It is the 22nd largest county in North Dakota by total area.

Major highways

  • 25px Interstate 29
  • 25px U.S. Highway 81
  • 25px North Dakota Highway 17
  • 25px North Dakota Highway 18
  • 25px North Dakota Highway 32
  • 25px North Dakota Highway 35
  • 25px North Dakota Highway 44
  • 25px North Dakota Highway 54

Adjacent counties

  • Pembina County – north
  • Kittson County, Minnesota – northeast
  • Marshall County, Minnesota – east
  • Grand Forks County – south
  • Nelson County – southwest
  • Ramsey County – west
  • Cavalier County – northwest
  • Polk County - southeast

Protected areas

  • Ardoch National Wildlife Refuge
  • Fairdale Slough National Waterfowl Production Area
  • National Waterfowl Production Area
  • North Salt Lake State Game Management Area

Lakes

Source:

|align-fn=center

|footnote=U.S. Decennial Census<br>1790–1960 1900–1990<br>1990–2000 2010–2020

As of the fourth quarter of 2025, the median home value in Walsh County was $143,614.

As of the 2024 American Community Survey, there are 4,400 estimated households in Walsh County with an average of 2.28 persons per household. The county has a median household income of $71,944. Approximately 11.2% of the county's population lives at or below the poverty line. Walsh County has an estimated 62.6% employment rate, with 19.2% of the population holding a bachelor's degree or higher and 88.8% holding a high school diploma. !! Pop. 1990 !! Pop. 2000 !! Pop. 2010 !! !! Pop. 2024

|-

| White alone (NH)

| 15,005<br>(97.62%) || 13,231<br>(95.60%) || 11,436<br>(92.31%) || 9,834<br>(88.44%) || style='background: #ffffe6; |8,676<br>(82.14%) || 8,225<br>(80.53%)

|-

| Black or African American alone (NH)

| 4<br>(0.03%) || 17<br>(0.12%) || 24<br>(0.19%) || 24<br>(0.22%) || style='background: #ffffe6; |69<br>(0.65%) || 75<br>(0.73%)

|-

| Native American or Alaska Native alone (NH)

| 97<br>(0.63%) || 97<br>(0.70%) || 120<br>(0.97%) || 153<br>(1.38%) || style='background: #ffffe6; |136<br>(1.29%) || 191<br>(1.87%)

|-

| Asian alone (NH)

| 23<br>(0.15%) || 54<br>(0.39%) || 22<br>(0.18%) || 36<br>(0.32%) || style='background: #ffffe6; |45<br>(0.43%) || 107<br>(1.05%)

|-

| Pacific Islander alone (NH)

| — || — || 2<br>(0.02%) || 4<br>(0.04%) || style='background: #ffffe6; |0<br>(0.00%) || 9<br>(0.09%)

|-

| Other race alone (NH)

| 18<br>(0.12%) || 0<br>(0.00%) || 1<br>(0.01%) || 3<br>(0.03%) || style='background: #ffffe6; |31<br>(0.29%) || —

|-

| Mixed race or multiracial (NH)

| — || — || 84<br>(0.68%) || 96<br>(0.86%) || style='background: #ffffe6; |290<br>(2.75%) || 157<br>(1.54%)

|-

| Hispanic or Latino (any race)

| 224<br>(1.46%) || 441<br>(3.19%) || 700<br>(5.65%) || 969<br>(8.71%) || style='background: #ffffe6; |1,316<br>(12.46%) || 1,450<br>(14.20%)

|-

| Total

| 15,371<br>(100.00%) || 13,840<br>(100.00%) || 12,389<br>(100.00%) || 11,119<br>(100.00%) || style='background: #ffffe6; |10,563<br>(100.00%) || 10,214<br>(100.00%)

|}

2024 estimate

As of the 2024 estimate, there were 10,214 people, 4,450 households, and _ families residing in the county. The population density was . There were 5,184 housing units at an average density of . The racial makeup of the county was 93.35% White, 0.88% African American, 2.34% Native American, 1.23% Asian, 0.11% Pacific Islander, _% from some other races and 2.09% from two or more races. Hispanic or Latino people of any race were 14.20% of the population.

2020 census

As of the 2020 census, there were 10,563 people, 4,493 households, and 2,738 families residing in the county. The population density was . There were 5,202 housing units at an average density of . The racial makeup of the county was 86.01% White, 0.67% African American, 1.37% Native American, 0.44% Asian, 0.00% Pacific Islander, 3.94% from some other races and 7.56% from two or more races. Hispanic or Latino people of any race were 12.46% of the population.

There were 4,493 households in the county, of which 25.3% had children under the age of 18 living with them and 21.7% had a female householder with no spouse or partner present. About 34.1% of all households were made up of individuals and 15.3% had someone living alone who was 65 years of age or older.

Of the residents, 22.8% were under the age of 18 and 22.3% were 65 years of age or older; the median age was 44.5 years. For every 100 females there were 104.6 males, and for every 100 females age 18 and over there were 104.8 males. Among occupied housing units, 75.3% were owner-occupied and 24.7% were renter-occupied. The homeowner vacancy rate was 2.6% and the rental vacancy rate was 10.4%.

2010 census

As of the 2010 census, there were 11,119 people, 4,746 households, and 3,021 families in the county. The population density was . There were 5,498 housing units at an average density of . The racial makeup of the county was 93.45% White, 0.22% African American, 1.51% Native American, 0.32% Asian, 0.04% Pacific Islander, 3.10% from some other races and 1.35% from two or more races. Hispanic or Latino people of any race were 8.71% of the population.

In terms of ancestry, 39.7% were Norwegian, 21.6% were German, 11.0% were Polish, 9.4% were Irish, 9.3% were Czech, 5.8% were English, and 5.4% were American.

There were 4,746 households, 25.9% had children under the age of 18 living with them, 52.4% were married couples living together, 7.1% had a female householder with no husband present, 36.3% were non-families, and 32.8% of all households were made up of individuals. The average household size was 2.27 and the average family size was 2.88. The median age was 45.9 years.

The median income for a household in the county was $44,139 and the median income for a family was $58,429. Males had a median income of $36,934 versus $26,826 for females. The per capita income for the county was $23,829. About 5.4% of families and 9.9% of the population were below the poverty line, including 10.8% of those under age 18 and 12.7% of those age 65 or over.

Population by decade

<timeline>

Colors=

id:lightgrey value:gray(0.9)

id:darkgrey value:gray(0.8)

id:sfondo value:rgb(1,1,1)

id:barra value:rgb(0.55,0.0,0.0)

ImageSize = width:750 height:375

PlotArea = left:50 bottom:50 top:30 right:30

DateFormat = x.y

Period = from:0 till:20748

TimeAxis = orientation:vertical

AlignBars = late

ScaleMajor = gridcolor:darkgrey increment:5188 start:0

ScaleMinor = gridcolor:lightgrey increment:2594 start:0

BackgroundColors = canvas:sfondo

BarData=

bar:1890 text:1890

bar:1900 text:1900

bar:1910 text:1910

bar:1920 text:1920

bar:1930 text:1930

bar:1940 text:1940

bar:1950 text:1950

bar:1960 text:1960

bar:1970 text:1970

bar:1980 text:1980

bar:1990 text:1990

bar:2000 text:2000

bar:2010 text:2010

bar:2020 text:2020

bar:2025 text:present

PlotData=

color:barra width:25 align:left

bar:1890 from: 0 till:16587

bar:1900 from: 0 till:20288

bar:1910 from: 0 till:19491

bar:1920 from: 0 till:19087

bar:1930 from: 0 till:20047

bar:1940 from: 0 till:20747

bar:1950 from: 0 till:18859

bar:1960 from: 0 till:17997

bar:1970 from: 0 till:16251

bar:1980 from: 0 till:15371

bar:1990 from: 0 till:13840

bar:2000 from: 0 till:12389

bar:2010 from: 0 till:11119

bar:2020 from: 0 till:10563

bar:2025 from: 0 till:10179 color:darkblue

PlotData=

bar:1890 at:16587 fontsize:M text:16,587 shift: (-16,6)

bar:1900 at:20288 fontsize:M text:20,288 shift:(-16,6)

bar:1910 at:19491 fontsize:M text:19,491 shift:(-16,6)

bar:1920 at:19087 fontsize:M text:19,087 shift:(-16,6)

bar:1930 at:20047 fontsize:M text:20,047 shift:(-16,6)

bar:1940 at:20747 fontsize:M text:20,747 shift:(-16,6)

bar:1950 at:18859 fontsize:M text:18,859 shift:(-16,6)

bar:1960 at:17997 fontsize:M text:17,997 shift:(-16,6)

bar:1970 at:16251 fontsize:M text:16,251 shift:(-16,6)

bar:1980 at:15371 fontsize:M text:15,371 shift:(-16,6)

bar:1990 at:13840 fontsize:M text:13,840 shift:(-16,6)

bar:2000 at:12389 fontsize:M text:12,389 shift:(-16,6)

bar:2010 at:11119 fontsize:M text:11,119 shift:(-16,6)

bar:2020 at:10563 fontsize:M text:10,563 shift:(-16,6)

bar:2025 at:10179 fontsize:M text:10,179 shift:(-16,6)

TextData=

fontsize:S pos:(20,20)

text:Data from U.S. Census Bureau

</timeline>

Communities

Cities

  • Adams
  • Ardoch
  • Conway
  • Edinburg
  • Fairdale
  • Fordville
  • Forest River
  • Grafton (county seat)
  • Hoople
  • Lankin
  • Minto
  • Park River
  • Pisek

Census-designated places

  • Auburn
  • Nash

Unincorporated communities

  • Herriott
  • Veseleyville
  • Voss
  • Warsaw

Townships

  • Acton
  • Adams
  • Ardoch
  • Cleveland
  • Dewey
  • Dundee
  • Eden
  • Farmington
  • Fertile
  • Forest River
  • Glenwood
  • Golden
  • Grafton
  • Harriston
  • Kensington
  • Kinloss
  • Lampton
  • Latona
  • Martin
  • Medford
  • Norton
  • Oakwood
  • Ops
  • Perth
  • Prairie Centre
  • Pulaski
  • Rushford
  • St. Andrews
  • Sauter
  • Shepherd
  • Silvesta
  • Tiber
  • Vernon
  • Vesta
  • Walsh Centre
  • Walshville

{| class="wikitable" style="margin-left: auto; margin-right: auto; border: none;"

|+ Township Numbers and Range Numbers

|-

||

! scope="col" | Range 59

! scope="col" | Range 58

! scope="col" | Range 57

! scope="col" | Range 56

! scope="col" | Range 55

! scope="col" | Range 54

! scope="col" | Range 53

! scope="col" | Range 52

! scope="col" | Range 51

! scope="col" | Range 50

|-

! scope="col" | Township 155

|| Sauter

|| Perth

|| Cleveland

|| Medford

|| Eden

|| Ops

|| Forest River

|| Ardoch

|| Walshville

|| Walshville

|-

! scope="col" | Township 156

|| Shepherd

|| Latona

|| Norton

|| Vernon

|| Rushford

|| Prairie Centre

|| Walsh Centre

|| Harriston

|| Pulaski

|| Pulaski

|-

! scope="col" | Township 157

|| Dewey

|| Adams

|| Vesta

|| Golden

|| Kensington Township

|| Fertile

|| Grafton

|| Oakwood

|| Acton

|| Acton

|-

! scope="col" | Township 158

|| St. Andrews

|| St. Andrews

|| Martin

|| Farmington

|| Glenwood

|| Dundee

|| Lampton

|| Tiber

|| Silvesta

|| Kinloss

|}

Politics

Walsh County voters have traditionally voted Republican. In only one national election since 1964 has the county selected the Democratic Party candidate (as of 2024).

<!-- PresRow should be -->

Education

School districts include:

  • Dakota Prairie Public School District 1, McVille
  • Drayton Public School District 19, Drayton
  • Edmore Public School District 2, Edmore
  • Fordville-Lankin Public School District 5, Fordville
  • Grafton Public School District 3, Grafton
  • Lakota Public School District 66, Lakota
  • Manvel Public School District 125, Manvel
  • Midway Public School District 128, Inkster
  • Minto Public School District 20, Minto
  • Park River Area Public School District 8, Park River
  • Valley-Edinburg Public School District 118, Crystal

See also

  • National Register of Historic Places listings in Walsh County, North Dakota

References

  • Walsh County – official website
  • Walsh County maps, Sheet 1 (western), Sheet 2 (eastern), North Dakota DOT