Discover/Bayern API
live

Bayern APIgkd.bayern.de

Access structured groundwater level data from GKD Bayern monitoring stations. Station metadata, current readings, and decades of daily time series for Munich's drinking water regions.

This API takes change requests — .
Endpoint health
verified 3h ago
get_station_info
get_current_level
get_time_series
2/3 passing latest checkself-healing
Endpoints
3
Updated
20d ago

What is the Bayern API?

The GKD Bayern API exposes groundwater monitoring data across 3 endpoints, covering station metadata, current water level readings, and historical daily time series from Bavaria's official hydrological monitoring network. Using get_current_level you can retrieve the latest measured groundwater depth in metres above sea level along with ground surface elevation, while get_time_series delivers up to decades of daily observations for stations in the Mangfalltal and Loisachtal drinking water supply regions.

This call costs1 credit / call— charged only on success
Try it
GKD Bayern station number (e.g. 21947, 25707, 25668).
api.parse.bot/scraper/445866aa-285e-439c-a630-fbd99bfc607a/<endpoint>
Ready to send
Fill in the parameters and hit sign in to send to see live response data here.
Call it over HTTPgrab a free API key at signup
curl -X GET 'https://api.parse.bot/scraper/445866aa-285e-439c-a630-fbd99bfc607a/get_station_info?station_id=21947' \
  -H 'X-API-Key: $PARSE_API_KEY'
Python SDK · recommended

Typed, relational, agent-ready

A generated client with real types, enums, and the links between objects — the structure a flat JSON response can't carry. Autocompletes in your editor and reads cleanly to coding agents.

  • Fully typed · autocompletes
  • Objects link to objects
  • Typed errors & pagination

Typed Python client. Set up the SDK in your uv project, then pull this API’s typed client:

uv add parse-sdk
uv run parse init
uv run parse add --marketplace gkd-bayern-de-api

uv run parse add --marketplace pulls a pinned snapshot of this canonical API — it won’t change underneath you. To customize it, subscribe and swap to your own copy.

"""Walkthrough: MunichWater SDK — bounded, re-runnable; every call capped."""
from parse_apis.gkd_bayern_de_api import MunichWater, Period, StationNotFound

client = MunichWater()

# Fetch station metadata for Vagen/Mangfall (Mangfalltal supply region)
station = client.stations.get(station_id="21947")
print(station.station_name, station.supply_region, station.observation_period)
print(f"  HHW={station.historical_max_level_m}, MW={station.historical_mean_level_m}, NNW={station.historical_min_level_m}")

# Get the most recent groundwater level
level = station.current_level()
print(level.station_name, level.groundwater_level_m, level.measurement_datetime)

# Iterate recent time series (last 12 months), capped at 3 measurements
for m in station.time_series(period=Period.RECENT, limit=3):
    print(m.date, m.groundwater_level_m)

# Typed error handling: attempt to fetch an unknown station
try:
    client.stations.get(station_id="99999")
except StationNotFound as e:
    print(f"not found: {e.station_id}")

print("exercised: stations.get / station.current_level / station.time_series")
All endpoints · 3 totalmissing one? ·

Retrieves station metadata including location, operator, aquifer type, ground elevation, and historical water level statistics (highest/mean/lowest ever recorded). One request per station.

Input
ParamTypeDescription
station_idrequiredstringGKD Bayern station number (e.g. 21947, 25707, 25668).
Response
{
  "type": "object",
  "fields": {
    "river": "string",
    "aquifer": "string",
    "district": "string",
    "operator": "string",
    "source_url": "string",
    "station_id": "string",
    "station_url": "string",
    "municipality": "string",
    "retrieved_at": "string — ISO 8601 timestamp",
    "station_name": "string",
    "supply_region": "string — Mangfalltal or Loisachtal",
    "ground_elevation_m": "number — metres above sea level",
    "observation_period": "string — date range",
    "historical_max_level_m": "number — HHW in metres above sea level",
    "historical_min_level_m": "number — NNW in metres above sea level",
    "historical_mean_level_m": "number — MW in metres above sea level"
  },
  "sample": {
    "data": {
      "river": "inn",
      "aquifer": "Quartär",
      "district": "Rosenheim",
      "operator": "Wasserwirtschaftsamt Rosenheim",
      "source_url": "https://www.gkd.bayern.de/de/grundwasser/oberesstockwerk/inn/vagen-mangfall-r-35-21947",
      "station_id": "21947",
      "station_url": "https://www.gkd.bayern.de/de/grundwasser/oberesstockwerk/inn/vagen-mangfall-r-35-21947",
      "municipality": "Feldkirchen-Westerham",
      "retrieved_at": "2026-07-16T08:53:57.357462+00:00",
      "station_name": "VAGEN/MANGFALL R 35",
      "supply_region": "Mangfalltal",
      "ground_elevation_m": 522.02,
      "observation_period": "09.05.1978 bis 23.06.2026",
      "historical_max_level_m": 521.54,
      "historical_min_level_m": 519.14,
      "historical_mean_level_m": 519.92
    },
    "status": "success"
  }
}

