EPA ECHO Scraper - Compliance, Violations & Enforcement Data avatar

EPA ECHO Scraper - Compliance, Violations & Enforcement Data

Pricing

from $6.15 / 1,000 results

Go to Apify Store
EPA ECHO Scraper - Compliance, Violations & Enforcement Data

EPA ECHO Scraper - Compliance, Violations & Enforcement Data

EPA ECHO scraper and API for US environmental compliance and enforcement data. Get facility violations, penalties, inspections, formal actions, per-program compliance, TRI releases, Superfund flags and enforcement cases across all 50 states. For ESG, KYB and due diligence. JSON, CSV, Excel export.

Pricing

from $6.15 / 1,000 results

Rating

5.0

(1)

Developer

Scrapers Lat

Scrapers Lat

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

0

Monthly active users

6 days ago

Last modified

Share

EPA ECHO Facility Compliance & Violations Scraper

EPA ECHO Scraper: Facility Compliance, Violations & Enforcement Data

Here is one real result (a Clean Air Act significant violator with $6.1M in penalties), showing the fields this actor returns:

{
"facilityName": "BIG LAKE PLANT",
"address": "6 MI. E. OF BIG LAKE, TX.",
"city": "BIG LAKE",
"county": "REAGAN",
"state": "TX",
"zip": "76932",
"lat": 31.152959,
"lng": -101.344583,
"registryId": "110007180790",
"naics": "211112 211130 211111 32411 325311",
"sic": null,
"complianceStatus": "Significant Violation",
"inspectionsLast5yr": 0,
"violationsCurrent": 1,
"significantNonComplianceFlag": true,
"programsWithSnc": 1,
"formalActionsLast5yr": 2,
"penaltyCount": 2,
"totalPenaltiesUsd": 6125000,
"lastFormalActionDate": "2022-02-17",
"lastPenaltyDate": "2022-02-17",
"programIds": {"AIR": ["TX0000004838300003"], "RMP": ["100000112219"], "EIS": ["7552311"]},
"dfrUrl": "https://echo.epa.gov/detailed-facility-report?fid=110007180790",
"epaRegion": "06",
"countyFips": "48383",
"majorFacility": true,
"activeFacility": true,
"currentViolationFlag": true,
"currentSignificantViolationFlag": true,
"caaHighPriorityViolator": true,
"quartersInNoncompliance": 12,
"threeYearComplianceHistory": "SSSSSSSSSSSS",
"complianceByProgram": {"CAA": "Violation Unaddressed; State Has Lead Enforcement"},
"permitTypes": {"CAA": "Major Emissions"},
"programs": {"air": true, "superfund": false, "toxicSubstances": false, "emissionsInventory": true},
"formalActionsByProgram": {"CAA": 2},
"penaltiesByProgramUsd": {"CAA": 6125000},
"lastPenaltyAmountUsd": 3000000,
"sncByProgram": {"CAA": true, "CWA": false, "RCRA": false, "SDWA": false},
"quartersInNoncomplianceByProgram": {"CAA": 12},
"complianceHistoryByProgram": {"CAA": "SSSSSSSSSSSS"},
"lastFormalActionDateByProgram": {"CAA": "2022-02-17"},
"lastPenaltyByProgramUsd": {"CAA": 3000000},
"lastFormalActionDateEpa": "2022-02-03",
"lastFormalActionDateState": "2022-02-17",
"federalCaseIds": ["06-2019-3401", "TX000A770410852022168", "TX000A852464042019025"],
"percentPeopleOfColor": 52.17,
"percentLowIncome": 39.13,
"populationDensity": 0.81,
"congressionalDistrict": "23",
"watershed": "Middle Concho",
"observedAt": "2026-09-04T00:28:26.409Z",
"programSummaries": [
{"statute": "CAA", "currentStatus": "High Priority Violation", "lastInspection": "2020-10-19", "qtrsInNonCompliance": 12, "qtrsInSignificantNonCompliance": 12, "formalActions": 2, "totalPenaltiesUsd": 6125000}
],
"formalActions": [
{"statute": "CAA", "actionType": "Civil Judicial Action", "actionDate": "2022-02-17", "leadAgency": "State", "penaltyUsd": 3000000, "sourceId": "TX0000004838300003"},
{"statute": "CAA", "actionType": "Civil Judicial Action", "actionDate": "2022-02-03", "leadAgency": "EPA", "penaltyUsd": 3125000, "sourceId": "TX0000004838300003"}
],
"enforcementCases": [
{"statute": "CAA", "caseId": "06-2019-3401", "caseType": "Judicial", "caseName": "WTG Gas Processing (R6 Lead)-8 Facilities TX NM-RMP Consent Decree-FY2022", "epaSystem": "ICIS-Air", "leadAgency": "EPA", "issueDate": "2021-09-13", "settlementDate": "2022-02-03", "federalPenaltyUsd": 3125000, "stateLocalPenaltyUsd": 0, "penaltyCollectedUsd": 3125000}
]
}

