CWA 303(d) Impaired Waters Proximity Screener — NPDES/Phase-I avatar

CWA 303(d) Impaired Waters Proximity Screener — NPDES/Phase-I

Pricing

from $4.40 / 1,000 results

Go to Apify Store
CWA 303(d) Impaired Waters Proximity Screener — NPDES/Phase-I

CWA 303(d) Impaired Waters Proximity Screener — NPDES/Phase-I

CWA Section 303(d) impaired-waters proximity API — screens coordinates against EPA ATTAINS impaired/threatened waters: nearest impaired stream or lake, distance, pollutant causes, TMDL status, and an NPDES/stormwater permitting flag for Phase-I ESA site due diligence.

Pricing

from $4.40 / 1,000 results

Rating

0.0

(0)

Developer

Kyle Maloney

Kyle Maloney

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

13 hours ago

Last modified

Share

EPA Impaired Waters (CWA 303d) Proximity Screener API

Screen any set of coordinates against the EPA's authoritative Clean Water Act Section 303(d) impaired/threatened-waters list (ATTAINS) — the same list every NPDES discharge permit, stormwater application, and Phase-I water-resources review has to check. For each site you get: is it in or near an impaired stream, lake, or estuary; how far; what pollutants caused the impairment; whether a TMDL (cleanup plan) exists; and a one-line Phase-I-style recommendation.

Who this is for

  • Environmental consultants running Phase-I/Phase-II ESAs who need the CWA §303(d) water-resources line item without manually querying EPA's ATTAINS map for every parcel.
  • NPDES / stormwater permit applicants (industrial, construction, MS4) who need to know up front whether their discharge point is near a water that will trigger antidegradation review or tighter effluent limits.
  • Energy and industrial site-selection teams (solar, wind, data centers, manufacturing) screening candidate sites for hidden permitting cost/schedule risk before committing to a location.
  • Land developers, CRE lenders, and title/due-diligence teams who want a fast, repeatable water-quality-risk check across a portfolio of parcels.
  • AI agents (Claude, Cursor, and other MCP clients) doing automated site due diligence — clean, typed JSON output with field-level descriptions makes this a reliable chainable tool alongside our other federal-overlay screeners (wetlands, critical habitat, flood risk, karst, sole-source aquifers).

What it does

For every coordinate you provide, the actor queries the EPA/Esri Living Atlas ATTAINS FeatureServer — the authoritative mirror of EPA's impaired/threatened-waters and TMDL data — across all three of its geometry layers (assessed points, streams/rivers, and lakes/reservoirs/estuaries) within your search radius, then:

  • Flags whether the site sits inside a mapped impaired-water polygon, or is simply near one.
  • Reports the nearest impaired/threatened water's name, type, distance, and CWA §303(d) listing status.
  • Returns a de-duplicated list of confirmed impairment causes (e.g. Pathogens, Nutrients, Mercury, PFAS, Sediment) across every match found within the radius.
  • Derives a plain-language TMDL status (TMDL Established / On 303(d) List — TMDL Pending / Alternative Plan in Place / Not Assessed).
  • Sets an editorial NPDES/stormwater permitting flag and a one-line Phase-I recommendation you can drop straight into a report.

Example input

{
"assets": [
{ "lat": 39.1463728, "lon": -77.0356535, "label": "Proposed outfall — NW Branch Anacostia, MD" },
{ "lat": 39.5296, "lon": -117.0372, "label": "Rural Nevada parcel" }
],
"radiusMiles": 1,
"maxAssets": 200
}

assets[] is the only required input — each item needs lat/lon (WGS84 decimal degrees) and an optional label. radiusMiles defaults to 1 (a typical Phase-I / NPDES-permitting screening distance) and is clamped to 0.1–25 miles.

Output fields (one row per asset)

FieldDescription
asset_label, asset_lat, asset_lonEchoes the screened coordinate.
in_impaired_waterTrue if the coordinate falls inside a mapped impaired-water polygon (lake/reservoir/estuary).
near_impaired_waterTrue if any impaired/threatened water was found within radius_miles.
impaired_waters_within_radiusCount of distinct matched assessment units.
nearest_waterbody_name, nearest_geometry_type, nearest_stateIdentity of the nearest match.
nearest_distance_miles, nearest_distance_kmStraight-line proximity to the nearest match (0 = inside/on it).
nearest_on_303d_list, nearest_tmdl_status, nearest_overall_statusCWA §303(d) listing and cleanup-plan status.
impairment_causesDe-duplicated confirmed pollutant causes across all matches within radius.
npdes_stormwater_flagEditorial screening flag for discharge/stormwater permit difficulty.
phase1_recommendationOne-line, editorial Phase-I-style summary and next step.
nearest_waterbody_report_linkLink to EPA's How's My Waterway detail report.
errorPopulated only if this specific asset could not be screened; other assets in the same run are unaffected.

Use as an MCP tool

This actor is Pay-Per-Event priced and discoverable via mcp.apify.com — point an MCP-compatible agent (Claude, Cursor, etc.) at it and call it directly as a due-diligence tool, chaining it with the portfolio's other proximity screeners (wetlands, critical habitat, karst, floodplain, sole-source aquifers) for a full site-constraints sweep from a single coordinate.

FAQ

Is this the official EPA data? Yes — it queries the Esri Living Atlas mirror of EPA's ATTAINS Clean Water Act Section 303(d) impaired-waters and TMDL dataset, refreshed roughly quarterly.

Does "near" mean the site actually drains to that water? No. nearest_distance_miles is a straight-line proximity proxy, not a hydrologic drainage delineation. Confirm actual receiving-water drainage with a site-specific study before any permitting decision — see the disclaimer field on every row.

What counts as an "impairment cause"? Only pollutants EPA ATTAINS classifies as a confirmed "Cause" for that water (as opposed to "Insufficient Information" or "Observed Effect", which are excluded from the causes list but visible if you inspect the raw service).

How many sites can I screen at once? Up to maxAssets (default 200, max 2000) per run; each asset is billed as one Result event.

What if the EPA service is temporarily renamed or down? The actor resolves the current service URL from a stable ArcGIS item id at runtime, so routine quarterly renames need no code change. If EPA/Esri's service is genuinely unavailable, affected assets return a clear error row instead of failing the whole run.