FEMA Flood Zone & Property Risk API - Zillow/Redfin Enricher avatar

FEMA Flood Zone & Property Risk API - Zillow/Redfin Enricher

Pricing

from $4.25 / 1,000 property enricheds

Go to Apify Store
FEMA Flood Zone & Property Risk API - Zillow/Redfin Enricher

FEMA Flood Zone & Property Risk API - Zillow/Redfin Enricher

FEMA flood zone and property risk for US addresses or a whole Zillow/Redfin dataset: flood zone + SFHA, FEMA National Risk Index (18 hazards), census income, home value and rent, elevation, and a low-to-high risk verdict per property. Keyless, bulk.

Pricing

from $4.25 / 1,000 property enricheds

Rating

0.0

(0)

Developer

Centor Prat

Centor Prat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Share

🏠 FEMA Flood Zone & Property Risk API: Zillow/Redfin Enricher

Any US address in, a property risk dossier out. Give it street addresses, or the dataset of a Zillow / Redfin / Realtor scraper run, and every property comes back with its FEMA flood zone, the FEMA National Risk Index profile for 18 natural hazards, neighborhood demographics, ground elevation, and one low / moderate / elevated / high verdict with plain-English reasons.

Bulk · keyless (no API keys, no logins) · official US federal data · structured JSON · built for AI agents.

⚡ Why it's different

  • Chains onto the scrapers you already use. Pick your Zillow/Redfin run's dataset: addresses and coordinates are auto-detected, and each listing's ID, URL and price ride along in sourceRecord.
  • Five federal sources fused into one record: you don't need to stitch the Census geocoder, FEMA flood maps, FEMA NRI, the ACS and USGS together yourself.
  • A verdict, not just a data dump. It flags Special Flood Hazard Areas, coastal V zones, top-percentile hurricane / wildfire / earthquake / tornado / flood loss rates and low elevation, and tells you why.
  • Property-level hazard math. Besides FEMA's community rating, you get the exposure-normalized building loss rate: expected natural-hazard loss per $100k of building value per year, comparable across the whole country.
  • Bulk-priced: a fraction of single-address report tools. Unmatched addresses are free.

📋 What you get (per property)

FieldMeaning
matchedAddress, latitude, longitudeStandardized address + coordinates (US Census Geocoder)
county, place, tractFips, countyFipsCounty, city, census tract and county FIPS codes
floodZone.zone, .zoneSubtypeFEMA flood zone (A, AE, AO, VE, X, D...) and subtype
floodZone.inSpecialFloodHazardAreatrue = 1% annual chance flood area (flood insurance usually mandatory with a federal mortgage)
floodZone.baseFloodElevationFt, .firmPanel, .firmEffectiveDateBase flood elevation, FIRM panel number and its effective date
hazardIndex.propertyLossRatePercentileWhere this tract's building loss rate ranks among all US tracts (0–100)
hazardIndex.expectedAnnualLossPer100kUsdExpected natural-hazard loss per $100k of building value per year
hazardIndex.topHazards, .hazards18 hazards with FEMA rating, loss-rate percentile and building loss rate
hazardIndex.communityRiskRating, .socialVulnerabilityRating, .communityResilienceRatingFEMA's official tract-level ratings
neighborhood.medianHomeValue, .medianGrossRent, .grossRentYieldPctTract home value, rent and the implied gross rent yield
neighborhood.medianHouseholdIncome, .ownerOccupiedPct, .vacancyRatePct, .medianYearBuilt, .population, .medianAgeTract demographics (ACS 5-year)
elevationFtGround elevation in feet (USGS 3DEP)
verdict, flags, reasons, isFlaggedlow / moderate / elevated / high + machine flags + human reasons
verdictCompletefalse if a source couldn't be reached and the verdict is partial (flagged *_unavailable)
sourceRecordid, url, price of the listing when enriching another actor's dataset

📥 Input

FieldTypeMeaning
addressesarrayUS street addresses, one per line, or "lat,lon" points
datasetIdstringThe dataset of a Zillow / Redfin / Realtor / any real-estate actor run to enrich
addressFieldstringOptional dotted path if auto-detection misses (e.g. listingAddress.full)
maxItemsintegerSafety cap per run (default 500)
includeFloodZone / includeHazardIndex ($) / includeDemographics / includeElevationbooleanAdd-ons, all on by default
onlyFlaggedbooleanReturn (and bill) only elevated/high properties: screen a big list cheaply
webhookUrlstringPOST flagged properties to Zapier / Make / n8n / your API

