Search EPA Facilities
epa_search_facilitiesRead-onlyIdempotent
Search EPA-regulated facilities by location, industry program, or compliance status across all environmental programs (CAA, CWA, RCRA, TRI, SDWA). Returns facility name, EPA Registry ID, coordinates, county FIPS code, per-program registration flags, inspection counts, penalty totals, and TRI release totals. Registry IDs returned here feed epa_get_facility. Supports proximity search via latitude + longitude + radius_miles. At least one geographic filter (zip_code, state, city, or a complete latitude+longitude+radius_miles triple) is required — unscoped searches time out.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| city | No | City name. Pair with state for best results. | |
| limit | No | Maximum number of facilities to return (1–100) | |
| state | No | 2-letter US state abbreviation (e.g. "WA", "CA") | |
| latitude | No | Latitude in decimal degrees. Pair with longitude and radius_miles for proximity search. | |
| programs | No | Restrict results to facilities registered in these environmental programs. CAA=air, CWA=water, RCRA=waste, TRI=toxic releases, SDWA=drinking water. | |
| zip_code | No | 5-digit ZIP code to search within | |
| longitude | No | Longitude in decimal degrees. Pair with latitude and radius_miles for proximity search. | |
| active_only | No | When true, return only active facilities | |
| radius_miles | No | Search radius in miles around the given latitude/longitude (max 100). Requires latitude and longitude. | |
| has_violation | No | When true, return only facilities with recent significant violations |
Output Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| error | No | Present when the call failed. Absent on success. | |
| message | No | Recovery hint when no results are found — echoes applied filters and suggests how to broaden the search. Absent when results are returned. | |
| facilities | No | Matching EPA facilities | |
| totalCount | No | Total facilities matched before the limit was applied |