Fair Market Rent MapDocs

Put Fair Market Rent data on your site

Developer documentation for Fair Market Rent Map — HUD Fair Market Rents and Small Area FMRs for every U.S. ZIP code, available as a drop-in widget or a JSON API.

Fair Market Rents (FMRs) are the rent standards HUD publishes each fiscal year. They drive Section 8 / Housing Choice Voucher payment standards, and they're a useful market baseline for landlords, property managers, and housing researchers. Fair Market Rent Map serves this data ZIP-by-ZIP — explore it on the interactive FMR map, or pull it into your own site with the tools below. Figures update when HUD publishes a new fiscal year and again at HUD's spring revisions, so never hard-code values.

Embed widget Free

One copy-paste snippet renders a rent table for any ZIP code. No API key, no sign-up.

Embed API Free

Keyless JSON endpoint with open CORS. Base FMR rates by bedroom count for any ZIP.

Pro API API key

Everything in the embed API plus 90% and 110% payment standards, for Pro subscribers.

Chrome extension Pro

Hover any ZIP code on any website to see rents, safety, and yield in place.


Embed widget Free

A drop-in card showing current-year Fair Market Rents for one ZIP code. Paste this anywhere in your page's HTML and swap in your ZIP:

<div data-fmr-widget data-zip="35004" data-theme="light">
  <a href="https://fairmarketrentmap.com/zip/35004">Fair Market Rents for ZIP 35004 — Fair Market Rent Map</a>
</div>
<script src="https://fairmarketrentmap.com/widget.js" async></script>

Prefer to click instead of type? The widget configurator generates the snippet for any ZIP and theme, with a live preview.

Configuration

The widget mounts on any element matching [data-fmr-widget] or id="fmr-widget" and reads two attributes — that's the whole configuration surface:

AttributeRequiredValuesNotes
data-zip Yes 5-digit ZIP code If missing or invalid, the widget renders nothing and leaves your fallback link untouched.
data-theme No light (default) or dark Any other value falls back to light.

The card is responsive up to a maximum width of 480px. Multiple widgets per page are fine — each element renders independently, and the script tag only needs to appear once.

Live demo — both themes

These are the real widget, running on this page against the production API:

How it behaves

Attribution

The rendered card carries one small "Source: HUD, via Fair Market Rent Map" credit link, and the snippet's fallback anchor serves the same purpose when the card isn't rendered. Keeping that credit visible is the only condition of free use — a single, honest, descriptive link, consistent with Google's guidance on widget links.


Embed API Free

A keyless JSON endpoint returning current-fiscal-year Fair Market Rents for any U.S. ZIP code — the same endpoint the widget uses. No authentication, no sign-up, and CORS is open (Access-Control-Allow-Origin: *), so browser-side fetch works from any origin.

GET https://fairmarketrentmap.com/api/embed/fmr?zip={zip}

Response

{
  "zipCode": "35004",
  "city": "Moody",
  "state": "AL",
  "hudAreaName": "Birmingham-Hoover, AL HUD Metro FMR Area",
  "fiscalYear": 2027,
  "rates": [
    { "bedrooms": 0, "label": "Studio",    "base": 1490 },
    { "bedrooms": 1, "label": "1 Bedroom", "base": 1600 },
    { "bedrooms": 2, "label": "2 Bedroom", "base": 1740 },
    { "bedrooms": 3, "label": "3 Bedroom", "base": 2190 },
    { "bedrooms": 4, "label": "4 Bedroom", "base": 2460 }
  ],
  "attribution": {
    "source": "HUD Small Area Fair Market Rents",
    "url": "https://fairmarketrentmap.com/zip/35004"
  }
}

rates always has five entries, bedrooms 0–4 (Studio through 4 Bedroom); base is the monthly Fair Market Rent in whole U.S. dollars. If you display the data publicly, please include the attribution.url link — it's how the free endpoint stays free.

This endpoint returns base FMR rates only. For the 90% and 110% payment-standard figures (the range PHAs may set voucher payment standards within), use the Pro API — or point readers at the ZIP's page, e.g. fairmarketrentmap.com/zip/35004, which shows them free.

Errors, rate limits, caching

Errors are JSON: { "error": "…" }.

StatusWhen
400zip missing or not 5 digits.
404ZIP not in the current HUD dataset.
429Rate limit exceeded — 100 requests per minute per IP. Includes a Retry-After header (seconds).

Successful responses are served with Cache-Control: public, max-age=3600 plus a long stale-while-revalidate window; bulk consumers should honor these headers.

Examples

curl "https://fairmarketrentmap.com/api/embed/fmr?zip=35004"
// JavaScript (browser or Node)
const res = await fetch("https://fairmarketrentmap.com/api/embed/fmr?zip=35004");
if (!res.ok) throw new Error(`FMR lookup failed: ${res.status}`);
const data = await res.json();

