REST API · v1

Water quality intelligence
for every US address.

One API call. Municipal systems, private wells, PFAS, lead, 30+ contaminants. A–F grades your users actually understand.

1

Send an address

GET /api/v1/water?address=123 Main St, Denver CO

Any US address, lat/lng coordinates, or water system ID.

2

Get a grade

Overall A–F water quality grade plus per-contaminant breakdown. Municipal or private well — the API figures out which.

3

Display it

Letter grades, risk flags, contaminant details — everything you need for a listing page, disclosure report, or risk dashboard.

What you get in every response

PFAS detection

Per-compound PFAS detection and MCL exceedance flags from EPA’s fifth Unregulated Contaminant Monitoring Rule.

Source: EPA UCMR5 · Federal monitoring data

Lead risk tier

Service line material inventory data — known lead lines, unknown lines, and worst-case percentages.

Source: EPA LCRR · Federal inventory data

Violation history

Ten-year health violation count, open violations, and trend direction from EPA compliance records.

Source: EPA SDWIS · Federal compliance data

CCR contaminant data

Utility-reported contaminant concentrations extracted and normalized from Consumer Confidence Reports. Coverage: ~49% of US population. Actively expanding.

Source: Utility CCRs · Preliminary — expanding & refining

Well chemistry

Nearby monitoring well results and USGS modeled risk for PFAS, arsenic, and nitrate at any US coordinate.

Source: USGS WQP, TWDB · Federal & state monitoring data

Address resolution

Any US address geocoded and matched to the correct water system or classified as a private well area.

Real API responses

These are actual responses from the WaterScore API. Not mock data.

GET/api/v1/water?pwsid=CA1910067
Overall Grade
B
Water Type
municipal
PFAS
A
CCR Grade
D
17 contaminants graded
Worst Finding
Bromate
76% of federal MCL
Full municipal response
{
  "request_id": "a3f2d1b0-7c4e-4abc-8def-112233445566",
  "pwsid": "CA1910067",
  "system_name": "LOS ANGELES-CITY, DEPT. OF WATER & POWER",
  "water_type": "municipal",
  "state": "CA",
  "population_served": 4041284,
  "service_area": "LOS ANGELES",
  "overall_grade": "B",
  "grades": {
    "pfas": {
      "grade": "A",
      "detected": false,
      "detected_compounds": [],
      "above_mcl": false
    },
    "lead": {
      "grade": "A",
  ...
}

API Reference

Request Parameters

FieldTypeDescription
addressstringAny US street address. Geocoded automatically.
lat, lngnumberCoordinates. Use instead of address for precision.
pwsidstring9-character EPA water system ID. Fastest lookup.

Priority: pwsid → lat/lng → address. At least one required.

Top-Level Response

FieldTypeDescription
request_idstringUnique ID for this request
pwsidstringEPA water system ID (municipal only)
system_namestringWater system name (municipal only)
water_type"municipal" | "well"Whether address is on public water or a private well
overall_gradeA–FComposite water quality grade
data_sourcesstring[]Which data sources contributed (SDWIS, UCMR5, CCR, WQP)
data_confidenceobjectPer-source data maturity: "verified" (federal/state data) or "preliminary" (WaterScore-extracted, expanding coverage)

Grades Object (Municipal)

FieldTypeDescription
grades.pfas.gradeA–F | N/TPFAS contamination grade. N/T = not tested under UCMR5.
grades.pfas.detectedbooleanWhether any PFAS compounds were detected
grades.pfas.above_mclbooleanWhether any PFAS exceed federal limits
grades.lead.gradeA–D | ?Lead risk based on service line inventory data
grades.lead.risk_tierstringnone, low, medium, high, unknown_high, no_data
grades.violations.gradeA–FBased on EPA compliance history (10-year window)
grades.violations.has_open_violationsbooleanCurrently unresolved health violations
grades.violations.trendstringimproving, stable, or worsening
grades.chromium6.gradeA | C | FHexavalent chromium (Erin Brockovich contaminant)
grades.lithium.gradeA | B | CNaturally occurring lithium levels

CCR Object (Municipal, when available)

FieldTypeDescription
ccr.availablebooleanWhether CCR data exists for this system
ccr.report_yearnumberYear of the Consumer Confidence Report
ccr.overall_gradeA–F | nullGrade based on worst federal primary standard contaminant
ccr.contaminantsarrayPer-contaminant breakdown
ccr.contaminants[].namestringContaminant name
ccr.contaminants[].gradeA–FIndividual contaminant grade
ccr.contaminants[].valuenumberDetected level
ccr.contaminants[].mclnumberFederal limit (MCL, action level, or secondary standard)
ccr.contaminants[].pct_of_mclnumberDetected level as fraction of limit (1.0 = at limit)
ccr.contaminants[].limit_typestringfederal, action_level, secondary, or who

Well Object (Private well)

FieldTypeDescription
nearby_wells.count_in_radiusnumberMonitored wells within search radius
nearby_wells.radius_milesnumberSearch radius used
nearby_wells.gradesobjectPer-contaminant grades from nearby monitoring wells
modeled_riskobjectUSGS statistical model predictions (pfas, arsenic, nitrate)
modeled_risk.*.gradeA–FRisk grade from model probability
modeled_risk.*.probabilitynumberProbability of exceedance (0–1)

Grade Scale

FieldTypeDescription
AExcellentWell within limits (<10% of MCL) or not detected
BGoodDetected at low levels (10–30% of MCL)
CModerateModerate levels (30–70% of MCL) or informational finding
DConcernApproaching limits (70–100% of MCL)
FFailingAbove federal limits
N/TNot TestedPFAS only — system not included in EPA monitoring
?UnknownLead only — service line inventory data unavailable

Water quality is a material risk factor — and nobody’s data covers it.

PFAS contamination depresses property values. Lead service line replacement costs fall on homeowners. Private well contamination kills rural land deals. Proptech platforms, lenders, and environmental consultants integrate flood, wildfire, and air quality data — but drinking water quality has been a blind spot. The data exists — it’s buried across 48,000 individual utility reports, state databases, and federal monitoring programs. Nobody had stitched it together.

WaterScore extracts, normalizes, and grades that data so you don’t have to.

Built for proptech

Property listings

Add a water quality grade badge to every listing. Flag properties with PFAS detections or lead risk before your buyers ask.

Mortgage & risk

Screen addresses for water quality risk at origination. 48,000+ municipal systems and private well coverage nationwide.

Relocation tools

Help movers compare water quality across cities. One API call returns everything — no hydrogeology degree required.

48,000+
water systems graded
~49.4%
US population with CCR data
30+
contaminants tracked
Nationwide
private well chemistry for any coordinate

Need the full dataset?

For platforms that want to integrate WaterScore data into their own infrastructure — not query it per-address — we offer bulk data licensing. You get the complete graded dataset for 48,000+ US water systems, CCR contaminant extractions covering ~49.4% of the US population, and quarterly refresh delivery. Private well chemistry remains real-time via API (coordinate-dependent, can’t be pre-cached).

Pricing is based on coverage scope, refresh frequency, and distribution rights. Contact us to discuss.