Some fields are omitted above for brevity (see the full output reference); null values and the AI add-on fields are not shown.

The most complete EPA ECHO scraper and EPA compliance data API on Apify. It returns the fields the ECHO facility search and Detailed Facility Report expose, from location, NAICS/SIC, and per-program compliance status to environmental violations, significant non-compliance and high-priority-violator flags, inspections, formal and informal enforcement actions, penalties, federal enforcement cases with settlement amounts, TRI chemical releases, Superfund and RMP program membership, and environmental-justice demographics, plus two optional AI add-ons. It gives you 24 filters to target exactly the facilities you need, more input filters and more valid output fields than any other EPA ECHO, environmental compliance, or facility enforcement scraper listed. Pull facility enforcement history, environmental violations, and EPA penalties for environmental due diligence, KYB and supplier risk, ESG screening, and compliance monitoring.

📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples

Apify Coverage Output Billing

Table of contents

What it does

The actor queries EPA's Enforcement and Compliance History Online (ECHO), applies the filters you pass, and writes one normalized record per regulated facility to the run's dataset. Each record carries the facility name and address, geocoordinates, NAICS/SIC industry codes, EPA registry id, overall and per-program compliance status, current violations, significant non-compliance and high-priority-violator flags, quarters in noncompliance, formal and informal enforcement actions and penalties over the last five years, inspection history, program membership (including Superfund/SEMS, Risk Management Plan, and TSCA), TRI and greenhouse-gas reporting, and environmental-justice demographic context.

With details enabled (the default), each facility is enriched from its Detailed Facility Report (DFR): a per-program compliance breakdown (Clean Air, Clean Water/NPDES, RCRA hazardous waste, Safe Drinking Water), the list of formal enforcement actions with penalty amounts and dates, federal enforcement cases with their federal/state settlement penalty breakdown, and per-chemical TRI release history. Two optional paid AI add-ons produce a plain-language compliance summary and a regulatory risk rating.

How we compare

Several EPA ECHO scrapers exist on Apify, including compute-edge/epa-echo-scraper, fortuitous_pirate/epa-echo-facilities, neuton/epa-echo-facilities-compliance-scraper, ryanclinton/epa-echo-search, changewire/epa-echo-compliance, and ntriqpro/epa-environmental-risk, plus TRI-only tools like copious_atoll/epa-toxic-releases. Most are facility locators with a handful of fields and a narrow filter set, and cover only the Clean Air, Clean Water, and RCRA programs. This actor returns the fullest compliance and enforcement record, adds Safe Drinking Water, TRI, greenhouse-gas, Superfund, RMP, and TSCA coverage, and gives you the widest set of filters, so you can pull exactly the non-compliant, high-penalty, or industry-specific facilities you need in one run.

