California's 28th congressional district (CA-28)
California's 28th congressional district (CA-28) covers parts or all of Los Angeles County and San Bernardino County, and 49 ZIP codes (19 wholly inside it). Its 2020 population was 758,019. This is the map in force for the November 3, 2026 election.
Who represents CA-28
| Office | Member | Contact |
|---|---|---|
| U.S. Representative (CA-28) | Judy Chu (D) | 202-225-5464 |
| U.S. Senator | Adam B. Schiff (D) | 202-224-3841 |
| U.S. Senator | Alex Padilla (D) | 202-224-3553 · contact form |
Elected in 2024 under CA's previous congressional map; this district's lines changed for the 120th Congress (seated January 3, 2027).
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 CA-28 |
|---|---|
| Los Angeles County | 6.3% |
| San Bernardino County | 5.7% |
ZIP codes
Percentages mark ZIPs only partly in CA-28: the share of that ZIP's residents inside it.
- 90022 (<0.1%)
- 90042 (0.3%)
- 91001
- 91006 (81%)
- 91007
- 91011 (100%)
- 91020 (72%)
- 91024
- 91030
- 91042 (<0.1%)
- 91101
- 91103 (71%)
- 91104
- 91105 (92%)
- 91106
- 91107
- 91108
- 91125
- 91214 (45%)
- 91701 (70%)
- 91702 (0.2%)
- 91711 (0.3%)
- 91730 (42%)
- 91737 (73%)
- 91739 (0.5%)
- 91741 (<0.1%)
- 91750 (2.0%)
- 91754
- 91755
- 91759
- 91770 (99%)
- 91775
- 91776
- 91780 (95%)
- 91784
- 91786 (30%)
- 91801
- 91803
- 92336 (<0.1%)
- 92358
- 92371 (2.5%)
- 92397 (90%)
- 92407 (0.2%)
- 93543 (0.8%)
- 93544 (<0.1%)
- 93550 (<0.1%)
- 93552 (0.2%)
- 93553 (3.8%)
- 93563 (87%)
Towns
Mount Baldy-Wrightwood CCD, Pasadena CCD, Southwest San Gabriel Valley CCD, Upper San Gabriel Valley CCD, Ontario CCD, South Gate-East Los Angeles CCD, South Antelope Valley CCD and East San Gabriel Valley CCD.
Get this in your AI agent
Your agent can draw every precinct in CA-28, 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:0628", children_level="precinct", include_districts=True)