← Guides

How-to

How to run Flood Zone Property Owner Leads & FEMA Flood Map Lookup

Step-by-step: the exact input, what each field does, and the rows that come back from FEMA NFHL + state and county assessor rolls.

You sell flood insurance, survey elevation certificates or lift houses, and you want the owners of the properties in a county’s flood zone. FEMA’s Flood Map Service Center answers one address at a time and never names an owner; the county assessor names the owner and knows nothing about flood zones. Doing the join by hand means downloading FEMA’s flood layer and the county’s parcel file and overlaying them in GIS software. This actor does that overlay for 20 states and returns one row per property, owner and mailing address included.

What you’ll need

Nothing but an Apify account. The actor talks to FEMA NFHL + state and county assessor rolls directly.

No API key and no proxy. FEMA’s map services, OpenFEMA’s Community Status Book, the Census geocoder and the 24 assessor rolls behind the export are all public, keyless services, and the proxy setting is off by default.

Step 1 — Open the actor

Open Flood Zone Property Owner Leads & FEMA Flood Map Lookup on the Apify Store and press Try for free. The actor’s own page on this site lists its live health and pricing.

The Flood Zone Property Owner Leads & FEMA Flood Map Lookup listing on the Apify Store
The listing on the Apify Store. Pricing and the nightly health record are both public.

Step 2 — Fill in the input