const twoBr = data.rates.find(r => r.bedrooms === 2);
console.log(`FY${data.fiscalYear} 2BR FMR for ${data.city}, ${data.state}: $${twoBr.base}`);
# Python
import requests

res = requests.get(
    "https://fairmarketrentmap.com/api/embed/fmr",
    params={"zip": "35004"},
    timeout=10,
)
res.raise_for_status()
data = res.json()

two_br = next(r for r in data["rates"] if r["bedrooms"] == 2)
print(f"FY{data['fiscalYear']} 2BR FMR for {data['city']}, {data['state']}: ${two_br['base']}")

Pro API API key

The keyed API for Pro subscribers. Same FMR data as the embed API, plus the 90% and 110% payment-standard figures for every bedroom count.

GET https://fairmarketrentmap.com/api/public/fmr?zip={zip}
x-api-key: fmr_…

Authentication

Response

{
  "zipCode": "35004",
  "city": "Moody",
  "state": "AL",
  "hudAreaName": "Birmingham-Hoover, AL HUD Metro FMR Area",
  "fiscalYear": 2027,
  "rates": [
    { "bedrooms": 0, "label": "Studio",    "base": 1490, "payment90pct": 1341, "payment110pct": 1639 },
    { "bedrooms": 1, "label": "1 Bedroom", "base": 1600, "payment90pct": 1440, "payment110pct": 1760 },
    { "bedrooms": 2, "label": "2 Bedroom", "base": 1740, "payment90pct": 1566, "payment110pct": 1914 },
    { "bedrooms": 3, "label": "3 Bedroom", "base": 2190, "payment90pct": 1971, "payment110pct": 2409 },
    { "bedrooms": 4, "label": "4 Bedroom", "base": 2460, "payment90pct": 2214, "payment110pct": 2706 }
  ],
  "attribution": {
    "source": "HUD Small Area Fair Market Rents",
    "url": "https://fairmarketrentmap.com/zip/35004"
  }
}

payment90pct / payment110pct are 90% and 110% of the FMR — the "basic range" within which public housing authorities typically set Housing Choice Voucher payment standards.

Errors, rate limits, caching

StatusWhen
401No x-api-key header.
403Key is invalid, revoked, or the Pro subscription has expired.
400zip missing or not 5 digits.
404ZIP not in the current HUD dataset.
429Rate limit exceeded — 100 requests per minute per IP. Includes a Retry-After header (seconds).

Successful responses carry Cache-Control: public, max-age=86400. FMR data changes at most a few times a year, so caching lookups for a day on your side is safe and recommended for bulk workloads.

Examples

curl -H "x-api-key: fmr_YOUR_KEY_HERE" \
  "https://fairmarketrentmap.com/api/public/fmr?zip=35004"
// JavaScript (server-side)
const res = await fetch("https://fairmarketrentmap.com/api/public/fmr?zip=35004", {
  headers: { "x-api-key": process.env.FMR_API_KEY },
});
if (!res.ok) throw new Error(`FMR lookup failed: ${res.status}`);
const data = await res.json();

const twoBr = data.rates.find(r => r.bedrooms === 2);
console.log(
  `2BR FMR: $${twoBr.base} ` +
  `(payment standard range $${twoBr.payment90pct}–$${twoBr.payment110pct})`
);
# Python
import os
import requests

res = requests.get(
    "https://fairmarketrentmap.com/api/public/fmr",
    params={"zip": "35004"},
    headers={"x-api-key": os.environ["FMR_API_KEY"]},
    timeout=10,
)
res.raise_for_status()
data = res.json()

for rate in data["rates"]:
    print(f"{rate['label']}: ${rate['base']} "
          f"(90% ${rate['payment90pct']} / 110% ${rate['payment110pct']})")

Free vs. Pro at a glance

Embed APIPro API
Endpoint/api/embed/fmr/api/public/fmr
AuthNonex-api-key header
Base FMR by bedroomYesYes
90% / 110% payment standardsYes
Intended useWidgets, client-side lookupsServer-side integrations, tools, analysis

More on the on-site reference: fairmarketrentmap.com/api-docs.


Chrome extension Pro

Fair Market Rents on any website. With the extension installed, hovering any ZIP code — on a listing site, in a county PDF portal, in an email — shows current HUD Fair Market Rents in a hover card. Major city names written as "City, ST" work too, and each card links to the ZIP's full page for payment standards and history.

Install it from the Chrome Web Store, or start from fairmarketrentmap.com/extension for the full setup walkthrough.
Hover card sectionContentsRequires
Fair Market Rents Current-year HUD SAFMR for the ZIP, Studio through 4 Bedroom. Pro
Safety Crime score and letter grade with a national comparison. County-level estimate. Pro
Rental yield Gross yield computed from the 2BR FMR against the area's median home value. Landlord Pro

Setup, access, and privacy