Boundary Atlas

Michigan's 3rd congressional district (MI-03)

Michigan's 3rd congressional district (MI-03) covers parts or all of Kent County, Muskegon County and Ottawa County, and 45 ZIP codes (26 wholly inside it). Its 2020 population was 775,414. This is the map in force for the November 3, 2026 election.

775,414residents (2020 Census)
3counties
45ZIP codes
232voting precincts

Who represents MI-03

OfficeMemberContact
U.S. Representative (MI-03)Hillary J. Scholten (D)202-225-3831
U.S. SenatorElissa Slotkin (D)202-224-4822
U.S. SenatorGary C. Peters (D)202-224-6221 · 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 MI-03
Kent County85%
Muskegon County62%
Ottawa County36%

ZIP codes

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

Towns

Ada township, Allendale charter township, Alpine township, Byron township, Cannon township, Cascade charter township, Coopersville city, Crockery township, East Grand Rapids city, Ferrysburg city, Fruitport charter township, Gaines charter township, Grand Haven charter township, Grand Haven city, Grand Rapids charter township, Grand Rapids city, Grandville city, Kentwood city, Muskegon Heights city, Muskegon city, Norton Shores city, Plainfield charter township, Polkton charter township, Ravenna township, Robinson township, Rockford city, Roosevelt Park city, Spring Lake township, Sullivan township, Tallmadge charter township, Walker city, Wright township, Wyoming city, Muskegon charter township, North Muskegon city, Georgetown charter township and Laketon township.

Get this in your AI agent

Your agent can draw every precinct in MI-03, 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:2603", children_level="precinct", include_districts=True)