After a declared disaster, FEMA obligates money to cities, counties, utilities and other public applicants to repair roads, bridges, water systems and public buildings. Separately, hazard mitigation programs fund elevations, drainage, generators, seismic retrofits and wildfire work, often months before anything is advertised for bid.
All of it is public through the OpenFEMA API. For contractors and engineering firms that work in the public sector, it is a list of agencies that have federal money to spend.
The two datasets that matter
- Public Assistance (PA) funded projects: every obligated repair or replacement project after a declared disaster, with the damage category, county, project amount and federal share.
- Hazard Mitigation Assistance (HMA) sub-applications: HMGP, BRIC, FMA and related programs, including the project status (for example pending, submitted to FEMA, approved). The early statuses are the interesting ones: those projects have not been bid yet.
What makes the raw API awkward
- PA project records carry an applicant ID rather than a name, so you need a second lookup to learn which agency it is.
- The two datasets use different field names for the same ideas (state, county, amount, status).
- Results are paged, and a useful pull for a single state can run to tens of thousands of rows.
Doing it by hand
- Query the PA funded projects and HMA sub-application endpoints at
fema.gov/api/openwith a filter on state and date. - Page through the results with
$skipand$top. - Join PA records to the applicants dataset to get agency names and addresses.
- Normalise the field names so both datasets fit one table.
Doing it in one run
I packaged those steps as an Apify Actor: FEMA Disaster Recovery & Mitigation Projects. It pulls both datasets, resolves applicant names, and returns one flat schema you can filter by state, program, status and amount, then export to CSV or Excel.
A note on using it well
An obligated amount is money FEMA has committed, not a contract you can bid on tomorrow. Use the list to find the agencies and projects worth watching, then follow each agency's own procurement notices for the actual solicitation.
Top comments (0)