Boundary Atlas

New Hampshire's 2nd congressional district (NH-02)

New Hampshire's 2nd congressional district (NH-02) covers parts or all of 9 counties, including Cheshire County, Coos County, Grafton County, Sullivan County, Merrimack County and Hillsborough County, and 165 ZIP codes (148 wholly inside it). Its 2020 population was 688,765. This is the map in force for the November 3, 2026 election.

688,765residents (2020 Census)
9counties
165ZIP codes
215voting precincts

Who represents NH-02

OfficeMemberContact
U.S. Representative (NH-02)Maggie Goodlander (D)202-225-5206
U.S. SenatorJeanne Shaheen (D)202-224-2841 · contact form
U.S. SenatorMargaret Wood Hassan (D)202-224-3324 · 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 NH-02
Cheshire County100%
Coos County100%
Grafton County100%
Sullivan County100%
Merrimack County90%
Hillsborough County56%
Rockingham County20%
Carroll County6.5%
Belknap County5.4%

ZIP codes

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

Towns

Acworth town, Albany town, Alexandria town, Allenstown town, Alstead town, Amherst town, Andover town, Antrim town, Ashland town, Atkinson and Gilmanton Academy grant, Atkinson town, Bath town, Beans grant, Beans purchase, Bennington town, Benton town, Berlin city, Bethlehem town, Boscawen town, Bow town, Bradford town, Bridgewater town, Bristol town, Brookline town, Cambridge township, Campton town, Canaan town, Canterbury town, Carroll town, Center Harbor town, Chandlers purchase, Charlestown town, Chesterfield town, Chichester town, Claremont city, Clarksville town, Colebrook town, Columbia town, Concord city and Cornish town and others.

Get this in your AI agent

Your agent can draw every precinct in NH-02, 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:3302", children_level="precinct", include_districts=True)