HUD - the US Department of Housing and Urban Development - publishes some of the most detailed local housing data available anywhere, and almost nobody outside of housing policy circles knows it exists. For programmatic SEO publishers building local housing content, HUD's datasets offer a powerful differentiation tool: real, government-sourced numbers for rental affordability, income limits, and housing assistance programs at the county and metro level.

This guide walks through the four most useful HUD datasets for local content, how to access each one programmatically, and how to translate raw HUD data into pages that answer questions real people actually search for.

Overview of HUD's Free Data Programs

HUD publishes data through its PD&R (Policy Development and Research) data portal. The main datasets relevant to local content publishers are:

Dataset Geography Update Frequency Best For
CHAS (Comprehensive Housing Affordability Strategy) County, place, tract Annual (ACS-based) Affordability analysis, housing burden pages
Fair Market Rents (FMR) Metro area, county Annual (October) Rental cost guides, Section 8 reference pages
Income Limits Metro area, county Annual Affordability calculators, assistance eligibility pages
HOME Investment Data Participating jurisdiction Annual Housing assistance program guides by city

All four datasets are free, require no login for bulk downloads, and have API access available. The combination of these datasets with Census ACS data (covered in our guide on using the Census ACS API for local content) gives you a complete picture of any local housing market.

CHAS Data: Measuring Housing Affordability at the Local Level

CHAS stands for Comprehensive Housing Affordability Strategy. It is derived from the Census Bureau's American Community Survey but processed by HUD to specifically measure housing affordability - how many households in a given area are "cost burdened" (paying more than 30% of income on housing) or "severely cost burdened" (paying more than 50%).

The granularity is impressive: CHAS data is available at the census tract level for the entire country. For a city guide page, you can pull CHAS data for all tracts within that city and aggregate to get city-level affordability figures. The key fields for content generation:

  • T1_est1: Total occupied housing units
  • T1_est5: Owner-occupied, cost burdened (30-50% of income)
  • T1_est6: Owner-occupied, severely cost burdened (50%+ of income)
  • T1_est11: Renter-occupied, cost burdened
  • T1_est12: Renter-occupied, severely cost burdened

Download CHAS data from https://www.huduser.gov/portal/datasets/cp.html. The bulk download is a ZIP file with fixed-width text files. For programmatic access, parse the CSV version and join on GEOID (the 11-digit census tract identifier) to map records to specific cities and counties.

A "housing cost burden guide" for Austin, TX could use CHAS data to state: "In the Austin metro area, 34% of renter households pay more than 30% of their income toward rent. Of those, roughly 15% are severely cost burdened - paying more than half their income on housing." Those are real, citable numbers from a government source. That is a fundamentally better page than a generic guide that says "Austin has high rents."

Fair Market Rents: The Most Useful HUD Dataset for Rental Content

HUD's Fair Market Rents (FMR) program publishes annual rent estimates for every county and metro area in the United States. These figures represent the 40th percentile of gross rents - the rent level below which 40% of recent movers in the area pay. FMR is used to set Section 8 housing voucher payment standards, which means it is updated every October with the new fiscal year data and is extremely well-maintained.

FMR data includes rent estimates for studio, 1-bedroom, 2-bedroom, 3-bedroom, and 4-bedroom units. For a city's rental guide page, these five numbers alone give you more than most competing pages include. The FMR API endpoint is:

# HUD FMR API - requires free API token from huduser.gov
BASE_URL = "https://www.huduser.gov/hudapi/public/fmr"

# Get FMR for a specific county by FIPS code
# Travis County, TX = FIPS 48453
response = requests.get(
    f"{BASE_URL}/data/{fips_code}",
    headers={"Authorization": f"Bearer {api_token}"}
)

data = response.json()
# data['data']['basicdata'] contains:
# {
#   "Efficiency": 1050,
#   "One-Bedroom": 1250,
#   "Two-Bedroom": 1580,
#   "Three-Bedroom": 2100,
#   "Four-Bedroom": 2450,
#   "metro_name": "Austin-Round Rock, TX MSA",
#   "year": 2026
# }

Get your free API token at huduser.gov/portal/dataset/fmr-api.html. The token is instant and has no rate limits for reasonable programmatic use.

One important nuance: FMR geography is at the metro area level, not the city level. The Austin FMR covers the Austin-Round Rock MSA, which includes Travis, Williamson, Hays, Bastrop, and Caldwell counties. If you are building city-specific pages, note in your content that the FMR reflects the broader metro area, not just the city itself. This transparency actually builds more trust than pretending you have city-level precision when you do not.

Income Limits: AMI Data by Metro Area

HUD publishes Area Median Income (AMI) and income limit tables for every metro area and county annually. These figures are used to determine eligibility for most federal housing assistance programs. For content purposes, AMI data is the foundation for "affordability guide" pages - it tells you exactly what income thresholds define "low income," "very low income," and "extremely low income" in any given market.

The income limit API follows the same structure as the FMR API:

# HUD Income Limits API
response = requests.get(
    f"https://www.huduser.gov/hudapi/public/il/data/{fips_code}",
    headers={"Authorization": f"Bearer {api_token}"}
)

data = response.json()
# Returns income limits by household size (1-8 persons)
# at 30%, 50%, and 80% of AMI
# Example for a family of 4 in Austin metro:
# {
#   "il30_p4": 35750,   # 30% AMI - Extremely Low Income
#   "il50_p4": 59600,   # 50% AMI - Very Low Income
#   "il80_p4": 95350,   # 80% AMI - Low Income
#   "median_income": 119200  # 100% AMI
# }

The content opportunity here is significant. Searches like "do I qualify for housing assistance in Austin" and "what is low income in Austin Texas" get consistent search volume and have almost no programmatic competitors. Most pages that rank for these queries are generic government pages or outdated blog posts. A page that shows the specific dollar thresholds for Austin, organized by household size, with an explanation of what each threshold means for program eligibility, provides genuine value.

