FEMA Flood Zone Batch Lookup — No Login, $10/1k avatar

FEMA Flood Zone Batch Lookup — No Login, $10/1k

Pricing

from $10.00 / 1,000 flood zone lookups

Go to Apify Store
FEMA Flood Zone Batch Lookup — No Login, $10/1k

FEMA Flood Zone Batch Lookup — No Login, $10/1k

Give it a list of US addresses or coordinates and get each one's FEMA flood zone, SFHA flag, base flood elevation, FIRM panel and effective date, LOMR and a risk label. Geocoding included. No login or API key. MCP-ready. $10 per 1,000 lookups.

Pricing

from $10.00 / 1,000 flood zone lookups

Rating

0.0

(0)

Developer

Khrystyna Skotte

Khrystyna Skotte

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

FEMA Flood Zone Batch Lookup

Give it a list of US addresses (or latitude/longitude points) and get back, for every one, the official FEMA flood zone, whether it sits in a Special Flood Hazard Area, the base flood elevation, the FIRM panel and its effective date, a plain-English risk label and a link to the FEMA Map Service Center. One row per input, in order, whether or not the address could be located. No API key, no browser, thousands of addresses per run.

Built for flood insurance quoting, mortgage flood-determination pre-screens, real-estate due diligence, portfolio risk reviews and property data enrichment.

What you get per address

FieldExampleMeaning
inputAddress4802 Braesvalley Dr, Houston, TX 77096What you sent
idnola-aeYour id, or the 1-based position in the list
normalizedAddress4802 BRAESVALLEY DR, HOUSTON, TX 77096USPS-style cleaned address
matchedAddress4802 BRAESVALLEY DR, HOUSTON, TX, 77096Address the geocoder matched
latitude / longitude29.6827 / -95.4610Point used for the lookup
geocodercensus / nominatim / input / noneWhich geocoder located it (input = you supplied coordinates)
geocodeConfidence11 exact Census match, 0.7 non-exact Census, 0.5 Nominatim, 0 not found
floodZoneAEFEMA flood zone code
zoneSubtype0.2 PCT ANNUAL CHANCE FLOOD HAZARDZone qualifier (shaded X, floodway, levee, etc.)
inSFHAtrueInside a Special Flood Hazard Area (mandatory flood insurance for federally backed mortgages)
staticBFE-3Static base flood elevation in feet, when the zone carries one
depth2Flood depth in feet for AO zones
verticalDatumNAVD88Datum of the BFE
dfirmId48201CFEMA study (county) identifier
firmPanel48201C0865MFlood Insurance Rate Map panel number
panelEffectiveDate2019-05-02Panel effective date
lomrCaseNumber / lomrEffectiveDate19-04-6434PMost recent Letter of Map Revision covering the point (only with includeLomr)
riskLabelHighHigh, Moderate, Minimal, Undetermined, Open Water or Unmapped
femaMapUrlhttps://msc.fema.gov/portal/search?AddressQuery=…FEMA Map Service Center search for this address
lookupStatusokok, geocode_failed, not_mapped (no NFHL coverage at this point) or lookup_failed (FEMA service error after retries)
processedAtISO timestampWhen the run happened

What the zones mean

ZoneRisk labelMeaning
A, AE, AH, AO, AR, A99High1% annual chance (100-year) floodplain. AE has base flood elevations, AH/AO are shallow flooding, AR/A99 relate to levee restoration or construction. Flood insurance is mandatory for federally backed mortgages.
V, VEHighCoastal 1% annual chance floodplain with wave action. Mandatory insurance, stricter building standards.
X with subtype 0.2 PCT ANNUAL CHANCE FLOOD HAZARD (shaded X, formerly B)Moderate0.2% annual chance (500-year) floodplain, or 1% floodplain with less than 1 ft depth. Insurance optional but recommended.
X with subtype AREA WITH REDUCED FLOOD RISK DUE TO LEVEEModerateProtected by an accredited levee; residual risk if the levee fails.
X with subtype AREA OF MINIMAL FLOOD HAZARD (unshaded X, formerly C)MinimalOutside the 500-year floodplain.
DUndeterminedFlood hazards possible but not studied.
OPEN WATEROpen WaterThe point falls on a lake, river or the sea.
No polygonUnmappedOutside the National Flood Hazard Layer (some rural counties, tribal lands, most of Alaska).

inSFHA comes straight from FEMA's SFHA_TF flag, not from the label, so it is the field to use for mandatory-purchase decisions.

