Package Information
Available Nodes
Documentation generating…
Documentation
n8n-nodes-epa-contaminated-site-screener
An n8n community node for the Apify actor EPA Contaminated Site Screener -- Apify's #1 revenue-earning actor and a real Phase I Environmental Site Assessment (ESA) database search. Give it an address or coordinate and it returns every nearby EPA-listed site across Superfund/NPL, RCRA (CORRACTS/TSD/generators), TRI, UST, LUST, Brownfields, plus opt-in NPDES, AIR, TSCA and RMP -- scored against the ASTM E1527-21 standard search distances.
Keywords: phase 1 esa, phase i esa, environmental due diligence, epa database search, contaminated site, superfund screening, astm e1527-21, brownfield screening.
Why use this node
Environmental consultants, title companies, and CRE lenders currently pay per-report for "EDR"-style database pulls. This node lets you build that pull into an n8n workflow: drop in an address list from a spreadsheet or CRM, get back structured EPA hits per property, and auto-route flagged properties (e.g. anything with an on_superfund_site hit) to a human reviewer while clean properties move straight to the next underwriting step.
Installation
Option A -- n8n GUI (self-hosted or Cloud with community nodes enabled)
- Go to Settings > Community Nodes.
- Select Install.
- Enter
n8n-nodes-epa-contaminated-site-screener. - Agree to the risk notice and select Install.
Option B -- npm (self-hosted, manual)
cd ~/.n8n/nodes # or your n8n custom-nodes directory
npm install n8n-nodes-epa-contaminated-site-screener
Restart n8n after installing.
Credentials
This node calls the Apify API and needs an Apify account. In n8n, create a new Apify API credential (or Apify OAuth2) with your Apify API token. The underlying EPA data sources (Envirofacts, ECHO, FRS SEMS) are all keyless -- the Apify credential only authorizes the actor run itself.
Node parameters
| Field | Type | Description |
|---|---|---|
| Mode | Options | assets (default) -- multi-database proximity screen on your addresses/coordinates, one row per nearby EPA-listed site. inventory -- raw dump of EPA SEMS/Superfund sites for chosen states. |
| Assets to screen (assets mode) | JSON | Each item is { "address": "...", "label": "..." } (geocoded via the free Census geocoder) or { "lat": <number>, "lon": <number>, "label": "...", "state": "<optional 2-letter>" }. |
| Screening radius (miles) | Number (0.1-50) | Distance within which EPA-listed sites are counted. Default 1 mile covers the widest ASTM E1527-21 distance (NPL / RCRA CORRACTS); set 0.5 or 0.25 to match the tighter ASTM distances for other programs. |
| Programs / databases to screen | Fixed collection | Six defaults: SUPERFUND, RCRA, TRI, UST, LUST, BROWNFIELD. Four opt-in extras from the same ECHO call: NPDES, AIR, TSCA, RMP. Leave empty for the original six. |
| Max hits per program per asset | Number (1-1000) | Cap on nearest-site hits reported per program per asset. Default 50. |
| States (inventory mode) | Fixed collection | 2-letter state codes, e.g. ["CO", "NJ"]. Required when Mode = inventory. |
| Only NPL/Superfund sites (inventory mode) | Boolean | Keep only National Priorities List sites. Default false. |
| Only sites with coordinates (inventory mode) | Boolean | Drop ungeocoded SEMS records. Default true. |
| Max results | Number (1-20000) | Safety cap on total rows produced. |
| ASTM E1527-21 search-distance summary (assets mode) | Boolean | Adds one astm_summary row per asset scored against the ASTM Sec. 8.2.1 standard search distances (NPL/CORRACTS 1.0 mi, SEMS-CERCLIS/TSD/LUST/Brownfields 0.5 mi, UST/generators 0.25 mi). Screening aid only -- not a substitute for a licensed Phase I ESA. |
| Superfund & institutional-control boundary check (assets mode) | Boolean | Runs true point-in-polygon checks for on_superfund_site and published institutional-control/AUL boundaries. Default true. |
| Require every database to answer | Boolean | Every row already reports programs_screened / programs_failed / data_complete; this is a reserved strict-mode flag for callers who must not accept partial coverage. |
Example workflow
Google Sheets (address list) -> Apify EPA Contaminated Site Screener -> Filter (on_superfund_site) -> Email
- A Google Sheets (or HTTP Request / Webhook) node supplies a list of subject-property addresses.
- A Set node builds the actor input:
{
"mode": "assets",
"assets": [
{ "lat": 39.8037, "lon": -104.9986, "state": "CO", "label": "Denver industrial parcel" },
{ "address": "5980 Lipan St, Denver, CO 80221", "label": "Denver industrial parcel (address input)" }
],
"radiusMiles": 1,
"astmMode": true,
"includeBoundaries": true
}
- The Apify EPA Contaminated Site Screener node runs and returns one row per nearby site hit, each carrying
program,site_name,distance_miles,on_superfund_site,institutional_control_flag, and (whenastmModeis on) an extraastm_summaryrow withastm_refined_verdict. - A Filter node keeps rows where
on_superfund_siteistrueorastm_refined_verdictindicates a flag, and an Email / Slack node alerts the deal team.
Links
- Actor page & full field reference: https://apify.com/malonestar/epa-contaminated-site-screener
- Call this actor directly as an MCP tool:
https://mcp.apify.com?tools=malonestar/epa-contaminated-site-screener - Report an issue with this node: https://github.com/malonestar/n8n-nodes-epa-contaminated-site-screener/issues
- n8n community nodes docs: https://docs.n8n.io/integrations/community-nodes/