Capabilityscrapers.lat EPA ECHOOther EPA ECHO scrapers on Apify
Violations, penalties, inspections, formal + informal actionsYes, all includedCheapest ones return facility name/address/ID only, no enforcement data
Per-program compliance breakdown (Air, Water/NPDES, RCRA, SDWA)Yes, from the Detailed Facility ReportRarely, or overall status only
Significant non-compliance and high-priority-violator flags (overall + per program)YesUsually missing
Quarters-in-noncompliance and 12-quarter compliance-history strings (overall + per program)YesNot offered
Federal enforcement cases with settlement penalty breakdown (federal / state / collected)Yes, from the DFRNot offered
TRI chemical-level release history and on-site / off-site splitYesTRI-only tools cover chemicals; general ECHO scrapers do not
Superfund (SEMS), Risk Management Plan (RMP), and TSCA program membershipYesNot offered
Filter by NAICS or SIC industry codeYesMost support state/city only
Filter by EPA program, region, major, federal, tribal landYesPartial, one or two at most
Compliance-signal filters (violations only, enforcement only, min penalty, inspected/enforced since)YesNot offered
Geographic radius search (lat/lng + miles)YesSome support it, most do not
Direct FRS Registry ID lookupYesSome support it
Environmental-justice demographics (percent minority / low income / population density)YesNot offered
Greenhouse-gas reporting, congressional district, watershed contextYesNot offered
Optional AI compliance summary and regulatory risk scoreYesNot offered
No API key, no user-supplied proxy, no browserYesSome require you to bring your own proxy
No charge on failed or empty runsYesVaries

Filter breadth and output completeness are the real difference. No other listed EPA ECHO scraper combines NAICS, program, compliance status, geographic radius, and enforcement date range while also returning the full penalty, inspection, per-program enforcement record, federal enforcement cases, and TRI chemical detail. Some rivals do things we do not: changewire/epa-echo-compliance and getascraper/epa-echo-violation-monitor are change-diff monitors that track day-over-day enforcement changes, which is a different job from this actor's full-record extraction.

Use cases

  • Environmental due diligence and M&A. Screen a target company's facilities for open violations, significant non-compliance, penalty history, and pending enforcement before a deal closes.
  • KYB and supplier / vendor risk. Add EPA compliance status and regulatory penalty history to know-your-business checks on US suppliers, counterparties, and portfolio companies.
  • ESG and sustainability screening. Pull Clean Air, Clean Water, and hazardous-waste compliance signals, TRI releases, and greenhouse-gas reporting flags to score environmental risk across a portfolio.
  • Compliance monitoring. Track a watchlist of facilities by FRS Registry ID or region and re-run to catch new inspections, formal actions, and penalties.
  • Legal and enforcement research. Build case lists of significant violators or high-penalty facilities by state, industry, or program for regulatory, litigation, or expert-witness work.
  • Journalism and public-interest research. Map environmental violations and enforcement in a city, county, or ZIP code, cross-referenced with environmental-justice demographics.
  • Real-estate environmental risk. Run a radius search around a parcel to find nearby regulated facilities, hazardous-waste sites, and impaired-water or nonattainment-area flags.

Quickstart

Open the actor, paste this into the input, and press Run. It returns up to 10 facilities in Austin, TX with their compliance detail.

{
"state": "TX",
"city": "AUSTIN",
"withDetails": true,
"maxFacilities": 10
}

Every input is optional. State is the most reliable primary filter. Add onlyWithViolations, minPenaltyUsd, or naicsCode to focus on non-compliant or industry-specific facilities.

Input reference

FieldTypeRequiredDefaultDescription
stateenumno(any)Two-letter US state or territory code, for example CA, NY, TX, PR. The most reliable primary filter.
countystringno(empty)County name, for example ALAMEDA, HARRIS. Combine with state.
citystringnoAUSTINCity name, for example HOUSTON. Combine with state.
zipCodestringno(empty)5-digit US ZIP code.
facilityNamestringno(empty)Facility name to match, for example CHEVRON, US STEEL. Partial matches supported.
registryIdstringno(empty)Look up one exact facility by its EPA FRS Registry ID, for example 110033527805.
naicsCodestringno(empty)Industry NAICS code, full or prefix, for example 3254 or 324.
sicCodestringno(empty)Industry SIC code, for example 2911.
programenumno(all)Restrict to one EPA program: A Clean Air, W Clean Water (NPDES), R RCRA hazardous waste, S Safe Drinking Water, T Toxics Release Inventory, G Greenhouse Gas, E EPCRA.
epaRegionenumno(all)Restrict to one EPA Region (01 to 10).
activeOnlybooleannofalseRestrict to facilities currently flagged active in EPA program systems.
majorOnlybooleannofalseRestrict to facilities classified as major under Clean Air or Clean Water programs.
federalFacilitiesOnlybooleannofalseRestrict to federally owned or operated facilities.
tribalLandOnlybooleannofalseRestrict to facilities in Indian country / tribal land.
latitudestringno(empty)Center-point latitude for a radius search. Provide with longitude and radiusMiles.
longitudestringno(empty)Center-point longitude for a radius search.
radiusMilesintegerno(none)Search radius in miles around the lat/lng point.
onlyWithViolationsbooleannofalseKeep only facilities with a current violation in any program.
onlyWithEnforcementbooleannofalseKeep only facilities with at least one formal enforcement action in the last 5 years.
onlySignificantViolatorsbooleannofalseKeep only facilities flagged as significant non-compliers or high-priority violators.
minPenaltyUsdintegerno(none)Keep only facilities whose total assessed penalties are at least this amount.
inspectedSincestringno(empty)Keep only facilities last inspected on or after this date (YYYY-MM-DD).
enforcedSincestringno(empty)Keep only facilities whose most recent formal enforcement action was on or after this date (YYYY-MM-DD).
withDetailsbooleannotrueEnrich each facility with its Detailed Facility Report (per-program compliance and enforcement actions).
maxFacilitiesintegerno10Maximum facilities to collect.
withSummarybooleannofalsePaid AI add-on. Plain-language summary of the facility's compliance profile. Billed only on usable AI output.
withRiskbooleannofalsePaid AI add-on. Regulatory risk rating (low/medium/high/severe) with a 0 to 100 score. Billed only on usable AI output.

