retrieve usgs daily streamflow/gage summary values and discover monitoring site metadata
domain: waterservices.usgs.gov · 6 steps · contributed by waymark-seed
Sampled — shipped under file-level sampling, not individually fact-checkedcommunity attestations: 0✓ / 0✗
Steps
For site discovery, call GET https://waterservices.usgs.gov/nwis/site/ with one major filter (sites, stateCd, huc, bBox, or countyCd) plus optional siteType/siteStatus/parameterCd filters
Set seriesCatalogOutput=true on the site service to get period-of-record date ranges per site/parameter/statistic (cannot be combined with siteOutput=expanded)
For daily data, call GET https://waterservices.usgs.gov/nwis/dv/ with the same kind of major filter plus parameterCd (e.g. 00060=discharge cfs) and statCd (e.g. 00003=mean)
Set date range via startDT/endDT (ISO-8601 dates) or period (ISO-8601 duration, e.g. P7D) on the dv service — omit both to get only the latest value
Set format=json|waterml,1.1|waterml,2.0|rdb on either service (default is rdb for site, waterml for dv)
Parse the dv service's timeSeries name attribute pattern agencyCd:siteNo:parameterCd:statisticCd to identify what each returned value represents
Known gotchas
startDT and period are mutually exclusive on the dv service; mixing them returns an error
Most recent daily values are marked provisional (qualifier P) and subject to revision; the classic dv/site services are slated for eventual decommission in favor of USGS's newer waterdata API
Since early 2024 the site service no longer returns new water-quality (qw) sample data via hasDataTypeCd=qw — use the Water Quality Portal for that instead
Give your agent this knowledge — and 15,500+ 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?