House API: Get my representatives
Finds the current House representative and both senators for a US ZIP code or street address, with office contacts and photos. A ZIP covering several districts returns every possible representative until an address identifies one.
Unofficial. Not affiliated with or endorsed by House.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Location, required
location US ZIP code or full street address, for example 10001 or 350 5th Ave, New York, NY 10118.
10002
Input as JSON
{ "location": "10002"}Output
{ "note": "This ZIP code spans multiple congressional districts. A street address is needed to choose one representative.", "state": "New York", "senators": [ { "name": "Kirsten E. Gillibrand", "party": "Democrat", "phone": "(202) 224-4451", "website": "https://www.gillibrand.senate.gov" , "page_link": "https://www.gillibrand.senate.gov" , "photo_link": "https://bioguide.congress.gov/bioguide/photo/G/G000555.jpg" , "office_address": "478 Russell Senate Office Building Washington DC 20510" }, { "name": "Charles E. Schumer", "party": "Democrat", "phone": "(202) 224-6542", "website": "https://www.schumer.senate.gov/" , "page_link": "https://www.schumer.senate.gov/" , "photo_link": "https://bioguide.congress.gov/bioguide/photo/S/S000148.jpg" , "office_address": "322 Hart Senate Office Building Washington DC 20510" } ], "representatives": [ { "name": "Daniel S. Goldman", "party": "Democrat", "phone": "(202) 225-7944", "website": "https://goldman.house.gov" , "district": "New York's 10th district", "page_link": "https://goldman.house.gov" , "photo_link": "https://ziplook.house.gov/zip/pictures/ny10_goldman.jpg" , "office_address": "245 Cannon House Office Building, Washington, DC 20515" }, { "name": "Adriano Espaillat", "party": "Democrat", "phone": "(202) 225-4365", "website": "https://espaillat.house.gov" , "district": "New York's 13th district", "page_link": "https://espaillat.house.gov" , "photo_link": "https://ziplook.house.gov/zip/pictures/ny13_espaillat.jpg" , "office_address": "2332 Rayburn House Office Building, Washington, DC 20515" } ], "congressional_district": null}Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"house.gov/get_my_representatives","input":{"location":"10002"}}' # Save as fous.py, then run: python3 fous.pyimport json, os, timefrom urllib.error import HTTPErrorfrom urllib.request import Request, urlopenAPI = "https://api.fous.com/v1/runs" KEY = os.environ["FOUS_API_KEY"]HEADERS = { "Authorization": f"Bearer {KEY}", "Content-Type": "application/json" ,}def call(url, body=None): data = json.dumps(body).encode() if body else None request = Request(url, data, HEADERS) try: with urlopen(request, timeout=120) as r: return r.status, json.load(r) except HTTPError as error: message = json.load(error)["error"]["message"] raise RuntimeError(message) from errorstatus, run = call(API, { "method": "house.gov/get_my_representatives" , "input": { "location": "10002" }})# 202: still going after 30 s. Ask again until it ends.while status == 202: time.sleep(2) status, run = call(f"{API}/{run['id']}")print(json.dumps(run["data"], indent=2))// Save as fous.mjs, then run: node fous.mjsconst api = "https://api.fous.com/v1/runs" ;const headers = { Authorization: `Bearer ${process.env.FOUS_API_KEY}`, "Content-Type": "application/json" ,};let response = await fetch(api, { method: "POST", headers, body: JSON.stringify({ "method": "house.gov/get_my_representatives" , "input": { "location": "10002" } }), signal: AbortSignal.timeout(120_000),});let run = await response.json();// 202: still going after 30 s. Ask again until it ends.while (response.status === 202) { await new Promise((done) => setTimeout(done, 2_000)); response = await fetch(`${api}/${run.id}`, { headers }); run = await response.json();}if (!response.ok) throw new Error(run.error.message);console.log(run.data);# Connect your agent to Fous once, over MCP (Streamable HTTP):# https://api.fous.com/mcp# Set FOUS_API_KEY first: create a key at https://app.fous.com/keys.# Claude Codeclaude mcp add \ --scope user \ --transport http fous https://api.fous.com/mcp \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Codexcodex mcp add fous \ --url https://api.fous.com/mcp \ --bearer-token-env-var FOUS_API_KEY# Cursor, VS Code, Windsurf, Cline and morenpx -y add-mcp https://api.fous.com/mcp -g -n fous \ --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"# Then ask your agent:# "Use Fous to run house.gov/get_my_representatives# with {"location":"10002"}"Over HTTP, the answer’s data holds the output. A run still going after 30 seconds answers 202 with its id: ask GET /v1/runs/{id} until it ends.
Schema
Input schema
{ "type": "object", "required": [ "location" ], "properties": { "location": { "type": "string", "description": "US ZIP code or full street address, for example 10001 or 350 5th Ave, New York, NY 10118." } }}Output schema
{ "type": "object", "required": [ "state", "congressional_district", "representatives", "senators", "note" ], "properties": { "note": { "type": [ "string", "null" ], "description": "Explains when a ZIP covers multiple districts." }, "state": { "type": "string", "description": "State name." }, "senators": { "type": "array", "items": { "type": "object", "required": [ "name", "party", "phone", "office_address", "website", "photo_link", "page_link" ], "properties": { "name": { "type": "string", "description": "Member name." }, "party": { "type": "string", "description": "Political party." }, "phone": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "page_link": { "type": [ "string", "null" ] }, "photo_link": { "type": [ "string", "null" ] }, "office_address": { "type": [ "string", "null" ] } } } }, "representatives": { "type": "array", "items": { "type": "object", "required": [ "name", "party", "phone", "office_address", "website", "photo_link", "page_link", "district" ], "properties": { "name": { "type": "string", "description": "Member name." }, "party": { "type": "string", "description": "Political party." }, "phone": { "type": [ "string", "null" ] }, "website": { "type": [ "string", "null" ] }, "district": { "type": "string", "description": "Congressional district in words." }, "page_link": { "type": [ "string", "null" ] }, "photo_link": { "type": [ "string", "null" ] }, "office_address": { "type": [ "string", "null" ] } } } }, "congressional_district": { "type": [ "string", "null" ], "description": "The selected district, or null when a ZIP spans districts." } }}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
house.gov/get_my_representatives- Returns
- state, congressional district, representatives and senators with party, phone, office address, website, photo
Use it from your agent
Give your agent this line. It reads SKILL.md, gets a Fous API key and connects the Fous MCP server. Its run then takes the method house.gov/get_my_representatives with the inputs above.
Ask your agent
- Who is my congressman and who are my two senators? I live at 1847 Maple Ridge Dr, Boulder, CO 80304
- I need the phone number and DC office address for the House rep covering ZIP 73112, plus both senators for that state
- Look up on house.gov which representative serves 2200 N Lamar Blvd, Austin, TX 78705, along with their party and website
- Using house.gov, find the members of Congress for ZIP code 98052, including photos and contact info for each
- My zip is 30318. Which congressional district am I in, and who represents me in the House and Senate?
See more
Matches a US street address and returns its city or place, county, state, ZIP code, census tract, congressional and state legislative districts, coordinates and FIPS codes. Districts follow the Census Geocoder's current geography vintage and may differ from sitting representation.
census.gov/get_address_detailsFinds postal codes, place names and coordinates for a town and state or region in a country covered by Zippopotam.us.
zippopotam.us/search_postal_codesGets a home's details from Realtor.com by street address or Realtor.com property link: status, list price, value estimate, beds, baths, size, year built, HOA fee, property and tax history, nearby schools, flood risk and photos.
realtor.com/get_homeFinds real estate agents working in a city and state or ZIP code on Realtor.com, in Realtor.com's relevance order, with ratings, sales figures, price range, languages and phone number when published.
realtor.com/search_agentsSearches Homes.com homes for sale in a US city, neighborhood, or ZIP code, with optional price, bedroom, bathroom and home type filters. Returns listings in site order; days on market is null when not shown.
homes.com/search_homesSearches Realtor.com homes for sale, for rent, or recently sold in a city, neighborhood or ZIP code, with optional price, bedroom, bathroom and home type filters and sort order. Rentals with price ranges use the lowest advertised rent; withheld sold prices are blank.
realtor.com/search_homesGets the latest observed weather from a nearby National Weather Service station for a US city, address, or ZIP code. Measurements the station does not report are null.
weather.gov/get_current_conditionsLooks up the places, regions and coordinates for a postal code in a supported country on Zippopotam.us.
zippopotam.us/get_postal_code