API v1 · OpenAPI 3.1
API a otvorené dáta o hladinách Dunaja
Bezplatné JSON API pre hladiny Dunaja: stanice s prahmi LDC/HDC, denné rady, GeoJSON a zmluva OpenAPI 3.1, s limitmi požiadaviek a príkladmi kódu.
- Základná URL
- https://danubealert.arcm.ro/api/v1
- Overenie
- Authorization: Bearer <key>
Prehľad
Verejné API v1 poskytuje hydrologické údaje povodia Dunaja vo formáte JSON: stanice s prahmi LDC/HDC, merania a predpovede, oficiálne prahy, kritické miesta plavby, hydrologické správy, export GeoJSON a stav zdrojov. Úplná zmluva: /api/v1/openapi.json (OpenAPI 3.1).
Plány a limity
Anonymne (bez hlavičky): 60 požiadaviek za minútu, CORS * na GET. S integrátorským kľúčom (Authorization: Bearer <kľúč>): 600 požiadaviek za minútu. Kľúče si vytvoríte zadarmo vo svojom účte. Chybný, neznámy alebo zrušený kľúč dostane 401 (WWW-Authenticate: Bearer error="invalid_token"), nie anonymný prístup; zrušený kľúč prestane fungovať okamžite.
Anonymne
60požiadaviek / minútu
Bez hlavičky, CORS * na GET — stačí na vyskúšanie každej trasy.
Bezplatný API kľúč
600požiadaviek / minútu
Authorization: Bearer <kľúč>, vytvorený v účte, zobrazený raz.
Náročné trasy
10požiadaviek / minútu
Rady a exporty ( observations, export ), na kľúč alebo IP.
Príklad
Posledný denný stav stanice, cez curl a TypeScript.
curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/observations"// Dnešný vodný stav v Budapešti
const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/observations?interval=daily&from=2026-10-01', {
headers: { Authorization: `Bearer ${process.env.DANUBEALERT_KEY}` },
})
const { data } = await r.json()
console.log(data.at(-1)) // { observed_at: "2026-10-21T00:00:00Z", level_cm: 468 }Koncové body
Všetky trasy verejného API v1, iba na čítanie ( GET ), s parametrami a spustiteľnou požiadavkou.
Príklady pre každú trasu
Každá trasa má nižšie spustiteľnú požiadavku curl, JavaScript a Python, svoj limit požiadaviek a blok `_attribution`, ktorý musíš zobraziť.
{
"source": "National hydrological services of the Danube basin (see /v1/meta/sources)",
"url": "https://danubealert.com/en/about",
"data_updated_at": "2026-10-21T00:00:00Z"
}{
"source": "National hydrological services of the Danube basin (see /v1/meta/sources)",
"url": "https://danubealert.com/en/about",
"license": {
"id": "CC-BY-4.0",
"name": "Creative Commons Attribution 4.0 International",
"url": "https://creativecommons.org/licenses/by/4.0/"
},
"data_updated_at": "2026-10-21T00:00:00Z"
}Stanice
GET
/api/v1/alerts/confirmPotvrdzovací odkaz upozornenia alebo denného prehľadu z e-mailu: nič nezapne, otvorí stránku potvrdeniaParametre
- t*query
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/alerts/confirm?t=t"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/alerts/confirm?t=t') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/alerts/confirm?t=t", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
POST
/api/v1/alerts/confirmZapne upozornenie alebo denný prehľad zo stránky potvrdenia ( jediný krok, ktorý ho aktivuje )Parametre
- tquery
GET
/api/v1/basin-precipitationÚhrn zrážok za 24 / 72 h podľa čiastkového povodia, priradený k stanici po prúdeParametre
- stationquery
- riverquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/basin-precipitation"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/basin-precipitation') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/basin-precipitation", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/countries/{code}/stationsStanice jednej krajinyParametre
- code*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/countries/HU/stations"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/countries/HU/stations') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/countries/HU/stations", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/report/todayDeň v jednom objekte: stav povodia, čo sa dnes mení, stanice nad / pod hranicami, predpoveď na 24–72 hcurl curl -sS "https://danubealert.arcm.ro/api/v1/report/today"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/report/today') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/report/today", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stationsZoznam stanícParametre
- countryquery
- riverquery
- qquery
- limitquery
- next_cursorquery
- sortquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}Stanica, jej hranice LDC/HDC a odchýlka dňa od klimatológieParametre
- slug*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/eventsHistorické povodne a suchá staniceParametre
- slug*path
- tipquery
- limitquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/events"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/events') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/events", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/neighborsSusedia proti prúdu / po prúde a sútokyParametre
- slug*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/neighbors"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/neighbors') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/neighbors", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v2/stationsZoznam staníc ( v2, kurzor + polia + formát )Parametre
- countryquery
- riverquery
- qquery
- limitquery
- next_cursorquery
- fieldsquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v2/stations"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v2/stations') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v2/stations", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/wizardParametre
- qquery
- limitquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/wizard"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/wizard') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/wizard", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
Merania a predpovede
GET
/api/v1/forecast/accuracyPresnosť oficiálnych predpovedí voči nameraným hodnotám, podľa zdroja a časového horizontu ( +24 / +48 / +72 h )10/minParametre
- stationquery
- daysquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/forecast/accuracy"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/forecast/accuracy') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/forecast/accuracy", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/measurementsTeplota vody, prietok, teplota vzduchuParametre
- station*query
- measurequery
- fromquery
- toquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/measurements?station=budapest"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/measurements?station=budapest') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/measurements?station=budapest", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/observationsPorovnanie až 6 staníc v jednej odpovedi10/minParametre
- stations*query
- fromquery
- toquery
- intervalquery
- riverquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/observations?stations=budapest%2Cmohacs"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/observations?stations=budapest%2Cmohacs') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/observations?stations=budapest%2Cmohacs", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/climatologyKlimatológia podľa dňa v roku z celého radu: priemer, medián a percentily10/minParametre
- slug*path
- dayquery
- limitquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/climatology"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/climatology') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/climatology", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/dischargeRad prietokov ( m³/s )Parametre
- slug*path
- sourcequery
- fromquery
- toquery
- intervalquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/discharge"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/discharge') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/discharge", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/forecastPredpoveď stanice ( kde existuje )Parametre
- slug*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/forecast"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/forecast') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/forecast", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/forecast-accuracyPresnosť predpovede na jednej stanici, podľa zdroja a horizontu: aká dobrá je tu predpoveď10/minParametre
- slug*path
- daysquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/forecast-accuracy"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/forecast-accuracy') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/forecast-accuracy", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/iceĽadové javy z národných správ, zjednotené podľa stanice a dňaParametre
- slug*path
- limitquery
- fromquery
- toquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/ice"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/ice') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/ice", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/observationsRad vodných stavov ( cm )10/minParametre
- slug*path
- sourcequery
- include_legacyquery
- fromquery
- toquery
- intervalquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/observations"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/observations') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/observations", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/percentilePercentil dnešnej hodnoty voči rovnakému dňu za posledných 30 rokov10/minParametre
- slug*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/percentile"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/percentile') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/percentile", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/recordsHistorické rekordy10/minParametre
- slug*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/records"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/records') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/records", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/same-dayTen istý deň v minulých rokoch10/minParametre
- slug*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/same-day"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/same-day') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/same-day", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/stations/{slug}/winterZimné javy a hrúbka ľaduParametre
- slug*path
- limitquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/winter"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/stations/budapest/winter') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/stations/budapest/winter", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/summary/low-waterNízka voda: po sebe idúce dni pod LDC, podľa úseku, s históriou a porovnanímParametre
- yearquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/summary/low-water"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/summary/low-water') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/summary/low-water", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/summary/todayDnešná situácia: vodné stavy, hranice, predpovede, anomálie dňa a čo sa dnes v povodí menícurl curl -sS "https://danubealert.arcm.ro/api/v1/summary/today"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/summary/today') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/summary/today", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
Rieky a krajiny
GET
/api/v1/countriesKrajiny povodiacurl curl -sS "https://danubealert.arcm.ro/api/v1/countries"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/countries') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/countries", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/riversRieky povodia a počet ich staníccurl curl -sS "https://danubealert.arcm.ro/api/v1/rivers"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/rivers') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/rivers", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/rivers/{rau}Graf rieky: ústie, prítoky, krajinyParametre
- rau*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/rivers/sava"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/rivers/sava') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/rivers/sava", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v2/countriesKrajiny povodia, stránkované kurzorom ( v2 )Parametre
- limitquery
- next_cursorquery
- fieldsquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v2/countries"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v2/countries') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v2/countries", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v2/riversRieky povodia, stránkované kurzorom ( v2 )Parametre
- limitquery
- next_cursorquery
- fieldsquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v2/rivers"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v2/rivers') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v2/rivers", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
Exporty
GET
/api/v1/export/country/{cod}Export CSV / JSON podľa krajiny10/minParametre
- cod*path
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/export/country/HU"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/export/country/HU') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/export/country/HU", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Aj export obsahuje `_attribution`, s licenciou v `_attribution.license` (CC BY 4.0); zobraz `_attribution.source`, `_attribution.url` a licenciu pri súbore.
GET
/api/v1/export/dailyDenný export CSV / JSON podľa krajiny10/minParametre
- country*query
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/export/daily?country=HU"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/export/daily?country=HU') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/export/daily?country=HU", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Aj export obsahuje `_attribution`, s licenciou v `_attribution.license` (CC BY 4.0); zobraz `_attribution.source`, `_attribution.url` a licenciu pri súbore.
GET
/api/v1/export/rangeExport dlhých období pre výskum ( CSV / Parquet, so stránkovaním cez kurzor a licenciou pri každom riadku )10/minParametre
- from*query
- to*query
- countryquery
- formatquery
- limitquery
- cursorquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/export/range?from=2026-01-01&to=2026-10-23"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/export/range?from=2026-01-01&to=2026-10-23') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/export/range?from=2026-01-01&to=2026-10-23", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Aj export obsahuje `_attribution`, s licenciou v `_attribution.license` (CC BY 4.0); zobraz `_attribution.source`, `_attribution.url` a licenciu pri súbore.
GET
/api/v1/export/range/licensesLicencie zdrojov a spôsob uvedenia zdroja pri exporte obdobiacurl curl -sS "https://danubealert.arcm.ro/api/v1/export/range/licenses"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/export/range/licenses') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/export/range/licenses", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Aj export obsahuje `_attribution`, s licenciou v `_attribution.license` (CC BY 4.0); zobraz `_attribution.source`, `_attribution.url` a licenciu pri súbore.
GET
/api/v1/export/river/{rau}Export CSV / JSON podľa rieky10/minParametre
- rau*path
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/export/river/sava"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/export/river/sava') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/export/river/sava", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Náročná trasa: 10 požiadaviek/minútu, aj s kľúčom.
Aj export obsahuje `_attribution`, s licenciou v `_attribution.license` (CC BY 4.0); zobraz `_attribution.source`, `_attribution.url` a licenciu pri súbore.
Prahy, plavba, bulletiny
GET
/api/v1/bulletinsHydrologické správy podľa krajinyParametre
- countryquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/bulletins"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/bulletins') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/bulletins", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/navigationKritické miesta a obmedzenia plavbyParametre
- riverquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/navigation"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/navigation') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/navigation", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/thresholdsOficiálne hranice ( LDC/HDC, RNW/HSW, stupne povodňovej aktivity )Parametre
- stationquery
- pagequery
- limitquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/thresholds"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/thresholds') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/thresholds", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v2/bulletinsHydrologické správy, stránkované kurzorom ( v2 )Parametre
- countryquery
- limitquery
- next_cursorquery
- fieldsquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v2/bulletins"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v2/bulletins') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v2/bulletins", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v2/navigationPlavba, jeden stránkovaný zoznam ( v2 )Parametre
- riverquery
- limitquery
- next_cursorquery
- fieldsquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v2/navigation"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v2/navigation') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v2/navigation", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v2/thresholdsOficiálne hranice, stránkované kurzorom ( v2 )Parametre
- stationquery
- limitquery
- next_cursorquery
- fieldsquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v2/thresholds"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v2/thresholds') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v2/thresholds", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
Epizódy upozornení
GET
/api/v1/episodesVerejné epizódy LDC/HDCParametre
- countryquery
- typequery
- limitquery
- next_cursorquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/episodes"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/episodes') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/episodes", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/episodes/{id}Jedna epizóda upozorneniaParametre
- id*path
curl curl -sS "https://danubealert.arcm.ro/api/v1/episodes/1"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/episodes/1') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/episodes/1", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GeoJSON
GET
/api/v1/geojson/riversSplavná línia Dunaja + Sáva / Tisacurl curl -sS "https://danubealert.arcm.ro/api/v1/geojson/rivers"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/geojson/rivers') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/geojson/rivers", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/geojson/stationsFeatureCollection stanícParametre
- countryquery
curl curl -sS "https://danubealert.arcm.ro/api/v1/geojson/stations"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/geojson/stations') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/geojson/stations", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
Zdroje a kvalita dát
GET
/api/v1/meta/availabilityMesačná dostupnosť podľa zdroja ( 12 mesiacov ): dni s údajmi a posledné behycurl curl -sS "https://danubealert.arcm.ro/api/v1/meta/availability"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/meta/availability') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/meta/availability", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/meta/healthStav zdrojovcurl curl -sS "https://danubealert.arcm.ro/api/v1/meta/health"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/meta/health') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/meta/health", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/meta/qualityKvalita údajov podľa stanice: podozrivé merania a stav zdrojacurl curl -sS "https://danubealert.arcm.ro/api/v1/meta/quality"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/meta/quality') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/meta/quality", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v1/meta/sourcesPosledná aktualizácia podľa zdrojacurl curl -sS "https://danubealert.arcm.ro/api/v1/meta/sources"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v1/meta/sources') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v1/meta/sources", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
GET
/api/v2/meta/sourcesZdroje údajov, stránkované kurzorom ( v2 )Parametre
- limitquery
- next_cursorquery
- fieldsquery
- formatquery
curl curl -sS "https://danubealert.arcm.ro/api/v2/meta/sources"JavaScript const r = await fetch('https://danubealert.arcm.ro/api/v2/meta/sources') if (!r.ok) throw new Error(`HTTP ${r.status}`) const body = await r.json() console.log(body) console.log(body._attribution.source, body._attribution.url)Python import requests r = requests.get("https://danubealert.arcm.ro/api/v2/meta/sources", timeout=30) r.raise_for_status() body = r.json() print(body) print(body["_attribution"]["source"], body["_attribution"]["url"])Limit požiadaviek: Anonymne: 60 požiadaviek/minútu (kĺzavé okno); s `Authorization: Bearer <kľúč>`: 600/minútu.
Odpoveď obsahuje `_attribution`; zobraz `_attribution.source` a `_attribution.url` pri dátach.
Obmedzenie požiadaviek
Kĺzavé 60-sekundové okno; séria meraní je náročný koncový bod (10 za minútu). Nad limitom: 429 s retry_after_seconds v tele a hlavičkami Retry-After a X-RateLimit-*. Odmietnuté požiadavky sa nezapočítavajú do ďalšieho okna.
| Hlavička | Význam |
|---|---|
| X-RateLimit-Limit | 60 / 600 / 3000 / 10 |
| X-RateLimit-Remaining | 0 … limit |
| Retry-After | s ( 429 ) |
| 429 · retry_after_seconds | JSON |
Typovaný TypeScript klient
Typy generované priamo zo zmluvy — každá trasa, parameter a odpoveď, bez ručne písaných modelov.
npx openapi-typescript https://danubealert.arcm.ro/api/v1/openapi.en.json -o danubealert.d.ts
import type { paths } from './danubealert'
type Observatii = paths['/stations/{slug}/observations']['get']['responses']['200']['content']['application/json']Export otvorených údajov
Súbory z predchádzajúceho dňa, jeden riadok na stanicu, pre každú krajinu povodia, vo formáte CSV alebo JSON. Odpovede sa dajú ukladať do cache (ETag, Last-Modified, Cache-Control); licencia a uvedenie zdroja sú v hlavičkách súboru a v bloku _attribution v JSON.
- Albánsko ALCSVJSON
- Rakúsko ATCSVJSON
- Bosna a Hercegovina BACSVJSON
- Bulharsko BGCSVJSON
- Švajčiarsko CHCSVJSON
- Česko CZCSVJSON
- Nemecko DECSVJSON
- Chorvátsko HRCSVJSON
- Maďarsko HUCSVJSON
- Taliansko ITCSVJSON
- Moldavsko MDCSVJSON
- Čierna Hora MECSVJSON
- Severné Macedónsko MKCSVJSON
- Poľsko PLCSVJSON
- Rumunsko ROCSVJSON
- Srbsko RSCSVJSON
- Slovinsko SICSVJSON
- Slovensko SKCSVJSON
- Ukrajina UACSVJSON
Licencia: Creative Commons Attribution 4.0 International · Uvedenie zdroja: DanubeAlert a národné hydrologické služby · Predchádzajúci deň, v časovom pásme krajiny.
Konfigurátor widgetu
Vodný stav stanice priamo na vašom webe: vyberte stanicu, tému, jazyk a branding, pozrite si widget naživo a skopírujte kód iframe do ľubovoľného CMS.
Tvoje widgety v troch krokoch
Vyber typ a nastavenia — náhľad aj kód sa hneď aktualizujú.
Náhľad ( miniatúra )
Kód na vloženie
<iframe
src="https://danubealert.arcm.ro/embed/v1/station?slug=achleiten&theme=auto&lang=sk&accent=00BABE"
title="Danube water level — Achleiten"
width="100%"
height="300"
style="border:0;max-width:640px;"
loading="lazy"
referrerpolicy="strict-origin-when-cross-origin"
></iframe>Úplná zmluva: /api/v1/openapi.en.json · /api/v1/openapi.json · Údaje: národné hydrologické služby, cez DanubeAlert