EPA ECHO Facility Compliance Evidence avatar

EPA ECHO Facility Compliance Evidence

Pricing

Pay per usage

Go to Apify Store
EPA ECHO Facility Compliance Evidence

EPA ECHO Facility Compliance Evidence

Look up an exact EPA FRS ID or bounded facility query and receive EPA-published compliance, inspection, and enforcement evidence with source hashes and reproducible receipts. Environmental safety remains UNKNOWN.

Pricing

Pay per usage

Rating

0.0

(0)

Developer

Bryan

Bryan

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

an hour ago

Last modified

Categories

Share

An audit-oriented evidence product for one buyer job:

Given a facility name, bounded address, or exact 12-digit EPA FRS Registry ID, return the EPA-published facility identity, current compliance status fields, inspection/enforcement summaries, and a verifiable retrieval receipt.

What it does

  • Queries the official, public EPA ECHO Web Services.
  • Uses the ECHO Combined Facility Search for the bounded identity lookup.
  • For one resolved facility, optionally retrieves official Detailed Facility Report compliance, inspection, and enforcement summaries.
  • Preserves the exact published status text. It does not relabel “No Violation Identified” as safe, legally compliant, permitted, or risk-free.
  • Emits a stable material-record fingerprint, source-response hashes, observed-schema fingerprint, query receipt, and a universal CivicDataForge decision envelope.
  • Caps candidate retrieval at 10. Broad or truncated queries become SCOPE_INCOMPLETE; ambiguous candidates become REVIEW_REQUIRED.

Decision semantics

DecisionMeaning
EVIDENCE_FOUNDAn exact FRS ID or exact published name resolved to one EPA facility and the requested official evidence was retrieved.
NO_PUBLISHED_MATCHThe complete selected EPA query returned no facility. This is not proof of nonexistence or absence from another authority.
REVIEW_REQUIREDThe selector is ambiguous or a discovery query produced a candidate that was not exact enough to attribute automatically.
SOURCE_UNAVAILABLEThe primary EPA source could not be evaluated. No match/no-match conclusion is supported.
SCOPE_INCOMPLETECandidate results were bounded/truncated or a requested DFR detail service was unavailable.

environmental_safety_verdict is always UNKNOWN. ECHO evidence is not an environmental-safety, legal-compliance, permit-validity, exposure, liability, or eligibility verdict.

Inputs

Strongest path:

{
"facilityId": "110000367567",
"maxCandidates": 1,
"includeProgramDetails": true
}

Exact-name discovery:

{
"facilityName": "3M CHEMICAL OPERATIONS' DECATUR FACILITY",
"nameMatchMode": "exact",
"city": "Decatur",
"state": "AL",
"maxCandidates": 5
}

Address-only lookups require city, state, or ZIP. Contains/begins name searches never auto-resolve identity even if the source happens to return one row.

Output and evidence

Each run produces one dataset item containing:

  • normalized facility identity and direct EPA Detailed Facility Report URL;
  • exact facility/statute compliance status strings published by EPA;
  • official program-level compliance, inspection, and enforcement summaries when requested;
  • source URLs, timestamps, response hashes, observed-schema fingerprint, query counts, and per-source status;
  • record and decision receipt hashes;
  • responsible semantics and prohibited inferences.

EPA notes that ECHO aggregates multiple federal and state program systems. Reporting schedules and data quality vary, and apparent violations may be alleged or not finally adjudicated. Verify consequential facts in the EPA Detailed Facility Report and the controlling program system. See the official DFR data dictionary and DFR help.

Tests

$npm test
  • test_unit.mjs: deterministic happy, hostile, failure, ambiguity, truncation, identity, partial-source, and tamper paths.
  • test_bounded.mjs: bounded live exact-FRS check against all four official EPA endpoints.
  • test_actor_smoke.mjs: real Actor input-to-dataset execution in isolated local Apify storage.

No API key is required. The Actor is query-only and makes no EPA or external account mutations.