Search EPA Enforcement Cases
epa_echo_search_violationsECHO: Search EPA civil and criminal enforcement cases by state, ZIP code, regulatory program, case type, or filing-date range. Returns case identifier, programs involved, penalty assessed, settlement and filing dates, and case type. Designed for area-level violation discovery — for a single known facility's enforcement history use epa_echo_get_facility instead. At least one of state or zip_code is required.
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of cases to return (1–100) | |
| state | No | 2-letter US state abbreviation to filter cases (e.g. "TX", "CA") | |
| program | No | Filter by regulatory program: CAA=Clean Air Act, CWA=Clean Water Act, RCRA=hazardous waste, SDWA=drinking water, CERCLA=Superfund, FIFRA=pesticides, TSCA=toxic substances. Matches any law a case cites, so a returned case's programsViolated (its primary law) can differ. | |
| zip_code | No | 5-digit ZIP code of the case's facility location | |
| case_type | No | Filter by case type: civil (regulatory violations), criminal (willful violations), or all. A filing-date range covers civil cases only: with a date, all returns civil cases and criminal is rejected. | all |
| date_filed_end | No | Latest filing date, inclusive (YYYY-MM-DD). Civil cases only. Omit, or pass "", for no upper bound. | |
| date_filed_start | No | Earliest filing date, inclusive (YYYY-MM-DD). Civil cases only. Omit, or pass "", for no lower bound. |
Output Schema
| Name | Required | Description | Default |
|---|---|---|---|
| cases | No | Matching enforcement cases | |
| error | No | Present when the call failed. Absent on success. | |
| notice | No | Present when a filing-date range with case_type "all" left criminal cases out of the results. | |
| message | No | Recovery hint when no cases are found — echoes filters and suggests broadening. Absent when cases are returned. | |
| totalCount | No | Total cases matched before the limit was applied |