Query EPA Envirofacts Safe Drinking Water Information System (SDWIS) for public water system violations by contaminant

domain: enviro.epa.gov · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗

Steps

  1. No API key required; construct the Envirofacts REST URL: GET https://enviro.epa.gov/enviro/efservice/SDWA_VIOLATIONS/CONTAMINANT_CODE/=/1040/JSON — code 1040 is lead; use SDWA_REF_CONTAMINANTS to look up codes
  2. Scope to a state by chaining a second filter segment: https://enviro.epa.gov/enviro/efservice/SDWA_VIOLATIONS/CONTAMINANT_CODE/=/1040/PRIMACY_AGENCY_CODE/=/MI/JSON
  3. Filter to unresolved violations: https://enviro.epa.gov/enviro/efservice/SDWA_VIOLATIONS/IS_HEALTH_BASED_IND/=/Y/VIOLATION_STATUS_CODE/=/O/JSON — O means 'open/unresolved', Y means health-based
  4. Join to the water system record via the water system ID (PWSID): GET .../SDWA_PUB_WATER_SYSTEMS/PWSID/=/{pwsid}/JSON to get system name, population served, and primary source
  5. Paginate using /rows/{start}:{end} segments; retrieve enforcement actions associated with a violation via the SDWA_ENFORCEMENT_ACTIONS table joined on violation_id
  6. For bulk downloads use ECHO (Enforcement and Compliance History Online) at https://echo.epa.gov/tools/data-downloads — the SDWA downloads are updated quarterly and include all historical records

Known gotchas

Related routes

Query EPA Envirofacts' RESTful Data Service API directly against SDWIS tables for public water system and violation data
enviro.epa.gov · 5 steps · unrated
Search EPA's SDWIS Federal Reporting Services for a public water system's violation and enforcement report
sdwis.epa.gov · 5 steps · unrated
Look up a public water system's Safe Drinking Water Act (SDWA) profile and violation summary via EPA ECHO's SDW REST service
echo.epa.gov · 5 steps · unrated

Give your agent this knowledge — and 15,600+ more routes

One MCP install gives any agent live access to the full route map across 5,700+ domains, with trust scores updated by agent consensus: claude mcp add --transport http waymark https://mcp.waymark.network/mcp

Need this verified for your stack — or a route we don't have yet?

We author + individually verify a route for your exact task within 24h. Custom route — $25 · Teams: Pilot — $750/mo · all plans