huduser.gov API: Get HUD Fair Market Rents
Gets HUD Fair Market Rents for a county, metro area, or ZIP code and fiscal year. ZIP rents are included only where HUD says Small Area FMRs apply.
Unofficial. Not affiliated with or endorsed by huduser.gov.
Inputs
Values from the run on Oct 31, 2026, shown under Output.
- Year optional
year Fiscal year, such as 2026. Defaults to the current fiscal year.
2026
Whole number.
- Location, required
location County and state, HUD metro area, or five-digit ZIP code, such as Travis County, TX or 78701.
30303
Input as JSON
{ "year": 2026, "location": "30303"}Output
{ "state": "GA", "currency": "USD", "fiscal_year": 2026, "studio_rent": 1585, "hud_area_name": "Atlanta-Sandy Springs-Roswell, GA HUD Metro FMR Area", "zip_studio_rent": 1760, "one_bedroom_rent": 1660, "two_bedroom_rent": 1820, "four_bedroom_rent": 2605, "three_bedroom_rent": 2182, "zip_one_bedroom_rent": 1840, "zip_two_bedroom_rent": 2020, "small_area_fmrs_apply": true, "zip_four_bedroom_rent": 2890, "zip_three_bedroom_rent": 2420, "documentation_page_link": "https://www.huduser.gov/portal/datasets/fmr/fmrs/FY2026_code/2026summary.odn?cbsasub=METRO12060M12060&year=2026&fmrtype=Final&dallas_sa_override=TRUE&selection_type=hmfa" }Code
curl https://api.fous.com/v1/runs \ -H "Authorization: Bearer $FOUS_API_KEY" \ -H "Content-Type: application/json" \ -d '{"method":"huduser.gov/get_fair_market_rent","input":{"year":2026,"location":"30303"}}' # 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": "huduser.gov/get_fair_market_rent" , "input": { "year": 2026, "location": "30303" }})# 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": "huduser.gov/get_fair_market_rent" , "input": { "year": 2026, "location": "30303" } }), 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 huduser.gov/get_fair_market_rent# with {"year":2026,"location":"30303"}"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": { "year": { "type": "integer", "description": "Fiscal year, such as 2026. Defaults to the current fiscal year." }, "location": { "type": "string", "description": "County and state, HUD metro area, or five-digit ZIP code, such as Travis County, TX or 78701." } }}Output schema
{ "type": "object", "required": [ "hud_area_name", "state", "fiscal_year", "currency", "small_area_fmrs_apply", "documentation_page_link", "studio_rent", "zip_studio_rent", "one_bedroom_rent", "zip_one_bedroom_rent", "two_bedroom_rent", "zip_two_bedroom_rent", "three_bedroom_rent", "zip_three_bedroom_rent", "four_bedroom_rent", "zip_four_bedroom_rent" ], "properties": { "state": { "type": [ "string", "null" ], "description": "State abbreviation or abbreviations for the HUD rent area." }, "currency": { "type": "string", "description": "USD" }, "fiscal_year": { "type": "integer" }, "studio_rent": { "type": "integer", "description": "Monthly rent in USD." }, "hud_area_name": { "type": "string", "description": "HUD rent area name." }, "zip_studio_rent": { "type": [ "integer", "null" ], "description": "Monthly ZIP-level rent in USD when Small Area FMRs apply to the given ZIP." }, "one_bedroom_rent": { "type": "integer", "description": "Monthly rent in USD." }, "two_bedroom_rent": { "type": "integer", "description": "Monthly rent in USD." }, "four_bedroom_rent": { "type": "integer", "description": "Monthly rent in USD." }, "three_bedroom_rent": { "type": "integer", "description": "Monthly rent in USD." }, "zip_one_bedroom_rent": { "type": [ "integer", "null" ], "description": "Monthly ZIP-level rent in USD when Small Area FMRs apply to the given ZIP." }, "zip_two_bedroom_rent": { "type": [ "integer", "null" ], "description": "Monthly ZIP-level rent in USD when Small Area FMRs apply to the given ZIP." }, "small_area_fmrs_apply": { "type": "boolean", "description": "Whether HUD says this rent area uses Small Area FMRs for housing vouchers." }, "zip_four_bedroom_rent": { "type": [ "integer", "null" ], "description": "Monthly ZIP-level rent in USD when Small Area FMRs apply to the given ZIP." }, "zip_three_bedroom_rent": { "type": [ "integer", "null" ], "description": "Monthly ZIP-level rent in USD when Small Area FMRs apply to the given ZIP." }, "documentation_page_link": { "type": "string", "description": "HUD documentation for the rent area." } }, "additionalProperties": false}- Price
- 1 credit per completed run (1¢ with pay as you go); failed runs are free.
- Method
huduser.gov/get_fair_market_rent- Returns
- HUD area name, state, fiscal year, rents for studio to four bedrooms, ZIP-level rents, documentation link
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 huduser.gov/get_fair_market_rent with the inputs above.
Ask your agent
- What are the fair market rents for a 2-bedroom unit in Travis County, TX for fiscal year 2025?
- Look up HUD FMRs for ZIP code 30318 — I need studio through 4BR rents and whether Small Area FMRs apply there.
- I'm setting voucher payment standards for Maricopa County, Arizona. Pull the FY2026 fair market rents by bedroom count from huduser.gov.
- Check huduser.gov for the current fair market rent figures in the Seattle-Bellevue metro area, including any ZIP-level rents.
- Need the 2024 HUD fair market rent for a one-bedroom in Cuyahoga County, Ohio, plus a link to the documentation.
See more
Gets Zumper's current median monthly rents for studio through three-bedroom homes in a city, with monthly and yearly percentage changes. National rank is included only when the same-month U.S. national report ranks the city.
zumper.com/get_average_rentsLooks up Zillow housing market figures for a city and state or five-digit ZIP code: typical home value, one-year change, list and sale prices, inventory and listing activity.
zillow.com/get_housing_marketSearches Zillow rentals in a city, neighborhood, or ZIP code, with optional rent, bedroom, pet, and home-type filters. Listing details that Zillow does not show are null.
zillow.com/search_rentalsSearches Zumper apartments and homes for rent in a city or neighborhood. You can filter by price, bedrooms, pet policy and property type.
zumper.com/search_rentalsSearches Apartments.com rentals by city, neighborhood, or ZIP code, with optional rent, bedroom, pet, and page filters. Rent and availability wording is returned when displayed; missing details are null.
apartments.com/search_apartmentsReturns Freddie Mac's U.S. 30-year and 15-year fixed mortgage rates for the latest survey or a chosen date, with weekly and year-ago changes, and optionally a weekly history for a date range.
freddiemac.com/get_mortgage_ratesFinds the FEMA flood zone, risk designation, base flood elevation, flood map panel and community for a US street address, using Census address coordinates and FEMA's National Flood Hazard Layer.
fema.gov/get_flood_zoneSearches 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_homes