Example input: addresses

{
"addresses": [
"2100 Collins Ave, Miami Beach, FL 33139",
"350 Fifth Avenue, New York, NY 10118",
"29.9511,-90.0715"
]
}

Example input: enrich a Zillow scraper run, keep only risky listings

{ "datasetId": "<your Zillow run's dataset ID>", "onlyFlagged": true, "maxItems": 2000 }

📤 Output (one row per property)

Real output for a Miami Beach listing chained from a Zillow-style dataset (hazard list shortened):

{
"input": "1500 Bay Rd, Miami Beach, FL, 33139",
"matched": true,
"matchedAddress": "1500 BAY RD, MIAMI BEACH, FL, 33139",
"latitude": 25.787224, "longitude": -80.143605,
"geocoder": "US Census Geocoder",
"county": "Miami-Dade County", "place": "Miami Beach city",
"tractFips": "12086004207", "countyFips": "12086",
"sourceRecord": { "id": "44143364", "price": 1250000 },
"floodZone": {
"mapped": true, "zone": "AE", "inSpecialFloodHazardArea": true, "riskLevel": "high",
"label": "High risk: 1% annual chance flood (Special Flood Hazard Area)",
"baseFloodElevationFt": 8, "dfirmId": "12086C",
"firmPanel": "12086C0317L", "firmEffectiveDate": "2009-09-11",
"insuranceNote": "In a Special Flood Hazard Area: flood insurance is generally mandatory for federally backed mortgages."
},
"elevationFt": 2.9,
"hazardIndex": {
"nriVersion": "December 2025",
"propertyLossRatePercentile": 55.2,
"expectedAnnualLossPer100kUsd": 162,
"communityRiskRating": "Very Low",
"socialVulnerabilityRating": "Relatively Low",
"topHazards": [
{ "hazard": "hurricane", "lossRatePercentile": 84, "rating": "Relatively Moderate" },
{ "hazard": "coastalFlooding", "lossRatePercentile": 82.1, "rating": "Relatively Moderate" }
],
"hazards": {
"hurricane": { "rating": "Relatively Moderate", "lossRatePercentile": 84,
"buildingLossRatePct": 0.0784, "tractExpectedAnnualLossUsd": 175775 }
}
},
"neighborhood": {
"population": 1823, "medianAge": 39.7, "medianHouseholdIncome": 125024,
"medianHomeValue": 786800, "medianGrossRent": 2854, "grossRentYieldPct": 4.35,
"medianYearBuilt": 1968, "housingUnits": 1771,
"ownerOccupiedPct": 7.5, "renterOccupiedPct": 92.5, "vacancyRatePct": 45.1,
"source": "ACS 2024 5-year (US Census Bureau, via Census Reporter)"
},
"verdict": "high",
"isFlagged": true,
"flags": ["special_flood_hazard_area", "low_elevation"],
"reasons": [
"FEMA flood zone AE: High risk: 1% annual chance flood (Special Flood Hazard Area)",
"ground elevation 2.9 ft"
],
"sources": ["US Census Geocoder", "FEMA National Flood Hazard Layer (NFHL)",
"FEMA National Risk Index (December 2025)",
"ACS 2024 5-year (US Census Bureau, via Census Reporter)",
"USGS 3DEP Elevation Point Query Service"],
"capturedAt": "2026-10-13T14:04:50+00:00"
}

How the verdict works

VerdictWhen
highIn a FEMA Special Flood Hazard Area (A/V zones), or building loss rate in the top 5% of US tracts
elevatedLoss rate above the 80th percentile, or a key hazard (flood, hurricane, wildfire, earthquake, tornado, landslide, tsunami) in the top 3%
moderateShaded Zone X (0.2% flood), loss rate above the 60th percentile, a key hazard above the 90th, or elevation under 10 ft
lowNone of the above

💰 Pricing (pay-per-event menu)

  • property-enriched: base, per matched property (geocode + flood zone + demographics + elevation).
  • hazard-profile ($ add-on): premium, per property with a FEMA National Risk Index profile.
  • Unmatched addresses are not billed. With onlyFlagged, only the flagged properties returned are billed.

💡 Use cases

  • Real-estate investors & wholesalers: run your Zillow/Redfin pull through it and drop (or price in) flood-zone and high-hazard deals before you call.
  • Insurance agents & brokers: pre-qualify flood/wind/wildfire exposure for a book of addresses before quoting.
  • Lenders & due diligence: SFHA status + FIRM panel for every collateral address in one bulk run.
  • Proptech & AI agents: one call answers "is this address risky, and why?" with sources.
  • Rental analysis: tract median rent, home value and gross yield next to the risk picture.
  • Portfolio screening: score thousands of properties and alert only on elevated/high via webhook.

