Illinois's 8th congressional district (IL-08)
Illinois's 8th congressional district (IL-08) covers parts or all of Kane County, DuPage County and Cook County, and 47 ZIP codes (13 wholly inside it). Its 2020 population was 753,677. This is the map in force for the November 3, 2026 election.
Who represents IL-08
| Office | Member | Contact |
|---|---|---|
| U.S. Representative (IL-08) | Raja Krishnamoorthi (D) | 202-225-3711 |
| U.S. Senator | Richard J. Durbin (D) | 202-224-2152 · contact form |
| U.S. Senator | Tammy Duckworth (D) | 202-224-2854 · 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 IL-08 |
|---|---|
| Kane County | 45% |
| DuPage County | 18% |
| Cook County | 6.8% |
ZIP codes
Percentages mark ZIPs only partly in IL-08: the share of that ZIP's residents inside it.
- 60004 (7.3%)
- 60005 (19%)
- 60007 (97%)
- 60008 (99%)
- 60010 (12%)
- 60016 (45%)
- 60018 (71%)
- 60056 (27%)
- 60067 (18%)
- 60074 (77%)
- 60101 (29%)
- 60102 (27%)
- 60103 (34%)
- 60107 (80%)
- 60108
- 60110
- 60118
- 60120 (63%)
- 60123
- 60124 (65%)
- 60133 (73%)
- 60134 (19%)
- 60136
- 60137 (0.9%)
- 60139 (45%)
- 60140 (55%)
- 60142 (4.0%)
- 60143
- 60157
- 60169
- 60172
- 60173
- 60174 (55%)
- 60175 (39%)
- 60177
- 60184 (35%)
- 60185 (0.9%)
- 60188 (92%)
- 60191 (64%)
- 60192 (37%)
- 60193
- 60194
- 60195 (98%)
- 60510 (0.6%)
- 60631 (2.2%)
- 60656 (37%)
- 60706 (5.8%)
Towns
Dundee township, Elgin township, Schaumburg township, Rutland township, Bloomingdale township, St. Charles township, Elk Grove township, Wayne township, Palatine township, Hanover township, Barrington township, Addison township, Maine township, Geneva township, Milton township, Leyden township and Chicago city.
Get this in your AI agent
Your agent can draw every precinct in IL-08, 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:1708", children_level="precinct", include_districts=True)