# FEMA Disaster and Flood Claims Scraper (`parselab/fema-disaster-flood-claims-aid-scraper`) Actor

Get FEMA disaster declarations with aid totals, county disaster history, flood insurance claims with payouts and damage, claim summaries by county or year, housing assistance by ZIP code and public assistance. Export to CSV or Excel.

- **URL**: https://apify.com/parselab/fema-disaster-flood-claims-aid-scraper.md
- **Developed by:** [ParseLab](https://apify.com/parselab) (community)
- **Categories:** News, Other
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $13.13 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## FEMA Disaster and Flood Claims Scraper

Get FEMA disaster declarations, the federal aid paid for each disaster, flood insurance claims, housing assistance by ZIP code and repair money paid to local governments, in clean rows you can export to CSV or Excel. The data comes from OpenFEMA, the public data program of the Federal Emergency Management Agency, and the Actor reads the latest release on every run.

FEMA publishes dozens of separate tables. A declaration table has one row for every county of every disaster, the aid totals sit in another table, the flood insurance claims in a third. This Actor joins them and adds the figures that insurers, real estate teams, researchers and reporters normally calculate themselves: aid per county, days between the start of an incident and the declaration, declarations per county by type, the share of homes with flood insurance, how much of the damage an insurance claim paid, and claims grouped by county, ZIP code or year.

### What can you do with this FEMA data scraper?

- List every major disaster declared in Texas since 2015 with the counties, the incident type and the total federal aid.
- Find out how many disasters have been declared in your county, split into floods, hurricanes, tornadoes, fires and storms.
- See how long it has been since the last declaration and how many happened in the last 10 years.
- Check how many homes in a county have flood insurance compared with how many are in a flood zone.
- Download the flood insurance claims for a county or ZIP code with the payout, the damage, the water depth and the building age.
- Find claims where the payout covered less than half of the building damage.
- Group all flood claims by county, ZIP code, year, event or community with total paid and average payout.
- See how much housing assistance owners and renters received after a disaster, by ZIP code.
- List the repair money FEMA paid to cities, counties and agencies for a given disaster.
- Compare the aid per designated county across hurricanes.

### Six ways to collect data

| Mode | One row is | Best for |
|---|---|---|
| Disasters and aid totals | one disaster | disaster reports, aid comparison, news |
| County disaster history | one county | risk scoring, insurance, real estate |
| Flood insurance claims | one claim | loss analysis, underwriting, research |
| Flood claim summary | one county, ZIP, year, event, community or state | maps, trend charts, pricing |
| Housing assistance by ZIP code | one ZIP code, disaster and occupancy | recovery studies, relief planning |
| Public assistance | one applicant and disaster | government spending, contractors |

### What data do you get for a disaster?

- Disaster number, declaration number, declaration type and title, incident type and a simple incident group.
- States, number of designated counties and the first 25 county names.
- Declaration date, incident start and end, closeout date, FEMA region and fiscal year.
- Flags for individual assistance, public assistance and hazard mitigation.
- Days the incident lasted and days from the start of the incident to the declaration.
- Approved household aid, housing assistance, other needs assistance, public assistance for emergency and permanent work, and hazard mitigation.
- Total federal aid and aid per designated county.

### What data do you get for a flood claim?

- Date and year of loss, event name, state, county code, ZIP code, census block group, latitude and longitude.
- Community name and number, community rating class, flood zone at the time of loss and today.
- Occupancy, primary residence, rental, non profit and small business flags, number of floors, foundation and basement type, elevation and post FIRM construction.
- Building and contents damage, the amounts paid for the building, the contents and increased cost of compliance.
- Building and contents coverage, property value, replacement cost and credit score.
- Derived fields: total paid, payout as a share of the damage, uncovered damage, building age at the time of loss and coverage as a share of property value.

### Input example

Major flooding in Louisiana since 2010, largest aid first:

```json
{
    "mode": "disasters",
    "states": ["LA"],
    "yearFrom": 2010,
    "incidentTypes": ["Flood", "Hurricane"],
    "sortBy": "largestAid"
}
```

Flood claims in Harris County, Texas for 2017:

```json
{
    "mode": "floodClaims",
    "states": ["TX"],
    "counties": ["48201"],
    "yearFrom": 2017,
    "yearTo": 2017
}
```

### Output example

A real disaster row, shortened:

```json
{
    "disasterNumber": 4332,
    "declarationTitle": "HURRICANE HARVEY",
    "incidentType": "Hurricane",
    "designatedAreas": 53,
    "individualAndHouseholdApprovedUsd": 1656932722.84,
    "publicAssistanceObligatedUsd": 2999904067.62,
    "hazardMitigationObligatedUsd": 582046551.63,
    "totalFederalAidUsd": 5238883342.09
}
```

A real county history row, shortened:

```json
{
    "countyFips": "22005",
    "county": "Ascension (Parish)",
    "state": "LA",
    "totalDeclarations": 58,
    "hurricaneDeclarations": 29,
    "floodDeclarations": 14,
    "declarationsLast10Years": 21,
    "floodInsuranceResidentialPenetrationPct": 28.88
}
```

### How much does it cost?

You pay for each row returned, and the price per row drops with higher Apify subscription plans. Free accounts can test the Actor with up to 10 rows per run. Claim summaries read about 3,000 claims per second, so a large county takes about a minute.

### Frequently asked questions

**How often is the data updated?**
Declarations are updated daily by FEMA. Flood claims and policies are updated monthly.

**Why is the aid empty for a recent disaster?**
FEMA adds the approved and obligated amounts after the work starts. New declarations show empty aid fields until then.

**What do the declaration types mean?**
DR is a major disaster declaration, EM an emergency declaration, FM a fire management assistance declaration and FS a fire suppression declaration.

**How do I find a county code?**
Use the five digit FIPS code, which is the state code followed by the county code. Harris County, Texas is 48201.

**Can I get every flood claim in the country?**
Yes, but there are almost 2.7 million. Use the claim summary with a higher claim limit, or filter by state, county or year.

**Does it show flood risk for an address?**
No. The Actor shows what happened and what was paid, not a forecast for a street address.

### Limits

The Actor covers FEMA disaster declarations, aid, flood claims, housing assistance and public assistance. It does not include policy level premium data, which FEMA publishes in a very large separate file, and it gives no flood zone for a street address. The data is public and published by the Federal Emergency Management Agency through OpenFEMA.

# Actor input Schema

## `maxItems` (type: `integer`):

Free users: Limited to 10 items (preview). Paid users: Optional, max 1,000,000.

## `mode` (type: `string`):

Disasters gives one row per federal disaster with the counties and the aid paid. County history counts the declarations of each county by type and adds flood insurance coverage. Flood claims gives one row per flood insurance claim. Flood claim summary groups the claims by county, ZIP code, year, event, community or state. Housing assistance gives aid to owners and renters by ZIP code. Public assistance gives money paid to cities, counties and agencies for repairs.

## `states` (type: `array`):

Two letter state or territory codes such as TX, FL or PR. Leave empty for the whole country.

## `counties` (type: `array`):

Five digit county codes such as 48201 for Harris County, Texas. Works in county history, flood claims and flood claim summary.

## `zipCodes` (type: `array`):

Five digit ZIP codes. Works in flood claims, flood claim summary and housing assistance.

## `yearFrom` (type: `integer`):

First year. For flood claims it is the year of the loss, for the other modes it is the year of the declaration.

## `yearTo` (type: `integer`):

Last year.

## `disasterNumbers` (type: `array`):

Look up specific disasters, for example 4332 for Hurricane Harvey. Works in disasters, county history, housing assistance and public assistance.

## `incidentTypes` (type: `array`):

Keep only incidents whose type contains one of these words, for example Flood, Hurricane, Fire, Tornado or Severe Storm.

## `declarationTypes` (type: `array`):

DR is a major disaster, EM an emergency, FM a fire management assistance and FS a fire suppression. Leave empty for all.

## `floodEvent` (type: `string`):

Flood claims only. Part of the event name, for example Harvey or Katrina.

## `communityContains` (type: `string`):

Flood claims: part of the community name such as HOUSTON. Public assistance: part of the applicant name.

## `minPaidUsd` (type: `integer`):

Flood claims: minimum paid on the building. Public assistance: minimum federal money obligated.

## `groupBy` (type: `string`):

Flood claim summary only.

## `maxClaimsToRead` (type: `integer`):

Flood claim summary only. The summary stops after reading this many claims, so a whole country run does not take hours. Use filters to stay below it. About 3,000 claims are read per second.

## `sortBy` (type: `string`):

Disasters and public assistance mode.

## Actor input object example

```json
{
  "maxItems": 10,
  "mode": "disasters",
  "groupBy": "county",
  "maxClaimsToRead": 500000,
  "sortBy": "newest"
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parselab/fema-disaster-flood-claims-aid-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parselab/fema-disaster-flood-claims-aid-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parselab/fema-disaster-flood-claims-aid-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parselab/fema-disaster-flood-claims-aid-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/dUpmvgFaOHDvFZOrt/builds/mZc4cShNDsCAbUvkh/openapi.json
