Fiveo1 › Registry Fiveo1 Congressional Registry & Global Intelligence Digest @2026-09-28 14:59:07 — Calle 15 de Febrero
Calle 15 de Febrero |
Abstract
The Fiveo1 Congressional Registry & Global Intelligence Digest is a single-file, self-hosted, mobile-first reference system that binds every United States congressional contact record — Senate and House, leadership and member — to a deterministic contact key: a composite digest of chamber, state or district, office room number, telephone number, and email routing domain. The key is computed exclusively on the server, stored in a local SQLite database, and enforced by a SQL UNIQUE(chamber, state, district, office_room) constraint. Once a member occupies a suite, that suite can never silently reassign to a different member without a superseding record — regardless of cache clearing, page reprints, or directory re-issuance. A change of office produces a new key, allowing the registry to record a fresh, authoritative entry.
Every contact is stored as a complete, immutable line entry containing chamber, state, district, party, office room, telephone, staff name, staff title, staff email, and verification timestamp. A cumulative contact surface renders every recorded office as a green (verified current) or red (superseded / unverified) marker in the directory index. The same document carries the Global Intelligence Digest, an eight-domain world-affairs feed — Security, Energy and Geopolitics, Trade, Markets, Technology and Corporate, Policy and Economy, Weather and Disasters, and Other Headlines — each item bound to its source and its timestamp.
---
1. Design Goals
Goal Implementation
One authoritative record per member, per office, forever Server-computed contact key + SQLite UNIQUE constraint
Zero client-side trust Key computed only on the server using server-held directory fields
Cache/cookie/history-proof Enforcement lives in the database, not the browser
Mobile-only, no keyboard, no mouse All controls are ≥52px tap targets; no text inputs on the public page
Complete contact capture per entry Every row stores chamber, state, district, party, office, phone, staff, title, email, timestamp
Cumulative directory visualization Leaflet + OpenStreetMap index view, one marker per office, colour-coded by verification state
Zero external dependencies beyond Leaflet tiles Single SQLite file, single PHP file, CDN only for the map library
Auto-provisioning DB and schema are created on first page load
---
2. System Architecture
```
┌──────────────────────────────┐ ┌──────────────────────────────┐
│ Reader's Phone │ │ Apache / Nginx + PHP-FPM │
│ ──────────────────────── │ │ ──────────────────────── │
│ • Mobile browser │ HTTPS│ • index.php (public) │
│ • Geolocation API │ ───► │ • admin.php (password) │
│ • Leaflet.js (CDN) │ │ │
│ • Nominatim reverse geocode │ │ ┌──────────────┐ │
│ │ │ │ fiveo1.sqlite│ │
└──────────────────────────────┘ │ │ (WAL mode) │ │
│ └──────────────┘ │
└──────────────────────────────┘
```
Components
Layer Responsibility
index.php Renders live contact card, chamber totals, member feed, map button; serves JSON APIs for keys, records, and map points; receives record POSTs
admin.php Password-gated registry manager; view/delete members, wipe records, view latest verified keys
fiveo1.sqlite Single-file embedded database; WAL mode for concurrent read safety
Leaflet 1.9.4 Client-side map rendering; loads tiles from OpenStreetMap
Nominatim Free reverse-geocoding service; converts lat/lon to a human-readable street name
---
3. The Contact Key
3.1 Definition
The key is a hex-encoded SHA-256 digest of five fields, pipe-separated:
```
contact_key = SHA256( chamber | state | district | office_room | phone )
```
Component Source Notes
chamber Registry field senate or house
state Registry field Two-letter USPS code
district Registry field — for Senate; 01–53 for House
office_room Registry field Building code + room, e.g. SD-511, 1123 Longworth
phone Registry field 10-digit normalised form, e.g. 2022242321
3.2 Why Office Room Is Part of the Key
At district resolution alone, a member can change offices mid-term and the registry would silently collide with the previous occupant's record. Including office_room in the digest produces a genuinely new key when a member relocates between the Longworth, Cannon, and Rayburn buildings, or between Senate Dirksen, Hart, Russell, and the Capitol.
3.3 Why the Server Computes the Key
An earlier prototype had the client compute the key and send it to the server. This failed for two reasons:
1. Truncation mismatch — if the server stored substr($OFFICE, 0, 40) but the client hashed the full string, the hashes differed and duplicate detection never fired.
2. Client tamperability — a malicious client could hash whatever it wanted and invent unlimited keys.
The current design eliminates both: the server is the sole authority on the key. The client sends only state, district, and phone, and receives back the resulting key for display. It cannot forge a key because it does not know what the server hashed for chamber and office_room.
3.4 Key Stability Table
Scenario Chamber State District Office Phone Key New Record Allowed?
Same member, same office, cleared cache same same same same same same ❌ Duplicate rejected
Same member, same office, new browser same same same same same same ❌ Duplicate rejected
Member moves Cannon → Longworth same same same different same different ✅ New line entry
Member's phone number changes same same same same different different ✅ New line entry
Redistricting shifts the district same same different same same different ✅ New line entry
Chamber crossover (House → Senate) different same — different different different ✅ New line entry
---
4. Database Schema
```sql
CREATE TABLE members (
id INTEGER PRIMARY KEY AUTOINCREMENT,
chamber TEXT NOT NULL, -- 'senate' | 'house'
state TEXT NOT NULL, -- USPS two-letter
district TEXT, -- NULL for senate
party TEXT NOT NULL, -- 'R' | 'D' | 'I'
full_name TEXT NOT NULL,
title TEXT, -- 'Majority Leader', 'Speaker', etc.
office_room TEXT NOT NULL,
phone TEXT NOT NULL,
staff_name TEXT,
staff_title TEXT,
staff_email TEXT,
contact_url TEXT,
source TEXT, -- citation of the directory used
created_at TEXT NOT NULL
);
CREATE TABLE records (
id INTEGER PRIMARY KEY AUTOINCREMENT,
member_id INTEGER NOT NULL,
contact_key TEXT NOT NULL,
chamber TEXT NOT NULL,
state TEXT NOT NULL,
district TEXT,
office_room TEXT NOT NULL,
phone TEXT NOT NULL,
verified INTEGER NOT NULL DEFAULT 1, -- 1 current, 0 superseded
lat REAL,
lon REAL,
location TEXT, -- reverse-geocoded
created_at TEXT NOT NULL,
UNIQUE(chamber, state, district, office_room) -- ★ the master key constraint
);
CREATE INDEX idx_records_member ON records(member_id);
CREATE INDEX idx_records_key ON records(chamber, state, district, office_room);
```
The Master Key
The UNIQUE(chamber, state, district, office_room) constraint is the integrity core of the system. It is enforced at the SQLite engine level, not in application code. Even if the application layer were bypassed, the database itself would reject a duplicate insert with a SQLITE_CONSTRAINT error, which the PHP handler translates into an HTTP 409 duplicate_office response. Once a row exists for a given chamber/state/district/office quartet, it is a master key. No second row with the same quartet can ever exist.
---
5. Record Lifecycle
5.1 Pre-Read (Silent Verification)
```
1. Page loads → client requests ?action=client_ip → server echoes REMOTE_ADDR
2. Client requests GPS via navigator.geolocation.getCurrentPosition()
3. On GPS lock, client requests ?action=my_key&state=…&district=…&phone=…
4. Server recomputes the key and returns:
{ ok:true, key:"abc…", held:{ "12":"current", "34":"superseded", … } }
5. Client iterates .member[data-mid] and for each mid in held:
· marks the card .held or .superseded
· shows "✔ Registry already holds this office under this key."
For mids not in held, the card renders unverified.
```
This check happens before the reader scrolls to the entry. If the office is already held, it is visible on load. There is no "read then discover a collision."
5.2 The Insert
```
1. Operator taps SUBMIT on a member card
2. Both buttons on that card are disabled immediately (optimistic UI)
3. POST / with JSON body:
{ member_id, state, district, phone, office_room, lat, lon, location }
NOTE: no contact_key is sent. The server will compute it.
4. Server:
· reads chamber and office_room from the member row
· recomputes contact_key = SHA256(chamber | state | district | office_room | phone)
· INSERT INTO records (…) VALUES (…)
5. If INSERT succeeds:
→ 200 { ok:true, current, superseded, key }
If UNIQUE violation:
→ 409 { ok:false, error:"duplicate_office", current, superseded }
6. Client updates:
· .p-counts with the new current/superseded totals
· markHeld(member, state) → locks both buttons, shows ✔ message
· global totals bar (sum of all per-member counts)
```
5.3 Guarantees
· Atomicity — the INSERT either succeeds or fails; there is no partial write.
· Idempotence of display — whether the insert is a fresh success or a rejected duplicate, the client ends up showing the correct locked state and totals.
· Server-authoritative counting — the current/superseded counts returned in the response are recomputed by the server from the records table, not derived from client input.
---
6. Threat Model
Threat Mitigation
Stale directory reprints circulating Enforcement lives in SQLite, not the printed page. Same quartet → same key → 409.
Members swapping offices between buildings office_room is part of the digest; the key changes and a fresh record is issued.
Redistricting mid-cycle district is part of the digest; the key changes.
Directory scraping and re-publication The key is not a secret; it is a public identifier of the office.
Man-in-the-middle Terminate TLS at the reverse proxy. Set HSTS. The API accepts JSON POSTs only.
Brute-force admin password 5-attempt lockout with 60-second cooldown; hash_equals constant-time comparison; 400 ms artificial delay on failure.
SQL injection All queries use PDO prepared statements with bound parameters.
XSS in member names or staff titles All output passes through htmlspecialchars($s, ENT_QUOTES).
Duplicate office injection The UNIQUE constraint rejects it at the engine level.
Carrier IP rotation mid-session Pre-check is advisory; the DB constraint is the final arbiter.
6.1 Known Non-Mitigations
· Directory lag. The Congressional Directory is published in print cycles; between editions, a member may relocate without the registry knowing. Fixing this requires a live feed from the Clerk or the Secretary of the Senate, which is out of scope for a zero-dependency single-file registry.
· Shared office suites. A committee suite hosting multiple members cannot be resolved by room number alone. This is a deliberate trade-off; those records carry staff_email as the disambiguator.
· Unlisted personal staff. Only the staff member of record is captured. Turnover within an office is not tracked.
---
7. Reverse Geocoding
On GPS lock the client calls:
```
GET https://nominatim.openstreetmap.org/reverse?format=jsonv2
&lat=…&lon=…&zoom=16&addressdetails=1
```
The server never calls out — the client does. The resulting street name (road, pedestrian, neighbourhood, suburb, village, town, or city, in that priority order) is stored in records.location and displayed on the card header, in the feed, and in the popup of each map marker.
Nominatim's public usage policy requires a valid User-Agent and a request rate under 1 per second. The page hits it exactly once per GPS lock, so this is satisfied.
---
8. Directory Rendering
The map is served by Leaflet 1.9.4 (CDN) and OpenStreetMap tiles.
Behaviour Implementation
Cumulative view ?action=map_points returns all records with non-null lat/lon
Colour code Green circle for current, red circle for superseded
Radius 7 px for historical points; 10 px for a single GPS tap from the live card
Popup Member name, chamber/state/district, office room, phone, staff, timestamp, key prefix (16 chars)
Zoom fitBounds on all points with maxZoom:16; single point centres at zoom 16; GPS tap centres at zoom 17
Legend Fixed bottom-left, shows the green/red key
The map overlay is fixed-position and occupies 84 vh (max 640 px), with a clear "Close" button. Tapping the dark surround also closes it. No keyboard is ever required.
---
9. The Member Feed
Every member is a card. The public page renders them in id order:
```
┌────────────────────────────────────────────┐
│ John Thune │
│ Majority Leader · R-SD · SD-511 │
│ @2026-09-28 15:28:18 · Calle 15 de Febrero │
│ │
│ ┌───────────────┐ ┌───────────────┐ │
│ │ VERIFY │ │ DISPUTE │ │
│ └───────────────┘ └───────────────┘ │
│ ✔ Registry already holds this office. │
│ │
│ Current 2 Superseded 0 2 total │
│ ──────────────────────────────────────── │
│ show record ▾ │
└────────────────────────────────────────────┘
```
Tapping the name or the toggle expands the card to show the full record block: badge, timestamp, location, office, phone, staff name, staff title, staff email, and key prefix. Tapping a GPS value opens the map focused on that single coordinate.
The seeded set covers the Fiveo1 contact list plus the November 3, 2026 California general election officials named in the supplied document (San Diego, Riverside, San Bernardino, Corona, Apple Valley, Victorville).
---
10. Administration
admin.php is protected by a single password (@Evan.Winter in the shipped build) with the following controls:
· Add a member. Format: Name — Role · Office · City.
· View all members with current/superseded counts and unique-key counts per member.
· Delete a single member and its records (transactional).
· Wipe all records across every member (keeps the members).
· Latest 40 keys with office, phone, staff email, timestamp, and key prefix.
· Sign out.
The admin page is not linked from the public page. It must be reached by typing its URL. The public footer shows only:
```
Fiveo1
PO Box 312786
Avalon, California 90704
Evan Winter
```
---
11. Deployment Requirements
Requirement Value
PHP 7.4 or newer
Extensions pdo_sqlite, json, session
Filesystem Write permission on the directory containing index.php (for fiveo1.sqlite and its WAL/SHM siblings)
Web server Apache or Nginx with TLS termination
Files index.php, admin.php
Database Auto-created on first request
Outbound Only the reader's browser contacts Nominatim and OSM tiles; the server makes no outbound calls
11.1 Hardening Checklist
☐ Force HTTPS; enable HSTS.
☐ Set session.cookie_secure=1, session.cookie_httponly=1, session.cookie_samesite=Lax.
☐ Change ADMIN_PASSWORD in admin.php.
☐ Disable directory listing.
☐ Add a robots.txt disallow for admin.php.
☐ Back up fiveo1.sqlite (and its -wal / -shm siblings) on a schedule.
☐ Set upload_max_filesize low and disable allow_url_fopen if not needed.
☐ Restrict write access to the SQLite directory to the PHP-FPM user only.
---
12. Operational Notes
· WAL mode is enabled so reads never block writes. Readers see a consistent snapshot even while a record is being inserted.
· The key is stored in plaintext in records.contact_key. It is a SHA-256 digest, not a secret. Storing it plainly allows efficient UNIQUE enforcement and fast my_key lookups.
· Timezone in all timestamps is the server's local time. If a single canonical timezone is required, set it at the top of index.php with date_default_timezone_set('America/Los_Angeles').
· The Congressional Directory for the 119th Congress (2025–2026), published February 20, 2026, is the authoritative source for all 541 Members.
---
13. Limitations & Future Work
Limitation Possible future direction
Directory lag between print cycles Live ingest from clerk.house.gov and senate.gov XML
Committee suites with multiple members Suite-level disambiguation field
Staff turnover untracked Append-only staff_history table
No audit trail for admin actions Append-only admin_log table
Nominatim rate limits Self-hosted Nominatim or a paid geocoder
SQLite single-writer limit Migrate to PostgreSQL if concurrency exceeds ~100 writes/sec
No export Admin CSV export of the full records table
---
14. Conclusion
The Fiveo1 Congressional Registry achieves a strict property — one authoritative contact record per office, per member, forever — using only a single PHP file, a single SQLite file, and a server-side SHA-256 hash of chamber, state, district, office room, and telephone. The enforcement is not in JavaScript, not in cookies, and not in the client's goodwill: it is a UNIQUE constraint enforced by the SQLite engine itself.
Every record produces a full forensic line entry (chamber, state, district, office, phone, staff, title, email, timestamp, key hash), and every entry is plotted cumulatively on an OpenStreetMap so the administrator can see exactly where and when each verification was cast. The system is mobile-only, touch-only, keyboard-free, and zero-login, and it is designed to be deployed as a pair of files into any public_html directory with PHP and pdo_sqlite.
---
Appendix A — Global Intelligence Digest
Fiveo1 | FinPulse: Global Financial & World Intelligence
Monday, September 28, 2026 · 14:20 UTC
By Evan Winter · Fiveo1, PO Box 312786, Avalon, California 90704
A.1 Security: Possible Foiled Attack at RAF Fairford
Five people were arrested on suspicion of terrorism near RAF Fairford, a UK air base used by US forces. The New York Times reports a possible foiled plot, and SCMP says UK authorities are checking whether the arrests prevented an Iran-linked attack. The Iran link is a single-source claim and is unconfirmed. Questions about base security are growing.
A.2 Energy and Geopolitics
· Oil: WTI is at $93.88 as talks between the US and Iran remain stuck. Houthi missiles fired at Saudi Arabia, and Iran denies dropping its preconditions.
· Diesel: UK pump prices hit a record. The EU warns that a proposed US diesel export ban would hurt both sides, and Australia could see prices above $3 a litre.
· Ukraine: Russia's foreign minister vows to see the war through.
A.3 Trade
The US and China agreed to cut reciprocal tariffs on $60 billion of goods, about $30 billion from each side. It follows a Trump–Xi state dinner that produced warm words but little progress on core issues. Canadian firms are distancing themselves from US ties, and Maine residents say the trade war with Canada is hurting.
A.4 Markets Snapshot (latest available)
Index / Asset Level
S&P 500 7,703.02
Nasdaq 26,868.84
Dow 51,593.87
FTSE 100 10,741.07
DAX 25,515.35
Nikkei 65,877.62
EUR/USD 1.1369
GBP/USD 1.3265
USD/JPY 157.196
Gold 4,173.80
Bitcoin $83,319
The feed supplied no percentage changes.
A.5 Technology and Corporate
· Nvidia: It added $150 billion to its buyback, the largest ever, and released software to keep AI agents from misbehaving. CEO Jensen Huang calls AI distillation "competition," while Treasury Secretary Scott Bessent has called it theft.
· Meta: It hired MongoDB CEO CJ Desai to lead its enterprise unit, and MongoDB fell more than 20%. Its Muse agent is also targeting a profitable weak spot in the economy.
· SpaceX: Starship reached orbit for the first time.
· Other deals: Evonik rejected a €10.3 billion bid from BASF, and Intel is under scrutiny over SK Hynix partnership rumors.
A.6 Policy and Economy
Bessent hired economist David Zervos. Rising Treasury yields are a new problem for Fed chief Kevin Warsh, and the IMF warned the UK and US over spiralling debt costs. The UK's Healey pledged to keep to fiscal rules in a budget critics call built on hope. The US issued a rule lowering fuel economy standards and ending the EV mandate. UN food agencies warn of a "blind" approach to food crises after US aid cuts.
A.7 Weather and Disasters
· Hurricane Polo is bearing down on Mexico's Pacific coast and Baja, and Hurricane Nolo still threatens Hawaii.
· A nor'easter killed one person in New York and New Jersey.
· Flooding was declared a disaster in Bangkok.
A.8 Other Headlines
· Channel crossing: Three people, including a child, died in a crossing attempt.
· South Africa: Two mass shootings left 28 dead.
· Sweden: Magdalena Andersson ended government-formation talks without a result.
· Congo: A politician was beaten to death after urging Ebola prevention on the radio, according to his party.
---
Appendix B — Senate Leadership
Title Name Office Phone Email / Contact
Majority Leader John Thune (R-SD) SD-511 (202) 224-2321 Contact via thune.senate.gov
Minority Leader Charles E. Schumer (D-NY) SH-322 (202) 224-6542 Contact via schumer.senate.gov
Majority Whip John Barrasso (R-WY) SD-307 (202) 224-6441 Contact via barrasso.senate.gov
Minority Whip Dick Durbin (D-IL) SH-711 (202) 224-2152 Contact via durbin.senate.gov
President Pro Tempore Chuck Grassley (R-IA) SH-135 (202) 224-3744 Contact via grassley.senate.gov
Conference Chair (R) Tom Cotton (R-AR) SR-326 (202) 224-2353 Contact via cotton.senate.gov
Policy Committee Chair (D) Debbie Stabenow (D-MI) SH-731 (202) 224-4822 Contact via stabenow.senate.gov
Senate Office of Public Records (OPR): 144 Hart Senate Office Building, Washington, D.C. 20510-7116 · OPRGeneral@sec.senate.gov · Main: (202) 224-0322 · Lobby Line: (202) 224-0758
---
Appendix C — Senate Members (Representative Sample, 119th Congress)
State Senator Party Office Phone Staff Contact / Title Staff Email
AK Dan Sullivan R SH-706 (202) 224-3004 Sara Berkemeier-Bell, Leg. Ast. sara.berkemeier-bell@sullivan.senate.gov
AL Katie Britt R SR-416 (202) 224-5744 Maggie McPherson, Leg. Ast. maggie.mcpherson@britt.senate.gov
AL Tommy Tuberville R SR-455 (202) 224-4124 Emily McBride, Leg. Ast. emily.mcbride@tuberville.senate.gov
AR John Boozman R SD-555 (202) 224-4843 Daniel Burgess, Leg. Dir. daniel.burgess@boozman.senate.gov
AR Tom Cotton R SR-326 (202) 224-2353 Madison Erstine, Acting Leg. Dir. madison.erstine@cotton.senate.gov
AZ Ruben Gallego D SH-302 (202) 224-4521 Heather Lavoie, Leg. Corr. heather.lavoie@gallego.senate.gov
AZ Mark Kelly D SH-516 (202) 224-2235 Sydney Pearson, Leg. Ast. sydney.pearson@kelly.senate.gov
CA Alex Padilla D SH-112 (202) 224-3553 John Chambliss, Policy Advisor john.chambliss@padilla.senate.gov
MD Angela Alsobrooks D SR-374 (202) 224-4524 — Contact via alsobrooks.senate.gov
OK Alan Armstrong R SH-330 (202) 224-4721 — Contact via armstrong.senate.gov
WI Tammy Baldwin D SH-141 (202) 224-5653 — Contact via baldwin.senate.gov
IN Jim Banks R SH-303 (202) 224-4814 — Contact via banks.senate.gov
WY John Barrasso R SD-307 (202) 224-6441 — Contact via barrasso.senate.gov
CO Michael F. Bennet D SR-261 (202) 224-5852 — Contact via bennet.senate.gov
TN Marsha Blackburn R SD-357 (202) 224-3344 — Contact via blackburn.senate.gov
CT Richard Blumenthal D SH-503 (202) 224-2823 — Contact via blumenthal.senate.gov
DE Lisa Blunt Rochester D SH-513 (202) 224-2441 — Contact via bluntrochester.senate.gov
NJ Cory A. Booker D SH-306 (202) 224-3224 — Contact via booker.senate.gov
NC Ted Budd R SR-354 (202) 224-3154 MaryLou Cooke, Scheduler marylou_cooke@budd.senate.gov
NC Thom Tillis R SD-113 (202) 224-6342 Kaylan Privette, Scheduler kaylan_privette@tillis.senate.gov
WA Maria Cantwell D SH-511 (202) 224-3441 — Contact via cantwell.senate.gov
WV Shelley Moore Capito R SR-170 (202) 224-6472 — Contact via capito.senate.gov
LA Bill Cassidy R SD-455 (202) 224-5824 — Contact via cassidy.senate.gov
ME Susan M. Collins R SD-413 (202) 224-2523 — Contact via collins.senate.gov
Note: The full Senate Suite & Telephone List (PDF) and XML data are available at senate.gov.
---
Appendix D — House Leadership
Title Name Office Phone Email / Contact
Speaker of the House Mike Johnson (R-LA-04) H-232, The Capitol (202) 225-0100 Contact via mikejohnson.house.gov
Majority Leader Steve Scalise (R-LA-01) H-232, The Capitol (202) 225-3015 Contact via scalise.house.gov
Majority Whip Tom Emmer (R-MN-06) H-329, The Capitol (202) 225-2331 Contact via emmer.house.gov
Minority Leader Hakeem S. Jeffries (D-NY-08) H-204, The Capitol (202) 225-5936 Contact via jeffries.house.gov
Minority Whip Katherine M. Clark (D-MA-05) H-204, The Capitol (202) 225-2836 Contact via katherineclark.house.gov
Republican Conference Chair Lisa C. McClain (R-MI-09) 233 Cannon HOB (202) 225-2106 Contact via mcclain.house.gov
Democratic Caucus Chair Pete Aguilar (D-CA-33) 108 Cannon HOB (202) 225-3201 Contact via aguilar.house.gov
House Clerk / Member Services: U.S. Capitol Room H154, Washington, DC 20515-6601 · Telephone: (202) 225-7000
---
Appendix E — House Members (Representative Sample, 119th Congress)
District Representative Party Office Phone Scheduler / Staff Contact Staff Email
NC-01 Don Davis D 1123 Longworth (202) 225-3101 Zoey Young, Scheduler zoey.young@mail.house.gov
NC-02 Deborah Ross D 1221 Longworth (202) 225-3032 Maura Haydin Thompson, Scheduler maura.haydinthompson@mail.house.gov
NC-03 Greg Murphy R 407 Cannon (202) 225-3415 Libby Donahoo, Scheduler elizabeth.donahoo@mail.house.gov
NC-04 Valerie Foushee D 2452 Rayburn (202) 225-1784 Maggie Meymandi, Scheduler maggie.meymandi@mail.house.gov
NC-05 Virginia Foxx R 2462 Rayburn (202) 225-2071 Josie Kavanagh, Scheduler josie.kavanagh@mail.house.gov
NC-06 Addison McDowell R 1032 Longworth (202) 225-3065 Hannah Cooke, Scheduler hannah.cooke@mail.house.gov
NC-07 David Rouzer R 2333 Rayburn (202) 225-2731 Kim VanderMeulen, Scheduler kim@mail.house.gov
NC-08 Mark Harris R 126 Cannon (202) 225-1976 Bailey Edwards, Scheduler bailey.edwards@mail.house.gov
NC-09 Richard Hudson R 2112 Rayburn (202) 225-3715 Copeland Reynolds, Scheduler copeland.reynolds@mail.house.gov
NC-10 Pat Harrigan R 1233 Longworth (202) 225-2576 Milka Jurado, Scheduler milka.jurado2@mail.house.gov
NC-11 Chuck Edwards R 1505 Longworth (202) 225-6401 McKenna Simpson, Scheduler mckenna.simpson@mail.house.gov
NC-12 Alma Adams D 2436 Rayburn (202) 225-1510 Sandra Brown, Scheduler nc12scheduler@mail.house.gov
NC-13 Brad Knott R 1239 Longworth (202) 225-4531 Pierson Gammage, Scheduler pierson.gammage@mail.house.gov
NC-14 Tim Moore R 1424 Longworth (202) 225-5634 Savanna Russell, Scheduler russell@mail.house.gov
AL-04 Robert B. Aderholt R 272 Cannon (202) 225-4876 — robert@mail.house.gov
CA-24 Salud O. Carbajal D 2331 Rayburn (202) 225-3601 Suzie Cavalier Suzie.Cavalier@mail.house.gov
CA-33 Pete Aguilar D 108 Cannon (202) 225-3201 — Contact via aguilar.house.gov
GA-12 Rick W. Allen R 462 Cannon (202) 225-2823 — Contact via allen.house.gov
IL-13 Nikki Budzinski D 1717 Longworth (202) 225-2371 — Contact via budzinski.house.gov
MA-04 Jake Auchincloss D 1524 Longworth (202) 225-5931 — Contact via auchincloss.house.gov
TN-02 Tim Burchett R 1122 Longworth (202) 225-5435 — Contact via burchett.house.gov
TX-36 Brian Babin R 2236 Rayburn (202) 225-1555 — Contact via babin.house.gov
Note: The complete House Member Telephone Directory (PDF) is available via clerk.house.gov. The Congressional Directory for the 119th Congress (2025–2026), published February 20, 2026, contains complete contact information for all 541 Members of Congress including addresses, telephone, fax numbers, and web address es. ← All Articles← Home