EPA SDWIS Water Systems & Violations Scraper
Pricing
from $5.00 / 1,000 results
EPA SDWIS Water Systems & Violations Scraper
Scrape every active US public water system from EPA SDWIS: PWSID, name, town, population served, service connections, water source, owner type, and its count of safe-drinking-water violations, health-based ones flagged. Filter by state, county, type and size. Facilities only, no personal data.
Pricing
from $5.00 / 1,000 results
Rating
0.0
(0)
Developer
US Tech Automations
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
16 hours ago
Last modified
Categories
Share
Scrape every active US public water system out of the EPA's own Safe Drinking Water Information System (SDWIS) and get back one clean row per system, each carrying its count of safe-drinking-water violations. Filter by state, county or town, system type and minimum population served. The EPA SDWIS Water Systems & Violations Scraper reads Envirofacts live on every run, so a row is as fresh as the EPA's own database, and it runs on Apify's servers with no API key, no proxy setup and no account at the EPA.
It returns facilities only. A public water system is identified by its EPA-issued PWSID, which is an organisation identifier. Operator names, emails, phone numbers and street addresses are dropped on the way in. Town and state are kept.
What each row contains
| Field | What it is |
|---|---|
pwsid | The EPA's own public water system ID |
pws_name | Name of the water system |
state | Two-letter state code |
city | Town the system serves |
population_served | People served |
service_connections | Number of service connections |
water_source | Ground water, surface water, purchased, or under surface influence |
owner_type | Local, state, federal, tribal, private or mixed |
violations_total | Every SDWA violation on record for this system |
violations_health_based | The subset that the EPA flags as health-based |
source_url | The exact EPA Envirofacts URL this row came from |
How to use it
- Press Try for free on this page.
- Set State to the two-letter code you want, for example
AZ. - Optionally set County to keep only systems whose county or town matches.
- Pick a System type: community (CWS), non-transient non-community (NTNCWS), or transient non-community (TNCWS).
- Set Minimum people served to skip the tiny systems, and Max water systems to cap the size of the run.
- Press Start. Export the dataset as JSON, CSV or Excel, or pull it from the API.
Input example
{"state": "AZ","county": "","systemType": "CWS","populationMin": 500,"maxItems": 50,"timeoutSeconds": 120}
Output example
{"pwsid": "090400001","pws_name": "Topawa Intertie","state": "AZ","city": "Sells","population_served": 1318,"service_connections": 292,"water_source": "Ground water","owner_type": "Native American","violations_total": 1,"violations_health_based": 0,"source_url": "https://data.epa.gov/efservice/WATER_SYSTEM/PWSID/090400001/JSON"}
How much does it cost to scrape EPA SDWIS?
Pay per result: $0.005 for each water system returned. There is no start fee and no monthly charge, so a run that returns nothing costs nothing. 100 systems cost $0.50. 1,000 systems, the hard ceiling for a single run, cost $5.00. Apify's own platform usage is included in that price.
Where the data comes from
EPA Envirofacts SDWIS REST service, the WATER_SYSTEM and VIOLATION tables, at
https://data.epa.gov/efservice. This is US Government public-domain data. Every run
reads it live; nothing is cached or resold from a snapshot.
Frequently asked questions
Does it return contact details for the water utility?
No. This Actor returns facilities and their violation counts only. Names, emails, phone numbers and street addresses are dropped before a row is written.
Can a run run away and cost me a lot?
No. maxItems is capped at 1,000 and every run carries a timeout you set yourself, so the
most a single run can cost is $5.00.
Why does it take about a second per system?
Each system needs a second call to the EPA's VIOLATION table to count its violations.
That is what turns a plain facility list into a compliance view.
Can I schedule it?
Yes. Use Apify's scheduler to re-run it daily, weekly or monthly and diff the datasets to see which systems picked up new violations.
Can I call it from my own code or from an AI agent?
Yes. Run it through the Apify API, any Apify client library, or the Apify MCP server.
More from US Tech Automations
We publish machine-readable US public-records feeds at https://ustechautomations.com/feeds — building permits, licence rosters, federal awards and more.
Limits and disclaimers
Not affiliated with, endorsed by, or connected to the United States Environmental
Protection Agency. This Actor reads published public-domain data and does nothing else. It
is not legal, engineering, health or professional advice. Only actively operating systems
(PWS_ACTIVITY_CODE=A) are returned. If the EPA's service is down or slow, a run returns
what it managed to read within your timeout and no more.