# FEMA API

> FEMA returns flood zone details and federal disaster declarations as a workflow and API.

FEMA, also known as the Federal Emergency Management Agency, provides flood zone details for a US street address through Get flood zone. List disaster declarations returns federal disasters for a required US state, with optional date, county, result count, and incident category filters.

- Page: https://fous.com/tools/fema
- Handle: `@fema`
- Category: [Government](https://fous.com/tools/category/government)
- Source website: https://fema.gov
- Last verified: Sep 29, 2026

## Methods

### Get flood zone

Operation `get_flood_zone`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

Find the FEMA flood zone, risk designation, elevation, map panel, and community for a US street address. Census address coordinates are approximate; confirm property-level requirements with FEMA and your lender.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `address` | string | yes | `"1000 Ocean Dr, Miami Beach, FL 33139"` | Full US street address, e.g. 1000 Ocean Dr, Miami Beach, FL 33139. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "address"
  ],
  "properties": {
    "address": {
      "type": "string",
      "description": "Full US street address, e.g. 1000 Ocean Dr, Miami Beach, FL 33139.",
      "examples": [
        "1000 Ocean Dr, Miami Beach, FL 33139",
        "500 Main St, Houston, TX 77002"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "address": "1000 Ocean Dr, Miami Beach, FL 33139"
    },
    {
      "address": "500 Main St, Houston, TX 77002"
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `note` | string or null |  | Explanation when no digital flood map or zone is available. |
| `latitude` | number | `25.780437512467` | Census geocoder latitude. |
| `longitude` | number | `-80.130701760056` | Census geocoder longitude. |
| `flood_zone` | string or null | `"AE"` | FEMA flood zone code, or null if no digital flood zone is available. |
| `community_name` | string or null | `"CITY OF MIAMI BEACH"` | FEMA political jurisdiction name. |
| `matched_address` | string | `"1000 OCEAN DR, MIAMI BEACH, FL, 33139"` | Street address matched by the Census geocoder. |
| `flood_zone_meaning` | string or null | `"High-risk flood area; flood insurance is usually required with a federally backed mortgage."` | Plain-language flood hazard designation. |
| `flood_map_panel_number` | string or null | `"12086C0319L"` | FEMA FIRM panel number. |
| `flood_map_effective_date` | string or null | `"2009-09-11"` | Effective date of the mapped FIRM panel. |
| `base_flood_elevation_feet` | number or null | `8` | Mapped static base flood elevation in feet, if available. |
| `fema_map_service_center_link` | string | `"https://msc.fema.gov/portal/search?AddressQuery=1000%20OCEAN%20DR%2C%20MIAMI%20BEACH%2C%20FL%2C%2033139"` | Link to search this address on FEMA Map Service Center. |
| `in_high_risk_special_flood_hazard_area` | boolean or null | `true` | Whether FEMA marks the location as in a high-risk Special Flood Hazard Area; null if unavailable. |

**Example input**

```json
{
  "address": "1000 Ocean Dr, Miami Beach, FL 33139"
}
```

**Example output**

```json
{
  "note": null,
  "latitude": 25.780437512467,
  "longitude": -80.130701760056,
  "flood_zone": "AE",
  "community_name": "CITY OF MIAMI BEACH",
  "matched_address": "1000 OCEAN DR, MIAMI BEACH, FL, 33139",
  "flood_zone_meaning": "High-risk flood area; flood insurance is usually required with a federally backed mortgage.",
  "flood_map_panel_number": "12086C0319L",
  "flood_map_effective_date": "2009-09-11",
  "base_flood_elevation_feet": 8,
  "fema_map_service_center_link": "https://msc.fema.gov/portal/search?AddressQuery=1000%20OCEAN%20DR%2C%20MIAMI%20BEACH%2C%20FL%2C%2033139",
  "in_high_risk_special_flood_hazard_area": true
}
```

### List disaster declarations

Operation `list_disaster_declarations`, version 1. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.

List federal disaster declarations in a US state, optionally narrowed to a county, declaration date and incident category. Returns one entry per disaster with all designated counties; statewide or tribal-only declarations may have no county list.

**Input**

| Field | Type | Required | Example | Description |
|---|---|---|---|---|
| `since` | string | no | `"2022-01-01"` | Include declarations on or after this date, for example 2022-01-01. Defaults to five years ago. |
| `state` | string | yes | `"Florida"` | US state name or two-letter code, for example Florida or FL. |
| `county` | string | no | `"Lee County"` | County name, for example Lee County. |
| `max_results` | integer | no | `20` | Maximum number of disasters, for example 20. |
| `disaster_type` | string | no | `"hurricane"` | Incident category, for example hurricane; other includes incidents outside the named categories. |

**Input schema**

```json
{
  "type": "object",
  "required": [
    "state"
  ],
  "properties": {
    "since": {
      "type": "string",
      "format": "date",
      "description": "Include declarations on or after this date, for example 2022-01-01. Defaults to five years ago.",
      "examples": [
        "2022-01-01",
        "2025-01-01"
      ]
    },
    "state": {
      "type": "string",
      "description": "US state name or two-letter code, for example Florida or FL.",
      "examples": [
        "Florida",
        "California",
        "Alaska"
      ]
    },
    "county": {
      "type": "string",
      "default": "",
      "description": "County name, for example Lee County.",
      "examples": [
        "Lee County",
        "Nonexistent County"
      ]
    },
    "max_results": {
      "type": "integer",
      "default": 20,
      "maximum": 100,
      "minimum": 1,
      "description": "Maximum number of disasters, for example 20.",
      "x-fous-developer": true,
      "examples": [
        20,
        3,
        2
      ]
    },
    "disaster_type": {
      "enum": [
        "any",
        "hurricane",
        "flood",
        "fire",
        "severe_storm",
        "tornado",
        "winter_storm",
        "earthquake",
        "other"
      ],
      "type": "string",
      "default": "any",
      "description": "Incident category, for example hurricane; other includes incidents outside the named categories.",
      "examples": [
        "hurricane",
        "fire"
      ]
    }
  },
  "additionalProperties": false,
  "examples": [
    {
      "since": "2022-01-01",
      "state": "Florida",
      "county": "Lee County",
      "max_results": 20,
      "disaster_type": "hurricane"
    },
    {
      "since": "2025-01-01",
      "state": "California",
      "max_results": 3,
      "disaster_type": "fire"
    },
    {
      "since": "2025-01-01",
      "state": "Alaska",
      "county": "Nonexistent County",
      "max_results": 2
    }
  ]
}
```

**Output**

| Field | Type | Example | Description |
|---|---|---|---|
| `disasters` | array |  | Disasters, newest declaration first. |
| `disasters[].link` | string | `"https://www.fema.gov/disaster/4834"` | FEMA disaster page. |
| `disasters[].title` | string | `"Hurricane Milton"` | Declaration title, for example Hurricane Ian. |
| `disasters[].declared_date` | string | `"2024-10-11"` |  |
| `disasters[].incident_type` | string | `"Hurricane"` | FEMA incident type, for example Hurricane. |
| `disasters[].disaster_number` | string | `"DR-4834-FL"` | FEMA disaster number, for example DR-4673-FL. |
| `disasters[].counties_covered` | array |  | Counties and county-equivalents named in the declaration. |
| `disasters[].declaration_type` | string | `"major disaster"` | Major disaster, emergency or fire management. |
| `disasters[].incident_end_date` | string or null | `"2024-11-02"` |  |
| `disasters[].incident_start_date` | string or null | `"2024-10-05"` |  |
| `disasters[].assistance_available` | array |  | Individual assistance, public assistance or hazard mitigation. |

**Example input**

```json
{
  "since": "2022-01-01",
  "state": "Florida",
  "county": "Lee County",
  "max_results": 20,
  "disaster_type": "hurricane"
}
```

**Example output**

```json
{
  "disasters": [
    {
      "link": "https://www.fema.gov/disaster/4834",
      "title": "Hurricane Milton",
      "declared_date": "2024-10-11",
      "incident_type": "Hurricane",
      "disaster_number": "DR-4834-FL",
      "counties_covered": [
        "Alachua County",
        "Baker County",
        "Bradford County"
      ],
      "declaration_type": "major disaster",
      "incident_end_date": "2024-11-02",
      "incident_start_date": "2024-10-05",
      "assistance_available": [
        "individual assistance",
        "public assistance",
        "hazard mitigation"
      ]
    },
    {
      "link": "https://www.fema.gov/disaster/3622",
      "title": "Hurricane Milton",
      "declared_date": "2024-10-07",
      "incident_type": "Hurricane",
      "disaster_number": "EM-3622-FL",
      "counties_covered": [
        "Alachua County",
        "Baker County",
        "Bradford County"
      ],
      "declaration_type": "emergency",
      "incident_end_date": "2024-11-02",
      "incident_start_date": "2024-10-05",
      "assistance_available": [
        "public assistance"
      ]
    },
    {
      "link": "https://www.fema.gov/disaster/4828",
      "title": "Hurricane Helene",
      "declared_date": "2024-09-28",
      "incident_type": "Hurricane",
      "disaster_number": "DR-4828-FL",
      "counties_covered": [
        "Alachua County",
        "Baker County",
        "Bay County"
      ],
      "declaration_type": "major disaster",
      "incident_end_date": "2024-10-07",
      "incident_start_date": "2024-09-23",
      "assistance_available": [
        "individual assistance",
        "public assistance",
        "hazard mitigation"
      ]
    }
  ]
}
```

## Quick start

Replace `YOUR_API_KEY` with a Fous API key. To create one, open Developers at the bottom of Fous Studio, turn on Developer mode, then go to API keys (https://app.fous.com/keys). Change the values in `input` to run the same tool on new data.

```bash
curl 'https://api.fous.com/v1/query' \
  --fail-with-body --silent --show-error --max-time 180 \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H 'Content-Type: application/json' \
  --data-raw '{
  "api": "@fema",
  "visibility": "public",
  "operation": "get_flood_zone",
  "version": 1,
  "input": {
    "address": "1000 Ocean Dr, Miami Beach, FL 33139"
  },
  "response": {
    "format": "json"
  }
}'
```

```python
# Save as fous.py and run with python3 fous.py. No packages needed.
import json
import urllib.error
import urllib.request

api_key = "YOUR_API_KEY"

body = json.loads("{\n  \"api\": \"@fema\",\n  \"visibility\": \"public\",\n  \"operation\": \"get_flood_zone\",\n  \"version\": 1,\n  \"input\": {\n    \"address\": \"1000 Ocean Dr, Miami Beach, FL 33139\"\n  },\n  \"response\": {\n    \"format\": \"json\"\n  }\n}")
request = urllib.request.Request(
    "https://api.fous.com/v1/query",
    data=json.dumps(body).encode("utf-8"),
    headers={
        "Authorization": f"Bearer {api_key}",
        "Content-Type": "application/json",
    },
    method="POST",
)
try:
    with urllib.request.urlopen(request, timeout=180) as response:
        result = json.load(response)
except urllib.error.HTTPError as error:
    raise RuntimeError(f"HTTP {error.code}: {error.read().decode('utf-8', errors='replace')}") from error
if result.get("success") is False:
    raise RuntimeError(result.get("error", {}).get("message", "Request failed"))
print(json.dumps(result["data"]["output"], indent=2))
```

```typescript
// Save as fous.mts and run with npx tsx fous.mts.
const apiKey = "YOUR_API_KEY";

const response = await fetch("https://api.fous.com/v1/query", {
  method: "POST",
  headers: {
    "Authorization": `Bearer ${apiKey}`,
    "Content-Type": "application/json",
  },
  signal: AbortSignal.timeout(180_000),
  body: JSON.stringify({
  "api": "@fema",
  "visibility": "public",
  "operation": "get_flood_zone",
  "version": 1,
  "input": {
    "address": "1000 Ocean Dr, Miami Beach, FL 33139"
  },
  "response": {
    "format": "json"
  }
}),
});
type ApiResult = { success: boolean; data?: { output: unknown }; error?: { message: string } };
const result: ApiResult = await response.json();
if (!response.ok || result.success === false) {
  throw new Error(result.error?.message ?? `HTTP ${response.status}`);
}
if (!result.data) throw new Error("Missing API response data");
console.log(result.data.output);
```

## Use from an AI assistant

Connect this tool to Claude Code, Claude Desktop, Cursor, VS Code, Codex and any MCP client as its own MCP server. Each method is a typed tool whose arguments are the method’s input.

- Server URL: `https://api.fous.com/mcp/tools/fema`
- Authorization: `Authorization: Bearer <Fous API key>`

**Tools**

- `get_flood_zone`: Get flood zone. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `list_disaster_declarations`: List disaster declarations. 1 credit per completed call. Failed calls without a completed billing receipt are free; completed work can remain charged if delivery is interrupted.
- `fous_get_run`: the result of a run that was still going, by its `request_id`. Free.

Claude Code:

```bash
claude mcp add --scope user --transport http fous-fema https://api.fous.com/mcp/tools/fema --header "Authorization: Bearer ${FOUS_API_KEY:?Set FOUS_API_KEY to your Fous API key}"
```

To give the assistant every tool, connect `https://api.fous.com/mcp`: it finds one with `fous_search_tools` and runs it with `fous_run_tool`. Setup for other clients: https://fous.com/llms-full.txt.

## Use cases

- Check a property's mapped flood hazard before reviewing insurance needs
- Find disaster declarations affecting a state or county
- Track federal disaster declarations by incident category and date
- Review mapped flood elevations and map panel details for an address

## FAQ

### Can I run it with my own inputs?

Yes. Change the inputs in Studio and press Run, or send new inputs from your code, or ask a connected AI assistant.

### Can I call this FEMA tool as an API?

Yes. Send a POST request to /v1/query with your Fous API key and the inputs, and get JSON back.

### How much does it cost?

Each completed run costs 1 credit. Failed runs without a completed receipt are free; completed work can remain charged if delivery is interrupted. With pay as you go, a credit costs 1¢. Monthly plans cost less per credit.

### Do I need a FEMA account?

No. You only need a Fous account.

### How current is the data?

Fous gets the data from fema.gov when you run it. Some results are reused for up to 24 hours, and results that use your account or key are never reused. It was last verified on Sep 29, 2026.

### What FEMA flood zone applies to a US address?

Get flood zone returns the flood zone, risk designation, map panel, community, and other available details for a full US street address.

### Which disasters have been declared in a state?

List disaster declarations returns federal declarations for a required state, optionally narrowed by county, date, and incident category.

## Related

- [US Census Bureau API](https://fous.com/tools/us-census-bureau.md): US Census Bureau returns statistics from varying Census years, population estimates through July 1, and address geographies using Census vintages that may differ from representation.
- [InciWeb API](https://fous.com/tools/inciweb.md): InciWeb provides US interagency information on active wildfires and related incidents, with latest dated updates and evacuation or closure notices; past notices may no longer apply.
- [National Weather Service API](https://fous.com/tools/national-weather-service.md): National Weather Service provides U.S. day-and-night forecasts for seven days, hourly forecasts for up to 156 hours where available, active alerts, and latest nearby station observations.
- [Grants.gov API](https://fous.com/tools/grants-gov.md): U.S. federal grant opportunities and application information.
- [HUD API](https://fous.com/tools/hud.md): Official HUD housing research and Fair Market Rent data.
- [Zillow API](https://fous.com/tools/zillow.md): Zillow provides homes for sale, rental listings, home details, estimates, and housing market figures; rental details, history, schools, estimates, and market figures may be missing or reflect different reporting dates.
- [USGS Earthquakes API](https://fous.com/tools/usgs-earthquakes.md): USGS Earthquakes provides recent event details, nearby earthquake distances and local times, and significant worldwide events from the past day, week, or month; some impact, felt, and alert information may be unavailable.
- [USGS Water Data API](https://fous.com/tools/usgs-water-data.md): Public USGS river gauge readings and monitoring locations.
- [All Government tools](https://fous.com/tools/category/government)
