FEMA Flood Zone Batch Lookup - Pay Only for Hits
Pricing
from $4.00 / 1,000 answered flood zone rows
FEMA Flood Zone Batch Lookup - Pay Only for Hits
Bulk FEMA flood zone check for US addresses, a CSV, or a property scraper's dataset: zone, SFHA, base flood elevation, FIRM panel, LOMRs. Charged only for rows FEMA answered.
Pricing
from $4.00 / 1,000 answered flood zone rows
Rating
0.0
(0)
Developer
The Stack Underflow
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
8 hours ago
Last modified
Categories
Share
FEMA Flood Zone Batch Lookup: pay only for hits
Check a list of US addresses against FEMA's flood maps in one run. Paste the addresses, upload a CSV, or feed in another Actor's results, and get one row per property: flood zone, SFHA yes/no, base flood elevation, FIRM panel and date, NFIP community and Letters of Map Revision. Export it to Excel, CSV or JSON.
You are charged only for rows FEMA answered. Addresses the geocoder cannot place, ambiguous addresses, points outside the US, points with no digital FEMA map, service errors and repeated lines are listed in the output and cost nothing.
Price: $4–$8 per 1,000 answered rows ($0.008 a row on Apify's Free plan, down to $0.004 on Gold); nothing else, no compute charge. Try it on Apify's free plan: its $5 monthly credit covers about 600 answered rows.
Why not the cheapest per-row lookup? You pay per answered row, not per input line: not-found, unmapped, ambiguous and repeated addresses are free. Each row carries SFHA, floodway, base flood elevation with its datum, FIRM panel and date, and LOMRs, keeps your own columns, and links to FEMA's Map Service Center so you can verify it.
Flood zones for your Zillow, Redfin or Realtor.com scrape
Already scraping listings? Feed the results in and see which properties sit in FEMA's Special Flood Hazard Area, where lenders generally require flood insurance. You get zone, base flood elevation and FIRM panel per listing, next to the scraper's own top-level columns (zpid, URL, status...). 1,000 new listings take about 9 minutes.
- Open your scraper's finished run → Storage → copy the dataset ID.
- Paste it into Dataset from another Actor here and start.
Listing sites show a flood risk score. Lenders and insurers go by the FEMA zone, and this Actor reports that, with the panel and LOMRs to back it up.
Built for the published output format of Zillow Scraper, Zillow Detail Scraper, Zillow ZIP Search, Realtor.com Scraper, Redfin Search and Redfin Detail: their coordinates are used when present, otherwise their address fields. Any other dataset works too if it has an address, street + city + state, or latitude + longitude field. (Not affiliated with those Actors or sites.)
What you get per row
| Column | Meaning |
|---|---|
zone, zone_subtype | FEMA zone as published (A, AE, AH, AO, VE, X, D...) and its subtype (e.g. FLOODWAY, 0.2 PCT ANNUAL CHANCE) |
risk_level | high, coastal_high, moderate, minimal, undetermined, other (open water), or unmapped (no digital FEMA map: not low risk) |
sfha | Inside the Special Flood Hazard Area, where lenders generally require flood insurance |
floodway | Inside a regulatory floodway |
bfe, bfe_unit, bfe_datum | Base flood elevation with its vertical datum (NAVD88, NGVD29). Empty, never 0, where the zone carries none (along rivers FEMA publishes BFEs as separate lines: check the map) |
depth, depth_unit | Flood depth in AO zones |
firm_id, firm_panel, panel_effective_date | The FIRM study and panel that answered, and when it took effect |
community_id, community_name | The NFIP community |
lomr_cases, lomr_effective_date | Letters of Map Revision in effect at the point |
on_zone_boundary, other_zones | The point touches more than one zone; the higher-risk zone is reported |
matched_address, lat, lon | Where the Census geocoder placed the address: check this against your input |
summary | One plain-English sentence, ready for a report |
msc_link | FEMA Map Service Center search for the point |
status, charged, error, candidates | ok / unmapped / not_found / ambiguous / invalid / error / skipped_limit; for an ambiguous address, the places it could be |
id, source_row | Your own id column, and your original columns (the first 40 plain-value columns), copied through |
fema_dataset_version, retrieved_at | Which FEMA panel answered, and when it was read |
Rows come back in your input order. The Flood zones view of the dataset shows the key columns; export the full dataset for everything.
Input
Use any of these, or several at once (up to 50,000 rows per run):
- Addresses or coordinates: one per line, a US street address with city and
state (
1700 Convention Center Dr, Miami Beach, FL 33139) orlatitude, longitude(39.059, -75.399). - CSV file: upload one or give its URL. It needs a header row and either an
addresscolumn (alsofull_address,property_address), orstreet+city+state(+zip), orlat+lon. Name the column in Address column if it is called something else. Anaddresscolumn that holds only the street line is combined with thecity,stateandzipcolumns, and ZIP codes that lost their leading zero in Excel (2134) are restored (02134). When a row has usablelatandlon, those win over the address. Your columns, including your loan or property id, are copied into the output. Comma, semicolon and tab separated files work; save Excel workbooks as CSV first. - Dataset from another Actor: run straight on a property scraper's results
(see above): the
address/listingAddressobjects and the coordinates of the scrapers listed there are read, plus flatlatitude/longitudefields.
Example CSV:
loan_id,addressL-1001,"1700 Convention Center Dr, Miami Beach, FL 33139"L-1002,"411 Legislative Ave, Dover, DE 19901"
Pricing
One flood-zone-row event per answered row: $0.008 (Free plan), $0.006
(Bronze), $0.005 (Silver), $0.004 (Gold and above). Nothing else is charged:
- not found, unmapped, ambiguous, invalid or failed rows: free;
- the same address twice in one run (ignoring case, spacing and commas): answered twice, charged once;
- your maximum charge per run is respected: when it is reached the run stops
cleanly and the remaining rows are listed as
skipped_limit, uncharged. - rows are saved before they are charged, so you never pay for a row you did not receive.
How it works
Addresses are placed with the U.S. Census Bureau geocoder, then the zone is
read live from FEMA's National Flood Hazard Layer at that point, so the
answer is FEMA's current effective map at the time it was read; answers are
reused for up to 30 days, and retrieved_at says when each was read.
Coverage and limits
- Wherever FEMA has a digital flood map. Areas with only paper maps, or none,
come back as
unmapped: that is not low risk. - US addresses only (states, DC and territories the Census geocoder covers).
New-build and rural addresses the Census geocoder does not know come back
not_found, uncharged; givelat, lonfor those. - An address is placed at an interpolated street position, not the building
itself. Large parcels can straddle zones:
on_zone_boundaryflags the cases where the point itself touches more than one.
Important: what a flood answer is, and is not
Informational screening only. It is not an official FEMA flood zone determination (Standard Flood Hazard Determination Form, FEMA Form 086-0-32), not an elevation certificate, and not insurance or lending advice. Maps change through revisions. Zone X does not mean no flood risk. Verify at msc.fema.gov. Data is provided as is, without warranty.
FAQ
Is the data free to use? It is US federal government data (17 U.S.C. §105). You pay for the hosted lookup. Keep the FEMA attribution when you publish results.
How fast is it? About 2 new addresses per second, measured: FEMA's map service is queried at a polite rate. 10,000 new addresses take about 90 minutes; addresses looked up in the last 30 days come back much faster. The default run timeout (12 hours) covers the full 50,000 rows.
One property at a time, from an AI agent? Use the US Flood Zone & Property Risk MCP: the same lookup, plus disaster, storm and earthquake history and demographics.
What if a row looks wrong? Open an issue on the Issues tab with the
input line and the matched_address.
Notices
Flood hazard data: FEMA National Flood Hazard Layer, provided as is and not endorsed by FEMA. The Federal Government or FEMA cannot vouch for the data or analyses derived from these data after the data have been retrieved from the Agency's website(s).
Geocoding: U.S. Census Bureau Geocoder. This product uses the Census Bureau Data API but is not endorsed or certified by the Census Bureau.