HOME Investment Data: Housing Assistance by City

The HOME Investment Partnerships Program is HUD's largest federal block grant for creating affordable housing. HUD distributes HOME funds to states and participating jurisdictions (cities and counties with populations over 65,000). The annual allocation data is public and shows exactly how much money each jurisdiction receives for housing programs.

This data enables "housing assistance programs in [City]" pages with concrete numbers. Instead of saying "Austin has housing assistance programs," you can say "Austin received $4.2 million in HOME Investment Partnership funds in FY2025, which supports homebuyer assistance, rental rehabilitation, and new affordable housing construction." That level of specificity is what separates authoritative content from thin template pages.

Download HOME allocation data from https://www.hud.gov/program_offices/comm_planning/home. The data is published annually as Excel files - not the cleanest API format, but parseable with Python's openpyxl or pandas. A one-time preprocessing step to convert to JSON or SQLite makes ongoing content generation much faster.

Combining HUD Data with Census ACS Data

HUD data and Census ACS data are designed to work together - CHAS data is literally derived from ACS microdata. The combination enables richer analysis than either dataset alone.

A practical example: for an "affordability guide" for Denver, CO, you might combine:

  • ACS B25064: Median gross rent ($1,890 for Denver)
  • ACS B19013: Median household income ($73,500)
  • CHAS T1 fields: 42% of renters cost-burdened
  • HUD FMR: 2BR fair market rent = $1,720 (Denver Metro)
  • HUD Income Limits: Very low income (50% AMI) for family of 4 = $52,700

From those five data points, you can build a factual narrative: "In Denver, a household earning the median income of $73,500 would need to pay about 31% of gross income to afford a median-priced rental - barely above the cost-burden threshold. Households at 50% of the area median income ($52,700 for a family of four) face serious affordability challenges, with median rents consuming over 40% of their income."

That is genuinely useful analysis that no competing page is generating at scale. See also our guide on the best free government APIs for local SEO content for a complete inventory of data sources that pair well with HUD data.

Page Types HUD Data Enables

Here are the specific page types that HUD data makes possible, along with the datasets they draw from:

Page Type Target Query HUD Dataset
Rental affordability guide "average rent [city] 2026" FMR + ACS
Housing cost burden analysis "is [city] affordable" CHAS + Income Limits
Section 8 voucher guide "Section 8 housing [city]" FMR (sets voucher amounts)
Housing assistance eligibility "housing assistance income limits [city]" Income Limits
City housing program guide "housing programs [city]" HOME allocation data
Rent-to-income ratio calculator "how much rent can I afford [city]" FMR + Income Limits

Practical Example: Building a Rental Affordability Guide

Here is a concrete content pipeline for a "rental affordability guide" for a single city using HUD FMR and income limit data:

import requests
import json

HUD_TOKEN = "your_api_token"
HEADERS = {"Authorization": f"Bearer {HUD_TOKEN}"}

def get_city_housing_data(fips_county):
    """Fetch FMR and income limit data for a county FIPS code."""
    fmr_url = f"https://www.huduser.gov/hudapi/public/fmr/data/{fips_county}"
    il_url = f"https://www.huduser.gov/hudapi/public/il/data/{fips_county}"

    fmr_resp = requests.get(fmr_url, headers=HEADERS)
    il_resp = requests.get(il_url, headers=HEADERS)

    fmr = fmr_resp.json()["data"]["basicdata"]
    il = il_resp.json()["data"]["il"][0]  # Family of 4 row

    return {
        "fmr_studio": fmr["Efficiency"],
        "fmr_1br": fmr["One-Bedroom"],
        "fmr_2br": fmr["Two-Bedroom"],
        "fmr_3br": fmr["Three-Bedroom"],
        "fmr_4br": fmr["Four-Bedroom"],
        "metro_name": fmr["metro_name"],
        "median_income": il["median_income"],
        "il_30_p4": il["il30_p4"],
        "il_50_p4": il["il50_p4"],
        "il_80_p4": il["il80_p4"],
        "year": fmr["year"]
    }

# Use to populate page templates
austin_data = get_city_housing_data("48453")  # Travis County FIPS
print(json.dumps(austin_data, indent=2))

With this data in hand, your page template can generate specific, factual content: "The Fair Market Rent for a 2-bedroom apartment in the Austin-Round Rock metro area is $1,580 per month as of 2026, according to HUD. To afford this without being cost-burdened, a household needs to earn at least $63,200 per year."

Limitations: What HUD Data Does Not Cover

HUD data has real limitations that matter for content accuracy:

Geography granularity: FMR and income limits are at the metro area level, not the city or neighborhood level. Denver's FMR applies equally to downtown Denver and suburban Aurora. For neighborhood-level rent data, you need private sources (Zillow Research, Apartment List) or Census ACS tract-level data.

Update frequency: CHAS data typically lags 2-3 years behind the current year. The 2026 CHAS data is based on 2020-2024 ACS surveys and was released in late 2025. For fast-moving markets, CHAS affordability figures may understate current conditions. Always note the data year in your content.

What it does not cover: HUD data says nothing about homeownership costs, property taxes, HOA fees, or maintenance expenses. For homeowner-focused pages (as opposed to renter-focused), combine HUD income limits with FHFA home price data and BLS cost data to get a complete affordability picture. The Homeowner.wiki platform integrates all these sources into a single data pipeline that handles the joins and freshness tracking automatically.

Ready to generate homeowner pages at scale?

Homeowner.wiki combines federal data APIs, municipal scraping, and LLM generation into one engine. Join the waitlist for early access.

Join the Waitlist