About the Bayern API

Station Metadata and Coverage

get_station_info returns the identifying and contextual details for a given GKD Bayern station, specified by its numeric station_id (e.g. 21947, 25707, 25668). Response fields include station_name, municipality, district, operator, aquifer, and river, giving you the full administrative and hydrogeological context for a monitoring point. The source_url and station_url fields link directly back to the source record for traceability.

Current Groundwater Readings

get_current_level returns the most recent measurement for a station. The response includes groundwater_level_m (current water table in metres above sea level), ground_elevation_m (surface elevation at the station), and measurement_datetime as an ISO 8601 timestamp indicating exactly when the measurement was taken. The supply_region field classifies the station as either Mangfalltal or Loisachtal — the two primary drinking water catchment zones feeding Munich.

Historical Time Series

get_time_series retrieves daily groundwater level records. The period parameter accepts either 'recent' (last 12 months) or 'full' (complete observation history, potentially spanning several decades). Results are ordered newest-first. The optional limit parameter caps the number of returned records; omitting it returns all available measurements. Each entry in the measurements array contains a date and a groundwater_level_m value. The measurement_count field in the response confirms how many records were returned.

Reliability & maintenanceVerified

The Bayern API is a managed, monitored endpoint for gkd.bayern.de — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when gkd.bayern.de changes and a check fails, the API is automatically queued for repair and re-verified. It is built to keep working as the site underneath it changes.

This isn't an official gkd.bayern.de API — it's an independent, maintained REST wrapper over public data. Where the source has no official API (or only a limited one), Parse gives you a stable contract over a source that never promised one, and keeps it current. Need a new endpoint or field? You can revise it yourself in plain English and the agent rebuilds it against the live site in minutes — contributing the change back to the shared API is free.

Last verified
3h ago
Latest check
2/3 endpoints passing
Maintenance
Monitored & self-healing
Will this API break when the source site changes?+
It's built not to. Every endpoint is health-checked on a schedule with automated test probes. When the source site changes and a check fails, the API is automatically queued for repair and re-verified — that's the self-healing layer. Each API page shows when its endpoints were last verified. And because marketplace APIs are shared, any fix reaches everyone using it.
Is this an official API from the source site?+
No — Parse APIs are independent, managed REST wrappers over publicly available data. That is the point: where a site has no official API (or only a limited one), Parse gives you a maintained, monitored endpoint for that data and keeps it working as the site changes — so you get a stable contract over a source that never promised one.
Can I fix or extend this API myself if I need a new endpoint or field?+
Yes — and you don't have to wait on us. This API was generated by the Parse agent, which stays attached. Describe the change in plain English ("add an endpoint that returns reviews", "fix the price field") in the revise box on the API page or via the revise_api MCP tool, and the agent rebuilds it against the live site in minutes. Contributing the change back to the public API is free.
What happens if I call an endpoint that has an issue?+
Errors are machine-readable: a bad call returns a clean status with the list of available endpoints and a repair hint, so an agent (or you) can recover or trigger a fix instead of failing silently. Confirmed failures feed the automatic repair queue.
Common use cases
  • Track seasonal groundwater fluctuations in Munich's Mangfalltal and Loisachtal drinking water supply zones using daily time series data.
  • Build long-term trend visualizations by pulling the full observation history via get_time_series with period='full' for multiple station IDs.
  • Alert systems that watch get_current_level and notify when groundwater_level_m drops below a defined threshold.
  • Compare ground_elevation_m against groundwater_level_m across stations to map depth-to-water-table across the monitoring network.
  • Populate a station directory with operator, aquifer type, municipality, and district from get_station_info for internal GIS or reporting tools.
  • Academic and environmental research requiring decades of hydrological observations from official Bavarian monitoring infrastructure.
  • Water stress dashboards that aggregate current readings across multiple GKD Bayern station IDs to assess regional supply conditions.
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo2005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 req/min
Team$300/mo20,000300 req/min
Company$1,000/mo100,000500 req/min