Filters combine with logical AND.

Output reference

One dataset item per facility. Types: string, number, integer, boolean, object, object[], or null when the source value is absent. Key fields:

FieldTypeDescription
facilityNamestringFacility name.
address / city / county / state / zipstringFacility mailing address parts.
lat / lngnumberFacility geocoordinates.
registryIdstringEPA FRS registry id (unique per facility).
naics / sicstringIndustry codes (space-separated when multiple).
federalFacilitybooleanWhether the facility is federally owned/operated.
federalAgencyNamestringOwning federal agency when applicable.
complianceStatusstringOverall current compliance status.
inspectionsLast5yrintegerInspections in the last 5 years.
violationsCurrentintegerCount of current violations.
significantNonComplianceFlagbooleanWhether the facility is in significant non-compliance.
programsWithSncintegerNumber of programs with significant non-compliance.
formalActionsLast5yrintegerFormal enforcement actions in the last 5 years.
informalActionsLast5yrintegerInformal actions in the last 5 years.
penaltyCountintegerNumber of penalties assessed.
totalPenaltiesUsdnumberTotal assessed penalties in USD.
lastPenaltyAmountUsdnumberMost recent penalty amount.
lastInspectionDate / lastFormalActionDate / lastPenaltyDate / lastInformalActionDatestringMost recent event dates (YYYY-MM-DD).
daysSinceLastInspectionintegerDays since the last inspection.
epaRegionstringEPA Region (01 to 10).
countyFipsstringCounty FIPS code.
majorFacility / activeFacility / tribalLandbooleanClassification flags.
nonattainmentArea / impairedWaterbooleanEnvironmental-area flags.
currentViolationFlag / currentSignificantViolationFlag / caaHighPriorityViolatorbooleanCurrent-status violation flags.
quartersInNoncomplianceintegerQuarters in non-compliance.
threeYearComplianceHistorystringCompact 12-quarter compliance history string.
everViolationFlag / enforcementActionLast5yrFlag / hasPollutantReportbooleanHistory flags: any past violation, any formal action in 5 years, has a pollutant report.
programIdsobjectProgram-system ids per statute (AIR, NPDES, RCRA, SDWA, TRI, GHG, SEMS/Superfund, RMP, TSCA, EIS, CAMD).
programsobjectBooleans for each program the facility is regulated under, including superfund, toxicSubstances, emissionsInventory.
complianceByProgramobjectCurrent compliance status per program.
sncByProgramobjectSignificant-non-compliance / high-priority-violator boolean per program.
quartersInNoncomplianceByProgramobjectQuarters in noncompliance per program.
complianceHistoryByProgramobjectCompact 12/13-quarter compliance-history string per program.
permitTypesobjectPermit type per program.
inspectionsByProgram / formalActionsByProgram / informalActionsByProgram / penaltiesByProgramUsdobjectPer-program counts and penalty totals (inspections cover CAA, CWA, RCRA, SDWA, EPCRA, TSCA, FIFRA).
lastFormalActionDateByProgram / lastPenaltyByProgramUsdobjectMost recent formal action date and penalty amount per program.
cwaEffluentExceedances13qtrintegerClean Water effluent limit exceedances over the last 13 quarters.
lastInspectionDateEpa / lastInspectionDateState / lastFormalActionDateEpa / lastFormalActionDateStatestringMost recent action dates split by EPA vs state lead.
federalCaseCount / federalCaseLastDate / federalCasePenaltiesUsd / federalCaseIdsmixedFederal (EPA multimedia) enforcement case count, last date, total penalties, and case ids.
ghgCo2ReleasesTonsnumberGreenhouse-gas CO2 releases in tons when reported.
triReleasesTransfersLbs / triOnSiteReleasesLbs / triOffSiteTransfersLbsnumberTRI releases and transfers in pounds when reported.
triReporterInPastbooleanWhether the facility has reported to the Toxics Release Inventory.
nonattainmentPollutants / nonattainmentCategoriesstringClean Air Act nonattainment-area pollutants and categories.
percentMinority / percentPeopleOfColor / percentLowIncome / populationDensitynumberEnvironmental-justice demographics of the surrounding area.
congressionalDistrict / watershed / tribesstringUS congressional district, watershed (HUC-8) name, and tribal-land names.
dfrUrlstringLink to the facility's Detailed Facility Report on ECHO.
programSummariesobject[]Per-program compliance summary (with details on).
formalActionsobject[]List of formal enforcement actions with penalties and dates (with details on).
enforcementCasesobject[]Federal/multimedia enforcement cases with statute, case type, dates, and federal/state/collected settlement penalties (with details on).
triChemicalsobject[]Per-chemical TRI release/transfer amounts for the most recent reporting year (with details on, when the facility reports to TRI).
observedAtstringISO 8601 timestamp of when the record was collected.
errorstringnull on success. On a failed run, a single item with a populated error field is written instead.

