Boundary Atlas

New York's 21st congressional district (NY-21)

New York's 21st congressional district (NY-21) covers parts or all of 15 counties, including Clinton County, Essex County, Franklin County, Fulton County, Hamilton County and Herkimer County, and 315 ZIP codes (255 wholly inside it). Its 2020 population was 776,971. This is the map in force for the November 3, 2026 election.

776,971residents (2020 Census)
15counties
315ZIP codes
583voting precincts

Who represents NY-21

OfficeMemberContact
U.S. Representative (NY-21)Elise M. Stefanik (R)202-225-4611
U.S. SenatorCharles E. Schumer (D)202-224-6542 · contact form
U.S. SenatorKirsten E. Gillibrand (D)202-224-4451 · 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 NY-21
Clinton County100%
Essex County100%
Franklin County100%
Fulton County100%
Hamilton County100%
Herkimer County100%
Lewis County100%
Schoharie County100%
St. Lawrence County100%
Warren County100%
Washington County100%
Montgomery County47%
Oneida County38%
Jefferson County30%
Saratoga County23%

ZIP codes

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

Towns

Altona town, Annsville town, Argyle town, Arietta town, Au Sable town, Ava town, Bangor town, Beekmantown town, Bellmont town, Benson town, Black Brook town, Bleecker town, Blenheim town, Bolton town, Bombay town, Boonville town, Brandon town, Brasher town, Brighton town, Broadalbin town, Broome town, Burke town, Cambridge town, Camden town, Canajoharie town, Canton town, Carlisle town, Caroga town, Champlain town, Charleston town, Chateaugay town, Chazy town, Chester town, Chesterfield town, Clare town, Clifton town, Clinton town, Cobleskill town, Colton town and Columbia town and others.

Get this in your AI agent

Your agent can draw every precinct in NY-21, 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:3621", children_level="precinct", include_districts=True)