Boundary Atlas

Virginia's 9th congressional district (VA-09)

Virginia's 9th congressional district (VA-09) covers parts or all of 28 counties, including Bland County, Bristol city, Buchanan County, Carroll County, Craig County and Dickenson County, and 189 ZIP codes (164 wholly inside it). Its 2020 population was 786,392. This is the map in force for the November 3, 2026 election.

786,392residents (2020 Census)
28counties
189ZIP codes
374voting precincts

Who represents VA-09

OfficeMemberContact
U.S. Representative (VA-09)H. Morgan Griffith (R)202-225-3861
U.S. SenatorMark R. Warner (D)202-224-2023 · contact form
U.S. SenatorTim Kaine (D)202-224-4024 · contact form

Officials serving now (members of Congress until January 3, 2027). Sources: Members of Congress: the @unitedstates project, congress-legislators (CC0).

Counties

CountyShare of the county's residents in VA-09
Bland County100%
Bristol city100%
Buchanan County100%
Carroll County100%
Craig County100%
Dickenson County100%
Floyd County100%
Franklin County100%
Galax city100%
Giles County100%
Grayson County100%
Henry County100%
Lee County100%
Martinsville city100%
Montgomery County100%
Norton city100%
Patrick County100%
Pulaski County100%
Radford city100%
Russell County100%
Scott County100%
Smyth County100%
Tazewell County100%
Washington County100%
Wise County100%
Wythe County100%
Bedford County65%
Roanoke County42%

ZIP codes

Percentages mark ZIPs only partly in VA-09: the share of that ZIP's residents inside it.

Towns

Atkins district, Black Lick district, Blackberry district, Blackwater district, Blue Ridge district, Blue Ridge district, Boone district, Bristol city, Burks Fork district, Castlewood district, Central district, Chilhowie district, Clintwood district, Cloyd district, Collinsville district, Court House district, Craig City district, Craig Creek district, Dan River district, District 1, District 1, District 1, District 1, District 1, District 2, District 2, District 2, District 2, District 2, District 3, District 3, District 3, District 3, District 4, District 4, District 4, District 4, District 5, District 5 and District 6 and others.

Get this in your AI agent

Your agent can draw every precinct in VA-09, or list them with population shares (related_geographies). Add https://boundarymcp.com/mcp to Claude, ChatGPT, Cursor or Codex (free, no key; how), then:

get_boundaries(id="us:congressional_district:5109", children_level="precinct", include_districts=True)