PEGELONLINE Water Levels Scraper avatar

PEGELONLINE Water Levels Scraper

Pricing

from $7.50 / 1,000 results

Go to Apify Store
PEGELONLINE Water Levels Scraper

PEGELONLINE Water Levels Scraper

Pull live water levels from the WSV PEGELONLINE gauge network across Germany. Each record carries the station name, water body, current level in centimeters, measurement timestamp, gauge zero datum, and coordinates. Ideal for flood monitoring, hydrology research, and shipping logistics.

Pricing

from $7.50 / 1,000 results

Rating

0.0

(0)

Developer

ParseForge

ParseForge

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 days ago

Last modified

Share

ParseForge Banner

🌊 PEGELONLINE Water Levels Scraper

🚀 Export Germany's live river gauge readings in one run. Pull current water levels from the full WSV PEGELONLINE network of 700+ active stations.

🕒 Last updated: 2026-06-08 · 📊 Up to 16 fields per record · live measurements · national coverage

Turn the official WSV PEGELONLINE service into clean, structured records you can drop into a flood dashboard, a hydrology model, or a shipping planner. Every record is one gauge station with its current water level, the water body it sits on, when the reading was taken, the gauge zero datum, and exact coordinates.

Coverage is the live German federal waterway gauge network as PEGELONLINE publishes it: stations on the Rhein, Elbe, Donau, Weser, Aller, and many more rivers, canals, and tidal reaches, each reporting its latest water level in centimeters. The Actor keeps only stations that actually publish a water-level reading, so you never get empty rows for sensors that measure other things.

🎯 Target Audience💡 Primary Use Cases
Flood and emergency response teamsTrack rising levels across rivers in one pass
Hydrologists and researchersSnapshot the national gauge network on a schedule
Inland shipping and logistics plannersWatch fairway depths on key waterways
Civic and environmental developersPower maps, alerts, and open-data apps

📋 What the PEGELONLINE Water Levels Scraper does

This Actor calls the public WSV PEGELONLINE REST service and returns one clean record per gauge station that reports a water level:

  • Station identity — name, UUID, official station number, operating agency, and river kilometer.
  • Location — water body name plus latitude and longitude.
  • Current reading — water level value, unit, the exact measurement timestamp, and trend states.
  • Reference datum — gauge zero value, its unit, and the date it became valid.

You can filter by station name or by water body, control how many records come back, and every record carries a scrapedAt timestamp.

🎬 Full Demo (🚧 Coming soon)

⚙️ Input

FieldTypeDescription
stationstringOptional. Keep only stations whose name contains this text, case-insensitive. For example Celle. Leave empty for all stations.
waterstringOptional. Keep only stations on a water body whose name contains this text, case-insensitive. For example RHEIN or ELBE. Leave empty for all water bodies.
maxItemsintegerHow many records to return. Free plan is capped at 10.

Example 1 — every gauge on the Rhein

{
"water": "RHEIN",
"maxItems": 100
}

Example 2 — a single named station

{
"station": "DRESDEN",
"maxItems": 5
}

⚠️ Good to Know: Station and water body names come from PEGELONLINE in German and may include letters with umlauts (for example KÖLN). Filters use a plain text match, so type the name as the source spells it. Leave both filters empty to pull the entire active network.

📊 Output

Each record looks like this:

FieldDescription
📌 stationNameFull station name
🆔 uuidPEGELONLINE station UUID
🔢 numberOfficial station number
🌊 waterBodyRiver, canal, or waterway name
🏛 agencyOperating agency
📍 kmRiver kilometer of the station
🧭 latitudeStation latitude
🧭 longitudeStation longitude
📏 waterLevelCurrent water level value
📐 unitLevel unit (usually cm)
📅 measuredAtTimestamp of the reading
📈 trendMnwMhwState versus mean low/high water
📈 trendNswHswState versus lowest/highest navigable water
🪧 gaugeZeroGauge zero datum value
📐 gaugeZeroUnitDatum reference unit
🗓 gaugeZeroValidFromDate the datum became valid
🕒 scrapedAtCollection timestamp
errorNull on success

Real sample — Konstanz

{
"stationName": "KONSTANZ-RHEIN",
"uuid": "e020e651-e422-46d3-ae28-34887c5a4a8e",
"number": "3329",
"waterBody": "RHEIN",
"agency": "REGIERUNGSPRÄSIDIUM FREIBURG",
"km": 0.5,
"latitude": 47.667889,
"longitude": 9.172858,
"waterLevel": 315,
"unit": "cm",
"measuredAt": "2026-06-08T23:45:00+02:00",
"trendMnwMhw": "unknown",
"trendNswHsw": "unknown",
"gaugeZero": null,
"gaugeZeroUnit": null,
"gaugeZeroValidFrom": null,
"scrapedAt": "2026-06-08T22:08:01.708Z",
"error": null
}

Real sample — Basel

