Discover/Chmi API
live

Chmi 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.

Endpoint health
verified 7d ago
get_stations
search_stations
get_station_detail
3/3 passing latest checkself-healing
Endpoints
3
Updated
26d ago

What is the Chmi 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.

Try it
Page number (1-12) or 'all' for all stations. Each page has ~50 stations.
api.parse.bot/scraper/15cf20c7-b5f9-4478-b30f-590ae117ed50/<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/15cf20c7-b5f9-4478-b30f-590ae117ed50/get_stations?page=all' \
  -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 hydro-chmi-cz-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.

from parse_apis.czech_hydrometeorological_institute_chmi_water_monitoring_api import CHMI, Page, StationSummary, Station

chmi = CHMI()

# List first page of stations using the Page enum
stations = chmi.stationsummaries.list(page=Page.PAGE_1)

for station in stations:
    print(station.station_name, station.river, station.water_height_cm, station.status)

# Search for stations on a specific river
results = chmi.stationsummaries.search(query="Vltava")

for station in results:
    print(station.station_id, station.station_name, station.flow_rate_m3s)

# Get detailed data for a station by navigating from a summary
first = next(iter(results))
detail = first.details()

print(detail.metadata.station_name, detail.metadata.river, detail.metadata.region)

for measurement in detail.measured_data:
    print(measurement.datetime, measurement.water_height_cm, measurement.flow_rate_m3s)

for alert in detail.spa_limits:
    print(alert.level, alert.value)
All endpoints · 3 totalmissing one? ·

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. Pagination via integer page numbers (1-12); 'all' returns the full station list in one call.

Input
ParamTypeDescription
pagestringPage number (1-12) or 'all' for all stations. Each page has ~50 stations.
Response
{
  "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 : Setrvalý stav",
          "spa_limits": "165 / 200 / 220  [cm]",
          "station_id": "307053",
          "station_name": "Špindlerův Mlýn",
          "flow_rate_m3s": "0.547",
          "water_height_cm": "90",
          "last_measurement_time": "10. 06. 22:10"
        }
      ],
      "total_stations": 50
    },
    "status": "success"
  }
}

About the Chmi API

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.

Reliability & maintenanceVerified

The Chmi API is a managed, monitored endpoint for hydro.chmi.cz — not a raw scraper you maintain. Every endpoint is automatically health-checked on a schedule, and when hydro.chmi.cz 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 hydro.chmi.cz 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
7d ago
Latest check
3/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 live water levels at upstream stations to give downstream operators early flood warning using spa_limits thresholds
  • Aggregate current flow_rate_m3s readings across all Vltava basin stations for hydropower or irrigation dashboards
  • Monitor tendency fields from get_stations to detect rapidly rising rivers across multiple regions in a single poll
  • Pull temperature_celsius time series from get_station_detail for ecological or fisheries research on specific rivers
  • Use forecast_data from category A stations to display short-term water height predictions in a public flood-awareness app
  • Search stations by municipality name via search_stations to build location-specific water condition widgets
  • Compare measured_data historical series across stations to analyze the hydrological impact of rainfall events
Pricing & limitsSee full pricing →
TierPriceCredits/monthRate limit
Free$0/mo1005 req/min
Hobby$30/mo1,00020 req/min
Developer$100/mo5,000100 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.

Frequently asked questions
Does the Czech Hydrometeorological Institute provide an official developer API?+
CHMI publishes some open data and metadata through its portal at https://www.chmi.cz, but there is no publicly documented REST API specifically for real-time hydrological station data equivalent to what this API exposes.
What does `get_station_detail` return that `get_stations` does not?+
The 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?+
No. Temperature readings in 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?+
Not currently. The API covers river-level water height, flow rate, temperature, flood alert levels, and forecasts for surface water gauging stations. You can fork it on Parse and revise to add endpoints for adjacent CHMI data such as precipitation or groundwater observations.
How is pagination handled, and what is the total station count?+
The 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.
Page content last updated . Spec covers 3 endpoints from hydro.chmi.cz.
Related APIs in WeatherSee all →
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.
meteo.pl API
Get detailed weather forecasts with temperature, pressure, wind, precipitation, and cloud data for any location using multiple weather models (UM, GFS) from Poland's Institute of Meteorology and Water Management. Search locations and access available forecasts to plan ahead with comprehensive meteorological information.
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.
openweathermap.org API
Search for cities and retrieve live weather conditions and forecasts (current, minutely precipitation, hourly and daily) by coordinates or by city name.
weatherspark.com API
Get historical weather data, current METAR reports, and monthly climate summaries for any location by searching WeatherSpark's comprehensive weather database. Access detailed weather insights including temperature trends, precipitation patterns, and atmospheric conditions to power weather-dependent applications and analysis.
accuweather.com API
Get real-time weather conditions, multi-day forecasts, and health alerts for any location worldwide. Search cities and access detailed data including allergen information and air quality to plan your activities with confidence.
weather.com.cn API
Get real-time weather conditions, 7-day to 40-day forecasts, air quality data, and weather alerts for any city in China. Track hourly observations and life indices to plan your activities with complete weather intelligence.
weatherunderground.com API
Get real-time weather data and 10-day forecasts for any location, with access to current conditions like temperature, humidity, and wind speed. Search for locations and receive detailed weather narratives to plan your day or week ahead.