Regulatory & compliance

EPA Enforcement Cases

Every EPA-lead federal CIVIL enforcement case back to ~1977, 135,000+ cases flattened to one record each: defendants, statutes cited (CWA, CAA, RCRA, FIFRA, TSCA, CERCLA, SDWA, EPCRA), federal + state penalties, SEP and compliance-action dollars, settlement lodged/entered dates, and the facilities involved with FRS registry IDs and NAICS codes. Criminal prosecutions are a separate EPA system and are NOT included. Refreshed weekly from EPA's Saturday data drop.

EndpointGET /v1/epa-enforcement
SourceEPA ECHO (ICIS FE&C bulk file)
Authx-api-key, a free key works

Live from the data

Loading the latest numbers…

What it returns

One record per case (doc ID = ICIS case number, e.g. 02-2026-7201 = Region 2, FY2026). Penalty dollars come from the CASE_PENALTIES join, the header totals EPA publishes are blank on most modern cases. Facility state drives the state filter. See the live example below for the full field set.

Filters

case_numberDirect lookup by ICIS case number, format RR-YYYY-NNNN (e.g., 'HQ-1998-0303').
defendant_nameCase-insensitive substring against defendant names + case name (e.g., 'caterpillar', 'exxon').
stateTwo-letter state code of a named facility (e.g., 'TX'). Derived from the case's facilities.
primary_statuteLead statute code (RANK_ORDER=1): CWA (Clean Water Act), CAA (Clean Air Act), FIFRA (pesticides), SDWA (drinking water), RCRA (hazardous waste), TSCA (toxic substances), CERCLA (Superfund), EPCRA (right-to-know). Rare others: AIM, MPRSA, MWTA.
activity_typeadministrative = EPA's own formal actions (~93% of cases); judicial = DOJ-filed civil court cases.
min_penaltyOnly cases with fed_penalty >= this amount (USD).
fiscal_yearEPA fiscal year of the case (e.g., 2024).
sincestatus_date lower bound (YYYY-MM-DD inclusive).
untilstatus_date upper bound (YYYY-MM-DD inclusive).
sort_byDefault: status_date. fed_penalty surfaces the largest federal penalties (cannot be combined with since/until).
sort_orderDefault: desc.
limitMaximum records to return. Default 50, max 500.

Example request

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

Response

{
  "results": [
    {
      "penalty_collected": 0,
      "status_date": "1999-07-01",
      "defendants": [
        "CATERPILLAR, INC."
      ],
      "primary_statute": "CAA",
      "case_name": "CATERPILLAR, INC.",
      "defendants_count": 1,
      "federal_cost_recovery": null,
      "source_url": "https://echo.epa.gov/enforcement-case-report?id=HQ-1998-0303",
      "state_local_penalty": 6250000,
      "compliance_action_cost": 250000001,
      "fiscal_year": 1998,
      "activity_type": "judicial",
      "activity_id": "57374",
      "enf_outcome": "Final Order With Penalty",
      "summary_text": "CATERPILLAR INC. PRODUCED 320,000 ENGINES CONTAINING DEFEAT DEVICES SINCE 1988. THESE ENGINES RESULTED IN EXCESS NOX EMISSIONS OF 2.1 MILLION TONS. THE COMPANY WILL PAY A CIVIL PENALTY OF $25 MILLION, AND WILL CONDUCT ENVIRONMENTAL PROJECTS COSTING $35 MILLION.",
      "case_number": "HQ-1998-0303",
      "state": "IL",
      "settlement_lodged_date": "1998-10-22",
      "settlements_count": 1,
      "state_local_cost_recovery": null,
      "voluntary_self_disclosure": false,
      "doj_docket_number": null,
      "activity_type_code": "JDC",
      "facilities_count": 6,
      "multimedia": false,
      "sep_amount": 0,
      "statutes": [
        "CAA"
      ],
      "facilities": [
        {
          "frs_registry_id": "110041082949",
          "name": "CATERPILLAR INC",
          "city": "MOSSVILLE",
          "state": "IL",
          "naics_code": "326299"
        },
        {
          "frs_registry_id": "110041082949",
          "name": "CATERPILLAR INC",
          "city": "MOSSVILLE",
          "state": "IL",
          "naics_code": "333618"
        },
        {
          "frs_registry_id": "110041082949",
          "name": "CATERPILLAR INC",
          "city": "MOSSVILLE",
          "state": "IL",
          "naics_code": "326299"
        },
        {
          "frs_registry_id": "110041082949",
          "name": "CATERPILLAR INC",
          "city": "MOSSVILLE",
          "state": "IL",
          "naics_code": "326299"
        },
        {
          "frs_registry_id": "110041082949",
          "name": "CATERPILLAR INC",
          "city": "MOSSVILLE",
          "state": "IL",
          "naics_code": "333618"
        },
        {
          "frs_registry_id": "110041082949",
          "name": "CATERPILLAR INC",
          "city": "MOSSVILLE",
          "state": "IL",
          "naics_code": "333618"
        }
      ],
      "fed_penalty": 18750000,
      "settlement_entered_date": "1999-07-01",
      "activity_status": "Concluded",
      "region_code": "HQ",
      "scraped_at": "2026-07-08T18:56:47.909Z"
    }
  ],
  "count": 1,
  "has_more": false
}

Example questions you can answer

Related datasets

Query EPA Enforcement Cases from your AI

Hand any AI your key + the OpenAPI spec and it can pull this dataset directly. A free key works: 60 requests/day, one year of history.

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