# FEMA Public Assistance Funded Projects Scraper (`compute-edge/fema-public-assistance-scraper`) Actor

Extract FEMA Public Assistance funded project records from the OpenFEMA API. Filter by state, incident type, disaster number, and federal share obligated. Returns grant amounts, applicant names, damage categories, and obligation dates.

- **URL**: https://apify.com/compute-edge/fema-public-assistance-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 Public Assistance Funded Projects Scraper — Grant Data

Extract **FEMA Public Assistance funded project records** from the official [OpenFEMA API v2](https://www.fema.gov/about/openfema/data-sets). This actor pulls structured grant data covering every obligated Public Assistance project in FEMA's database — including federal share obligated, damage category, applicant name, county, state, and incident type — and delivers it as clean, queryable JSON.

### Features

- Filter by **state**, **incident type** (Hurricane, Flood, Fire, etc.), and **disaster number**
- Client-side filter for **minimum federal share obligated** (e.g., only projects over $1M)
- Paginates automatically through the full OpenFEMA dataset (up to 50,000 records per run)
- Ordered by most-recent **declaration date** first
- No authentication required — uses the public OpenFEMA API

### Output Data Fields

| Field | Description | Example |
|-------|-------------|---------|
| `disasterNumber` | FEMA disaster declaration number | `4611` |
| `declarationDate` | Date of federal disaster declaration | `2021-08-29T00:00:00.000Z` |
| `incidentType` | Type of natural/man-made disaster | `Hurricane` |
| `pwNumber` | Project Worksheet number | `42` |
| `applicationTitle` | Applicant and project title | `Jefferson Parish — Road Repairs` |
| `damageCategory` | FEMA damage category description | `Roads and Bridges` |
| `projectSize` | FEMA project size classification | `Large` |
| `county` | Affected county or jurisdiction | `Jefferson` |
| `state` | 2-letter state abbreviation | `LA` |
| `stateCode` | FEMA numeric state code | `22` |
| `projectAmount` | Total estimated project cost ($) | `4250000.00` |
| `federalShareObligated` | Federal dollars obligated ($) | `3187500.00` |
| `totalObligated` | Total obligated amount ($) | `3187500.00` |
| `obligatedDate` | Date the obligation was recorded | `2022-03-15T00:00:00.000Z` |

---

### How to scrape FEMA Public Assistance funded projects

Follow these steps to extract FEMA disaster grant data using this actor:

1. **Open the actor** in Apify Console and click **Try for free** or **Start**.
2. **Set your filters** in the Input tab:
   - Enter a 2-letter state code in **State** (e.g., `TX` for Texas) — or leave blank for all states.
   - Enter an **Incident Type** (e.g., `Hurricane`, `Flood`, `Fire`) — or leave blank for all types.
   - Enter a **Disaster Number** (e.g., `4611` for Hurricane Ida) to pin to a specific event.
   - Set **Minimum Federal Share Obligated** to `1000000` to only see projects with $1M+ in federal funding.
   - Set **Max Results** to limit the output size (default: 500 records).
3. **Click Start** to run the actor. The first page of 1,000 FEMA records typically loads in under 10 seconds.
4. **View results** in the Dataset tab — use the Overview table or download as JSON/CSV/Excel.
5. **Schedule runs** (optional) — use Apify's built-in scheduler to pull fresh FEMA data daily or weekly as new disaster obligations are published.

#### Example: All Hurricane projects in Texas over $500,000

```json
{
  "state": "TX",
  "incidentType": "Hurricane",
  "minFederalShareObligated": 500000,
  "maxResults": 1000
}
````

***

### Pricing

This actor uses **pay-per-result** pricing at **$0.003 per result**. In addition to the per-result fee, you pay for Apify platform compute units consumed during the run.

**Typical costs:**

- 500 records ≈ $1.50 in actor fees + ~$0.01 compute
- 5,000 records ≈ $15.00 in actor fees + ~$0.05 compute
- Full dataset (50,000 records) ≈ $150 in actor fees + ~$0.50 compute

Runs typically complete in 10–120 seconds depending on result volume and filter breadth.

***

### Input Example

```json
{
  "state": "FL",
  "incidentType": "Hurricane",
  "disasterNumber": 0,
  "minFederalShareObligated": 100000,
  "maxResults": 500
}
```

Empty input `{}` returns the 500 most recently declared projects across all states.

### Output Example

```json
{
  "disasterNumber": 4611,
  "declarationDate": "2021-08-29T00:00:00.000Z",
  "incidentType": "Hurricane",
  "pwNumber": 42,
  "applicationTitle": "Jefferson Parish — Emergency Debris Removal",
  "damageCategory": "Debris Removal",
  "projectSize": "Large",
  "county": "Jefferson",
  "state": "LA",
  "stateCode": "22",
  "projectAmount": 4250000.00,
  "federalShareObligated": 3187500.00,
  "totalObligated": 3187500.00,
  "obligatedDate": "2022-03-15T12:00:00.000Z"
}
```

***

### Other scrapers

If you're building government data pipelines, you may also find these actors useful:

- [FEMA Disasters Scraper](https://apify.com/compute-edge/fema-disasters-scraper) — Disaster declaration metadata including incident dates, counties, and declaration types
- [USASpending Awards Scraper](https://apify.com/seatsignal/usaspending-awards-scraper) — Federal contract and grant awards from USASpending.gov
- [FEMA NFIP Claims Scraper](https://apify.com/seatsignal/fema-nfip-claims-scraper) — National Flood Insurance Program claims data by ZIP code and policy type

***

### FAQ

**Q: Does this actor require an API key or login?**
A: No. The OpenFEMA API is publicly accessible without authentication. This actor makes direct requests to `https://www.fema.gov/api/open/v2/PublicAssistanceFundedProjectsDetails`.

**Q: How current is the data?**
A: OpenFEMA data is refreshed continuously as FEMA processes new obligation records. Most records show a `lastRefresh` timestamp from within the past 24–72 hours.

**Q: What is the difference between `projectAmount` and `federalShareObligated`?**
A: `projectAmount` is the total estimated project cost (including state/local share). `federalShareObligated` is the dollar amount that FEMA has formally committed to pay — typically 75% of the project amount for most disasters, though it can vary.

**Q: Can I filter by county?**
A: County filtering is not currently supported server-side (the FEMA API does not index county as a primary filter key). However, you can filter by state and then process the JSON output to extract specific counties downstream.

**Q: What incident types are available?**
A: Common values include `Hurricane`, `Flood`, `Fire`, `Earthquake`, `Tornado`, `Winter Storm`, `Severe Storm`, `Coastal Storm`, `Typhoon`, `Snow`, `Straight-line Winds`. Use the exact spelling as FEMA records it.

***

### Legal Disclaimer

This actor accesses publicly available, non-personal government data published by FEMA under the [OpenFEMA Terms and Conditions](https://www.fema.gov/about/openfema/terms-conditions). All data originates from official U.S. government sources. No personal data of private individuals is collected or processed. This actor is provided for research, business intelligence, and data analysis purposes. Users are responsible for complying with applicable laws and regulations when using the extracted data.

For support or questions, contact the actor publisher via Apify.

# Actor input Schema

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

Filter by U.S. state abbreviation (2-letter code). Examples: 'TX', 'FL', 'CA'. Leave empty to include all states.

## `incidentType` (type: `string`):

Filter by FEMA incident type. Examples: 'Hurricane', 'Flood', 'Fire', 'Earthquake', 'Winter Storm', 'Tornado'. Leave empty for all incident types.

## `disasterNumber` (type: `integer`):

Filter by specific FEMA disaster declaration number (e.g., 4611 for Hurricane Ida). Set to 0 to include all disasters.

## `minFederalShareObligated` (type: `number`):

Only include projects where the federal share obligated is at least this amount in dollars. Set to 0 to include all amounts.

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

Maximum number of project records to return. Set to 0 for unlimited (may take a long time for large result sets).

## Actor input object example

```json
{
  "state": "",
  "incidentType": "",
  "disasterNumber": 0,
  "minFederalShareObligated": 0,
  "maxResults": 500
}
```

# 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-public-assistance-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-public-assistance-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-public-assistance-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FEMA Public Assistance Funded Projects Scraper",
        "description": "Extract FEMA Public Assistance funded project records from the OpenFEMA API. Filter by state, incident type, disaster number, and federal share obligated. Returns grant amounts, applicant names, damage categories, and obligation dates.",
        "version": "0.1",
        "x-build-id": "sN6eGVcg4cKGZaiwH"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/compute-edge~fema-public-assistance-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-compute-edge-fema-public-assistance-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-public-assistance-scraper/runs": {
            "post": {
                "operationId": "runs-sync-compute-edge-fema-public-assistance-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-public-assistance-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-compute-edge-fema-public-assistance-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 (2-letter code)",
                        "type": "string",
                        "description": "Filter by U.S. state abbreviation (2-letter code). Examples: 'TX', 'FL', 'CA'. Leave empty to include all states.",
                        "default": ""
                    },
                    "incidentType": {
                        "title": "Incident Type",
                        "type": "string",
                        "description": "Filter by FEMA incident type. Examples: 'Hurricane', 'Flood', 'Fire', 'Earthquake', 'Winter Storm', 'Tornado'. Leave empty for all incident types.",
                        "default": ""
                    },
                    "disasterNumber": {
                        "title": "Disaster Number",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filter by specific FEMA disaster declaration number (e.g., 4611 for Hurricane Ida). Set to 0 to include all disasters.",
                        "default": 0
                    },
                    "minFederalShareObligated": {
                        "title": "Minimum Federal Share Obligated ($)",
                        "minimum": 0,
                        "type": "number",
                        "description": "Only include projects where the federal share obligated is at least this amount in dollars. Set to 0 to include all amounts.",
                        "default": 0
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 50000,
                        "type": "integer",
                        "description": "Maximum number of project records to return. Set to 0 for unlimited (may take a long time for large result sets).",
                        "default": 500
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
