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
1
Total users
0
Monthly active users
3 days ago
Last modified
Categories
Features
Share
Get the official FEMA flood zone for any U.S. address or latitude/longitude, in bulk: zone, SFHA yes/no, base flood elevation, FIRM panel and LOMR — plus optional storm surge (hurricane category 1–5, NOAA SLOSH). Source: FEMA's National Flood Hazard Layer (NFHL), queried on every run, with addresses geocoded by the U.S. Census Bureau; storm surge from NOAA National Hurricane Center risk maps. Official public data, no API key. Output and price: one flat JSON row per location (or CSV / Excel), $5 per 1,000 locations checked, storm surge columns included at no extra cost. Unmatched addresses and errors are free.
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. - Storm surge by hurricane category (optional): set
includeStormSurge: trueto add NOAA's worst-case storm surge flooding band for Category 1 to 5 hurricanes (under 3 ft, over 3 / 6 / 9 ft, leveed area) and the first category that floods the point — U.S. East and Gulf Coasts, Puerto Rico, the U.S. Virgin Islands and Hawaii. See Storm surge. - 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 (storm surge adds one NOAA request per point, about 1–2 seconds per location).
- 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. |
includeStormSurge | boolean | false | Add the NOAA storm surge columns (hurricane category 1–5) to each ok row. Same price. When off, NOAA is not contacted and the rows contain only the FEMA fields. |
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) |
stormSurgeStatus, stormSurgeCat1–stormSurgeCat5, stormSurgeMaxBand, stormSurgeFirstFloodedCategory, stormSurgeScenario, stormSurgeRegion, stormSurgeSummary, stormSurgeSourceUrl | Only with includeStormSurge: true, on ok rows: NOAA storm surge band per hurricane category, the deepest band, the first flooded category, the scenario, the NOAA map region, one sentence and the exact NOAA request (see Storm surge) |
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 |
Storm surge (hurricane category 1-5)
FEMA flood zones show the 1% annual chance flood. They do not say how deep a hurricane's storm surge could get. Set "includeStormSurge": true and every ok row also gets NOAA's storm surge risk for hurricanes of Category 1 to 5, read from the National Hurricane Center's official Storm Surge Risk Maps (SLOSH model). Same price per row, one extra request per point.
{ "locations": ["25.7900,-80.1300", "40.7440,-74.0324", "29.9511,-90.0715"], "includeStormSurge": true }
Real storm surge columns for the default point (Miami Beach, FL; NOAA read on 2026-11-10). They sit after floodZoneSummary in the row, and NOAA is added to attribution:
{"stormSurgeStatus": "ok","stormSurgeCat1": "none","stormSurgeCat2": "none","stormSurgeCat3": "under_3ft","stormSurgeCat4": "over_3ft","stormSurgeCat5": "over_3ft","stormSurgeMaxBand": "over_3ft","stormSurgeFirstFloodedCategory": 3,"stormSurgeScenario": "MOM, high tide, worst case","stormSurgeRegion": "U.S. East and Gulf Coast","stormSurgeSummary": "NOAA storm surge (worst case, high tide): flooded from a Category 3 hurricane; Category 3 less than 3 ft, Category 4 greater than 3 ft, Category 5 greater than 3 ft above ground.","stormSurgeSourceUrl": "https://mapservices.weather.noaa.gov/tropical/rest/services/tropical/StormSurgeRisk/MapServer/identify?..."}
More points checked on 2026-11-10:
| Point | Cat 1 | Cat 2 | Cat 3 | Cat 4 | Cat 5 | stormSurgeStatus |
|---|---|---|---|---|---|---|
| Galveston, TX (29.3013,-94.7977) | over_3ft | over_6ft | over_9ft | over_9ft | over_9ft | ok |
| Tampa downtown, FL (27.9506,-82.4572) | none | none | under_3ft | over_6ft | over_9ft | ok |
| Hoboken, NJ (40.7440,-74.0324) | over_6ft | over_9ft | over_9ft | over_9ft | not_modeled | not_modeled |
| New Orleans, LA (29.9511,-90.0715) | leveed_area | leveed_area | leveed_area | leveed_area | leveed_area | leveed_area |
| Washington, DC (White House) | none | none | none | none | none | ok |
| Waikiki, HI (21.2793,-157.8292) | under_3ft | over_3ft | over_3ft | over_3ft | not_modeled | not_modeled |
Legend (stormSurgeCat1 … stormSurgeCat5, and stormSurgeMaxBand):
| Value | Meaning |
|---|---|
none | No storm surge flooding mapped at the point for that category |
under_3ft | Less than 3 feet of water above ground |
over_3ft | Greater than 3 feet above ground |
over_6ft | Greater than 6 feet above ground |
over_9ft | Greater than 9 feet above ground |
leveed_area | Inside a leveed area, which NOAA does not model (depth depends on the levees) |
not_modeled | NOAA has no value for that category here: a gap in NOAA's map above a weaker category that floods (seen for Category 5 in Hoboken and parts of Miami Beach), or a category NOAA does not publish for the region (Hawaii has Categories 1–4 only) |
stormSurgeStatus is ok (all five categories answered), not_modeled (at least one category is not_modeled), leveed_area, not_covered (outside the regions below; the category columns are null and no NOAA request is sent) or source_unavailable (NOAA did not answer, or NOAA was too slow to finish before the run's time limit; the row is still ok with the FEMA fields and the category columns are null — run that location again later). stormSurgeFirstFloodedCategory is the weakest hurricane category that floods the point (null if none).
What "MOM, high tide, worst case" means. NOAA runs its SLOSH storm surge model for thousands of hypothetical hurricanes of each category (different tracks, speeds and landfall points) and keeps, for every spot, the highest water from any of them — the Maximum of MEOWs (MOM) — assuming the storm arrives at high tide. It is a worst-case planning map used for hurricane evacuation zones, not the forecast for a real storm and not an annual probability. A real hurricane usually floods much less than its category's MOM.
Coverage: U.S. East and Gulf Coasts (Texas to Maine, Category 1–5), Puerto Rico and the U.S. Virgin Islands (1–5) and Hawaii (1–4). The West Coast, Alaska, Guam and American Samoa return not_covered.
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, with or without the storm surge columns. 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"))# with storm surge (hurricane category 1-5)run = client.actor("japan-open-data/us-flood-zone-lookup").call(run_input={"locations": listings, "includeStormSurge": True})for row in client.dataset(run["defaultDatasetId"]).iterate_items():print(row["label"], row.get("floodZone"), row.get("stormSurgeFirstFloodedCategory"), row.get("stormSurgeCat3"))
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. - "How bad could a hurricane storm surge be here?" → add
"includeStormSurge": trueand readstormSurgeSummary,stormSurgeFirstFloodedCategoryandstormSurgeCat1–stormSurgeCat5. Say it is NOAA's worst-case planning scenario, and checkstormSurgeStatus(leveed_area,not_modeled,not_covered,source_unavailable) before stating a depth. - 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; with "includeStormSurge": true also stormSurgeCat1–stormSurgeCat5 (NOAA worst-case surge band per hurricane category) and stormSurgeSummary. 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.
Can I use the storm surge columns for insurance, lending or a purchase decision? Not as the deciding document. NOAA's storm surge risk maps are a worst-case planning tool (the basis of hurricane evacuation zones), not a flood zone determination, an insurance rating, an elevation certificate or a lending decision, and they say nothing about a specific building's floor height. Use them to screen and to ask better questions; a lender still needs an SFHDF and an insurer its own rating.
Where does the storm surge data have gaps?
Behind levees NOAA does not model surge (leveed_area, e.g. most of New Orleans). In some places NOAA's Category 5 map has no value although Category 4 floods (Hoboken, NJ and parts of Miami Beach, FL), and Hawaii has Categories 1–4 only: these are not_modeled, never reported as "no surge". The West Coast, Alaska, Guam and American Samoa are not_covered. Inland points read none. NOAA updates the maps about once a year.
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.
- Storm surge (optional): NOAA National Hurricane Center (NHC) Storm Surge Risk Maps (SLOSH MOM, high tide), NOAA/NWS map service https://mapservices.weather.noaa.gov/tropical/rest/services/tropical/StormSurgeRisk/MapServer — U.S. government work, public domain (https://www.weather.gov/disclaimer). The Actor maps NOAA's pixel values to the legend itself; the result is not an official NOAA product or forecast.
- 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, the U.S. Census Bureau, NOAA or the National Weather Service. 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."
- Storm surge is a worst-case scenario (NOAA MOM, high tide), with gaps behind levees and in a few Category 5 tiles; NOAA outages give
stormSurgeStatus: "source_unavailable"on otherwiseokrows. A 1,000-location run with storm surge takes about 20–30 minutes. - 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 |
stormSurgeStatus: "source_unavailable" | NOAA's storm surge service did not answer, or was too slow to finish before the run's time limit (the FEMA fields are fine) | Run those locations again later |
stormSurgeStatus: "not_covered" | The point is outside the NOAA storm surge maps used here (West Coast, Alaska, Guam, American Samoa) | No storm surge data for that area |
| Run stopped early | Your maximum cost per run was reached | Raise the limit; unchecked locations were not charged |
More from Japan Open Data
- NSW Rent Prices by Postcode (Official Bond Data) — median weekly rents for any New South Wales postcode or suburb by dwelling type and bedrooms, from NSW Fair Trading's official rental bond data, with quartiles and year-over-year change.
- Korea E-commerce Company Leads (KFTC Register) — new Korean e-commerce companies from the official KFTC online seller register (통신판매업), in English with business registration number and store platform.
- Poland Building Permits API: Construction Leads — new Polish building permits (pozwolenia na budowę) issued to companies and public bodies, with investor, building category and site, from the official GUNB register.
- Taiwan Real Estate Sold Prices API in English — official Taiwan actual-price-registration sales (buildings, land, parking) by city and district, translated into English with price per ping and per m².
- France Building Permits API: Construction Leads — official French building permits (Sitadel) filed by companies, by department, commune or date, with SIREN, project type and floor areas.
- UK Importers & Exporters by Product (HMRC Data) — UK companies that imported or exported a product each month, by HS code or keyword, from official HMRC trade data, with new traders flagged for lead lists.
- 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.
- Japan Hazard Map Lookup: Flood, Tsunami, Landslide — official Japanese hazard-map zones (river flood depth, storm surge, tsunami, landslide) for up to 1,000 coordinates per run, from GSI open data, in English.
- 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.
- England Protected Site Check: SSSI, AONB & Green Belt — SSSI, National Landscape (AONB), National Park, Green Belt, SAC/SPA and Ramsar checks for any English postcode or coordinates, one row per site, from official Natural England and DLUHC data.
- 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.