hydro.chmi.cz APIhydro.chmi.cz ↗
Access real-time water levels, flow rates, temperatures, and flood alerts for 562+ Czech river stations via the hydro.chmi.cz API.
curl -X GET 'https://api.parse.bot/scraper/15cf20c7-b5f9-4478-b30f-590ae117ed50/get_stations?page=1' \ -H 'X-API-Key: $PARSE_API_KEY'
List monitoring stations with their current measurements. Returns station metadata, current water level, flow rate, status, and tendency. Supports pagination (50 per page) or retrieving all stations at once.
| Param | Type | Description |
|---|---|---|
| page | string | Page number (1-12) or 'all' for all stations. Each page has ~50 stations. |
{
"type": "object",
"fields": {
"stations": "array of station objects with station_id, station_name, river, category, region, status, spa_limits, last_measurement_time, water_height_cm, flow_rate_m3s, tendency",
"total_stations": "integer count of stations returned"
},
"sample": {
"data": {
"stations": [
{
"river": "Labe",
"region": "Královéhradecký kraj",
"status": "Normální stav",
"category": "B",
"tendency": "Tendence : Setrvlý stav",
"spa_limits": "165 / 200 / 220 [cm]",
"station_id": "307053",
"station_name": "Špindlerův Mlýn",
"flow_rate_m3s": "1.2",
"water_height_cm": "97",
"last_measurement_time": "14. 05. 14:10"
}
],
"total_stations": 50
},
"status": "success"
}
}About the hydro.chmi.cz API
This API exposes hydrological monitoring data from 562+ Czech river gauging stations operated by the Czech Hydrometeorological Institute (CHMI). Three endpoints cover station listing, detailed per-station measurements, and name/river/region search. The get_station_detail endpoint returns time-series water height, flow rate, and temperature alongside SPA flood alert thresholds and, for category A stations, forecast data.
Station Listing and Search
The get_stations endpoint returns up to 50 stations per page (pages 1–12) or all stations at once using page=all. Each station object includes station_id, station_name, river, category, region, status, spa_limits, last_measurement_time, and current water level and flow readings. The search_stations endpoint accepts a free-text query and performs case-insensitive substring matching across station names, river names, and region names — useful for filtering to a specific basin such as Labe or Vltava, or a municipality like Praha.
Station Detail and Time Series
The get_station_detail endpoint takes a station_id (obtained from get_stations) and returns several structured sections. The metadata object includes station_name, river, category, elevation, region, current_status, tendency, classification, basin_code, and municipality. The measured_data array provides timestamped readings of water_height_cm, flow_rate_m3s, temperature_celsius, and status. Note that temperature data is not available at all stations. The graph_time_series object gives the full historical series with millisecond timestamps alongside date strings, water height, and flow rate.
Flood Alerts and Forecasts
Each station exposes spa_limits — an array of flood alert level objects mapping SPA levels to threshold values in centimetres. For category A stations only, a forecast_data array is also returned with predicted datetime, water_height_cm, and flow_rate_m3s. Non-category-A stations return an empty forecast array. Station tendency (rising, falling, stable) is surfaced in both the listing and the detail metadata, which makes it straightforward to build alerting logic on top of the current status fields.
- Track live water levels at upstream stations to give downstream operators early flood warning using
spa_limitsthresholds - Aggregate current
flow_rate_m3sreadings across all Vltava basin stations for hydropower or irrigation dashboards - Monitor
tendencyfields fromget_stationsto detect rapidly rising rivers across multiple regions in a single poll - Pull
temperature_celsiustime series fromget_station_detailfor ecological or fisheries research on specific rivers - Use
forecast_datafrom category A stations to display short-term water height predictions in a public flood-awareness app - Search stations by municipality name via
search_stationsto build location-specific water condition widgets - Compare
measured_datahistorical series across stations to analyze the hydrological impact of rainfall events
| Tier | Price | Credits/month | Rate limit |
|---|---|---|---|
| Free | $0/mo | 100 | 5 req/min |
| Hobby | $30/mo | 1,000 | 20 req/min |
| Developer | $100/mo | 5,000 | 250 req/min |
One credit = one API call regardless of which marketplace API you call. Exceeding the rate limit returns a 429 response. Authenticate with the X-API-Key header.
Does the Czech Hydrometeorological Institute provide an official developer API?+
What does `get_station_detail` return that `get_stations` does not?+
get_stations endpoint returns a current snapshot per station. get_station_detail adds the full measured_data time series (multiple timestamped rows of water height, flow rate, temperature, and status), the graph_time_series object with millisecond-precision timestamps, SPA flood alert thresholds in the spa_limits array, and forecast_data for category A stations.Is temperature data available for every station?+
temperature_celsius within measured_data vary by station — many stations do not instrument water temperature, so that field will be absent or null for those locations. The station category and metadata do not explicitly flag which stations record temperature, so you need to check the data in practice.Does the API cover precipitation, groundwater, or water quality data?+
How is pagination handled, and what is the total station count?+
get_stations endpoint returns approximately 50 stations per page across pages 1–12, covering 562+ stations in total. Pass page=all to retrieve every station in a single response. The total_stations field in the response confirms the count returned by each call.