I want to be able to send an address anywhere in the USA and get back flood risk data.

FEMA houses flood plain maps. If you give them an address, you just get a map, and you have to look at it to find the location's flood risk by hand.

You can do slightly better with inputting a single address on FloodSmart.gov, but the result is a page that does not render with the address in the link.

FEMA has some APIs, but I an having a hard time seeing one related to flood.

  • I've run into problems with flood plain maps -- there are a lot of websites that'll overlay them with property boundaries, but they're not always well-aligned. My town tried blocking our county's attempts to tear down a historical building, and one of our arguments was that the property was in the flood plain, and they should get permission to rebuild before they destroyed a historic site and then couldn't actually use the property. The state rebutted our flood plain argument because of the mis-alignment, but we succeed for other reasons.
    – Joe
    Oct 17 '14 at 11:19
  • Will simple elevation data do?
    – user4293
    Mar 29 '18 at 21:08
  • It is amazing that there is no open APIs I can find. Looks like National Flood Data has an arrangement with FEMA so they can sell the data. I guess we need to FOIA the data. Any know of an resources for this data?
    – Tim Brown
    Nov 20 '18 at 22:28

You can also emulate/reverse engineer the form at https://www.floodsmart.gov/floodsmart/pages/landing_pages/landing0000_1.jsp using the following curl command. This isn't an API, per se, but it does get you the information you're asking for programatically.

curl 'https://www.floodsmart.gov/floodsmart/oneStepFloodRiskAddressSearch.action' -H 'Content-Type: application/x-www-form-urlencoded' --data 'nav_address=2100+Clarendon+Blvd&nav_city=Arlington&nav_state=VA&nav_zipCode=22201&nav_residential=Y&x=23&y=10'

You'll then want to look for <div class="hide-span flood-risk-profile-header clearfix"> in the resulting HTML.

You can do this from your browser using a tool called hurl.it and following the screenshot below.

enter image description here

  • 1
    nice example of using curl to work around an interactive form Oct 17 '14 at 1:59
  • 3
    You'd be surprised by the number of CGIs that accept both GET and POST. You don't even need curl for this; just take the URL, add a question mark, and then the POST data : floodsmart.gov/floodsmart/…
    – Joe
    Oct 17 '14 at 11:21
  • Skram, thanks for this awesome suggestion. @Joe, thanks for your version that is closer to where I am with my abilities. I really wished FEMA would have dumped the risk profile as text, though. I am using Power Query and it can't extract the alt text for the image. But, the table with the flood rates is pretty useful. Oct 17 '14 at 16:52
  • @PaulMayfield - I'm not familiar with PowerQuery but is it doing the web scraping for you? You might see if there is a way to look at the source (where you could extract the classification from the image tag) as opposed to only looking at rendered text on the page. Oct 19 '14 at 14:04
  • Power Query is an add-in for Excel that is part of Microsoft's Power BI suite of products. It lets me easily get most things into Power Pivot. But, it likes actual data sources or at least some structure like XML. So, I did look at the source to find the right tag, but it could not go into the tag and grab the label. It is still in beta, so I see how I can submit this suggested enhancement. Thanks for the help, though. I will be able to complete this with some VBA. Oct 21 '14 at 15:58

I searched through the API documentation and applicable datasets. FEMA does not have an API for looking up flood plains for an address (but lots of interesting stuff!)

The only thing I see there applicable to this question is a download of the Flood Plain Hazard Layer data in KMZ format. But when I click on it, it says its been moved or deleted.

Another dataset that could be interesting is the Historical disaster Declaration Dataset. It contains the date, county, disaster type and incident for a disaster declaration since 1964. There are a total of 31K entries. Once could reverse engineer a flood/disaster risk per county - but not for individual flood plains within a county.


  • Thanks, this is very good. You've taken me in my analysis back to the struggle between using outputs from an "official" model versus using long-term averages. Oct 17 '14 at 16:54

You could use FEMA Web Feature Service WFS, use this data for a living you don't want the flood insurance (FIRM) maps which is floodsmart you want the National Flood Hazards Layer... Using the Open standard and well known WFS service you'd have a plethora of options to choose from to implement what your taking about: https://hazards.fema.gov/femaportal/wps/portal/NFHLWMS


FEMA API: https://www.fema.gov/openfema-api-documentation

As part of the OpenFEMA initiative, FEMA provides read-only API based access to data sets (Entities). The data is exposed using a RESTful interface that uses querystring parameters to manage the query.

(text added in order to reach minimum required post size :-)


National Flood Data (I'm the product manager) offers several APIs that take either a lat/lng or address as input and return flood zone data as well as polygons in geosjon format. The service also offers a dynamic and a static map, both through Mapbox.

The documentation page is: docs.

It's the convenient, easy, reliable, up-to-date service that I was looking for myself. The service also includes digitized versions of the several hundred counties that have valid flood maps that are available from FEMA as pdf files but not as digital files.

  • pdf files are digital files
    – albert
    Mar 30 '18 at 6:30
  • 1
    paid services are not open
    – albert
    Apr 2 '18 at 21:11
  • 1
    I don't see any free-tier API access, nor any searching without login
    – philshem
    Apr 3 '18 at 7:45

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.