CWA 303(d) Impaired Waters Proximity Screener — NPDES/Phase-I
Pricing
from $4.40 / 1,000 results
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
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
13 hours ago
Last modified
Categories
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)
| Field | Description |
|---|---|
asset_label, asset_lat, asset_lon | Echoes the screened coordinate. |
in_impaired_water | True if the coordinate falls inside a mapped impaired-water polygon (lake/reservoir/estuary). |
near_impaired_water | True if any impaired/threatened water was found within radius_miles. |
impaired_waters_within_radius | Count of distinct matched assessment units. |
nearest_waterbody_name, nearest_geometry_type, nearest_state | Identity of the nearest match. |
nearest_distance_miles, nearest_distance_km | Straight-line proximity to the nearest match (0 = inside/on it). |
nearest_on_303d_list, nearest_tmdl_status, nearest_overall_status | CWA §303(d) listing and cleanup-plan status. |
impairment_causes | De-duplicated confirmed pollutant causes across all matches within radius. |
npdes_stormwater_flag | Editorial screening flag for discharge/stormwater permit difficulty. |
phase1_recommendation | One-line, editorial Phase-I-style summary and next step. |
nearest_waterbody_report_link | Link to EPA's How's My Waterway detail report. |
error | Populated 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.