Free, public water quality data for every US ZIP code. Powered by EPA SDWIS data.
https://api.zipcheckup.com/v1{"data": ..., "meta": {...}}
zipcheckup.com. Quota: 50 req/day per IP. Addresses are never logged or stored.{ "address": "1600 Pennsylvania Ave NW, Washington, DC" }
curl -X POST https://api.zipcheckup.com/v1/address-lookup \
-H 'Content-Type: application/json' \
-H 'Origin: https://zipcheckup.com' \
-d '{"address":"1600 Pennsylvania Ave NW, Washington, DC"}'
// Response
{
"data": {
"lat": 38.898,
"lon": -77.036,
"state": "DC",
"matchedAddress": "1600 PENNSYLVANIA AVE NW, WASHINGTON, DC, 20500",
"primary": { "pwsid": "DC0000001", "name": "DC WATER & SEWER AUTHORITY", "pop": 700000 },
"alsoServes": [],
"candidatesChecked": 3,
"polygonsMatched": 1
},
"meta": {
"source": "US Census Geocoder + EPA CWS Service Area Boundaries v3",
"updated": "2026-04-19"
}
}
curl https://api.zipcheckup.com/v1/zip/90210
curl https://api.zipcheckup.com/v1/zip/90210/score
// Response
{
"data": {
"zip": "90210",
"city": "Beverly Hills",
"state": "CA",
"score": 65,
"grade": "C"
},
"meta": { "source": "EPA SDWIS", "updated": "2026-03-24" }
}
curl https://api.zipcheckup.com/v1/state/CA
limit — number of results (1-100, default 50)order — asc (worst first) or desc (best first, default)
curl "https://api.zipcheckup.com/v1/rankings?limit=10&order=asc"
curl https://api.zipcheckup.com/v1/contaminant/1040
fips — 5-digit US county FIPS code (state + county subcode), e.g. 06037 (Los Angeles County, CA).
curl https://api.zipcheckup.com/v1/county/06037/airdata-trend
// Response
{
"data": {
"county_fips": "06037",
"county_name": "Los Angeles",
"state": "CA",
"airdata_change_class": "stable",
"airdata_pct_change": -5.9,
"cycles_used": 5,
"facility_count": 331,
"sensitivity_robust": null,
"skip_reason": null,
"source_attribution": "EPA AirData annual AQI summaries 2020-2024",
"petrochemical_corridor": false,
"aqi_latest_year": 2024
},
"meta": {
"source": "EPA AirData annual AQI summaries 2020-2024 (county rollup, ZipCheckup-aggregated)",
"methodology": "https://zipcheckup.com/methodology/airdata-trend/",
"license": "CC-BY-4.0",
"attribution": "ZipCheckup (zipcheckup.com) — derived from EPA AirData public datasets"
}
}
curl https://api.zipcheckup.com/v1/county/coverage/airdata-trend
{
"data": { ... },
"meta": {
"source": "EPA SDWIS",
"updated": "2026-03-24"
}
}
// 404 — ZIP not found
{ "error": { "message": "No water quality data found for ZIP 00000.", "status": 404 } }
// 429 — Rate limited
{ "error": { "message": "Rate limit exceeded. Max 100 requests/day.", "status": 429 },
"limit": 100, "reset": "2026-03-26T00:00:00.000Z",
"upgrade": "https://zipcheckup.com/api/pricing/" }
// 400 — Invalid input
{ "error": { "message": "Invalid ZIP code. Must be 5 digits.", "status": 400 } }
X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset.© 2026 ZipCheckup.com — Main Site