Input

FieldDefaultNotes
addresses5 sample propertiesArray of strings ("123 Main St, Austin, TX 78701"), address objects ({"id", "street", "city", "state", "zip"}) or coordinate objects ({"id", "latitude", "longitude"}). Objects may also carry {"id", "address"} for a one-line string with your own id.
includeFirmPaneltrueAdd FIRM panel number and effective date
includeLomrfalseAdd the latest Letter of Map Revision covering the point
fallbackToNominatimtrueTry OpenStreetMap when the Census Geocoder cannot match an address (1 request/second)
maxItems10Process at most this many items
{
"addresses": [
"4802 Braesvalley Dr, Houston, TX 77096",
{ "id": "nola-ae", "street": "4900 Paris Ave", "city": "New Orleans", "state": "LA", "zip": "70122" },
{ "id": "denver-point", "latitude": 39.7392, "longitude": -104.9903 }
],
"includeFirmPanel": true,
"maxItems": 5000
}

Sample output

{
"inputAddress": "4900 Paris Ave, New Orleans, LA 70122",
"id": "nola-ae",
"normalizedAddress": "4900 PARIS AVE, NEW ORLEANS, LA 70122",
"matchedAddress": "4900 PARIS AVE, NEW ORLEANS, LA, 70122",
"latitude": 30.0074667765,
"longitude": -90.074569988723,
"geocoder": "census",
"geocodeConfidence": 1,
"floodZone": "AE",
"zoneSubtype": null,
"inSFHA": true,
"staticBFE": -3,
"depth": null,
"verticalDatum": null,
"dfirmId": "22071C",
"firmPanel": "22071C0114F",
"panelEffectiveDate": "2016-09-30",
"lomrCaseNumber": null,
"lomrEffectiveDate": null,
"riskLabel": "High",
"femaMapUrl": "https://msc.fema.gov/portal/search?AddressQuery=4900%20PARIS%20AVE%2C%20NEW%20ORLEANS%2C%20LA%2C%2070122",
"lookupStatus": "ok",
"processedAt": "2026-09-28T18:00:00.000Z"
}

How it works

  1. Normalise every address to USPS style (suffix and directional abbreviations, state codes, ZIP+4 split).
  2. Geocode with the US Census Bureau batch geocoder (up to 10,000 addresses per request), retry non-matches on the Census one-line endpoint with and without the unit number, then optionally fall back to OpenStreetMap Nominatim. Coordinate inputs skip this step.
  3. Query FEMA's National Flood Hazard Layer (NFHL MapServer, layer 28 Flood Hazard Zones) with each point, 5 requests in flight. If the point sits on a boundary between two zones, the SFHA one is reported so a mandatory-purchase zone is never missed.
  4. Optionally query the FIRM Panels (layer 3) and LOMRs (layer 1) layers, matched to the same FEMA study as the zone polygon, because neighbouring counties' panel grids overlap.

Throughput is roughly 5–10 lookups per second for geocodable addresses; the Nominatim fallback runs at 1 address per second.

Sources

  • FEMA National Flood Hazard Layer, hazards.fema.gov/arcgis/rest/services/public/NFHL/MapServer (the same data behind the FEMA Flood Map Service Center). Zones, BFEs, panels and LOMRs are the currently effective data at run time.
  • US Census Bureau Geocoder, Public_AR_Current benchmark.
  • OpenStreetMap Nominatim (optional fallback).

Limits and caveats

  • This is a point-in-polygon lookup at the geocoded address point. It is not a legal flood zone determination (Standard Flood Hazard Determination Form) and does not replace an elevation certificate. Large parcels can straddle zones; the row reports the zone at the rooftop point the geocoder returned.
  • staticBFE is only populated where FEMA stores a static elevation on the zone polygon. Many AE zones carry BFEs on separate BFE lines or cross-sections instead, so a null BFE does not mean there is none.
  • Geocoding accuracy follows the Census geocoder (street-segment interpolation). geocodeConfidence below 1 means the point may be a few tens of metres off; treat boundary cases with care.
  • Not-yet-effective preliminary maps are not included.
  • FEMA's service occasionally returns errors under load; each query is retried four times and the row is marked lookup_failed if it still fails, so you can re-run just those.

Pricing

  • $0.005 per run start
  • $0.01 per input item (one output row each, charged whether or not the address could be located)

1,000 addresses cost $10.05.