# USBR Reclamation Water Data Scraper (`parseforge/usbr-reclamation-water-scraper`) Actor

Scrapes water data from the USBR RISE catalog, including reservoir storage, elevation, and flow measurements. Returns each measurement as a flat row with date, value, and metadata.

- **URL**: https://apify.com/parseforge/usbr-reclamation-water-scraper.md
- **Developed by:** [ParseForge](https://apify.com/parseforge) (community)
- **Categories:** Developer tools, Other, Automation
- **Stats:** 2 total users, 1 monthly users, 86.7% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $4.52 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

[![ParseForge](https://raw.githubusercontent.com/ParseForge/apify-assets/main/banner.jpg)](https://apify.com/parseforge?fpr=vmoqkp)

### USBR Reclamation Water Data Scraper

**Scrape water data from the USBR RISE catalog, including reservoir storage, elevation, and flow measurements.** Every record comes with its parameter name, location, time-series values, and metadata. No API key required. Export to CSV, JSON, Excel, or XML.

The U.S. Bureau of Reclamation's RISE database holds critical water data for reservoirs, rivers, and canals across the Western United States, but querying it manually is slow and the web interface limits bulk downloads. This scraper reads the public catalog and time-series endpoints directly, filtering by parameter name or catalog item ID, and returns structured records ready for analysis. It handles the WAF protection with a residential proxy so you get clean data without writing a single line of code.

| Who uses it | What they scrape USBR Reclamation Water Data for |
|---|---|
| Water resource managers | Monitor daily reservoir storage and elevation changes across multiple basins. |
| Hydrologists | Gather historical streamflow and natural flow data for long-term trend analysis. |
| Agricultural planners | Track irrigation water availability and allocation forecasts. |
| Climate researchers | Collect precipitation and snowpack data correlated with reservoir levels. |
| Data journalists | Pull current drought indicators and water storage figures for reporting. |

### What it does

This Actor collects USBR Reclamation water data by catalog item ID or parameter name filter and returns each measurement as a flat row with its date, value, and metadata.

- 📋 **Catalog browsing:** List all monitored water locations and parameters by searching parameter names like Elevation, Storage, or Full Natural Flow.
- 📈 **Time-series extraction:** Pull every measurement value for a specific catalog item ID, with optional date range filtering.
- 🛡️ **Residential proxy included:** The RISE WAF blocks datacenter IPs, so the scraper uses an Apify residential proxy by default to ensure reliable runs.

Results export to CSV, JSON, Excel, or XML, or straight from the API.

### What you can do with USBR Reclamation Water Data data

**📊 Monitor reservoir storage across the West.**

A water resource manager runs the scraper weekly with a parameter name filter for Storage, collecting current levels from every monitored reservoir to update a regional dashboard.

**🔬 Analyze long-term streamflow trends.**

A hydrologist pulls 30 years of Full Natural Flow data for a specific catalog item ID to feed a climate impact model.

**🌾 Plan irrigation allocations.**

An agricultural planner extracts current elevation and storage data for key reservoirs to estimate water availability for the upcoming growing season.

**📰 Report on drought conditions.**

A data journalist collects the latest reservoir storage figures and compares them against historical averages to illustrate drought severity in an article.

### Why choose this scraper

|  | What you get |
|---|---|
| **No API key or registration** | Access public USBR water data without signing up for a developer account. |
| **Residential proxy built in** | The RISE WAF is bypassed automatically so your runs complete without IP blocks. |
| **Flexible output formats** | Download your dataset as CSV, JSON, Excel, or XML for direct use in GIS or modeling tools. |
| **Date range filtering** | Pull only the water years or seasons you need, from a single day to decades of records. |
| **Structured flat schema** | Every measurement is a row with date, value, parameter name, and location metadata, ready for pivot tables. |

### How it compares

No other Store actor targets USBR Reclamation Water Data the same way, so the honest comparison is with the alternatives teams actually weigh.

| | USBR Reclamation Water Data Scraper | Build it in-house | By hand |
|---|---|---|---|
| Setup | Run it now, zero config | Days of engineering | None, but hours per pull |
| When USBR Reclamation Water Data changes | Maintained for you | You fix it | You re-learn the page |
| Proxies, retries, anti-bot | Built in | Your problem | Browser only |
| Output | Fixed JSON schema, CSV/Excel export | Whatever you build | Copy-paste |
| Cost | Pay per result | Engineering time | Analyst hours |

### Configure the run

Drive the Actor with a catalog item ID for time-series data or a parameter name filter to browse the catalog, and set a date range to narrow down measurements. The Input tab lists every parameter.

A first run with the defaults:

```json
{
  "maxItems": 10
}
```

A larger pull:

```json
{
  "maxItems": 200
}
```

### Pricing

Pay-per-result: **$0.005 per result** collected. You pay only for the results written to your dataset.

| Results collected | Approximate cost |
|---|---|
| 100 results | $0.50 |
| 1,000 results | $5.00 |
| 10,000 results | $50.00 |

New Apify accounts start with $5 in free credit.

### Free users

Free-plan runs return up to 10 results as a preview. [Upgrade your Apify plan](https://console.apify.com/sign-up?fpr=vmoqkp) to collect up to 1,000,000 results per run.

### Run it

1. [Create a free Apify account with $5 in credit](https://console.apify.com/sign-up?fpr=vmoqkp).
2. Open the [USBR Reclamation Water Data Scraper](https://apify.com/parseforge/usbr-reclamation-water-scraper?fpr=vmoqkp).
3. Set your inputs and any filters, then click **Start**.
4. Export the results as CSV, Excel, JSON, or XML from the **Dataset** tab.

Run it programmatically through the [Apify API](https://docs.apify.com/api/v2) (`run-sync-get-dataset-items`) or the [ApifyClient](https://docs.apify.com/api/client/js) for JavaScript and Python.

### Use with AI agents (MCP)

Give an AI agent live access to USBR Reclamation Water Data through the Model Context Protocol. Add the Actor to Claude, Cursor, or any MCP client:

```bash
claude mcp add --transport http apify "https://mcp.apify.com/?tools=parseforge/usbr-reclamation-water-scraper"
```

Then prompt it in plain language to run the scraper and read back the results.

### Troubleshooting

**Why am I getting no results?**

Check that your parameter name filter is spelled correctly and matches a real parameter in the RISE catalog. Try a broader filter like Flow instead of Full Natural Flow. In time-series mode, verify the item ID exists and that your date range covers a period with measurements.

**Why does the run fail with a connection error?**

The RISE WAF likely blocked the request. Make sure the useProxy option is set to true. If you turned it off, turn it back on to route through the residential proxy.

**Why are my date filters not working?**

Date filters only apply in time-series mode when you provide an itemId. In catalog mode, dateFrom and dateTo are ignored because the catalog does not contain measurement dates.

**Why do I get fewer records than my maxItems setting?**

The scraper stops when it has collected all available data matching your filters. If the RISE database has fewer measurements than your maxItems value, you will receive only what exists.

### FAQ

| Question | Answer |
|---|---|
| What is the USBR RISE catalog? | RISE is the Reclamation Information Sharing Environment, the U.S. Bureau of Reclamation's public database for water data including reservoir storage, elevation, streamflow, and other hydrologic measurements from sites across the Western United States. |
| Do I need an API key or login? | No. This scraper reads the public RISE endpoints directly. You do not need to register an application or obtain an API key. |
| How do I find a catalog item ID? | Run the scraper in catalog mode first with a parameter name filter like Elevation or Storage. The resulting dataset will list every matching item and its ID, which you can then use in time-series mode. |
| What parameters can I search for? | Common parameters include Elevation, Storage, Full Natural Flow, Inflow, Outflow, and Precipitation. The parameter name filter does a partial text match, so searching for Flow returns all flow-related parameters. |
| Can I limit the date range of measurements? | Yes. In time-series mode, set the dateFrom and dateTo fields to ISO dates like 2024-01-01 and 2024-12-31 to pull only that period. |
| Why does the scraper use a residential proxy? | The RISE website uses a Web Application Firewall that blocks requests from datacenter IP addresses. The residential proxy routes your requests through residential IPs so they appear as normal user traffic. |
| How many records can I collect in one run? | You can set maxItems up to 1,000,000 records per run. The actual number depends on how many measurements exist for your chosen item and date range. |
| What output formats are supported? | You can export your dataset to CSV, JSON, Excel, or XML directly from the Apify platform after the run completes. |
| Can I scrape multiple catalog items in one run? | The scraper processes one item ID per run in time-series mode. To collect data for multiple items, run the Actor multiple times with different item IDs or use catalog mode to browse all items matching a parameter name. |
| Is this data updated in real time? | The RISE database is updated by the Bureau of Reclamation on their schedule. The scraper pulls whatever data is currently available in the public endpoints. |

### Related actors

- [usbr-reclamation-water-scraper](https://apify.com/parseforge/usbr-reclamation-water-scraper?fpr=vmoqkp): The primary scraper for USBR RISE water data, covering catalog browsing and time-series extraction.

Browse the full [ParseForge collection](https://apify.com/parseforge?fpr=vmoqkp) for more scrapers.

🆘 **Need help?** Email parseforge@protonmail.com with your run ID, your input, and what you expected.

⚠️ **Disclaimer.** This Actor is unofficial and is not affiliated with, endorsed by, or sponsored by U.S. Bureau of Reclamation. It collects only publicly available data. You are responsible for using the collected data in compliance with the source's terms of service and applicable data-protection laws, including GDPR, CCPA, and PIPL. Do not use it to collect personal data unlawfully.

# Actor input Schema

## `itemId` (type: `integer`):

Optional RISE catalog item ID. When set, the scraper returns the time-series measurement values (dates and numeric results) for that item. Leave empty to browse the catalog of monitored water locations and parameters.

## `parameterName` (type: `string`):

Optional. In catalog mode, keep only items whose parameter name contains this text (e.g. Elevation, Storage, Full Natural Flow).

## `dateFrom` (type: `string`):

Optional ISO date lower bound for measurements (time-series mode only), e.g. 2024-01-01.

## `dateTo` (type: `string`):

Optional ISO date upper bound for measurements (time-series mode only), e.g. 2024-12-31.

## `maxItems` (type: `integer`):

How many records to collect per run.

## `useProxy` (type: `boolean`):

The RISE (data.usbr.gov) WAF blocks datacenter IPs, so an Apify residential proxy is used by default. Turn this off only if you want a direct connection.

## Actor input object example

```json
{
  "maxItems": 10,
  "useProxy": true
}
```

# Actor output Schema

## `results` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "maxItems": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("parseforge/usbr-reclamation-water-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "maxItems": 10 }

# Run the Actor and wait for it to finish
run = client.actor("parseforge/usbr-reclamation-water-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "maxItems": 10
}' |
apify call parseforge/usbr-reclamation-water-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,parseforge/usbr-reclamation-water-scraper"
        }
    }
}

```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/tEkw0lnfqn2Tej03S/builds/zcLRJJQdevEnzExax/openapi.json
