Microproduct data guideintermediate

FEMA National Flood Hazard Layer

Effective digital flood-hazard zones for building address-level flood-risk lookups and site-selection screens.

At a glance

Difficulty
Intermediate — some data preparation helps
Size
Medium · ≤2 GB
Formats
JSON, GeoJSON
Access
API
API key
Not required
Provider
Federal Emergency Management Agency
Updates
Continuous

From source to product signal

Test a product idea in four steps

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.

1

Check the setup

  • Python 3.10 or newer
  • A notebook environment such as Jupyter or Google Colab
  • An internet connection
2

Access the data

  1. 1.Open the National Flood Hazard Layer page and note that Flood Hazard Zones are queryable as layer 28.
  2. 2.Query one latitude and longitude with a bounded result count and no geometry payload.
  3. 3.Record the flood zone, SFHA flag, and retrieval time before interpreting the result.
Open official source
3

Run the Python example

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())
4

Test a useful signal

Look up the effective flood zone for one address point

Test whether a single geocoded point can power a bounded flood-risk screen.

  1. 01Query Flood Hazard Zones for one point and keep FLD_ZONE and SFHA_TF.
  2. 02Label the result as SFHA or non-SFHA and note missing coverage when no feature returns.
  3. 03State that NFHL zones are not insurance quotes and that unmapped communities need a Map Service Center check.

Dataset details

Federal Emergency Management Agency is a government source. Last verified 2026-08-17. Temporal coverage: current effective FIRMs with ongoing LOMR updates.

Theme

Environment & Hazards

Domains

Natural HazardsEmergency ManagementHousing

Data types

GeospatialTabular

Tasks

Risk MappingSite SelectionSpatial Analysis

Geography

United States

Formats

JSONGeoJSON

Provider

Federal Emergency Management Agency

Data terms

U.S. Government public data / federal copyright guidance