Each endpoint has a fixed posted price per successful call — most fall between 1 and 10 credits — shown on this API's page before you run it. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.

Frequently asked questions
Does GKD Bayern provide an official developer API?+
GKD Bayern does not publish a documented public REST or data API for developers. Data is available through their web portal at gkd.bayern.de, where individual station pages and downloadable data are accessible to the public.
What does get_time_series actually return, and how do I limit the output?+
It returns a measurements array of daily records, each with a date and groundwater_level_m value. Set period to 'recent' for the last 12 months or 'full' for the complete historical record. Pass an integer to the limit parameter to cap the number of records returned; omitting limit returns every available measurement. The measurement_count field confirms the actual count in the response.
What is the freshness of data returned by get_current_level?+
The response includes a measurement_datetime field indicating exactly when the underlying measurement was recorded by the station, and a retrieved_at timestamp for when the API fetched it. GKD Bayern stations typically update on a daily basis, so same-day intraday changes are not reflected.
Does the API cover groundwater quality parameters such as pH, nitrate, or conductivity?+
Not currently. The API covers water level (groundwater_level_m, ground_elevation_m), station metadata (aquifer, operator, municipality), and daily level time series. Chemical or quality parameters are not included in any response field. You can fork the API on Parse and revise it to add endpoints targeting GKD Bayern's water quality data pages.
Is coverage limited to the Munich drinking water region, or does it include all of Bavaria?+
The current API is scoped to stations in the Mangfalltal and Loisachtal supply regions, as indicated by the supply_region field in get_current_level. Stations outside these two regions are not covered by the existing endpoints. You can fork the API on Parse and revise it to target additional GKD Bayern station IDs from other parts of Bavaria.
Page content last updated . Spec covers 3 endpoints from gkd.bayern.de.
Related APIs in Government PublicSee all →
hydro.chmi.cz API
Monitor real-time water conditions across 562+ Czech river stations by accessing live water levels, flow rates, temperatures, and flood alerts. Search and track specific stations to get detailed hydrological data and historical time series information from the Czech Hydrometeorological Institute.
dataonline.bmkg.go.id API
Access Indonesia's weather station information and check the availability of meteorological data including rainfall, temperature, and sunshine duration readings. Search across different regions and station types to find the weather data you need.
govdata.de API
Search and retrieve official German government datasets including demographics, economic indicators, and business statistics, or browse available organizations and categories to discover relevant open data resources. Filter results by high-value datasets and access site statistics to learn about recently updated information from Germany's Federal Open Data Portal.
wunderground.com API
Access real-time weather conditions, multi-day forecasts, and detailed historical weather data from thousands of personal and airport weather stations worldwide. Search and retrieve current observations, hourly history, and monthly records to power your weather applications and analysis.
statistiken.bundesbank.de API
Retrieve Deutsche Bundesbank's macroeconomic data including exchange rates, interest rates, and financial statistics by searching for specific time series or browsing topics to access historical data points. Monitor Germany's key economic indicators and financial metrics directly from the official central bank database.
ingres.iith.ac.in API
Access groundwater resource estimation data across India at multiple geographic levels—from national summaries down to block-level details—and search specific locations to track groundwater availability and assessment trends. View historical assessment years and generate reports to analyze groundwater resources by state, district, or region.
gasstorage.dk API
Monitor Danish gas storage capacity, hourly nominations, and daily utilization metrics in real-time to track energy supply and storage operations across the country's facilities. Access detailed data on storage levels and gas flow patterns to make informed decisions about energy management and market analysis.
forecast.weather.gov API
Get National Weather Service station metadata plus the latest and recent weather observations (temperature, wind, pressure, humidity, and METAR text) for a specified station ID.