EPA SDWIS Water Systems & Violations Scraper avatar

EPA SDWIS Water Systems & Violations Scraper

Pricing

from $5.00 / 1,000 results

Go to Apify Store
EPA SDWIS Water Systems & Violations Scraper

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

US Tech Automations

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

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

FieldWhat it is
pwsidThe EPA's own public water system ID
pws_nameName of the water system
stateTwo-letter state code
cityTown the system serves
population_servedPeople served
service_connectionsNumber of service connections
water_sourceGround water, surface water, purchased, or under surface influence
owner_typeLocal, state, federal, tribal, private or mixed
violations_totalEvery SDWA violation on record for this system
violations_health_basedThe subset that the EPA flags as health-based
source_urlThe exact EPA Envirofacts URL this row came from

How to use it

  1. Press Try for free on this page.
  2. Set State to the two-letter code you want, for example AZ.
  3. Optionally set County to keep only systems whose county or town matches.
  4. Pick a System type: community (CWS), non-transient non-community (NTNCWS), or transient non-community (TNCWS).
  5. Set Minimum people served to skip the tiny systems, and Max water systems to cap the size of the run.
  6. 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.