# FEMA Disaster Declarations & NFIP Flood Claims - OpenFEMA (`jpopendata/fema-openfema`) Actor

Federal disaster declarations and NFIP flood insurance claims and policies from FEMA's official OpenFEMA API (current v3 NFIP endpoints). Filter by state, county, ZIP, census tract, dates and flood zone; optional summaries; no silent page limits. Unofficial; not endorsed by FEMA.

- **URL**: https://apify.com/jpopendata/fema-openfema.md
- **Developed by:** [JP Open Data](https://apify.com/jpopendata) (community)
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.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/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 Declarations & NFIP Flood Claims (OpenFEMA)

Get **federal disaster declarations** and **National Flood Insurance Program (NFIP) claims and policies** from FEMA's official OpenFEMA API — filtered by state, county, ZIP code, census tract, dates, flood zone or flood event, as clean rows or as ready-made summaries (claims and dollars paid per county, ZIP, year, flood zone…).

Built for statistical analysis, research, reporting and public records on disasters and flood losses: researchers, journalists, emergency-management and public-sector analysts, and insurance or catastrophe-risk analysts who study areas (states, counties, ZIP codes, census tracts) rather than individual properties, without writing OData queries.

> **OpenFEMA use conditions (summary).** FEMA lets you use this data only for statistical research or as a reporting record. Do not use it to make decisions about a specific person or property that could affect someone's rights or eligibility for benefits (for example a loan, insurance or benefit decision about one home), and do not try to re-identify the people behind the NFIP records. FEMA may withdraw access if it believes a use does not serve the public interest. Details: [Data source, attribution and terms of use](#data-source-attribution-and-terms-of-use).

- **Current NFIP endpoints (v3).** FEMA removes the old `FimaNfipClaims` / `FimaNfipPolicies` v2 datasets on **October 15, 2026** (their data is frozen at 06/01/2026). This Actor reads `NfipClaims` v3 and `NfipPolicies` v3.
- **Nothing is cut off silently.** Every run asks FEMA how many rows match and reports it ("1,932 matched, 100 returned"). Large result sets are paged by record id, so no rows are skipped between pages.
- **Summaries in one run.** `summarizeBy: ["county", "year"]` turns thousands of claim rows into one row per county and year with claim counts and total paid.
- **Official API only, no key, no scraping.** Requests go to `www.fema.gov/api/open`, one at a time, at least 15 seconds apart (the site's robots.txt crawl-delay).

### Quick start — verified input

Leave the input empty (`{}`) or paste this — federal disaster declarations of the last 90 days, newest first:

```json
{
  "mode": "disasterDeclarations",
  "daysBack": 90,
  "maxItems": 100
}
```

More verified examples:

```json
{ "mode": "nfipClaims", "countyFips": ["22071"], "dateFrom": "2021-08-26", "dateTo": "2021-09-30", "maxItems": 100 }
```

NFIP claims in Orleans Parish, LA from Hurricane Ida's landfall to the end of September 2021.

```json
{ "mode": "nfipClaims", "zipCodes": ["77096"], "summarizeBy": ["year"], "maxApiRequests": 10 }
```

Flood insurance claims and dollars paid per year in ZIP 77096 (Houston, Meyerland).

```json
{ "mode": "nfipPolicies", "zipCodes": ["33139"], "inForceOn": "2026-01-01", "summarizeBy": ["floodZone"], "maxApiRequests": 10 }
```

NFIP policies in force on January 1, 2026 in ZIP 33139 (Miami Beach), by flood zone, with coverage and premiums.

### What you can get

| Mode | FEMA dataset | One row per | Size |
|---|---|---|---|
| `disasterDeclarations` | Disaster Declarations Summaries v2 | declared county / tribal area of a disaster (major disaster DR, emergency EM, fire management FM) | 70,000+ rows since 1953, refreshed about every 20 minutes |
| `nfipClaims` | NFIP Redacted Claims v3 | flood insurance claim transaction | 2.7 million rows since 1970, monthly |
| `nfipPolicies` | NFIP Redacted Policies v3 | flood insurance policy transaction | 74 million rows since 2009, monthly |

The NFIP datasets are FEMA's **redacted public versions**: no names, no street addresses, coordinates rounded to 0.1 degree, location given as ZIP code, county and census block group.

### Input

| Field | Modes | What it does |
|---|---|---|
| `mode` | all | `disasterDeclarations` (default), `nfipClaims` or `nfipPolicies` |
| `states` | all | USPS codes (`TX`, `FL`, `PR`); names and FIPS codes also work |
| `countyFips` | all | 5-digit county FIPS, e.g. `48201` (Harris County, TX) |
| `zipCodes` | NFIP | 5-digit ZIP codes |
| `censusTracts` | NFIP | 11-digit census tract GEOIDs |
| `dateFrom`, `dateTo` | all | Inclusive dates (`YYYY-MM-DD`): declaration date, date of loss, or policy effective date |
| `daysBack` | declarations | Window used when `dateFrom` is empty (default 90) |
| `incidentTypes` | declarations | e.g. `Hurricane`, `Flood`, `Fire`, `Severe Storm`, `Tornado` |
| `declarationTypes` | declarations | `DR`, `EM`, `FM` |
| `programsDeclared` | declarations | Keep declarations where all listed programs apply: `IA`, `IH`, `PA`, `HM` |
| `disasterNumbers` | declarations | `4337` or `DR-4337-FL` |
| `updatedSince` | declarations | Only rows FEMA added or changed since a date (for scheduled monitoring) |
| `floodZones` | NFIP | Rated flood zones, e.g. `AE`, `VE`, `X`; `SFHA` = all A and V zones |
| `floodEvent` | claims | Text in FEMA's event name, e.g. `Harvey` |
| `minTotalPaid` | claims | Building + contents + ICC paid at least this many USD |
| `inForceOn` | policies | Policies whose term covers this date and that were not cancelled by then |
| `summarizeBy` | NFIP | Up to 4 of `state`, `county`, `zip`, `censusTract`, `year`, `month`, `floodZone`, `floodEvent`, `occupancyType`, `community` |
| `fieldSet` | NFIP rows | `all` (about 85 FEMA columns) or `essential` (about 30 columns, 4x more rows per request) |
| `maxItems` | all | Most rows (or summary groups) to return, default 100, up to 200,000 |
| `maxApiRequests` | all | Hard cap on requests to FEMA, default 20, up to 300 |

### Output

Every row has FEMA's own fields under FEMA's own names, plus `recordType`, `openFemaDataset` and the attribution fields `source`, `sourceUrl` (the API endpoint, including its version), `license` and `retrievedAt`.

Disaster declaration row (abridged):

```json
{
  "recordType": "disasterDeclaration",
  "openFemaDataset": "DisasterDeclarationsSummaries v2",
  "femaDeclarationString": "EM-3657-GA",
  "disasterNumber": 3657,
  "state": "GA",
  "declarationType": "EM",
  "declarationDate": "2026-10-09T00:00:00.000Z",
  "incidentType": "Tropical Storm",
  "declarationTitle": "HURRICANE ISAIAS",
  "paProgramDeclared": true,
  "incidentBeginDate": "2026-10-08T00:00:00.000Z",
  "fipsStateCode": "13",
  "fipsCountyCode": "071",
  "designatedArea": "Colquitt (County)",
  "derivedCountyFips": "13071",
  "derivedProgramsDeclared": ["PA"],
  "derivedDisasterPageUrl": "https://www.fema.gov/disaster/3657",
  "source": "FEMA OpenFEMA API - Disaster Declarations Summaries (v2)",
  "sourceUrl": "https://www.fema.gov/api/open/v2/DisasterDeclarationsSummaries",
  "license": "This product uses the Federal Emergency Management Agency's OpenFEMA API, but is not endorsed by FEMA. ...",
  "retrievedAt": "2026-10-12T18:28:18.201Z"
}
```

NFIP claim row (abridged): `dateOfLoss`, `yearOfLoss`, `floodEvent` ("Hurricane Ida"), `state`, `countyCode`, `reportedZipCode`, `censusGeoid` (block group), `latitude`/`longitude` (0.1°), `ratedFloodZone`, `occupancyType`, `totalBuildingInsuranceCoverage`, `amountPaidOnBuildingClaim`, `amountPaidOnContentsClaim`, `buildingDamageAmount`, `waterDepth`, … and `derivedTotalAmountPaid`.

Summary row — ZIP 77096 claims by year, the 2017 row (Hurricane Harvey), from a verified run on 2026-10-12 (abridged):

```json
{
  "recordType": "nfipClaimsSummary",
  "groupBy": ["year"],
  "groupYear": 2017,
  "claimCount": 2550,
  "paidClaimCount": 2346,
  "totalPaid": 422405409.27,
  "averagePaidPerPaidClaim": 180053.46,
  "maxClaimPaid": 1312258.96,
  "summaryComplete": true,
  "rowsScanned": 6482,
  "rowsMatchingAtSource": 6482,
  "summaryNote": "Aggregated by this Actor from FEMA's NFIP Redacted Claims (v3) rows (NfipClaims v3); not an official FEMA statistic."
}
```

Policy summaries report both `policyRows` (FEMA policy transactions) and `policyCountSum` (the sum of FEMA's `policyCount`, i.e. insured units — one condominium master policy can cover hundreds of units). In the verified ZIP 33139 run, zone AE had 2,826 policy rows covering 22,789 units.

#### Fields added by this Actor

FEMA's values are passed through unchanged. Values computed by this Actor are always in fields that start with `derived` or in summary rows:

| Field | Record type | Meaning |
|---|---|---|
| `derivedCountyFips` | declarations, policies | 5-digit county FIPS (declarations: state + county code, null for statewide rows; policies: first 5 digits of the block group) |
| `derivedProgramsDeclared` | declarations | Programs flagged true: `IA`, `IH`, `PA`, `HM` |
| `derivedDisasterPageUrl` | declarations | Link to the disaster's page on fema.gov |
| `derivedTotalAmountPaid` | claims | Building + contents + ICC amounts paid |
| `derivedCensusTract` | claims, policies | 11-digit census tract (first 11 digits of the block group) |

The run's key-value store has a `RUN_SUMMARY` record: FEMA's match count, rows read and returned, requests used, whether the result is complete, and why a run stopped early.

### Common input mistakes

| You typed | Use instead |
|---|---|
| `"countyFips": ["Harris County"]` | `"countyFips": ["48201"]` (5-digit FIPS) |
| `"states": ["TX"], "countyFips": ["22071"]` | The county must be in the listed states — `22071` is Louisiana |
| `"zipCodes": ["77096"]` with `mode: disasterDeclarations` | ZIP codes exist only in the NFIP datasets (`nfipClaims` / `nfipPolicies`) |
| `"incidentTypes": ["Derecho"]` | FEMA files derechos under `Severe Storm` |
| `"summarizeBy": ["floodEvent"]` with `nfipPolicies` | Policies have no flood event; use `year`, `floodZone`, … |
| `"dateFrom": "26/08/2021"` | `2021-08-26` (MM/DD/YYYY also works) |

### Empty results?

A run with 0 rows still succeeds and logs why. Typical causes:

- NFIP data lags the present by a month or more (FEMA refreshes it monthly), so a window covering only the last few weeks can be empty.
- The filters exclude each other (a county outside the chosen states, a flood zone that does not occur in the ZIP).
- An incident type spelled differently from FEMA's list (the log shows the known values).
- Disaster declarations list counties for most disasters since 1964 only.

### Speed and limits

- At least 15 seconds between requests (FEMA's robots.txt crawl-delay). One request returns up to 5,000 declarations, 2,000 NFIP rows with all columns, or 8,000 NFIP rows with `fieldSet: essential` or for summaries.
- `maxApiRequests` caps a run; when it runs out, the rows read so far are kept and `RUN_SUMMARY.complete` is `false`. Summary rows then carry `summaryComplete: false`, so a partial summary is never mistaken for a full one.
- Runs stop 90 seconds before their timeout to save results.
- **NFIP policies:** filter by `zipCodes` or `censusTracts` for fast runs. FEMA needs about a minute per request for a whole state (74 million policy rows) and sometimes times out with HTTP 503; for such broad queries the run does not ask FEMA for a match count.
- Whole datasets (tens of millions of policy rows) are better downloaded from FEMA's OpenFEMA bulk files.
- This Actor does not query FEMA's flood maps (National Flood Hazard Layer), so it does not look up the flood zone of an address. The flood zone fields in NFIP rows are those recorded on each policy or claim.

### Data source, attribution and terms of use

Data: FEMA OpenFEMA API — [Disaster Declarations Summaries v2](https://www.fema.gov/openfema-data-page/disaster-declarations-summaries-v2), [NFIP Redacted Claims v3](https://www.fema.gov/openfema-data-page/nfip-redacted-claims-v3), [NFIP Redacted Policies v3](https://www.fema.gov/openfema-data-page/nfip-redacted-policies-v3). Every row carries the endpoint (`sourceUrl`) and the retrieval time (`retrievedAt`) needed to cite it.

This product uses the Federal Emergency Management Agency's OpenFEMA API, but is 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).

The [OpenFEMA Terms and Conditions](https://www.fema.gov/about/openfema/terms-conditions) apply to anyone who uses this data. In particular, FEMA asks users to agree that the data will be used solely for statistical research or as a reporting record; not to re-identify, or attempt to re-identify, the individuals whose data is aggregated, and not to publish facts that may lead to their identification; and not to use the data to make determinations that might affect an individual's rights or eligibility for benefits (FEMA notes that the data can be used to make decisions on program management). FEMA may rescind your use of the data if it believes the use does not serve the public interest, and you agree to stop using the data and destroy your copies if FEMA asks. When you publish results, cite the dataset and the access date and repeat the statement above. FEMA and DHS logos and seals may not be used without FEMA's or DHS's written permission.

Flood zones in this data are as recorded in NFIP transactions. They are not an official flood zone determination for any property.

### Legal

- **Unofficial.** This Actor is not affiliated with, endorsed by or sponsored by FEMA, DHS or the U.S. Government.
- **Public data only.** It reads FEMA's public, free OpenFEMA API, without login, key or workaround, one request at a time.
- **Your responsibility.** You are responsible for using the data in line with the OpenFEMA Terms and Conditions and the laws that apply to you.
- **Privacy / GDPR.** The output contains no personal data: disaster declarations describe counties and tribal areas, and the NFIP datasets are FEMA's redacted public versions (no names, no street addresses, coordinates rounded to 0.1 degree). This Actor adds nothing that could identify a person and does not combine NFIP rows with addresses.

# Actor input Schema

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

Which OpenFEMA dataset to read. Disaster declarations: one row per declared county/tribal area (state, county FIPS, incident type, dates, programs). NFIP claims: one row per flood insurance claim (date of loss, flood event, ZIP, census block group, flood zone, amounts paid). NFIP policies: one row per policy transaction (effective dates, flood zone, coverage, premium). The NFIP data is FEMA's redacted public version: no names, no street addresses, coordinates rounded to 0.1 degree.

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

Optional. US states or territories as 2-letter USPS codes, e.g. TX, FL, LA, PR. Full names (Texas) and FIPS codes (48) also work. Empty = all states.

## `countyFips` (type: `array`):

Optional. 5-digit county FIPS codes (state 2 digits + county 3 digits), e.g. 48201 (Harris County, TX), 12086 (Miami-Dade, FL), 22071 (Orleans Parish, LA). County names are not accepted. Must lie inside the States filter if both are set.

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

Optional, NFIP claims/policies only. 5-digit ZIP codes as reported on the policy, e.g. 77096, 33139. ZIP+4 (77096-1234) is accepted.

## `censusTracts` (type: `array`):

Optional, NFIP claims/policies only. 11-digit census tract GEOIDs (state 2 + county 3 + tract 6), e.g. 22071013200. The census tract is the finest geography this Actor filters by.

## `dateFrom` (type: `string`):

Optional start date (inclusive), YYYY-MM-DD, e.g. 2017-08-25. Applies to the declaration date (declarations), the date of loss (claims) or the policy effective date (policies). YYYY-MM, YYYY and MM/DD/YYYY also work.

## `dateTo` (type: `string`):

Optional end date (inclusive), YYYY-MM-DD, e.g. 2017-09-30. Same date field as From date.

## `daysBack` (type: `integer`):

Disaster declarations only, used when From date is empty: how many days back from To date (or from today) to look. Ignored when disaster numbers are given.

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

Optional. FEMA incident types, e.g. Hurricane, Flood, Fire, Severe Storm, Tornado, Winter Storm, Tropical Storm, Earthquake, Biological. Case does not matter; Wildfire, Floods, Hurricanes are understood.

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

Optional. DR (major disaster), EM (emergency), FM (fire management). Empty = all three.

## `programsDeclared` (type: `array`):

Optional. Keep only declarations where every listed program was declared: IA (Individual Assistance), IH (Individuals and Households), PA (Public Assistance), HM (Hazard Mitigation).

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

Optional. FEMA disaster numbers (4337) or declaration strings (DR-4337-FL). When set, the Days back window is not applied.

## `updatedSince` (type: `string`):

Optional, declarations only. Only rows FEMA added or changed on or after this date (YYYY-MM-DD) — handy for scheduled monitoring.

## `floodZones` (type: `array`):

Optional. Rated flood zone codes, e.g. AE, VE, A, AO, AH, X, B, C, D. SFHA = every high-risk zone (all A\* and V\* zones).

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

Optional, claims only. Text contained in FEMA's flood event name, e.g. Harvey, Hurricane Ida, Sandy.

## `minTotalPaid` (type: `integer`):

Optional, claims only. Keep claims whose building + contents + ICC payments add up to at least this amount, e.g. 50000. 0 = no filter. Applied after download, so FEMA's match count includes smaller claims.

## `inForceOn` (type: `string`):

Optional, policies only. Keep policy transactions whose term covers this date (YYYY-MM-DD) and that were not cancelled on or before it.

## `summarizeBy` (type: `array`):

Optional. Instead of one row per claim/policy, return one row per group with counts and dollar totals. Up to 4 of: state, county, zip, censusTract, year, month, floodZone, floodEvent (claims only), occupancyType, community. Example: county, year. Summaries read every matching row, so raise Max API requests for big areas.

## `fieldSet` (type: `string`):

NFIP claims/policies rows only: every FEMA column, or a compact set (dates, location, zone, building facts, coverage, payments/premium).

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

Most rows to return (for summaries: most groups). The log and RUN_SUMMARY always say how many rows FEMA matched, so nothing is cut off silently.

## `maxApiRequests` (type: `integer`):

Hard cap on requests to FEMA. Requests are at least 15 seconds apart (www.fema.gov robots.txt crawl-delay). One request returns up to 5,000 declarations, 2,000 NFIP rows with all columns, or 8,000 with essential columns or for summaries.

## `proxyConfiguration` (type: `object`):

Not needed: FEMA's API answers Apify's servers directly. If set, one proxy session is used for the whole run (no rotation).

## Actor input object example

```json
{
  "mode": "disasterDeclarations",
  "states": [],
  "countyFips": [],
  "zipCodes": [],
  "censusTracts": [],
  "dateFrom": "",
  "dateTo": "",
  "daysBack": 90,
  "incidentTypes": [],
  "declarationTypes": [],
  "programsDeclared": [],
  "disasterNumbers": [],
  "updatedSince": "",
  "floodZones": [],
  "floodEvent": "",
  "minTotalPaid": 0,
  "inForceOn": "",
  "summarizeBy": [],
  "fieldSet": "all",
  "maxItems": 100,
  "maxApiRequests": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}
```

# Actor output Schema

## `records` (type: `string`):

One row per declaration area, NFIP claim, NFIP policy transaction or summary group, each with the OpenFEMA attribution (source, sourceUrl = API endpoint incl. version, license, retrievedAt).

# 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 = {
    "mode": "disasterDeclarations",
    "states": [],
    "countyFips": [],
    "zipCodes": [],
    "censusTracts": [],
    "dateFrom": "",
    "dateTo": "",
    "daysBack": 90,
    "incidentTypes": [],
    "declarationTypes": [],
    "programsDeclared": [],
    "disasterNumbers": [],
    "updatedSince": "",
    "floodZones": [],
    "floodEvent": "",
    "minTotalPaid": 0,
    "inForceOn": "",
    "summarizeBy": [],
    "fieldSet": "all",
    "maxItems": 100,
    "maxApiRequests": 20,
    "proxyConfiguration": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("jpopendata/fema-openfema").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 = {
    "mode": "disasterDeclarations",
    "states": [],
    "countyFips": [],
    "zipCodes": [],
    "censusTracts": [],
    "dateFrom": "",
    "dateTo": "",
    "daysBack": 90,
    "incidentTypes": [],
    "declarationTypes": [],
    "programsDeclared": [],
    "disasterNumbers": [],
    "updatedSince": "",
    "floodZones": [],
    "floodEvent": "",
    "minTotalPaid": 0,
    "inForceOn": "",
    "summarizeBy": [],
    "fieldSet": "all",
    "maxItems": 100,
    "maxApiRequests": 20,
    "proxyConfiguration": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("jpopendata/fema-openfema").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 '{
  "mode": "disasterDeclarations",
  "states": [],
  "countyFips": [],
  "zipCodes": [],
  "censusTracts": [],
  "dateFrom": "",
  "dateTo": "",
  "daysBack": 90,
  "incidentTypes": [],
  "declarationTypes": [],
  "programsDeclared": [],
  "disasterNumbers": [],
  "updatedSince": "",
  "floodZones": [],
  "floodEvent": "",
  "minTotalPaid": 0,
  "inForceOn": "",
  "summarizeBy": [],
  "fieldSet": "all",
  "maxItems": 100,
  "maxApiRequests": 20,
  "proxyConfiguration": {
    "useApifyProxy": false
  }
}' |
apify call jpopendata/fema-openfema --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,jpopendata/fema-openfema"
        }
    }
}
```

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/TpNORvgZVZryGJUIX/builds/lHNDyL6aofDb2CdWV/openapi.json