Detail fields (programSummaries, formalActions, enforcementCases, triChemicals, and the per-program breakdowns) are populated only when withDetails is enabled. AI fields are added only when the matching add-on is on. Any field ECHO does not populate for a facility is returned as null (never invented).

Example output record

Real record from a live run (input {"state":"TX","city":"AUSTIN"}), a facility with a large assessed penalty:

{
"facilityName": "ABF FREIGHT SYSTEM",
"address": "8200 BAGBY DR",
"city": "AUSTIN",
"county": "TRAVIS",
"state": "TX",
"zip": "78724",
"lat": 30.29007,
"lng": -97.63394,
"registryId": "110033527805",
"naics": null,
"sic": "4213",
"inspectionsLast5yr": 0,
"violationsCurrent": 0,
"significantNonComplianceFlag": false,
"formalActionsLast5yr": 1,
"penaltyCount": 1,
"totalPenaltiesUsd": 535000,
"lastFormalActionDate": "2023-09-14",
"lastPenaltyDate": "2023-09-14",
"epaRegion": "06",
"majorFacility": false,
"activeFacility": true,
"currentViolationFlag": false,
"dfrUrl": "https://echo.epa.gov/detailed-facility-report?fid=110033527805",
"observedAt": "2026-08-10T14:17:02.335Z",
"error": null
}

Run via API and CLI

Start a run and read the dataset. Replace <TOKEN> with your Apify API token.

Run synchronously and get dataset items in one call:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~epa-echo-scraper/run-sync-get-dataset-items?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"state":"CA","onlyWithViolations":true,"minPenaltyUsd":100000,"maxFacilities":50}'

Start a run asynchronously:

curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~epa-echo-scraper/runs?token=<TOKEN>" \
-H "Content-Type: application/json" \
-d '{"state":"TX","naicsCode":"324","onlySignificantViolators":true,"maxFacilities":100}'

Apify CLI:

apify call scrapers_lat/epa-echo-scraper \
--input '{"latitude":"29.7604","longitude":"-95.3698","radiusMiles":5}'

Fetch results

Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:

# JSON
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"
# CSV
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"
# Paginate large datasets
curl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"

<DATASET_ID> is returned as defaultDatasetId in the run object. clean=true drops empty and internal fields.

