Time series · streamflow-daily

Daily streamflow

Daily mean discharge at every USGS stream gage over the last 400 days, flagged provisional, estimated or ice-affected, with the USGS qualifier codes. Re-read in full every day, because USGS revises provisional values for months.

Updates
Daily
Coverage
—
Current version
—
Last published
—
Validation
—
License
US Government work
Commercial use
Allowed

Chart

Daily streamflow

Loading the chart…
Source: U.S. Geological Survey.
Show the data as a table

The table appears once the data has loaded.

Use the API

Each series and location is its own small file. The examples follow the series and location picked above. See the docs for versions, caching and errors.

curl

# One series for one place (.json or .csv)
curl -s "https://api.waterdata.dev/v1/streamflow-daily/discharge/{location}.json"

# Every series and place in one file
curl -sO "https://api.waterdata.dev/v1/streamflow-daily/download/streamflow-daily.csv"

Python (polars)

import polars as pl

# One series for one place
df = pl.read_csv("https://api.waterdata.dev/v1/streamflow-daily/discharge/{location}.csv")

# Every series and place, with series and location columns
everything = pl.read_parquet("https://api.waterdata.dev/v1/streamflow-daily/download/streamflow-daily.parquet")

JavaScript

const res = await fetch("https://api.waterdata.dev/v1/streamflow-daily/discharge/{location}.json");
if (!res.ok) throw new Error((await res.json()).detail); // errors are problem+json
const { meta, data } = await res.json();
console.log(meta.location_name, data.at(-1)); // { date, value, ... }

Downloads

The whole dataset in one file, with series and location columns. Parquet keeps the column types and is much smaller.

Schema and series

Each series file has these columns. The bulk downloads add series and location columns in front.

Column Type Unit Can be empty Description
date date (YYYY-MM-DD) — no Local calendar day at the gage
value number ft^3/s yes Daily mean discharge. Null where USGS publishes the day without a value (ice, equipment, seasonal); negative where tidal or regulated flow runs upstream
provisional true / false — no True until USGS approves the value; provisional data are subject to revision
estimated true / false — no USGS qualifier ESTIMATED
ice true / false — no USGS qualifier ICE (ice-affected)
qualifiers text — yes Every USGS qualifier code for the day, comma-separated, e.g. BACKWATER,ESTIMATED

Series

Series id Name
discharge Daily mean discharge

Locations

Covers stations whose ids match usgs-\d{8,15}.

Source and license

Source
USGS Water Data APIs (OGC API), daily values
Publisher
U.S. Geological Survey
License
US Government work (public domain in the United States) (LicenseRef-US-Government-Work)
Commercial use
Allowed

Credit the source with this exact text:

Streamflow data courtesy of the U.S. Geological Survey.

Checked every 1 day. If the source hasn't changed in 3 days, the status page flags it as stale.

Endpoints

Every URL for this dataset. To pin the current version, put it after the id: /v1/streamflow-daily@<version>. The API reference describes each response.

What URL
Metadata: version, coverage, downloads, validation /v1/streamflow-daily
Versions and monthly snapshots /v1/streamflow-daily/versions
Series and locations /v1/streamflow-daily/locations
Daily mean discharge (JSON) /v1/streamflow-daily/discharge/{location}.json
Daily mean discharge (CSV) /v1/streamflow-daily/discharge/{location}.csv
Whole dataset (CSV) /v1/streamflow-daily/download/streamflow-daily.csv
Whole dataset (Parquet) /v1/streamflow-daily/download/streamflow-daily.parquet