← Western Water Data

API documentation

Query official Colorado, New Mexico, Montana, Idaho and Oregon water rights records over HTTP: 1,532,260 records in all. Responses are JSON; every record links back to its official source page.

Getting access

Requests are authenticated with an API key sent in the X-API-Key header. Your key and the base URL are issued together when your account is set up. Email erik@westernwaterdata.com to request one.

If you'd rather not work with an API at all, that's fine: send the county, stream or basin you care about and you'll get the results back as a spreadsheet.

Endpoints

Method & pathAuthReturns
GET /v1/healthnoneRecord counts by state and the last successful data load
GET /v1/water-rightsAPI keyFiltered, paginated list of records
GET /v1/water-rights/{id}API keyA single record, including the original source record

Example request

curl -H "X-API-Key: YOUR_KEY" \
  "https://YOUR_BASE_URL/v1/water-rights?state=CO&county=BOULDER&priority_before=1880-01-01&limit=10"

Filters

All filters are optional and combine with AND: each one you add narrows the result. With no filters you get the first page of everything.

ParameterMatchingExample
stateexactCO, NM, MT, ID or OR
countyexact, uppercaseBOULDER, DONA ANA, YELLOWSTONE
water_sourcepartial (contains)RIO GRANDE
ownerpartial (contains)SMITH (New Mexico, Montana and Idaho records)
qpartial; structure name, source or identifierDITCH
statusexact, source status codeADJ, PMT (New Mexico); ACTV (Montana); Active (Idaho)
right_typepartial (contains)STATEMENT OF CLAIM (Montana); Decreed, License, Permit (Idaho); Cert, Permit, Inchoate, Claim (Oregon)
priority_afterdate ≥1900-01-01
priority_beforedate ≤1880-01-01
min_amountnumber ≥100
unitsexactCFS (flow) or AF (volume)
limit1–500, default 50100
offsetpagination offset50
include_rawbooleantrue adds the original source record
Results are ordered by priority date ascending: the most senior rights come first. The response includes total (how many records match your filters in the whole database) and results (the ones returned on this page, limited by limit).

Response fields

FieldDescription
idStable identifier in this database
source_state / source_agencyOriginating state and agency
source_record_idThe agency's own record identifier
right_identifierWDID (Colorado), file number such as RG-13267 (New Mexico), water right number (Montana, Idaho)
structure_name / structure_typeDitch, well, reservoir, etc.
water_sourceStream, river or declared basin
countyCounty name
latitude / longitudeDecimal degrees (NAD83)
location_accuracyHow the coordinates were derived
appropriation_dateColorado: date the appropriation was initiated
adjudication_dateColorado: date confirmed by the water court
priority_dateEffective seniority date in that state's own semantics
priority_rankNumeric rank within the state (Colorado administration number). Not comparable across states.
amount_absolute / amount_conditionalDecreed amounts
amount_unitsCFS or AF
usesDecreed or permitted uses, as coded by the agency
right_typeType of right as the agency classifies it: statement of claim, provisional permit or certificate (Montana); decreed, licensed, permitted or statutory claim (Idaho)
statusAgency status code (New Mexico, Montana, Idaho)
ownerOwner of record (New Mexico, Montana, Idaho)
case_numbersAssociated case or sub-file numbers
source_urlLink to the official record at the agency
source_modified_atLast change reported by the source
last_seen_atWhen this record was last confirmed present at the source
rawThe complete original source record (only with include_raw=true)

Coverage notes

Colorado: 174,440 records from the Division of Water Resources (CDSS/HydroBase), updated daily at the source. Priority dates are present on every record. Owner names are not part of the state's net amounts dataset.

New Mexico: 283,493 points of diversion from the Office of the State Engineer (WATERS), with owner names and coordinates on every record. Priority dates are not available in bulk: the OSE has confirmed in writing that no downloadable priority-date dataset exists. For the 17,151 adjudicated records, source_url links directly to the official water right summary where the priority date is shown.

Montana: 603,569 points of diversion from the DNRC Water Resources Division, with the owner of record, the enforceable priority date on 581,147 of them, and the type of right on every one. A single right can have several points of diversion, so count distinct right_identifier values, not rows. Each record links to the state's official abstract.

Oregon: 196,567 points of diversion from the Water Resources Department, covering 85,898 distinct water rights, each with its owner of record, priority date and stage (certificated, permit, inchoate or claim). The OWRD's mapped data leaves out pending applications, irrigation district rights, temporary transfers, instream leases and limited licenses, so it is not every drop of water in the state. County is assigned here by point-in-polygon against the Census county boundaries.

Idaho: 274,191 points of diversion from the Department of Water Resources, with owner, priority date on 273,640 of them, and the legal basis of each right (decreed, licensed, permitted or statutory claim). County is not published by the agency: it is assigned here by point-in-polygon against the Census county boundaries, so a point within roughly 100 m of a county line may fall in the neighbouring county.

Sources and terms

All records come from official state open-data channels: the Colorado Division of Water Resources, the New Mexico Office of the State Engineer, the Montana DNRC Water Resources Division, the Idaho Department of Water Resources and the Oregon Water Resources Department. License terms for each source were reviewed before ingestion, and the original record is preserved alongside the normalized one. Data is informational only and not suitable for legal, engineering or survey purposes.

Data is provided as-is, without warranty of any kind, and is not an official record of any agency. For legal purposes, verify at the source using the source_url on each record.