{
"stationName": "BASEL-RHEINHALLE",
"uuid": "94f6eff1-4f3f-4850-82e0-a086198e9ffd",
"number": "2310010",
"waterBody": "RHEIN",
"agency": "BUNDESAMT FÜR UMWELT CH",
"km": 164.3,
"latitude": 47.559486,
"longitude": 7.616666,
"waterLevel": 547,
"unit": "cm",
"measuredAt": "2026-06-08T23:50:00+02:00",
"trendMnwMhw": "unknown",
"trendNswHsw": "normal",
"gaugeZero": 240,
"gaugeZeroUnit": "mü.M.",
"gaugeZeroValidFrom": "2010-02-01",
"scrapedAt": "2026-06-08T22:08:01.764Z",
"error": null
}

Real sample — Rheinweiler

{
"stationName": "RHEINWEILER",
"uuid": "06b978dd-8c4d-48ac-a0c8-2c16681ed281",
"number": "23300130",
"waterBody": "RHEIN",
"agency": "STANDORT FREIBURG",
"km": 186.2,
"latitude": 47.711059,
"longitude": 7.529275,
"waterLevel": 224,
"unit": "cm",
"measuredAt": "2026-06-09T00:00:00+02:00",
"trendMnwMhw": "normal",
"trendNswHsw": "unknown",
"gaugeZero": 217.291,
"gaugeZeroUnit": "m. ü. NHN",
"gaugeZeroValidFrom": "2018-11-01",
"scrapedAt": "2026-06-08T22:08:01.790Z",
"error": null
}

✨ Why choose this Actor

  • One clean record per station, ready for a database or a map.
  • Only stations with a real water-level reading are returned, so no empty rows.
  • Coordinates included on every record for instant geo plotting.
  • Gauge zero datum included where the source provides it, for absolute elevation work.
  • No account, no key, and no login required.

📈 How it compares to alternatives

ApproachEffortStructured fieldsCoordinates includedMaintenance
This ActorOne runYesYesNone on your side
Reading the PEGELONLINE web map by handHoursInconsistentManualConstant
Writing your own API clientDaysDependsManualYou own the upkeep

🚀 How to use

  1. Create a free Apify account using this sign-up link.
  2. Open the PEGELONLINE Water Levels Scraper.
  3. Optionally set a station or water filter to narrow the network.
  4. Set maxItems to the number of records you want.
  5. Click Start and grab your results when the run finishes.

💼 Business use cases

Flood and emergency response

GoalHow this helps
Spot rising rivers earlyPull current levels across a basin in one run
Brief field teamsShare station name, level, and coordinates

Inland shipping and logistics

GoalHow this helps
Plan barge routesWatch levels on the Rhein, Elbe, and key canals
Anticipate draft limitsTrack gauge readings against gauge zero

Research and modeling

GoalHow this helps
Build a hydrology datasetSnapshot the national network on a schedule
Calibrate flow modelsCombine level, datum, and coordinates

Civic and environmental apps

GoalHow this helps
Power a public level mapFeed it station coordinates and readings
Send alert notificationsTrigger on a level threshold per station

🔌 Automating PEGELONLINE Water Levels Scraper

Connect runs to the tools you already use:

  • Make and Zapier to trigger runs and route records into sheets or databases.
  • Slack to post an alert when a run finishes.
  • Airbyte to load results into a warehouse.
  • GitHub Actions to schedule periodic snapshots.
  • Google Drive to archive each run's output.

🌟 Beyond business use cases

  • Research: study how water levels move across a basin over time.
  • Personal: watch the river near your home before a paddling trip.
  • Non-profit: power a community flood-awareness resource.
  • Experimentation: prototype a hydrology app without writing a scraper.

🤖 Ask an AI assistant

Paste your results into ChatGPT, Claude, Perplexity, or Microsoft Copilot and ask it to rank stations by level, group them by water body, or flag readings above a threshold.

❓ Frequently Asked Questions

Do I need a PEGELONLINE or WSV account? No. The Actor reads the public PEGELONLINE REST service, which needs no login.

Do I need an API key? No key is required.

What does each record represent? One gauge station and its most recent water-level reading.

Which stations are included? Only stations that publish a water-level (W) timeseries with a current reading. Stations that measure only other things are skipped.

What unit is the water level in? Most stations report in centimeters. The exact unit is in the unit field.

What is gauge zero? It is the reference elevation the gauge measures from. The value and its reference unit are in gaugeZero and gaugeZeroUnit. Some stations do not publish it, so those fields can be null.

How do I filter by river? Use the water filter, for example RHEIN or ELBE. Names are in German as PEGELONLINE spells them.

Why did my station filter return nothing? The match is literal. If the station name uses an umlaut, such as KÖLN, type it exactly as the source does, or leave the filter empty and browse the full list.

How fresh is the data? Each run pulls live from PEGELONLINE, so it reflects the latest published readings at run time.

Can I schedule this? Yes. Use Apify Schedules to snapshot the network on any cadence.

🔌 Integrate with any app

Results are available through the Apify API, so you can pull them into any app, database, or workflow you already run.

💡 Pro Tip: browse the complete ParseForge collection.

🆘 Need Help? Open our contact form

⚠️ Disclaimer: independent tool, not affiliated with WSV, GDWS, or PEGELONLINE. Only publicly available data is collected.