Michigan's 2nd congressional district (MI-02)
Michigan's 2nd congressional district (MI-02) covers parts or all of 20 counties, including Barry County, Clare County, Gladwin County, Gratiot County, Ionia County and Isabella County, and 169 ZIP codes (116 wholly inside it). Its 2020 population was 774,997. This is the map in force for the November 3, 2026 election.
Who represents MI-02
| Office | Member | Contact |
|---|---|---|
| U.S. Representative (MI-02) | John R. Moolenaar (R) | 202-225-3561 |
| U.S. Senator | Elissa Slotkin (D) | 202-224-4822 |
| U.S. Senator | Gary 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
| County | Share of the county's residents in MI-02 |
|---|---|
| Barry County | 100% |
| Clare County | 100% |
| Gladwin County | 100% |
| Gratiot County | 100% |
| Ionia County | 100% |
| Isabella County | 100% |
| Lake County | 100% |
| Manistee County | 100% |
| Mason County | 100% |
| Mecosta County | 100% |
| Montcalm County | 100% |
| Newaygo County | 100% |
| Oceana County | 100% |
| Osceola County | 100% |
| Wexford County | 88% |
| Muskegon County | 38% |
| Kent County | 15% |
| Midland County | 12% |
| Eaton County | 4.4% |
| Ottawa County | 0.7% |
ZIP codes
Percentages mark ZIPs only partly in MI-02: the share of that ZIP's residents inside it.
- 48610 (21%)
- 48612
- 48613 (6.8%)
- 48614 (2.1%)
- 48615 (75%)
- 48617
- 48618 (98%)
- 48620
- 48622
- 48624 (98%)
- 48625
- 48628 (21%)
- 48632
- 48633
- 48637 (6.7%)
- 48640 (0.1%)
- 48652 (49%)
- 48657 (26%)
- 48662 (80%)
- 48801
- 48806
- 48807 (73%)
- 48809
- 48811
- 48813 (0.3%)
- 48815
- 48818
- 48829
- 48831 (1.2%)
- 48832
- 48834
- 48837 (1.1%)
- 48838
- 48845 (85%)
- 48846
- 48847
- 48849
- 48850
- 48851
- 48852
- 48856
- 48858
- 48859
- 48860
- 48861 (23%)
- 48862
- 48865
- 48870
- 48871
- 48873 (78%)
- 48874
- 48875 (95%)
- 48877
- 48878
- 48879 (0.8%)
- 48880 (100%)
- 48881
- 48883 (100%)
- 48884
- 48885
- 48886
- 48888
- 48889
- 48890 (94%)
- 48891
- 48893
- 48894 (8.3%)
- 48896
- 48897
- 49017 (7.0%)
- 49021 (35%)
- 49046
- 49050
- 49058
- 49060 (68%)
- 49073
- 49080 (18%)
- 49096 (84%)
- 49301 (2.6%)
- 49302 (89%)
- 49303
- 49304
- 49305
- 49307
- 49309
- 49310
- 49312
- 49316 (44%)
- 49318
- 49319
- 49320
- 49321 (2.9%)
- 49322
- 49325
- 49326
- 49327
- 49329
- 49330
- 49331 (99%)
- 49332
- 49333 (100%)
- 49336
- 49337
- 49338
- 49339
- 49340
- 49341 (43%)
- 49342
- 49343
- 49344 (40%)
- 49345 (96%)
- 49346
- 49347
- 49348 (19%)
- 49349
- 49402
- 49403 (56%)
- 49405
- 49410
- 49411
- 49412
- 49420
- 49421
- 49425
- 49431
- 49436
- 49437
- 49442 (30%)
- 49445 (90%)
- 49446
- 49449
- 49451 (49%)
- 49452
- 49454
- 49455
- 49457
- 49458
- 49459
- 49461
- 49512 (4.7%)
- 49601 (99%)
- 49613 (79%)
- 49614
- 49618
- 49619
- 49620 (3.3%)
- 49623
- 49625
- 49626
- 49631
- 49634
- 49638
- 49639
- 49642
- 49644
- 49645
- 49655
- 49656
- 49657 (0.4%)
- 49660
- 49663 (58%)
- 49665 (93%)
- 49668 (77%)
- 49675
- 49677
- 49679
- 49683 (34%)
- 49688
- 49689
Towns
Aetna township, Algoma township, Alma city, Amber township, Antioch township, Arcada township, Arcadia township, Arthur township, Ashland township, Assyria township, Austin township, Baltimore township, Barry township, Barton township, Bear Lake township, Beaver township, Beaverton city, Beaverton township, Belding city, Belvidere township, Benona township, Bentley township, Berlin township, Bethany township, Big Prairie township, Big Rapids charter township, Big Rapids city, Billings township, Bloomer township, Blue Lake township, Boon township, Boston township, Bourret township, Bowne township, Branch township, Bridgeton township, Brooks township, Broomfield township, Brown township and Buckeye township and others.
Get this in your AI agent
Your agent can draw every precinct in MI-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:2602", children_level="precinct", include_districts=True)