# FEMA National Risk Index Scraper - Property Hazard API (`pink_comic/fema-national-risk-index-property-hazard-risk`) Actor

Search official FEMA National Risk Index v1.20 county and census-tract profiles for property insurance, real estate, catastrophe planning, and resilience analysis. Returns composite risk, expected annual loss, vulnerability, resilience, and 18 hazard profiles.

- **URL**: https://apify.com/pink\_comic/fema-national-risk-index-property-hazard-risk.md
- **Developed by:** [Ava Torres](https://apify.com/pink_comic) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 community risk profiles

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 web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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/docs.md):

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

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python/docs.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/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 National Risk Index Scraper — Property Hazard API

Search official FEMA National Risk Index (NRI) v1.20 county and census-tract profiles for property insurance, real estate, catastrophe planning, emergency management, climate-risk research, and community resilience analysis.

Each profile combines FEMA's composite National Risk Index, Expected Annual Loss, Social Vulnerability, Community Resilience, exposure values, and detailed profiles for all 18 NRI hazards. The actor uses FEMA's public, no-key ArcGIS services owned by `FEMA_NationalRiskIndex`.

### Fast start

Empty input returns Travis County, Texas (FIPS `48453`) as a deterministic one-row example:

```json
{
  "geography": "county",
  "countyFips": "48453",
  "sortBy": "risk",
  "maxResults": 25
}
````

Find Texas counties with the highest hail risk:

```json
{
  "geography": "county",
  "state": "TX",
  "hazardType": "Hail",
  "minHazardRiskScore": 95,
  "sortBy": "hazardRisk",
  "maxResults": 25
}
```

Compare high-wildfire-risk California counties with at least $10 million in modeled wildfire Expected Annual Loss:

```json
{
  "state": "CA",
  "hazardType": "Wildfire",
  "minHazardAnnualLoss": 10000000,
  "hazardRiskRatings": ["Very High", "Relatively High"],
  "sortBy": "hazardLoss",
  "maxResults": 50
}
```

Retrieve an exact census tract:

```json
{
  "geography": "censusTract",
  "tractFips": "48453001919",
  "maxResults": 1
}
```

### Search and filters

- county or census-tract geography
- exact five-digit state-county FIPS or 11-digit census-tract FIPS
- county-name substring and two-letter state
- composite FEMA risk ratings
- minimum composite risk score and Expected Annual Loss
- one selected hazard with hazard-specific ratings, score, and loss filters
- composite risk, loss, vulnerability, resilience, selected-hazard, or name sorting
- total `maxResults` cap from 1–100

Exact FIPS takes precedence over broader name/state fields. Empty input applies only the deterministic Travis County fallback, so saved defaults do not contaminate exact searches.

### Output

Each match contains:

- NRI ID, geography level, county/tract names and FIPS codes
- 2020 population, building value, agricultural value, and area
- composite NRI value, score, rating, and state percentile
- Expected Annual Loss totals for buildings, population, and agriculture
- annual loss rates and national percentiles
- Social Vulnerability score/rating/percentile
- Community Resilience score/rating/percentile
- a `selectedHazardProfile` for the requested hazard
- a stable `hazardProfiles` object containing all 18 hazards:
  - Avalanche
  - Coastal Flooding
  - Cold Wave
  - Drought
  - Earthquake
  - Hail
  - Heat Wave
  - Hurricane
  - Ice Storm
  - Inland Flooding
  - Landslide
  - Lightning
  - Strong Wind
  - Tornado
  - Tsunami
  - Volcanic Activity
  - Wildfire
  - Winter Weather
- per-hazard event/frequency, exposure, historic-loss ratio, Expected Annual Loss, annual-loss rate, and risk-index metrics
- NRI version, exact API query, official item URL, retrieval timestamp, and required FEMA caveats

No-match runs return `NO_MATCHING_COMMUNITIES`. Temporary source failures return `SOURCE_UNAVAILABLE` without making a risk conclusion.

### Important interpretation and terms

FEMA says NRI data are intended for **planning and broad nationwide comparisons** and are not a substitute for localized risk assessment. Nationwide inputs can be less accurate than available local data. Scores and Expected Annual Loss values are modeled planning measures, not property-level forecasts, insurance quotes, claims, guarantees, or complete determinations of present risk.

This actor preserves FEMA's required citation statement on every result:

> This product uses the Federal Emergency Management Agency's National Risk Index dataset API or downloadable datasets 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).

Do not use FEMA or DHS logos/seals, claim FEMA endorsement, or represent modified/derived analysis as FEMA content.

### Official sources

- [FEMA National Risk Index overview](https://hazards.fema.gov/flood-maps/products-tools/national-risk-index)
- [Official NRI county feature layer](https://fema.maps.arcgis.com/home/item.html?id=39485e8035d446a5bff03259508ae355)
- [Official NRI census-tract feature layer](https://fema.maps.arcgis.com/home/item.html?id=9da4eeb936544335a6db0cd7a8448a51)
- [NRI technical documentation](https://www.fema.gov/sites/default/files/documents/fema_national-risk-index_technical-documentation.pdf)

Current source item: **National Risk Index Data Version December 2025 (1.20.0)**.

# Actor input Schema

## `geography` (type: `string`):

Return county or census-tract profiles.

## `query` (type: `string`):

Case-insensitive county-name substring, such as Travis or Miami-Dade. Exact FIPS takes precedence.

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

Two-letter state or territory abbreviation.

## `countyFips` (type: `string`):

Exact five-digit state-county FIPS. In censusTract mode, returns tracts within the county.

## `tractFips` (type: `string`):

Exact 11-digit census-tract FIPS. Automatically selects censusTract geography.

## `riskRatings` (type: `array`):

Optional exact FEMA composite risk ratings.

## `hazardType` (type: `string`):

Select a hazard for hazard-specific filters, sorting, and selectedHazardProfile. Every output also includes all 18 hazardProfiles.

## `hazardRiskRatings` (type: `array`):

Optional exact FEMA risk ratings for the selected hazard.

## `minRiskScore` (type: `number`):

Minimum FEMA composite National Risk Index score from 0 to 100.

## `minExpectedAnnualLoss` (type: `number`):

Minimum FEMA composite expected annual loss value.

## `minHazardRiskScore` (type: `number`):

Minimum 0-100 risk score for the selected hazard.

## `minHazardAnnualLoss` (type: `number`):

Minimum expected annual loss total for the selected hazard.

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

Order communities after all filters.

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

Total response cap. Profiles include all 18 hazard objects.

## Actor input object example

```json
{
  "geography": "county",
  "riskRatings": [],
  "hazardType": "any",
  "hazardRiskRatings": [],
  "minRiskScore": 0,
  "minExpectedAnnualLoss": 0,
  "minHazardRiskScore": 0,
  "minHazardAnnualLoss": 0,
  "sortBy": "risk",
  "maxResults": 25
}
```

# 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 = {
    "maxResults": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("pink_comic/fema-national-risk-index-property-hazard-risk").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 = { "maxResults": 25 }

# Run the Actor and wait for it to finish
run = client.actor("pink_comic/fema-national-risk-index-property-hazard-risk").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 '{
  "maxResults": 25
}' |
apify call pink_comic/fema-national-risk-index-property-hazard-risk --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=pink_comic/fema-national-risk-index-property-hazard-risk",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FEMA National Risk Index Scraper - Property Hazard API",
        "description": "Search official FEMA National Risk Index v1.20 county and census-tract profiles for property insurance, real estate, catastrophe planning, and resilience analysis. Returns composite risk, expected annual loss, vulnerability, resilience, and 18 hazard profiles.",
        "version": "0.1",
        "x-build-id": "ln7i4e44lJSXtK29R"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/pink_comic~fema-national-risk-index-property-hazard-risk/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-pink_comic-fema-national-risk-index-property-hazard-risk",
                "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/pink_comic~fema-national-risk-index-property-hazard-risk/runs": {
            "post": {
                "operationId": "runs-sync-pink_comic-fema-national-risk-index-property-hazard-risk",
                "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/pink_comic~fema-national-risk-index-property-hazard-risk/run-sync": {
            "post": {
                "operationId": "run-sync-pink_comic-fema-national-risk-index-property-hazard-risk",
                "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": {
                    "geography": {
                        "title": "Geography Level",
                        "enum": [
                            "county",
                            "censusTract"
                        ],
                        "type": "string",
                        "description": "Return county or census-tract profiles.",
                        "default": "county"
                    },
                    "query": {
                        "title": "County Name",
                        "type": "string",
                        "description": "Case-insensitive county-name substring, such as Travis or Miami-Dade. Exact FIPS takes precedence."
                    },
                    "state": {
                        "title": "State",
                        "pattern": "^[A-Za-z]{2}$",
                        "type": "string",
                        "description": "Two-letter state or territory abbreviation."
                    },
                    "countyFips": {
                        "title": "Exact State-County FIPS",
                        "pattern": "^[0-9]{5}$",
                        "type": "string",
                        "description": "Exact five-digit state-county FIPS. In censusTract mode, returns tracts within the county."
                    },
                    "tractFips": {
                        "title": "Exact Census-Tract FIPS",
                        "pattern": "^[0-9]{11}$",
                        "type": "string",
                        "description": "Exact 11-digit census-tract FIPS. Automatically selects censusTract geography."
                    },
                    "riskRatings": {
                        "title": "Composite Risk Ratings",
                        "type": "array",
                        "description": "Optional exact FEMA composite risk ratings.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "hazardType": {
                        "title": "Selected Hazard",
                        "enum": [
                            "any",
                            "Avalanche",
                            "Coastal Flooding",
                            "Cold Wave",
                            "Drought",
                            "Earthquake",
                            "Hail",
                            "Heat Wave",
                            "Hurricane",
                            "Ice Storm",
                            "Inland Flooding",
                            "Landslide",
                            "Lightning",
                            "Strong Wind",
                            "Tornado",
                            "Tsunami",
                            "Volcanic Activity",
                            "Wildfire",
                            "Winter Weather"
                        ],
                        "type": "string",
                        "description": "Select a hazard for hazard-specific filters, sorting, and selectedHazardProfile. Every output also includes all 18 hazardProfiles.",
                        "default": "any"
                    },
                    "hazardRiskRatings": {
                        "title": "Selected-Hazard Risk Ratings",
                        "type": "array",
                        "description": "Optional exact FEMA risk ratings for the selected hazard.",
                        "items": {
                            "type": "string"
                        },
                        "default": []
                    },
                    "minRiskScore": {
                        "title": "Minimum Composite Risk Score",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "number",
                        "description": "Minimum FEMA composite National Risk Index score from 0 to 100.",
                        "default": 0
                    },
                    "minExpectedAnnualLoss": {
                        "title": "Minimum Composite Expected Annual Loss",
                        "minimum": 0,
                        "type": "number",
                        "description": "Minimum FEMA composite expected annual loss value.",
                        "default": 0
                    },
                    "minHazardRiskScore": {
                        "title": "Minimum Selected-Hazard Risk Score",
                        "minimum": 0,
                        "maximum": 100,
                        "type": "number",
                        "description": "Minimum 0-100 risk score for the selected hazard.",
                        "default": 0
                    },
                    "minHazardAnnualLoss": {
                        "title": "Minimum Selected-Hazard Expected Annual Loss",
                        "minimum": 0,
                        "type": "number",
                        "description": "Minimum expected annual loss total for the selected hazard.",
                        "default": 0
                    },
                    "sortBy": {
                        "title": "Sort Results",
                        "enum": [
                            "risk",
                            "expectedAnnualLoss",
                            "socialVulnerability",
                            "resilience",
                            "hazardRisk",
                            "hazardLoss",
                            "name"
                        ],
                        "type": "string",
                        "description": "Order communities after all filters.",
                        "default": "risk"
                    },
                    "maxResults": {
                        "title": "Maximum Results",
                        "minimum": 1,
                        "maximum": 100,
                        "type": "integer",
                        "description": "Total response cap. Profiles include all 18 hazard objects.",
                        "default": 25
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
