Check the setup
- Python 3.10 or newer
- A notebook environment such as Jupyter or Google Colab
- An internet connection
Effective digital flood-hazard zones for building address-level flood-risk lookups and site-selection screens.
From source to product signal
The National Flood Hazard Layer publishes effective Flood Hazard Zones as a queryable map service. Start with one point or a tight county envelope and request a handful of zone attributes. A Special Flood Hazard Area flag is not a flood-insurance quote, a parcel determination, or a substitute for the Map Service Center product used in official rating.
Install the packages, then run the notebook cell.
python -m pip install pandas requests
import pandas as pd
import requests
response = requests.get(
"https://hazards.fema.gov/arcgis/rest/services/public/NFHL/MapServer/28/query",
params={
"geometry": "-96.7970,32.7767",
"geometryType": "esriGeometryPoint",
"inSR": 4326,
"spatialRel": "esriSpatialRelIntersects",
"outFields": "FLD_ZONE,ZONE_SUBTY,SFHA_TF",
"returnGeometry": "false",
"resultRecordCount": 5,
"f": "json",
},
timeout=30,
)
response.raise_for_status()
zones = pd.json_normalize(response.json().get("features", []))
zones["retrieved_at_utc"] = pd.Timestamp.now(tz="UTC")
print(zones.head())Test a useful signal
Test whether a single geocoded point can power a bounded flood-risk screen.
Federal Emergency Management Agency is a government source. Last verified 2026-08-17. Temporal coverage: current effective FIRMs with ongoing LOMR updates.