🤖 For AI agents (MCP)

One call, structured JSON, every field described. Ideal as a tool for real-estate, insurance and due-diligence agents. Example MCP server config:

{
"mcpServers": {
"property-risk": {
"url": "https://mcp.apify.com/?tools=actors,docs,centorprat/fema-flood-zone-property-risk"
}
}
}

Claude Code: claude mcp add --transport http apify "https://mcp.apify.com/?tools=actors,docs,centorprat/fema-flood-zone-property-risk" --header "Authorization: Bearer <YOUR_APIFY_TOKEN>"

No extra setup: this Actor is callable from Claude, Cursor, ChatGPT or any MCP client through the Apify MCP server, and agents can find it on their own with the server's search-actors tool.

Call it from code:

curl -X POST "https://api.apify.com/v2/acts/centorprat~fema-flood-zone-property-risk/run-sync-get-dataset-items?token=<YOUR_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"addresses":["2100 Collins Ave, Miami Beach, FL 33139"]}'
from apify_client import ApifyClient
client = ApifyClient("<YOUR_TOKEN>")
run = client.actor("centorprat/fema-flood-zone-property-risk").call(run_input={"addresses": ["2100 Collins Ave, Miami Beach, FL 33139"]})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["matchedAddress"], item["verdict"], item["floodZone"]["zone"])

🔗 Chain it after a scraper (integrations)

  1. Run any real-estate actor (Zillow Search, Zillow Detail, Redfin, Realtor...).
  2. Open this actor, pick that run's dataset in 🔗 Enrich a Zillow / Redfin / Realtor dataset, and start.
  3. Or automate it: add an Apify integration on the scraper ("run actor after success") that passes {"datasetId": "{{resource.defaultDatasetId}}"} to this actor.

🚀 Ready-made tasks (one click)

Pre-configured runs for the most common jobs. Open one, change the input, run:

❓ FAQ

  • Do I need an API key? No. Every source is a keyless public US federal service.
  • Which countries? United States only (50 states + DC; territories where FEMA/Census data exists). Points outside the US are returned as unmatched and not billed.
  • How accurate is the flood zone? It's the effective FEMA flood map (NFHL) polygon at the geocoded point, the same data FEMA's Map Service Center shows. For a lender-grade determination, order an official Standard Flood Hazard Determination (SFHDF).
  • What if the community has no digital flood map? floodZone.mapped is false with a note. Some rural counties still only have paper FIRMs.
  • Is the hazard data per house? FEMA's National Risk Index is published per census tract, so properties in the same tract share it. The flood zone and elevation are per point.
  • What's expectedAnnualLossPer100kUsd? FEMA's annualized building loss rate across all 18 hazards, expressed per $100k of building value. Multiply by the structure value (not land) for a rough annual expected loss.
  • Why can communityRiskRating be high while the verdict is low? FEMA's community rating grows with how much is built in a tract (exposure). The verdict uses the exposure-normalized loss rate, which is what matters for one building.
  • Some addresses didn't match? The US Census geocoder misses some new builds, campuses and PO boxes. Pass "lat,lon" for those, or use a dataset that has coordinates. Unmatched addresses are free.
  • How fresh is the data? Flood zones are the live FEMA layer; NRI is the latest FEMA release (shown in nriVersion); ACS is the latest 5-year release (shown in neighborhood.source).
  • How fast is it? Typically 30–120 properties per minute at the default settings, depending on how loaded FEMA's public flood service is (40 properties took 20–80 s in our tests). Tract-level data is cached within a run.
  • What if a federal service is down? Failed lookups are retried automatically. If one still can't be checked, the record says so (flags: ["flood_zone_unavailable"], verdictComplete: false) instead of silently giving a safer-looking verdict.
  • Can I use it commercially? Yes. All sources are US federal government works in the public domain; please keep the attribution in sources.
  • Is it a substitute for an inspection, appraisal or insurance quote? No. It's screening data for decisions and prioritization.

📜 Data & attribution

US Census Bureau (Geocoder, American Community Survey 5-year; read via the official Census API or the open-source Census Reporter API) · FEMA National Flood Hazard Layer · FEMA National Risk Index · USGS 3D Elevation Program. Public-domain federal data, fetched live, composed and returned; nothing stored.

Part of one suite of keyless, agent-ready composers by the same developer: