KeyVex
Regulatory & compliance

FEMA Disaster Declarations

Every federally-declared disaster since 1953 — DR (major disaster), EM (emergency), and FM (fire management) declarations, one record per designated county, with the assistance programs activated. The event dataset for insurance, construction, utilities, and muni-credit questions — and the front-end of federal rebuild money.

EndpointGET /v1/fema-disasters
SourceOpenFEMA
Authx-api-key — a free key works

What it returns

public_assistance=true is the infrastructure-rebuild-money flag; a single disaster spans many county records. See the live example below for the full field set.

Filters

idDirect lookup: '{declarationString}-{fips}' (e.g., 'DR-4728-CA-06037').
fema_declaration_stringExact declaration (e.g., 'DR-4728-CA') — returns every designated county for that event.
disaster_numberExact FEMA disaster number (e.g., 4728).
stateTwo-letter state / territory code (e.g., 'FL', 'PR').
declaration_typeDR = major disaster, EM = emergency, FM = fire management.
incident_typeExact incident type (e.g., 'Hurricane', 'Flood', 'Fire', 'Severe Storm', 'Tornado', 'Earthquake').
titleCase-insensitive substring against declaration title + designated area (e.g., 'ian', 'maui').
sinceDeclaration date lower bound (YYYY-MM-DD inclusive).
untilDeclaration date upper bound (YYYY-MM-DD inclusive).
sort_orderDefault: desc (most recent declarations first).
limitMaximum records to return. Default 50, max 500.

Example request

curl "https://api.keyvex.com/v1/fema-disasters?limit=1" \
  -H "x-api-key: YOUR_KEY"

Response

{
  "results": [
    {
      "fiscal_year_declared": 2026,
      "incident_type": "Typhoon",
      "public_assistance": true,
      "designated_area": "Guam (County-equivalent)",
      "fema_region": 9,
      "declaration_title": "TYPHOON BAVI",
      "incident_begin_date": "2026-07-02",
      "last_refresh": "2026-07-03T23:41:16.704Z",
      "incident_end_date": null,
      "disaster_number": 3648,
      "source_url": "https://www.fema.gov/api/open/v2/DisasterDeclarationsSummaries?$filter=femaDeclarationString%20eq%20'EM-3648-GU'",
      "fema_declaration_string": "EM-3648-GU",
      "declaration_date": "2026-07-03",
      "disaster_closeout_date": null,
      "declaration_type": "EM",
      "hazard_mitigation": false,
      "individual_assistance": false,
      "id": "EM-3648-GU-66010",
      "state": "GU",
      "fips_county_code": "010",
      "fips_state_code": "66",
      "individuals_households_program": false,
      "_first_seen_at": "2026-07-06T02:46:27.463Z",
      "_last_history_at": "2026-07-06T02:46:27.463Z",
      "_content_hash": "d6fe3c4f28f877e49aa402a2402effb90ee8a533e023e7a206dc39130cd66c1a",
      "scraped_at": "2026-07-06T03:07:12.984Z"
    }
  ],
  "count": 1,
  "has_more": true
}

Example questions you can answer

Related datasets

Query FEMA Disaster Declarations from your AI

Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. Free key = full data, 60 requests/day.

Get a free key OpenAPI spec → REST docs →
← All 60+ datasets