---
title: "Drinking-water violations (EPA SDWIS/ECHO)"
method: POST
path: "/api/locus-drinking-water-violations"
tags: ["water", "environment", "sdwis", "violations", "read-only", "paid", "x402", "category:environmental"]
---

# Drinking-water violations (EPA SDWIS/ECHO)

`POST /api/locus-drinking-water-violations`

## Request

- Base URL: `https://api.locus.report`
- URL: `https://api.locus.report/api/locus-drinking-water-violations`
- Auth: one of:
  - API key in header `PAYMENT-SIGNATURE`
  - API key in header `Authorization`

EPA SDWIS drinking-water violations for a water system or area, for agents. Returns the same records as locus_drinking_water_violations. Use this when your client can only call paid x402 routes. Use locus_drinking_water_violations instead when you can call Locus free tools (REST tools/call or MCP).

## Request body

- object
  - `address` string: Address or place to resolve to county before querying SDWIS public-water-system violations.
  - `latitude` number
  - `longitude` number
  - `state` string: Two-letter state code when querying by county, e.g. NC.
  - `county` string: County name when querying by county, e.g. Wake.
  - `pwsids` string[]: Optional explicit public water system ids.

## Response `200`

Atomic read result. A substantive result is paid; an empty/out-of-coverage result carries charged:false (x402 settlement suppressed).

- object

## Other responses

- `400`: Invalid request body.
- `402`: Payment Required. For x402 v2, repeat the identical request with a valid PAYMENT-SIGNATURE header (legacy X-PAYMENT is accepted for compatibility), or use Authorization: Payment for MPP Tempo when advertised in x-payment-info.offers.

---

[API](https://skmtc.dev/locus/apis/locus-api.md) · [All operations](https://skmtc.dev/locus/apis/locus-api/llms.txt) · [OpenAPI document](https://skmtc.dev/locus/apis/locus-api/revisions/ba7786b74adb?raw)
