FEMA Flood Zone & Property Risk API - Zillow/Redfin Enricher
Pricing
from $4.25 / 1,000 property enricheds
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
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)
| Field | Meaning |
|---|---|
matchedAddress, latitude, longitude | Standardized address + coordinates (US Census Geocoder) |
county, place, tractFips, countyFips | County, city, census tract and county FIPS codes |
floodZone.zone, .zoneSubtype | FEMA flood zone (A, AE, AO, VE, X, D...) and subtype |
floodZone.inSpecialFloodHazardArea | true = 1% annual chance flood area (flood insurance usually mandatory with a federal mortgage) |
floodZone.baseFloodElevationFt, .firmPanel, .firmEffectiveDate | Base flood elevation, FIRM panel number and its effective date |
hazardIndex.propertyLossRatePercentile | Where this tract's building loss rate ranks among all US tracts (0–100) |
hazardIndex.expectedAnnualLossPer100kUsd | Expected natural-hazard loss per $100k of building value per year |
hazardIndex.topHazards, .hazards | 18 hazards with FEMA rating, loss-rate percentile and building loss rate |
hazardIndex.communityRiskRating, .socialVulnerabilityRating, .communityResilienceRating | FEMA's official tract-level ratings |
neighborhood.medianHomeValue, .medianGrossRent, .grossRentYieldPct | Tract home value, rent and the implied gross rent yield |
neighborhood.medianHouseholdIncome, .ownerOccupiedPct, .vacancyRatePct, .medianYearBuilt, .population, .medianAge | Tract demographics (ACS 5-year) |
elevationFt | Ground elevation in feet (USGS 3DEP) |
verdict, flags, reasons, isFlagged | low / moderate / elevated / high + machine flags + human reasons |
verdictComplete | false if a source couldn't be reached and the verdict is partial (flagged *_unavailable) |
sourceRecord | id, url, price of the listing when enriching another actor's dataset |
📥 Input
| Field | Type | Meaning |
|---|---|---|
addresses | array | US street addresses, one per line, or "lat,lon" points |
datasetId | string | The dataset of a Zillow / Redfin / Realtor / any real-estate actor run to enrich |
addressField | string | Optional dotted path if auto-detection misses (e.g. listingAddress.full) |
maxItems | integer | Safety cap per run (default 500) |
includeFloodZone / includeHazardIndex ($) / includeDemographics / includeElevation | boolean | Add-ons, all on by default |
onlyFlagged | boolean | Return (and bill) only elevated/high properties: screen a big list cheaply |
webhookUrl | string | POST 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
| Verdict | When |
|---|---|
| high | In a FEMA Special Flood Hazard Area (A/V zones), or building loss rate in the top 5% of US tracts |
| elevated | Loss rate above the 80th percentile, or a key hazard (flood, hurricane, wildfire, earthquake, tornado, landslide, tsunami) in the top 3% |
| moderate | Shaded Zone X (0.2% flood), loss rate above the 60th percentile, a key hazard above the 90th, or elevation under 10 ft |
| low | None 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 ApifyClientclient = 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)
- Run any real-estate actor (Zillow Search, Zillow Detail, Redfin, Realtor...).
- Open this actor, pick that run's dataset in 🔗 Enrich a Zillow / Redfin / Realtor dataset, and start.
- 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:
- Flood Zone Lookup by Address (FEMA): Look up the FEMA flood zone, SFHA status, base flood elevation and FIRM panel for any US address, in bulk, with a risk verdict per property.
- Zillow & Redfin Listings: Flood and Hazard Risk: Add FEMA flood zone, hurricane/wildfire/earthquake risk and neighborhood data to every Zillow or Redfin listing you scraped. Bulk, per-property pricing.
- Hurricane, Wildfire & Earthquake Risk by Address: FEMA natural hazard risk for any US address: hurricane, wildfire, earthquake, tornado, flood. Loss percentiles, expected annual loss and a verdict.
- Neighborhood Income, Rent & Home Value by Address: Median income, home value, rent, rent yield, vacancy and owner-occupancy for the census tract of any US address. Official ACS data, bulk.
❓ 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.mappedisfalsewith 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
communityRiskRatingbe 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 inneighborhood.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.
🔗 Related actors
Part of one suite of keyless, agent-ready composers by the same developer:
- Shopify Store Leads + App Audit (Reviews, Email, Pixels): Shopify stores by niche, verified and audited for missing apps (reviews, email/SMS, upsell, loyalty, chat, subscriptions), pixels and theme: scored leads with emails.
- Google Maps Leads + Website Audit for Agencies: local businesses from Google Maps audited for website, Google profile, reviews, booking and tracking gaps: scored, explained leads with phone and emails.
- Domain Lookup API - DNS, MX, SPF, Tech & Contact Emails: DNS + live homepage → IPs, MX/SPF, tech, socials and public contacts per domain.
- Wikipedia & Wikidata API - Entity Facts, Summary & Pageviews: Wikipedia + Wikidata + pageviews → one structured brief per company, person or place.
- Country Economic Data API - World Bank GDP, FX & Holidays: World Bank + FX + public holidays → one market brief per country.
- Weather, Air Quality & Earthquake Risk API by Location: live weather + air quality + earthquakes → one clear/caution/hazard verdict per point, worldwide.
- Aircraft Tracker API (ADS-B) - Approach & Military Alerts: aircraft approaching a point with CPA/ETA + military/unidentified flags and alerts.
- NARA Catalog Extractor: US National Archives catalog search → digital-object download URLs + metadata.