# FEMA NFIP Flood Insurance Claims Scraper (`compute-edge/fema-nfip-claims-scraper`) Actor

Extract FEMA National Flood Insurance Program (NFIP) redacted claims. Get state, city, ZIP, county, date and year of loss, flood zone, building and contents payouts, damage amounts, and cause of damage. Filter by state, year range, flood zone, or minimum payout.

- **URL**: https://apify.com/compute-edge/fema-nfip-claims-scraper.md
- **Developed by:** [Compute Edge](https://apify.com/compute-edge) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 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.

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

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## FEMA NFIP Flood Insurance Claims Scraper

### Overview

The **FEMA NFIP Flood Insurance Claims Scraper** extracts comprehensive data from the Federal Emergency Management Agency's National Flood Insurance Program (NFIP) redacted claims dataset. This actor provides access to publicly released flood insurance claim records, enabling insurance professionals, researchers, risk analysts, and disaster recovery specialists to analyze flood claim patterns, geographic exposure, and financial impact across the United States.

The scraper queries the OpenFEMA API (`FimaNfipClaims` dataset), which contains millions of redacted NFIP claims records without personal identifiers. Each claim record includes location data, flood zone classification, loss date, building and contents damage amounts, insurance payouts, and cause of loss — essential information for insurance analytics, reinsurance modeling, and climate risk assessment.

### Key Features

- **Comprehensive Filtering**: Filter claims by state, year of loss, flood zone rating, and minimum building payout threshold
- **Large-Scale Data**: Access to 2.6M+ NFIP claim records with consistent, structured output
- **Financial Analytics**: Extract claim payout amounts (building, contents, ICC) and damage assessments for financial analysis
- **Geographic Analysis**: Combine state, city, ZIP code, and county data for spatial flood risk mapping
- **Flood Zone Insights**: Analyze claims by rated flood zone (A, AE, X, VE, etc.) to understand exposure patterns
- **Batch Processing**: Efficiently paginate through large result sets with configurable limits
- **Computed Fields**: Automatic calculation of total payouts combining building, contents, and ICC claims
- **JSON Export**: Structured JSON output compatible with analytics platforms, databases, and BI tools

### How to Scrape FEMA NFIP Flood Insurance Claims

#### Step 1: Configure Input Parameters

The actor accepts optional filters to narrow your search. All parameters are optional — leaving them blank will fetch the most recent 1,000 NFIP claims.

| Parameter | Description | Example |
|-----------|-------------|---------|
| **State** | 2-letter state abbreviation to filter by location | `TX`, `FL`, `CA` |
| **Year of Loss From** | Minimum year of loss (inclusive) | `2020` |
| **Year of Loss To** | Maximum year of loss (inclusive) | `2023` |
| **Flood Zone** | Rated flood zone code to filter by | `AE`, `A`, `X`, `VE` |
| **Minimum Building Payout** | Minimum amount paid on building claim (USD) | `50000` |
| **Max Results** | Maximum number of claim records to return (default 1000, max 50000) | `5000` |

#### Step 2: Example Input Configurations

**Example 1: Recent Texas Flood Claims (2023)**
```json
{
  "state": "TX",
  "yearOfLossFrom": 2023,
  "yearOfLossTo": 2023,
  "maxResults": 1000
}
````

**Example 2: High-Value Claims in Flood Zone AE**

```json
{
  "floodZone": "AE",
  "minBuildingPaid": 100000,
  "maxResults": 5000
}
```

**Example 3: All Recent Claims (Newest First)**

```json
{
  "maxResults": 10000
}
```

#### Step 3: Run the Scraper

1. Click **Prepare** to configure your input parameters
2. Click **Start** to begin the scrape
3. Monitor progress in the **Log** tab
4. Download results from the **Dataset** tab as JSON, CSV, or Excel

#### Step 4: Analyze Results

The scraper returns one record per insurance claim with the following fields:

```json
{
  "state": "TX",
  "reportedCity": "Houston",
  "reportedZipCode": "77002",
  "countyCode": "48201",
  "dateOfLoss": "2023-06-15",
  "yearOfLoss": 2023,
  "ratedFloodZone": "AE",
  "occupancyType": 1,
  "amountPaidOnBuildingClaim": 145000.00,
  "amountPaidOnContentsClaim": 25000.00,
  "totalAmountPaid": 170000.00,
  "totalBuildingInsuranceCoverage": 250000.00,
  "buildingDamageAmount": 180000.00,
  "contentsDamageAmount": 35000.00,
  "causeOfDamage": "Flood",
  "numberOfFloorsInTheInsuredBuilding": 2,
  "primaryResidenceIndicator": true
}
```

### Output Fields

| Field | Type | Description |
|-------|------|-------------|
| state | string | State abbreviation (e.g., "TX", "FL") |
| reportedCity | string | City where the insured property was located |
| reportedZipCode | string | ZIP code of the insured property |
| countyCode | string | FIPS county code for geographic analysis |
| dateOfLoss | string | Date of loss in YYYY-MM-DD format |
| yearOfLoss | integer | Year of loss for time-series analysis |
| ratedFloodZone | string | FEMA flood zone classification (A, AE, X, VE, etc.) |
| occupancyType | integer | Type of building occupancy (1=single-family residential, etc.) |
| amountPaidOnBuildingClaim | number | NFIP payout for building damage (USD) |
| amountPaidOnContentsClaim | number | NFIP payout for contents damage (USD) |
| totalAmountPaid | number | **Computed**: Sum of all NFIP payouts for this claim |
| totalBuildingInsuranceCoverage | number | Total building insurance coverage limit (USD) |
| buildingDamageAmount | number | Estimated building damage amount (USD) |
| contentsDamageAmount | number | Estimated contents damage amount (USD) |
| causeOfDamage | string | Cause of loss (e.g., "Flood", "Hurricane") |
| numberOfFloorsInTheInsuredBuilding | integer | Number of floors in the insured property |
| primaryResidenceIndicator | boolean | Whether the property is a primary residence |

### Pricing & Performance

- **Pricing**: **$0.003 per record** (typically 100-200 records per run with no filters, up to 50,000 with aggressive filtering)
- **Compute Cost**: Minimal — API calls are lightweight (~5-50MB RAM, <30 seconds for typical runs)
- **Rate Limits**: No rate limiting detected; pagination handles all data efficiently

**Cost Example**:

- 1,000 claims: ~$3 + compute
- 5,000 claims: ~$15 + compute
- 10,000 claims: ~$30 + compute

### Use Cases

#### Insurance Risk Analysis

Extract claims by flood zone and year to model geographic flood exposure and premium adequacy.

#### Reinsurance Modeling

Aggregate claim severity, frequency, and loss ratios to validate catastrophe models and reinsurance treaties.

#### Climate Risk Assessment

Analyze multi-year claim trends by state and flood zone to assess climate change impact on flood exposure.

#### Commercial Real Estate Due Diligence

Research NFIP claim history for specific geographic markets before acquisition.

#### Academic Research

Study flood insurance uptake, loss patterns, and disaster recovery effectiveness using comprehensive national data.

#### Disaster Impact Analysis

Quickly quantify flood claim volumes and payouts following major hurricane or flood events.

### Legal Disclaimer

This scraper extracts **publicly available, redacted** data from the OpenFEMA API (`FimaNfipClaims` dataset). The data contains no personal identifiers or non-public information.

- All data is released by FEMA under the Open Government Initiative
- No personal data (names, phone numbers, email addresses) is included
- Use of this data is subject to FEMA's Terms of Service: https://www.fema.gov/about/information-security/notices-disclaimers
- Respect rate limits and use reasonable scraping practices
- Do not republish data without attribution to FEMA/OpenFEMA

### FAQ

**Q: How often is the NFIP claims data updated?**\
A: The OpenFEMA API is typically updated quarterly, with a 1-2 month lag from the official claim date.

**Q: Can I filter by multiple states?**\
A: Currently, the actor filters by a single state per run. To collect data for multiple states, run the scraper separately for each state or contact support for bulk export options.

**Q: Are personal identifiers included in the data?**\
A: No. FEMA redacts all personally identifiable information (names, addresses, phone numbers) from the public dataset. Only geographic aggregates (city, ZIP, county) are included.

**Q: What is the difference between "amountPaidOnBuildingClaim" and "buildingDamageAmount"?**\
A: `amountPaidOnBuildingClaim` is the actual NFIP insurance payout for building damage. `buildingDamageAmount` is the estimated total building damage. The difference may indicate a coverage limit or insurer discretion.

**Q: Can I export this data to a spreadsheet?**\
A: Yes! After the run completes, go to the **Dataset** tab and download as CSV or Excel (.xlsx).

**Q: What happens if the API is down?**\
A: The actor will log an error and exit gracefully. FEMA's API has 99.9% uptime; if you encounter issues, try again in a few minutes or contact Apify support.

### Support

For issues, feature requests, or questions about the FEMA NFIP Claims Scraper, please contact:

- **Email**: support@apify.com
- **Discord**: Join the Apify community at https://discord.gg/jyEM2PRqzj

### Related Actors

- **CISA KEV Scraper** — Extract known exploited vulnerabilities for cybersecurity risk analysis
- **NOAA Tides Scraper** — Fetch tidal prediction data for coastal analysis
- **GSA Site Scanning Scraper** — Extract government website scanning results

***

*Built with [Apify SDK](https://apify.com/sdk) • Data source: [OpenFEMA API](https://www.fema.gov/about/news-multimedia/news-releases/20231129-fema-launches-opendata-streamline-access-public-records) • Last updated: 2026*

# Actor input Schema

## `state` (type: `string`):

Filter by state (2-letter abbreviation, e.g., 'TX', 'CA', 'FL'). Leave blank for all states.

## `yearOfLossFrom` (type: `integer`):

Filter claims with year of loss greater than or equal to this year. Leave blank or set to 0 for no minimum.

## `yearOfLossTo` (type: `integer`):

Filter claims with year of loss less than or equal to this year. Leave blank or set to 0 for no maximum.

## `floodZone` (type: `string`):

Filter by rated flood zone (e.g., 'A', 'AE', 'X', 'VE'). Leave blank for all zones.

## `minBuildingPaid` (type: `number`):

Filter claims where amount paid on building claim is greater than or equal to this value. Leave blank or set to 0 for no minimum.

## `maxResults` (type: `integer`):

Maximum number of claim records to return. Default 1000, maximum 50000.

## Actor input object example

```json
{
  "state": "",
  "yearOfLossFrom": 0,
  "yearOfLossTo": 0,
  "floodZone": "",
  "minBuildingPaid": 0,
  "maxResults": 1000
}
```

# Actor output Schema

## `dataset` (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 = {};

// Run the Actor and wait for it to finish
const run = await client.actor("compute-edge/fema-nfip-claims-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 = {}

# Run the Actor and wait for it to finish
run = client.actor("compute-edge/fema-nfip-claims-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{}' |
apify call compute-edge/fema-nfip-claims-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=compute-edge/fema-nfip-claims-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FEMA NFIP Flood Insurance Claims Scraper",
        "description": "Extract FEMA National Flood Insurance Program (NFIP) redacted claims. Get state, city, ZIP, county, date and year of loss, flood zone, building and contents payouts, damage amounts, and cause of damage. Filter by state, year range, flood zone, or minimum payout.",
        "version": "0.1",
        "x-build-id": "GOlPZP4JlDkRwzXLy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~fema-nfip-claims-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-fema-nfip-claims-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/compute-edge~fema-nfip-claims-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-fema-nfip-claims-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/compute-edge~fema-nfip-claims-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-fema-nfip-claims-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "state": {
                        "title": "State",
                        "type": "string",
                        "description": "Filter by state (2-letter abbreviation, e.g., 'TX', 'CA', 'FL'). Leave blank for all states.",
                        "default": ""
                    },
                    "yearOfLossFrom": {
                        "title": "Year of Loss From",
                        "type": "integer",
                        "description": "Filter claims with year of loss greater than or equal to this year. Leave blank or set to 0 for no minimum.",
                        "default": 0
                    },
                    "yearOfLossTo": {
                        "title": "Year of Loss To",
                        "type": "integer",
                        "description": "Filter claims with year of loss less than or equal to this year. Leave blank or set to 0 for no maximum.",
                        "default": 0
                    },
                    "floodZone": {
                        "title": "Flood Zone",
                        "type": "string",
                        "description": "Filter by rated flood zone (e.g., 'A', 'AE', 'X', 'VE'). Leave blank for all zones.",
                        "default": ""
                    },
                    "minBuildingPaid": {
                        "title": "Minimum Building Payout",
                        "type": "number",
                        "description": "Filter claims where amount paid on building claim is greater than or equal to this value. Leave blank or set to 0 for no minimum.",
                        "default": 0
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum number of claim records to return. Default 1000, maximum 50000.",
                        "default": 1000
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
