US Flood Zone Lookup by Address (FEMA NFHL)
Pricing
from $5.00 / 1,000 flood zone checks
US Flood Zone Lookup by Address (FEMA NFHL)
Check the official FEMA flood zone (A, AE, VE, X...) for US addresses or lat/long in bulk: SFHA yes/no, base flood elevation, FIRM panel, LOMR, one flat JSON row per location. No API key, via API or MCP. $5 per 1,000 checks. Screening only, not an SFHDF.
Pricing
from $5.00 / 1,000 flood zone checks
Rating
0.0
(0)
Developer
Japan Open Data
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 hours ago
Last modified
Categories
Share
Look up the official FEMA flood zone (A, AE, AH, AO, VE, X, D...) for U.S. addresses or latitude/longitude, in bulk. Each location returns one flat JSON row: whether it is in a Special Flood Hazard Area (SFHA), the base flood elevation, the DFIRM ID, the FIRM panel and its effective date, and whether a Letter of Map Revision (LOMR) changed the map there.
Screening only — not a certified flood determination (SFHDF). This Actor reads FEMA's public National Flood Hazard Layer. It does not replace a Standard Flood Hazard Determination Form, an elevation certificate or a lender's flood determination. Zone X does not mean zero flood risk.
- FEMA flood zone by address or coordinates: zone, zone subtype (e.g. "0.2 PCT ANNUAL CHANCE FLOOD HAZARD", "AREA WITH REDUCED FLOOD RISK DUE TO LEVEE") and a plain-English meaning.
- SFHA yes/no:
inSpecialFloodHazardAreaistruefor A and V zones — the areas where flood insurance is mandatory for federally backed mortgages. - Base flood elevation and depth: static BFE with its vertical datum (NAVD88 / NGVD29) and AO-zone depths, when FEMA publishes them.
- FIRM panel and LOMR: DFIRM ID, FIRM panel number (e.g.
12086C0317L), panel effective date, and the latest LOMR case number and date at the point. - Bulk checks: up to 1,000 addresses or coordinates per run, each with your own
label, one row per location in input order. - Pay only for answers: $5 per 1,000 locations checked ($0.006 for a single address). Unmatched addresses, points without a FEMA map and errors are free.
- Fast: one FEMA request per point; 14 points in about 5 seconds.
- No API key: FEMA and U.S. Census Bureau public data; ready for the Apify API and MCP (AI agents).
What can it be used for?
- Mortgage, insurance and lending pre-screening. Flag which applications are likely in an SFHA before you order a certified flood determination, and see the BFE and FIRM panel up front.
- Real estate investors and property sites. Add a flood zone column to listings or to the output of property scrapers (Zillow, Redfin, Realtor.com) by passing their coordinates.
- Insurance underwriting and portfolio reviews. Screen hundreds of insured locations for A/V zones, coastal high hazard (V) areas and recent map revisions (LOMRs).
- AI agents and chatbots. Answer "Is this address in a flood zone?" with one call and a ready-made one-sentence
floodZoneSummary.
How to use it
- Click Start to try the default input (one point in Miami Beach, FL, in Zone AE).
- Paste your coordinates (
"latitude,longitude") or full street addresses (up to 1,000), optionally with alabeleach. - Download the rows as JSON, CSV or Excel, or call the Actor via the API or MCP (see below).
| Input | Type | Default | What it does |
|---|---|---|---|
locations | list | ["25.7900,-80.1300"] | "latitude,longitude" strings in decimal degrees, and/or full U.S. street addresses ("1600 Pennsylvania Ave NW, Washington, DC 20500"). Via the API also objects {"latitude": 25.79, "longitude": -80.13, "label": "Listing 42"} or {"address": "...", "label": "Site A"}. Up to 1,000 per run. |
Coordinates are the most precise input. Addresses are geocoded with the U.S. Census Bureau Geocoder, which places the point along the street segment (not on the rooftop), so a building near a zone boundary can come out differently. An address must include its ZIP code, or its city and state; weak or ambiguous matches return a free not_found row instead of a guess.
Coverage: U.S. states, D.C., Puerto Rico and the territories where FEMA publishes a digital flood map (NFHL). Some communities have only paper flood maps or no map at all; points there return a free not_found row with reason: "no_flood_map".
Input example
{"locations": [{ "address": "1600 Pennsylvania Ave NW, Washington, DC 20500", "label": "White House" },{ "latitude": 29.95, "longitude": -90.07, "label": "New Orleans" },"39.9430,-74.0710","21.2767,-157.8270","1600 Pennsylvania Ave"]}
Output example
Real output from the default input (run on 2026-09-24):
{"status": "ok","input": "25.7900,-80.1300","label": null,"matchedAddress": null,"latitude": 25.79,"longitude": -80.13,"floodZone": "AE","zoneSubtype": null,"inSpecialFloodHazardArea": true,"floodRiskLevel": "high","zoneDescription": "1% annual chance flood area (100-year floodplain) with a base flood elevation","coastalHighHazard": false,"baseFloodElevation": 8,"floodDepth": null,"elevationUnit": "Feet","verticalDatum": "NGVD29","otherZonesAtPoint": null,"dfirmId": "12086C","firmPanel": "12086C0317L","firmPanelEffectiveDate": "2009-09-11","firmPanelType": "Countywide, Panel Printed","hasLomr": false,"lomrCount": 0,"latestLomrCaseNumber": null,"latestLomrEffectiveDate": null,"floodZoneSummary": "FEMA flood zone AE - 1% annual chance flood area (100-year floodplain) with a base flood elevation; inside a Special Flood Hazard Area (flood insurance is required for federally backed mortgages); base flood elevation 8 feet (NGVD29); FIRM panel 12086C0317L effective 2009-09-11.","locationSource": "Coordinates as provided.","source": "FEMA National Flood Hazard Layer (NFHL): Flood Hazard Zones, FIRM Panels, LOMRs, NFHL Availability","attribution": "Source: FEMA National Flood Hazard Layer (U.S. public domain). Not affiliated with or endorsed by FEMA. Screening only - not a certified flood zone determination (SFHDF).","sourceUrl": "https://hazards.fema.gov/arcgis/rest/services/public/NFHL/MapServer/identify?..."}
All rows from the input example above (same day):
| Input | Zone | Subtype | SFHA | BFE | FIRM panel (effective) |
|---|---|---|---|---|---|
| White House (address) | X | area of minimal flood hazard | no | — | 1100010018C (2010-09-27) |
| New Orleans | X | reduced flood risk due to levee | no | — | 22071C0229F (2016-09-30) |
| 39.9430,-74.0710 (Seaside Heights, NJ) | AE | — | yes | 8 ft NAVD88 | 34029C0329F (2006-09-29) |
| 21.2767,-157.8270 (Waikiki, HI) | X | 0.2% annual chance flood hazard | no | — | 15003C0368G (2011-01-19) |
| 1600 Pennsylvania Ave | — | — | — | — | not_found (no city or ZIP; free) |
Rows that could not be assessed say what to change and are not charged. Real output:
{"status": "not_found", "reason": "address_low_confidence", "input": "1600 Pennsylvania Ave", "label": null, "matchedAddress": "1600 W PENNSYLVANIA AVE EXN, SOUTHERN PINES, NC, 28387", "error": "Address \"1600 Pennsylvania Ave\" is a low-confidence match (best guess \"1600 W PENNSYLVANIA AVE EXN, SOUTHERN PINES, NC, 28387\", whose house number, ZIP code or city and state do not match the input); add the city, state and ZIP code, or pass \"latitude,longitude\" instead."}{"status": "not_found", "reason": "no_flood_map", "input": "43.6500,-79.3800", "label": null, "latitude": 43.65, "longitude": -79.38, "error": "FEMA has no digital flood map (NFHL) for this point: the community may have only paper maps or no map, or the point is outside the United States or at sea. Check msc.fema.gov for paper maps."}
Output fields
| Field | Meaning |
|---|---|
status | ok; or, free of charge, not_found (address not matched confidently, or no FEMA digital flood zone at the point) or error (invalid input or FEMA unavailable) |
reason | On not_found / error rows, a machine-readable code: address_not_found, address_ambiguous, address_low_confidence, no_flood_map, area_not_included, no_zone_at_point, invalid_input, outside_us or source_unavailable |
input, label | What you passed, and your label |
matchedAddress, latitude, longitude | The Census-matched address (address input only) and the point that was checked |
floodZone, zoneSubtype, zoneDescription | FEMA zone (A, AE, AH, AO, AR, A99, V, VE, X, D, OPEN WATER), FEMA's subtype text and its plain-English meaning |
inSpecialFloodHazardArea | true in the 1% annual chance floodplain (A and V zones) |
floodRiskLevel | high (SFHA), moderate (0.2% annual chance or levee-protected X), minimal (other X), undetermined (D) or open water |
coastalHighHazard | true in V / VE zones (wave action) |
baseFloodElevation, floodDepth, elevationUnit, verticalDatum | Static BFE or AO depth as published on the map, with unit and datum; null where FEMA publishes none (many A zones use cross-sections instead) |
otherZonesAtPoint | Other zones touching the point (the point lies on a zone boundary) |
dfirmId, firmPanel, firmPanelEffectiveDate, firmPanelType | Flood map study ID, FIRM panel number and suffix, panel effective date and panel type |
hasLomr, lomrCount, latestLomrCaseNumber, latestLomrEffectiveDate | Letters of Map Revision that cover the point |
floodZoneSummary | One English sentence summarising the row (handy for AI agents and reports) |
locationSource, source, attribution, sourceUrl | How the point was obtained, the FEMA layers used, the disclaimer, and the exact FEMA request |
error | On not_found / error rows: one sentence explaining what to change |
How much does it cost?
This Actor uses Pay per event pricing — you pay per location assessed, not for compute time. The Store shows it as $5.00 / 1,000 flood zone checks.
| Event | Price | When it is charged |
|---|---|---|
Flood zone check (result-row) | $0.005 | Once per ok row. not_found and error rows are free |
| Actor start | $0.001 | Once per run |
| Example | Locations | Cost |
|---|---|---|
| "Is this address in a flood zone?" | 1 | $0.006 |
| Default input (Miami Beach point) | 1 | $0.006 |
| 50 listings from a property scraper | 50 | $0.251 |
| One full run | 1,000 | $5.001 |
For comparison, a certified flood zone determination (SFHDF) typically costs $15–30 per property. This Actor is the screening step before you decide which properties need one.
Use the maximum cost per run option when you start the Actor to cap spending. If the limit is reached, the Actor stops before checking further locations (they are not looked up or charged) and says so in the status message.
Use via API & MCP (AI agents)
Apify API (HTTP). Run the Actor and get the rows in one call:
curl -X POST "https://api.apify.com/v2/acts/japan-open-data~us-flood-zone-lookup/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"locations": ["25.7900,-80.1300", "1600 Pennsylvania Ave NW, Washington, DC 20500"]}'
Python (apify-client):
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")listings = [{"latitude": 25.79, "longitude": -80.13, "label": "1042"},{"address": "1600 Pennsylvania Ave NW, Washington, DC 20500", "label": "1043"}]run = client.actor("japan-open-data/us-flood-zone-lookup").call(run_input={"locations": listings})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["label"], row["status"], row.get("floodZone"), row.get("inSpecialFloodHazardArea"), row.get("error"))
MCP (Claude, ChatGPT, Cursor and other AI agents). Add this Actor as a tool through the Apify MCP server (https://mcp.apify.com), for example with ?tools=japan-open-data/us-flood-zone-lookup. Only locations is required, so an agent can call it with {"locations": ["<lat>,<lon>"]} or {"locations": ["<full street address>"]}.
Recommended agent settings:
- "Is this address in a flood zone?" →
{"locations": ["<address with city, state and ZIP>"]}and readfloodZoneSummaryandinSpecialFloodHazardArea. - Prefer coordinates when you have them (more precise than address geocoding).
- Many properties → pass them all in one run (up to 1,000), each with a
label, and match rows back bylabel. - Always check
status; onnot_found/errorshow theerrorsentence and branch onreason(e.g.source_unavailable= try again later). Remind users that this is screening data, not a certified determination, and that Zone X still has flood risk. - Cost for an agent: $0.006 for a one-address question; failed lookups are free.
Summary for AI agents: input {"locations": ["lat,lon" or "full US address"]} (max 1,000). Output: one flat row per location with status (ok / not_found / error), floodZone, inSpecialFloodHazardArea, floodRiskLevel, baseFloodElevation, firmPanel, hasLomr and a one-sentence floodZoneSummary. Screening only — not a certified flood determination.
Why this Actor
| This Actor | Certified determination (SFHDF) | |
|---|---|---|
| Data | FEMA NFHL, read live on every run | FEMA maps reviewed by a determination company |
| Output | Flat JSON: zone, SFHA, BFE, panel, LOMR, one-sentence summary | Signed form for a lender |
| Bulk | Up to 1,000 locations per run | One property per order |
| Price | $5 per 1,000 locations | About $15–30 per property |
| Legal standing | Screening only | Accepted for federally backed mortgages |
How it compares with other FEMA flood zone Actors
Facts as listed on the Apify Store on 2026-09-24 (prices and fields can change; check each Actor's page).
| This Actor | FEMA flood zone scraper (per-row) | Flood zone check (per-report) | |
|---|---|---|---|
| Last updated | September 2026 | June 2026 | August 2026 |
| Price for 1 address | $0.006 | about $0.032 (start fee $0.03) | $0.20 |
| Price for 1,000 addresses | about $5 | about $2 | $200 |
| Input | Addresses and/or coordinates, up to 1,000 per run, each with your own label | Addresses or coordinates | One US address per check |
| Output | Flat JSON, the same 30 fields on every ok row, plus a one-sentence summary | Zone, risk, nearby zones, FIRM panel | Zone, SFHA and plain-English risk |
| SFHA yes/no | Yes | Not listed | Yes |
| Base flood elevation with datum, AO depth | Yes | Not listed | Not listed |
| FIRM panel and effective date | Yes | FIRM panel | Not listed |
| LOMR (map revision) at the point | Yes | Not listed | Not listed |
| Weak or ambiguous address matches | Free not_found with a fix-it sentence, never charged as a guess | Not listed | Not listed |
FAQ
Can I use this instead of a flood zone determination for a mortgage? No. Lenders need a Standard Flood Hazard Determination Form (SFHDF) from a determination provider. Use this Actor to screen and prioritise.
Does Zone X mean the property will not flood? No. FEMA notes that a large share of flood insurance claims come from outside high-risk zones. Zone X covers moderate (shaded X, 0.2% annual chance or levee-protected) and minimal (unshaded X) hazard areas, and FEMA maps do not include every source of flooding (heavy rainfall, small streams, future conditions).
Why is the base flood elevation empty in an A or AE zone?
FEMA publishes a single "static" BFE only where it is constant over the zone polygon. Many AE zones along rivers have BFEs that vary along the stream (read from the flood profile); this Actor returns null there rather than guessing.
Why did my address come back not_found?
The address had no match in the Census Geocoder (reason: "address_not_found"), matched several different places (address_ambiguous), or the best match had a different house number or a ZIP code / city and state that your input does not contain (address_low_confidence). The Census Geocoder gives no match score, so the Actor refuses weak matches instead of charging you for the wrong property. Add the city, state and ZIP code, or pass coordinates.
What does reason: "no_flood_map" mean?
FEMA has no digital flood map at that point: the community may have only paper maps (check msc.fema.gov) or none, or the point is outside the U.S. or at sea. These rows are free.
Can I use FEMA flood data commercially? Yes. NFHL and Census Geocoder data are U.S. federal government works in the public domain. Keep the screening disclaimer when you show the results to others, and do not present them as FEMA's own determination.
How fresh is the data? Each run queries FEMA's live National Flood Hazard Layer, which FEMA updates as new maps and LOMRs become effective. Preliminary (not yet effective) maps are not included.
Data source, attribution and caveats
- Flood zones, FIRM panels, LOMRs: FEMA National Flood Hazard Layer (NFHL) web service, layers Flood Hazard Zones, FIRM Panels, LOMRs and NFHL Availability. https://www.fema.gov/flood-maps/national-flood-hazard-layer — U.S. federal government data, public domain.
- Address geocoding: U.S. Census Bureau Geocoder (Public_AR_Current benchmark). https://geocoding.geo.census.gov — public domain.
- Screening only — not a certified flood determination (SFHDF). Results are public map data for screening. They are not a flood zone determination, an elevation certificate, an insurance rating or a lending decision, and they do not show whether an individual building will flood. Zone X is not "no risk."
- Not affiliated: this Actor is an independent project and is not affiliated with, endorsed by or sponsored by FEMA, the NFIP or the U.S. Census Bureau. It does not use their logos.
- Light use of FEMA's service: one request per distinct point (four layers in one call), at most two requests in flight, a pause between requests, one retry, and repeated points in a run are answered from a cache.
- No personal data: the Actor returns map attributes (zones, panel and case numbers, dates) and the address or point you provide. It does not read FEMA's Letters of Map Amendment (issued for individual properties) or any owner information.
Known limitations
- Point checks. A zone is read at one point; a parcel or building can straddle zones.
otherZonesAtPointflags points exactly on a boundary. - Address precision. Census geocoding interpolates along the street; use coordinates for boundary cases.
- Effective maps only. Preliminary and pending FIRMs are not included; paper-only communities return a free
not_foundrow (reason: "no_flood_map"). - Static BFE only. Profile-based BFEs (varying along a river) are not computed.
- FEMA availability. FEMA's service is occasionally slow or down; affected rows return a free
errorrow withreason: "source_unavailable"(the run itself still finishes) — run again later. - Screening only. Not a Standard Flood Hazard Determination Form, elevation certificate or insurance rating. Zone X is not "no risk."
- 1,000 locations per run. Split larger lists into several runs (or several API calls in parallel).
Troubleshooting
| Symptom | Cause | What to do |
|---|---|---|
not_found, reason: "address_low_confidence" | The address has no ZIP code, or no city and state, or the best match has a different house number | Add city, state and ZIP code, or pass "latitude,longitude" |
not_found, reason: "address_ambiguous" | The address matches several places far apart (e.g. "100 Main St, Springfield") | Add the ZIP code, or pass coordinates |
not_found, reason: "no_flood_map" | The community has only paper maps or none, or the point is outside the U.S. / at sea | Check msc.fema.gov for paper maps. Row is free |
error, reason: "source_unavailable" | FEMA or the Census Geocoder did not answer | Run again later. Row is free, the run still succeeds |
error, reason: "outside_us" or invalid_input | Coordinates outside the U.S., swapped latitude/longitude, or text that is neither | Use "latitude,longitude" in decimal degrees (latitude first, e.g. "25.79,-80.13") |
| Zone differs from a map you saw | Address points are placed along the street, not on the rooftop; or a LOMR / new map took effect | Pass rooftop coordinates; check hasLomr and firmPanelEffectiveDate |
baseFloodElevation is null in an AE zone | FEMA publishes a varying (profile) BFE there, not a single value | Read the flood profile in the FIRM / Flood Insurance Study |
| Run stopped early | Your maximum cost per run was reached | Raise the limit; unchecked locations were not charged |
More from Japan Open Data
- UK Visa Sponsor Register Tracker (Daily Changes) — new, removed and downgraded UK visa sponsor licences from the official Home Office register, or check whether a company can sponsor workers.
- UK Flood Risk Lookup by Postcode (England) — the English sister: Environment Agency flood zone, recorded flood extents and flood defences for any postcode or coordinates in England.
- France Property Risk Lookup by Address (Georisques) — the French sister: official Géorisques risks for any French address or coordinates: flood, clay shrink-swell, seismic zone, radon, past natural-disaster declarations and nearby industrial sites.
- US Hail History by Location (NOAA NEXRAD Radar) — every hail day near any U.S. latitude/longitude with max estimated hail size.
- US Storm Reports API: Hail, Wind & Tornado (NWS) — U.S. hail, wind, tornado and flood reports from official NWS Local Storm Reports.
- England Listed Building & Conservation Area Check — official listed buildings, scheduled monuments, conservation areas and Article 4 directions for any postcode or coordinates in England, one row per location.
- UK NHS Organisation Lookup (Official ODS Codes) — the official NHS ODS register by postcode, type or code: GP practices, pharmacies, dentists, NHS trusts and care homes.
- UK Waste Carrier Licence Check (Environment Agency) — check whether an English business is a registered waste carrier, broker or dealer.
- UK HGV Operator Licence Lookup (Official DVSA) — Great Britain's official HGV and bus / coach operator licences by company, postcode and fleet size.
- Mexico Gas Prices API by Station (Official CNE) — today's gas and diesel prices at every Mexican gas station, from the official CNE feed.
- Argentina Fuel Prices API by Station (Official) — last reported gasoline (nafta), diesel and CNG prices at every Argentine gas station.
- TSA Checkpoint Travel Numbers (Daily, Weekly & YoY) — daily U.S. TSA airport checkpoint traveler counts.
- Japan Postal Code & Address in English — Japanese postal codes and addresses in English/romaji, kanji and kana.
Feedback
Found a wrong value or need another field (e.g. preliminary maps, coastal barrier areas, parcel polygons)? Open an issue on the Actor's Issues tab with your input and what you expected.