# FEMA Disaster Declaration Search (`ryanclinton/fema-disaster-search`) Actor

FEMA Disaster Declaration Search connects directly to the U.S. Federal Emergency Management Agency (FEMA) OpenFEMA v2 API to retrieve structured disaster declaration data.

- **URL**: https://apify.com/ryanclinton/fema-disaster-search.md
- **Developed by:** [Ryan Clinton](https://apify.com/ryanclinton) (community)
- **Categories:** AI, Developer tools
- **Stats:** 6 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.00 / 1,000 disaster fetcheds

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 Disaster Declaration Search

### What does FEMA Disaster Declaration Search do?

FEMA Disaster Declaration Search connects directly to the U.S. Federal Emergency Management Agency (FEMA) OpenFEMA v2 API to retrieve structured disaster declaration data. Every time the President declares a major disaster, emergency, or fire management assistance event, FEMA creates a formal record. This actor lets you search, filter, and export those records at scale.

The actor queries the `DisasterDeclarationsSummaries` endpoint, which contains every federal disaster declaration going back to 1953. Each record includes the disaster number, declaration type, incident type, affected state and designated area, incident begin and end dates, which federal assistance programs were activated (Individual & Households, Individual Assistance, Public Assistance, Hazard Mitigation), and whether it was a tribal request. Results are returned in reverse chronological order with configurable maximum count.

### Why use FEMA Disaster Declaration Search on Apify?

- **No OData syntax required** -- The FEMA API uses OData query syntax (`$filter`, `$orderby`, `$top`, `$skip`). This actor translates a simple form into the correct OData query automatically.
- **Automatic pagination** -- The FEMA API returns up to 1,000 records per page. The actor handles multi-page fetches seamlessly with 300 ms delays.
- **Clean field names** -- Raw FEMA field names are transformed into readable camelCase output. Declaration types are decoded (DR → "Major Disaster"). Dates are cleaned to YYYY-MM-DD.
- **Schedule for monitoring** -- Run daily or weekly to track new disaster declarations, with webhook alerts to Slack, email, or any endpoint.
- **No API key required** -- Uses the free, public OpenFEMA API with no authentication.

### Key features

- **Comprehensive coverage** from 1953 to present, including Major Disasters (DR), Emergencies (EM), and Fire Management Assistance (FM) declarations
- **State filter** using standard 2-letter state codes (all 50 states and U.S. territories)
- **Incident type filter** for Fire, Hurricane, Flood, Tornado, Severe Storm(s), Earthquake, Snow, Drought, Biological, Coastal Storm, or Other
- **Declaration type filter** for DR (Major Disaster), EM (Emergency), or FM (Fire Management)
- **Fiscal year filter** to focus on declarations from a specific federal fiscal year
- **Date range filter** on declaration date with ISO format dates
- **Assistance program flags** showing which federal programs (IH, IA, PA, HM) were activated
- **Up to 10,000 results** per run with automatic pagination

### How to use FEMA Disaster Declaration Search

1. Navigate to the [FEMA Disaster Declaration Search](https://apify.com/ryanclinton/fema-disaster-search) on the Apify Store.
2. Click **Try for free** to open the actor in Apify Console.
3. Optionally set a state filter, incident type, declaration type, fiscal year, or date range.
4. Click **Start** and wait for the run to complete.
5. Download your results from the **Dataset** tab in JSON, CSV, or Excel format.

### Input parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `state` | string | No | -- | Two-letter U.S. state/territory code (e.g., "CA", "TX", "FL", "PR") |
| `incidentType` | select | No | -- | Disaster type: Fire, Hurricane, Flood, Tornado, Severe Storm(s), Earthquake, Snow, Drought, Biological, Coastal Storm, or Other |
| `declarationType` | select | No | -- | FEMA declaration category: DR (Major Disaster), EM (Emergency), or FM (Fire Management) |
| `fyDeclared` | integer | No | -- | Federal fiscal year (e.g., 2024, 2025) |
| `declarationDateStart` | string | No | -- | Start of date range (YYYY-MM-DD) |
| `declarationDateEnd` | string | No | -- | End of date range (YYYY-MM-DD) |
| `maxResults` | integer | No | `100` | Maximum number of declarations to return (1--10,000) |

#### Input examples

**Recent California wildfires:**

```json
{
    "state": "CA",
    "incidentType": "Fire",
    "fyDeclared": 2025,
    "maxResults": 200
}
````

**All hurricane declarations in 2024:**

```json
{
    "incidentType": "Hurricane",
    "declarationDateStart": "2024-01-01",
    "declarationDateEnd": "2024-12-31",
    "maxResults": 500
}
```

**Major disasters in Florida:**

```json
{
    "state": "FL",
    "declarationType": "DR",
    "maxResults": 500
}
```

**All disaster types in 2025:**

```json
{
    "fyDeclared": 2025,
    "maxResults": 1000
}
```

#### Input tips

- **Combine filters for precision** -- Use `state` + `incidentType` together to narrow results. Searching for hurricanes in Florida returns a focused dataset rather than thousands of records.
- **Use fiscal year for annual analysis** -- The `fyDeclared` filter is useful for year-over-year comparison of disaster frequency by state or type.
- **Note on designated areas** -- Each declaration record corresponds to a specific county or designated area. A single disaster event (e.g., DR-4806) will have multiple records, one for each affected county.
- **Schedule regular runs** -- Set up daily or weekly schedules to automatically capture new declarations.
- **Leave all filters empty** to get the most recent declarations across all states and types.

### Output example

```json
{
    "femaDeclarationString": "DR-4806-CA",
    "disasterNumber": 4806,
    "state": "CA",
    "declarationType": "DR",
    "declarationTypeName": "Major Disaster",
    "declarationDate": "2025-01-08",
    "fiscalYear": 2025,
    "incidentType": "Fire",
    "declarationTitle": "WILDFIRES AND STRAIGHT-LINE WINDS",
    "incidentBeginDate": "2025-01-07",
    "incidentEndDate": null,
    "closeoutDate": null,
    "designatedArea": "Los Angeles (County)",
    "region": 9,
    "ihProgram": true,
    "iaProgram": true,
    "paProgram": true,
    "hmProgram": true,
    "tribalRequest": false,
    "extractedAt": "2025-06-15T14:30:00.000Z"
}
```

#### Output fields

| Field | Type | Description |
|-------|------|-------------|
| `femaDeclarationString` | string | Official FEMA declaration identifier (e.g., "DR-4806-CA") |
| `disasterNumber` | number | Unique numeric disaster identifier assigned by FEMA |
| `state` | string | Two-letter state or territory code |
| `declarationType` | string | Declaration code: DR, EM, or FM |
| `declarationTypeName` | string | Human-readable name: Major Disaster, Emergency, or Fire Management |
| `declarationDate` | string | Date the disaster was officially declared (YYYY-MM-DD) |
| `fiscalYear` | number | Federal fiscal year of the declaration |
| `incidentType` | string | Type of disaster (Fire, Hurricane, Flood, Tornado, etc.) |
| `declarationTitle` | string | Brief descriptive title for the disaster event |
| `incidentBeginDate` | string | Start date of the incident (YYYY-MM-DD) |
| `incidentEndDate` | string|null | End date of the incident (null if ongoing) |
| `closeoutDate` | string|null | Date FEMA closed out the disaster (null if still open) |
| `designatedArea` | string | Specific county, parish, or tribal area covered |
| `region` | number | FEMA region number (1-10) |
| `ihProgram` | boolean | Individual & Households Program activated |
| `iaProgram` | boolean | Individual Assistance Program activated |
| `paProgram` | boolean | Public Assistance Program activated |
| `hmProgram` | boolean | Hazard Mitigation Program activated |
| `tribalRequest` | boolean | Whether this was a tribal government request |
| `extractedAt` | string | ISO 8601 timestamp of extraction |

#### Declaration types

| Code | Name | Description |
|------|------|-------------|
| DR | Major Disaster | Most common type, unlocks the widest range of federal assistance including IH, IA, PA, and HM programs |
| EM | Emergency | Shorter-duration events requiring immediate federal support, typically with more limited assistance |
| FM | Fire Management | Specifically for wildfire suppression assistance from the federal government |

#### Assistance programs

| Flag | Program | Description |
|------|---------|-------------|
| `ihProgram` | Individual & Households | Direct assistance to individuals and households (housing, personal property, other needs) |
| `iaProgram` | Individual Assistance | Broader individual assistance including crisis counseling and disaster legal services |
| `paProgram` | Public Assistance | Federal aid to state/local governments for debris removal, emergency protective measures, and infrastructure repair |
| `hmProgram` | Hazard Mitigation | Funding to reduce future disaster risk through mitigation projects |

### Use cases

- **Emergency management** -- Monitor new disaster declarations in real time. Schedule daily runs with webhooks to alert your team when new declarations are issued.
- **Insurance and risk analysis** -- Analyze historical disaster frequency by state, type, and severity to inform underwriting decisions and catastrophe models.
- **Government contracting** -- Track where federal disaster assistance is being deployed to identify contracting opportunities for recovery services.
- **Journalism and research** -- Investigate disaster trends, climate change impacts, and federal response patterns across decades of data.
- **Nonprofit planning** -- Identify areas receiving disaster declarations to coordinate relief efforts and grant applications.
- **Academic analysis** -- Study disaster patterns by type, geography, and fiscal year for climate science and public policy research.

### Programmatic access (API)

**Python:**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_API_TOKEN")

run = client.actor("ryanclinton/fema-disaster-search").call(run_input={
    "state": "CA",
    "incidentType": "Fire",
    "fyDeclared": 2025,
    "maxResults": 200,
})

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"[{item['declarationType']}] {item['femaDeclarationString']}")
    print(f"  {item['declarationTitle']} — {item['designatedArea']}")
    print(f"  Date: {item['declarationDate']} | Programs: IH={item['ihProgram']}, PA={item['paProgram']}")
```

**JavaScript:**

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

const client = new ApifyClient({ token: "YOUR_API_TOKEN" });

const run = await client.actor("ryanclinton/fema-disaster-search").call({
    state: "CA",
    incidentType: "Fire",
    fyDeclared: 2025,
    maxResults: 200,
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
for (const item of items) {
    console.log(`[${item.declarationTypeName}] ${item.femaDeclarationString}`);
    console.log(`  ${item.declarationTitle} — ${item.designatedArea}`);
}
```

**cURL:**

```bash
## Start a run
curl "https://api.apify.com/v2/acts/ryanclinton~fema-disaster-search/runs" \
    -X POST \
    -H "Content-Type: application/json" \
    -H "Authorization: Bearer YOUR_API_TOKEN" \
    -d '{
        "state": "CA",
        "incidentType": "Fire",
        "fyDeclared": 2025,
        "maxResults": 200
    }'

## Fetch results (after run completes)
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=json" \
    -H "Authorization: Bearer YOUR_API_TOKEN"
```

### How it works -- technical details

```
Input (state, incidentType, declarationType, fyDeclared, dates)
  │
  ▼
┌─────────────────────────────────────────────┐
│  1. OData Filter Builder                    │
│  • state → state eq 'CA' (uppercased)      │
│  • incidentType → incidentType eq 'Fire'   │
│  • declarationType → declarationType eq    │
│    'DR'                                     │
│  • fyDeclared → fyDeclared eq 2025         │
│  • dateStart → declarationDate ge          │
│    '2024-01-01T00:00:00.000Z'              │
│  • dateEnd → declarationDate le            │
│    '2024-12-31T23:59:59.999Z'              │
│  • All parts joined with ' and '           │
└──────────────────┬──────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────────┐
│  2. Paginated Fetcher                       │
│  • GET fema.gov/api/open/v2/               │
│    DisasterDeclarationsSummaries            │
│  • $orderby=declarationDate desc           │
│  • $top=1000 (API max per page)            │
│  • $skip incremented each page             │
│  • $filter=<OData expression>              │
│  • 300 ms delay between pages              │
└──────────────────┬──────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────────┐
│  3. Transform                               │
│  • Declaration type: DR→Major Disaster,    │
│    EM→Emergency, FM→Fire Management        │
│  • Dates: ISO timestamp → YYYY-MM-DD      │
│  • null for missing end/closeout dates     │
│  • Program flags preserved as booleans     │
└──────────────────┬──────────────────────────┘
                   │
                   ▼
┌─────────────────────────────────────────────┐
│  4. Output & Summary                        │
│  • Each declaration → Apify dataset        │
│  • Summary: incident type breakdown,        │
│    top 5 states, declaration type counts    │
└─────────────────────────────────────────────┘
```

#### OData query syntax

The FEMA API uses OData (Open Data Protocol) for filtering. The actor constructs these filters automatically:

| Input | OData expression | Notes |
|-------|-----------------|-------|
| `state: "CA"` | `state eq 'CA'` | Uppercased to match FEMA convention |
| `incidentType: "Fire"` | `incidentType eq 'Fire'` | Exact match on disaster type |
| `declarationType: "DR"` | `declarationType eq 'DR'` | Filter by declaration category |
| `fyDeclared: 2025` | `fyDeclared eq 2025` | Integer comparison (no quotes) |
| `declarationDateStart: "2024-01-01"` | `declarationDate ge '2024-01-01T00:00:00.000Z'` | Greater than or equal |
| `declarationDateEnd: "2024-12-31"` | `declarationDate le '2024-12-31T23:59:59.999Z'` | Less than or equal |

Multiple filters are joined with `and` (OData AND operator).

#### FEMA regions

| Region | States & Territories |
|--------|---------------------|
| 1 | CT, ME, MA, NH, RI, VT |
| 2 | NJ, NY, PR, VI |
| 3 | DC, DE, MD, PA, VA, WV |
| 4 | AL, FL, GA, KY, MS, NC, SC, TN |
| 5 | IL, IN, MI, MN, OH, WI |
| 6 | AR, LA, NM, OK, TX |
| 7 | IA, KS, MO, NE |
| 8 | CO, MT, ND, SD, UT, WY |
| 9 | AZ, CA, HI, NV, GU, AS, MP, MH, FM, PW |
| 10 | AK, ID, OR, WA |

### How much does it cost to use?

| Scenario | Declarations | Pages | Time | Est. cost |
|----------|-------------|-------|------|-----------|
| Quick search | 100 | 1 | ~10 sec | ~$0.001 |
| State history | 500 | 1 | ~10 sec | ~$0.001 |
| Annual all-types | 2,000 | 2 | ~15 sec | ~$0.002 |
| Large dataset | 5,000 | 5 | ~20 sec | ~$0.005 |
| Maximum extraction | 10,000 | 10 | ~30 sec | ~$0.01 |

The OpenFEMA API is completely free. Apify's **free tier** includes $5 of monthly platform usage.

### Limitations

1. **10,000 result maximum** -- The actor caps at 10,000 results per run. Use date ranges or state filters to split larger datasets.
2. **Designated area granularity** -- Each record represents a single county/area. A major disaster affecting 50 counties generates 50 records with the same disaster number.
3. **No financial data** -- This endpoint provides declaration metadata only. For actual spending amounts, use the [USAspending Federal Spending](https://apify.com/ryanclinton/usaspending-search) actor.
4. **Incident types are fixed** -- The API supports a specific set of incident types. Custom or sub-categories cannot be searched.
5. **Date format required** -- Dates must be entered in YYYY-MM-DD format. Other formats will not match.
6. **No full-text search** -- You cannot search by declaration title text. Use state, type, and date filters to narrow results.
7. **Data lag** -- There may be a short delay between when a disaster is declared and when the record appears in the API.
8. **Tribal requests** -- Tribal disaster declarations are included but may have different designation patterns than state-level declarations.

### Responsible use

- FEMA disaster data is **public information**. Use it for emergency management, research, and planning.
- Follow the [OpenFEMA Terms of Service](https://www.fema.gov/about/openfema/terms-conditions) when using the data.
- When building public-facing applications, present disaster information accurately and with sensitivity to affected communities.
- Do not use disaster data to target vulnerable populations for predatory commercial purposes.

### FAQ

**Do I need a FEMA API key?**
No. The OpenFEMA API is publicly accessible without authentication.

**How far back does the data go?**
The FEMA database includes records from 1953 to the present -- over 70 years of U.S. disaster history.

**What is the difference between DR, EM, and FM?**
DR (Major Disaster) is the most common and unlocks the widest federal aid. EM (Emergency) is for shorter-duration events. FM (Fire Management) is specifically for wildfire suppression.

**Why do some disasters have dozens of records?**
Each record represents a specific county or designated area. A major hurricane affecting 50 counties produces 50 records, all sharing the same disaster number.

**Can I get data for U.S. territories?**
Yes. The API includes Puerto Rico (PR), U.S. Virgin Islands (VI), Guam (GU), American Samoa (AS), and other territories.

**What does the region field mean?**
FEMA divides the U.S. into 10 administrative regions. The region number indicates which FEMA regional office oversees the affected state.

### Integrations and related actors

The output dataset can be exported in JSON, CSV, or Excel format, or accessed programmatically via the Apify API. Use webhooks to trigger automated workflows when a run completes.

| Related Actor | Description | Use with |
|---------------|-------------|----------|
| [NOAA Weather Alert Monitor](https://apify.com/ryanclinton/noaa-weather-alerts) | Active weather alerts from the National Weather Service | Correlate severe weather with disaster declarations |
| [USGS Earthquake Search](https://apify.com/ryanclinton/usgs-earthquake-search) | USGS seismic event data | Cross-reference which earthquakes triggered federal responses |
| [GDACS Disaster Alerts](https://apify.com/ryanclinton/gdacs-disaster-alerts) | Global disaster alerts | Combined domestic and international monitoring |
| [USAspending Federal Spending](https://apify.com/ryanclinton/usaspending-search) | Federal spending data | Track actual disaster relief spending by disaster number |
| [CPSC Product Recall Monitor](https://apify.com/ryanclinton/cpsc-recall-monitor) | Consumer product safety recalls | Broader federal safety monitoring |

Connect with any Apify integration including Google Sheets, Slack, Zapier, Make (Integromat), Amazon S3, and custom API endpoints to build automated disaster monitoring workflows.

# Actor input Schema

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

Filter by state (2-letter code, e.g. 'CA', 'TX', 'FL')

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

Filter by disaster type

## `declarationType` (type: `string`):

Filter by FEMA declaration type

## `fyDeclared` (type: `integer`):

Filter by fiscal year declared (e.g. 2024, 2025)

## `declarationDateStart` (type: `string`):

Filter declarations after this date (YYYY-MM-DD)

## `declarationDateEnd` (type: `string`):

Filter declarations before this date (YYYY-MM-DD)

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

Maximum number of declarations to return

## Actor input object example

```json
{
  "state": "CA",
  "fyDeclared": 2025,
  "maxResults": 100
}
```

# Actor output Schema

## `results` (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 = {
    "state": "CA",
    "fyDeclared": 2025,
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("ryanclinton/fema-disaster-search").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 = {
    "state": "CA",
    "fyDeclared": 2025,
    "maxResults": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("ryanclinton/fema-disaster-search").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 '{
  "state": "CA",
  "fyDeclared": 2025,
  "maxResults": 100
}' |
apify call ryanclinton/fema-disaster-search --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=ryanclinton/fema-disaster-search",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "FEMA Disaster Declaration Search",
        "description": "FEMA Disaster Declaration Search connects directly to the U.S. Federal Emergency Management Agency (FEMA) OpenFEMA v2 API to retrieve structured disaster declaration data.",
        "version": "1.0",
        "x-build-id": "byhgLfEClrvJZVn5I"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ryanclinton~fema-disaster-search/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ryanclinton-fema-disaster-search",
                "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/ryanclinton~fema-disaster-search/runs": {
            "post": {
                "operationId": "runs-sync-ryanclinton-fema-disaster-search",
                "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/ryanclinton~fema-disaster-search/run-sync": {
            "post": {
                "operationId": "run-sync-ryanclinton-fema-disaster-search",
                "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 code, e.g. 'CA', 'TX', 'FL')"
                    },
                    "incidentType": {
                        "title": "Incident Type",
                        "enum": [
                            "Fire",
                            "Hurricane",
                            "Flood",
                            "Tornado",
                            "Severe Storm(s)",
                            "Earthquake",
                            "Snow",
                            "Drought",
                            "Biological",
                            "Coastal Storm",
                            "Other"
                        ],
                        "type": "string",
                        "description": "Filter by disaster type"
                    },
                    "declarationType": {
                        "title": "Declaration Type",
                        "enum": [
                            "DR",
                            "EM",
                            "FM"
                        ],
                        "type": "string",
                        "description": "Filter by FEMA declaration type"
                    },
                    "fyDeclared": {
                        "title": "Fiscal Year",
                        "type": "integer",
                        "description": "Filter by fiscal year declared (e.g. 2024, 2025)"
                    },
                    "declarationDateStart": {
                        "title": "Declaration Date Start",
                        "type": "string",
                        "description": "Filter declarations after this date (YYYY-MM-DD)"
                    },
                    "declarationDateEnd": {
                        "title": "Declaration Date End",
                        "type": "string",
                        "description": "Filter declarations before this date (YYYY-MM-DD)"
                    },
                    "maxResults": {
                        "title": "Max Results",
                        "minimum": 1,
                        "maximum": 10000,
                        "type": "integer",
                        "description": "Maximum number of declarations to return",
                        "default": 100
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