The input form for Flood Zone Property Owner Leads & FEMA Flood Map Lookup in the Apify Console
The input form, as it appears in the Apify Console.
FieldTypeRequiredWhat it does
modestringnoExport: every property in a FEMA flood zone (or about to enter or leave one) in the areas you list, with the owner’s name and mailing address. Lookup: the FEMA flood zone,… (default export)
areasarraynoOne per line: a state (‘FL’), a county (‘Pinellas, FL’ or ‘FL/Pinellas’), a city (‘Kure Beach, NC’) or a 5-digit ZIP (‘33139’). Run with no areas to get the coverage list for free. (default [])
areastringnoOne area, for saved tasks and API calls that send a single value. Use Areas above for several.
addressesarraynoOne US street address per line, with city and state (a ZIP helps): ‘1001 Ocean Dr, Miami Beach, FL 33139’. Works anywhere FEMA has a digital flood map; the owner columns are… (default [])
addressstringnoOne address, for saved tasks and API calls that send a single value.
sfhaOnlybooleannoOn: only properties inside FEMA’s Special Flood Hazard Area (the 1%-annual-chance zones A and V, where a federally backed mortgage requires flood insurance). Off: every… (default True)
zonesarraynoOnly these zones on the effective map. One per line: A, AE, AH, AO, AR, A99, V, VE (coastal), X_SHADED (0.2% annual chance), X_LEVEE (reduced risk behind a levee), X (minimal… (default [])
mapChangestringnoProperties whose zone changes on a new FEMA map. ‘Entering’ = outside the SFHA today and inside it on a pending (adopted, with an effective date) or preliminary map; once the… (default all)
excludeLomabooleannoOn: a property with a completed LOMA that removed its structure from the flood zone is left out (its owner does not need flood insurance under the mortgage rule). Off: kept,… (default True)
preFirmOnlybooleannoOnly buildings built before the community’s first flood map (or before 1975). Needs a roll that publishes year built.
ownerTypesarraynoOne per line: individual, company, trust, government. Empty: individual, company and trust (government land is left out of a lead list unless you ask for it). (default [])
absenteearraynoOnly these owner-occupancy tiers, from the mailing address on the roll. One per line: out_of_state, out_of_city, same_city_diff_address, owner_occupied, unknown. Empty: any. (default [])
propertyUsearraynoWords matched against the roll’s land-use description or code, one per line: ‘single family’, ‘condominium’, ‘commercial’, ‘vacant’. Each county words it differently. Empty: any. (default [])
zipCodesarraynoOnly properties in these 5-digit ZIP codes (where the roll publishes the property ZIP). (default [])
minValueintegernoMarket (or assessed) value on the roll.
maxValueintegernoMarket (or assessed) value on the roll.
builtAfterintegernoYear built on the roll; properties with no year are left out when set.
builtBeforeintegernoYear built on the roll; properties with no year are left out when set.
maxResultsintegernoCap on owner rows per area line (not per run). 0 = no cap. A whole coastal state can hold hundreds of thousands of flood-zone parcels; start with a county. (default 1000)
listCoveragebooleannoReturn the states and counties the export covers, and nothing else.

Two fields decide what comes back. areas takes a state, a county, a city or a ZIP, but the export only reaches places with an owner roll it can map: every county in Arkansas, Connecticut, Florida, Massachusetts, Minnesota, Montana, New Jersey, New York, North Carolina and Wisconsin, plus 14 large counties elsewhere. Run it once with nothing filled in and it returns that list for free. The second is mapChange. Left at its default you get today’s flood zone (with sfhaOnly on, only the properties inside it). Set it to entering and you get properties outside the zone today that a pending or preliminary FEMA map moves into it, which is a different and much shorter list; a county with no new map returns none.

A working input:

{
  "areas": [
    "Pinellas, FL"
  ],
  "absentee": [
    "out_of_state"
  ],
  "maxResults": 100
}

Step 3 — Run it

Press Start. Rows are pushed to the dataset as they’re found, so the run log fills in as it works.

The input above returned 100 out-of-state owners in Pinellas County in 66 seconds when we ran it on 2026-11-03, and the first run on Apify (3 rows in New Hanover County, NC) finished in 18 seconds. The log reports progress every few rows of map tiles, and says how many tiles had no flood polygon for your request. An empty result with no notice row usually means the filters were too narrow, for example builtBefore in a county whose roll publishes no year built. A source that refuses shows up as a free blocked notice row, never as silence.

Step 4 — Read the output

Each run returns a labelled table, not raw JSON:

The output fields returned by Flood Zone Property Owner Leads & FEMA Flood Map Lookup
The output view — every field the actor returns, named and typed.

Every row looks like this — a real row from a real run:

{
  "owner_name": "ULTRA BLUE PROPERTIES LLC",
  "owner_type": "company",
  "mailing_address": "4061 SANDVIEW DR",
  "mailing_city": "MEDINA",
  "mailing_state": "OH",
  "mailing_zip": "44256",
  "absentee_tier": "out_of_state",
  "address": "1515 PINELLAS BAYWAY S # 20",
  "city": "TIERRA VERDE",
  "state": "FL",
  "zip": "33715",
  "county": "Pinellas",
  "parcel_id": "16 32 29 94825 002 0200",
  "flood_zone": "AE",
  "zone_subtype": "COASTAL FLOODPLAIN",
  "in_sfha": true,
  "base_flood_elevation_ft": 9.0,
  "vertical_datum": "NAVD88",
  "firm_panel": "12103C0286H",
  "panel_effective_date": "2021-08-24",
  "map_change": "none",
  "pending_zone": null,
  "pending_effective_date": null,
  "loma_case": null,
  "community_name": "PINELLAS COUNTY *",
  "crs_class": "2",
  "crs_sfha_discount": "40%",
  "initial_firm_date": "1971-06-18",
  "pre_firm": false,
  "property_class_desc": "Condominium",
  "year_built": 1990,
  "market_value": 323847,
  "latitude": 27.671588,
  "longitude": -82.724803
}
FieldExample valueMeaning
address1515 PINELLAS BAYWAY S # 20Property street address (the roll’s situs address in an export, the geocoder’s matched address in a lookup)
cityTIERRA VERDEProperty city as the roll or the geocoder writes it
stateFLTwo-letter state
zip33715Property ZIP code, where the roll publishes one
countyPinellasCounty name
parcel_id16 32 29 94825 002 0200The assessor’s parcel number
latitude27.671588The point the flood zone was read at (the parcel’s centroid, or the geocoded address)
longitude-82.724803The point the flood zone was read at

Most people come for owner_name and the mailing columns next to flood_zone. Watch two things. The zone is read at the parcel’s centroid, so a big lot that straddles a zone line is labelled by its middle, and it is not an official flood determination. And the roll decides what else is filled: in the Pinellas run 92 of 100 rows had a year built (and so a pre_firm answer), while New Hanover, NC publishes neither year built nor property ZIP on any parcel.

Step 5 — Export it

Open the Dataset tab and export to CSV, JSON, or Excel — or pull the same rows from the API, which is what you want if this is going to run on a schedule.

What it costs

$0.01 per exported property with an owner, and $0.004 per address answered in lookup mode. Notice rows (coverage, no match, a source that did not answer) are free. The 100-row Pinellas example costs $1.00; the default cap of 1,000 rows costs $10.00, so set maxResults to the list you want.

Where the data comes from

This reads FEMA NFHL + state and county assessor rolls directly. The target is Keyless ArcGIS REST: FEMA’s National Flood Hazard Layer plus its pending and preliminary map services (GET only; a form POST answers an empty 202), joined locally by point-in-polygon to assessor rolls on ArcGIS and Carto; OpenFEMA for the NFIP Community Status Book; the Census geocoder for lookups. Every night a canary runs this actor against that live source and diffs the result against a frozen fixture — what “verified” means.

FEMA’s National Flood Hazard Layer is a map service built to draw a map, not to hand out lists: a coastal county’s flood zone is hundreds of polygons with thousands of vertices each, and a county whose whole map is being redrawn (Miami-Dade, whose pending map takes effect 2027-02-19) has twice that to read. The assessor rolls are a second problem, each county publishing its own columns.

See it used

Pinellas County, FL flood zone property owners walks through building a mailing list of one coastal county’s flood-zone owners.

If you want every property in a county with values and sale history, flood zone or not, use US County Property Records Export instead.

Last updated 2026-11-03