Billing and limits

  • Pay per result. Each facility record bills on the result event. See the pricing tab for the current per-result price.
  • Detail and AI events billed separately. Fetching a Detailed Facility Report bills the details event. withSummary and withRisk bill the ai_summary and ai_risk events, and only when the AI returns usable output. The AI add-ons are off by default and require a paid Apify plan.
  • No charge on failure. If a run errors, the actor writes a single item with a populated error field and does not charge for it. Empty runs cost nothing.
  • Spend cap respected. Set maxTotalChargeUsd on the run; once reached, the actor stops emitting and charging further billable results.
  • Free Apify plans are capped at 10 records per run. Upgrade for higher maxFacilities.
  • Source ceiling. A single ECHO query returns at most a few hundred facilities. For larger pulls, split the work by state, county, or NAICS.

FAQ and troubleshooting

What is EPA ECHO? ECHO (Enforcement and Compliance History Online) is the US EPA's public system that tracks the environmental-compliance and enforcement history of regulated facilities. This actor turns ECHO's facility search and Detailed Facility Report into clean JSON, CSV, or Excel records, so you can query EPA compliance data at scale without the ECHO web interface.

How do I find only facilities with violations or penalties? Set onlyWithViolations, onlyWithEnforcement, or onlySignificantViolators to true, and optionally minPenaltyUsd to a threshold. Add enforcedSince or inspectedSince to restrict to recent activity.

How do I look up one specific facility? Pass its EPA FRS Registry ID as registryId. The actor returns that single facility with its full compliance and enforcement detail.

How do I search around a point? Provide latitude, longitude, and radiusMiles together for a radius search, useful for real-estate or site environmental risk.

Do I need an EPA API key, a proxy, or a browser? No. This actor needs no API key, no user-supplied proxy, and no headless browser. It handles data access internally and returns structured records directly.

How fast is it? Facility search returns in about a second. With withDetails on, each facility also loads its Detailed Facility Report; detail fetches run in parallel, so a typical run of a few dozen facilities completes in seconds to a couple of minutes depending on maxFacilities.

Can I use this for KYB, ESG, or environmental due diligence? Yes. The record includes compliance status, significant non-compliance flags, penalty totals, inspection and enforcement history, and per-program breakdowns, which are the signals used in supplier risk, ESG screening, and pre-deal environmental due diligence.

What does the per-program breakdown include? With withDetails on, programSummaries, complianceByProgram, sncByProgram, quartersInNoncomplianceByProgram, complianceHistoryByProgram, inspectionsByProgram, formalActionsByProgram, informalActionsByProgram, and penaltiesByProgramUsd cover Clean Air, Clean Water, RCRA, and Safe Drinking Water where the facility is regulated.

Does it return the actual enforcement cases and penalties? Yes. With withDetails on, enforcementCases lists each federal or state enforcement case with its statute, case type, issue and settlement dates, and a settlement penalty breakdown (federal penalty, state/local penalty, amount collected). formalActions lists formal actions with penalty amounts, and federalCasePenaltiesUsd / totalPenaltiesUsd give the rolled-up totals.

Can I get chemical-level TRI emissions or Superfund status? Yes. triChemicals returns per-chemical TRI release and transfer amounts for the most recent reporting year, and triOnSiteReleasesLbs / triOffSiteTransfersLbs give the on-site and off-site split. Superfund (SEMS), Risk Management Plan (RMP), and TSCA membership appear in programs and programIds when the facility is in those systems.

What are the percent-minority and percent-low-income fields? They are EPA environmental-justice demographics for the area around the facility, not the facility itself. They come from EPA's screening data.

Why are some fields null? Not every program applies to every facility, and EPA does not report every metric for every site. Missing source values are returned as null, never invented.

A run returned 0 records. Why? The filter combination matched nothing. Loosen filters (start with just state). Zero-result runs are not charged.

Is this an official EPA tool? No. This actor is independent and is not affiliated with the US EPA. It reads only data published through the public ECHO system. Use it in accordance with EPA terms and applicable law.

More scrapers at scrapers.lat

Built and maintained by scrapers.lat, where we publish scrapers for US and Latin American public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.


Independent tool, not affiliated with the US EPA. Accesses only data publicly available through the EPA ECHO system. Use in accordance with EPA terms of use.