epa-drinking-water-quality-screener
Identify the public water system serving any US coordinate and review its EPA health-based violations, lead, and PFAS data.
Instructions
EPA Drinking Water Quality Screener - Violations, Lead & PFAS. Screen any US coordinate for the public water system serving it: SDWA health-based violations, Lead & Copper Rule 90th-percentile results and UCMR5 PFAS detections - the evidence base behind the LCRI (Nov 1, 2027) and PFAS NPDWR (Apr 26, 2027) deadlines. Never clears a source that did not answer. Reads live from the official government source. Store page: https://apify.com/malonestar/epa-drinking-water-quality-screener
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| assets | No | Sites to screen, each {"lat": <number>, "lon": <number>, "label": "<your name for the site>"}. Each location is matched against EPA's mapped community water system service areas to identify the serving public water system. A location with no mapped service area returns an explicit NO_SERVICE_AREA row (likely a private well), never a false clear. Example: [{"lat":43.0125,"lon":-83.6875,"label":"Flint MI - lead action level exceedance"},{"lat":40.9793,"lon":-74.1165,"label":"Ridgewood NJ - PFAS detections"},{"lat":39.7392,"lon":-104.9903,"label":"Denver CO - control"}]. | |
| pwsids | No | Optional. Screen specific public water systems by 9-character EPA PWSID (for example ["MI0002310"]) without a coordinate lookup. Combined with any locations supplied above. Example: []. | |
| maxAssets | No | Safety cap on how many locations are screened in one run. Locations beyond the cap are reported in the log and not billed. Example: 250. | |
| includeLead | No | Fetch Lead and Copper Rule 90th-percentile tap results and join them to their monitoring periods, so the reported value is dated rather than undated. Example: true. | |
| includePfas | No | Screen the system against EPA's UCMR5 occurrence dataset (1.9 million results, 29 PFAS analytes plus lithium). Turn off for a faster run when PFAS is out of scope. Example: true. | |
| simulateOutage | No | Diagnostic seam for verifying failure behaviour. Forces one or all EPA sources to fail so you can confirm the actor reports the source as unavailable and never publishes a false clear. Leave as none for normal use. Example: "none". | |
| violationYears | No | How many years back counts as a recent health-based violation for the screening flags. The full violation history is still summarised regardless. Set 0 to disable the window. Example: 10. | |
| refreshPfasCache | No | Re-download and re-index the UCMR5 occurrence file even if the cached index already matches EPA's current published vintage. Normally unnecessary: the cache is keyed to the file's Last-Modified header and rebuilds itself whenever EPA republishes. Example: false. | |
| runBudgetSeconds | No | Total time budget for all upstream requests including retries. Requests stop rather than retry past this budget, so a long EPA outage fails loudly instead of hanging. Example: 900. | |
| includeViolations | No | Fetch the system's full Safe Drinking Water Act violation history from EPA SDWIS and roll it up (health-based, monitoring/reporting, treatment technique, Lead & Copper Rule, public-notification tier). Example: true. | |
| includeEnforcement | No | Fetch the system's SDWIS formal enforcement action history and report the count and most recent action. Example: true. | |
| maxViolationDetails | No | How many individual health-based violation records to include in the health_based_violation_details array on each row, newest first. Counts are never truncated. Example: 25. |