API v1 · OpenAPI 3.1
API i otvoreni podaci o vodostajima Dunava
Besplatni JSON API za vodostaje Dunava: postaje s pragovima LDC/HDC, dnevni nizovi, GeoJSON i ugovor OpenAPI 3.1, s ograničenjima zahtjeva i primjerima koda.
- Osnovni URL
- https://danubealert.arcm.ro/api/v1
- Autentifikacija
- Authorization: Bearer <key>
Pregled
Javni API v1 daje hidrološke podatke porječja Dunava u JSON formatu: postaje s pragovima LDC/HDC, mjerenja i prognoze, službene pragove, kritične točke plovidbe, hidrološke biltene, GeoJSON i stanje izvora. Cijeli ugovor: /api/v1/openapi.json (OpenAPI 3.1).
Planovi i ograničenja
Anonimno (bez zaglavlja): 60 zahtjeva u minuti, CORS * na GET. S integratorskim ključem (Authorization: Bearer <ključ>): 600 zahtjeva u minuti. Ključeve besplatno izrađujete u svom računu. Neispravan, nepoznat ili opozvan ključ dobiva 401 (WWW-Authenticate: Bearer error="invalid_token"), a ne anonimni pristup; opozvani ključ odmah prestaje raditi.
Anonimno
60zahtjeva / minuti
Bez zaglavlja, CORS * na GET — dovoljno za isprobavanje svake rute.
Besplatan API ključ
600zahtjeva / minuti
Authorization: Bearer <ključ>, stvoren u računu, prikazan jednom.
Zahtjevne rute
10zahtjeva / minuti
Nizovi i izvozi ( observations, export ), po ključu ili IP-u.
Primjer
Zadnji dnevni vodostaj postaje, s curl-om i TypeScriptom.
curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/observations"// Današnji vodostaj u Budimpeš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 }Krajnje točke
Sve rute javnog API-ja v1, samo čitanje ( GET ), s parametrima i zahtjevom spremnim za pokretanje.
Primjeri po ruti
Svaka ruta u nastavku ima izvršivi zahtjev curl, JavaScript i Python, svoj limit zahtjeva i blok `_attribution` koji moraš prikazati.
{
"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"
}Postaje
GET
/api/v1/alerts/confirmPoveznica za potvrdu upozorenja ili dnevnog izvješća poslana e-poštom: ne uključuje ništa, otvara stranicu za potvrduParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
POST
/api/v1/alerts/confirmUključuje upozorenje ili dnevno izvješće sa stranice za potvrdu ( jedini korak koji ga aktivira )Parametri
- tquery
GET
/api/v1/basin-precipitationZbroj oborina za 24 / 72 h po podslivu, pridružen postaji nizvodnoParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/countries/{code}/stationsPostaje jedne zemljeParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/report/todayDan u jednom objektu: stanje sliva, što se danas mijenja, postaje iznad / ispod pragova, prognoza za 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stationsPopis postajaParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}Postaja, njezini pragovi LDC/HDC i odstupanje dana od klimatologijeParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/eventsPovijesne poplave i suše jedne postajeParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/neighborsSusjedi uzvodno / nizvodno i ušćaParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v2/stationsPopis postaja ( v2, kursor + polja + format )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/wizardParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
Mjerenja i prognoze
GET
/api/v1/forecast/accuracyTočnost službenih prognoza u odnosu na izmjerene vrijednosti, po izvoru i razdoblju ( +24 / +48 / +72 h )10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/measurementsTemperatura vode, protok, temperatura zrakaParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/observationsUsporedba do 6 postaja u jednom odgovoru10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/climatologyKlimatologija po danu u godini iz cijelog niza: prosjek, medijan i percentili10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/dischargeNiz protoka ( m³/s )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/forecastPrognoza postaje ( gdje postoji )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/forecast-accuracyTočnost prognoze na jednoj postaji, po izvoru i razdoblju: koliko je ovdje prognoza dobra10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/iceLedene pojave iz nacionalnih izvješća, ujednačene po postaji i danuParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/observationsNiz vodostaja ( cm )10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/percentilePercentil današnje vrijednosti u odnosu na isti dan u posljednjih 30 godina10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/recordsPovijesni rekordi10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/same-dayIsti dan prijašnjih godina10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/stations/{slug}/winterZimske pojave i debljina ledaParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/summary/low-waterNiski vodostaji: uzastopni dani ispod LDC-a, po sektoru, s poviješću i usporedbomParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/summary/todayDanašnje stanje: vodostaji, pragovi, prognoze, odstupanja dana i što se danas mijenja u slivucurl 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
Rijeke i zemlje
GET
/api/v1/countriesZemlje slivacurl 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/riversRijeke sliva i broj njihovih postajacurl 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/rivers/{rau}Graf rijeke: ušće, pritoke, zemljeParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v2/countriesZemlje sliva, po stranicama s kursorom ( v2 )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v2/riversRijeke sliva, po stranicama s kursorom ( v2 )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
Izvozi
GET
/api/v1/export/country/{cod}Izvoz CSV / JSON po zemlji10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
I izvoz sadrži `_attribution`, s licencom u `_attribution.license` (CC BY 4.0); prikaži `_attribution.source`, `_attribution.url` i licencu uz datoteku.
GET
/api/v1/export/dailyDnevni izvoz CSV / JSON po zemlji10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
I izvoz sadrži `_attribution`, s licencom u `_attribution.license` (CC BY 4.0); prikaži `_attribution.source`, `_attribution.url` i licencu uz datoteku.
GET
/api/v1/export/rangeIzvoz dugih razdoblja za istraživače ( CSV / Parquet, sa stranicama po kursoru i licencom za svaki redak )10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
I izvoz sadrži `_attribution`, s licencom u `_attribution.license` (CC BY 4.0); prikaži `_attribution.source`, `_attribution.url` i licencu uz datoteku.
GET
/api/v1/export/range/licensesLicence izvora i način navođenja za izvoz razdobljacurl 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
I izvoz sadrži `_attribution`, s licencom u `_attribution.license` (CC BY 4.0); prikaži `_attribution.source`, `_attribution.url` i licencu uz datoteku.
GET
/api/v1/export/river/{rau}Izvoz CSV / JSON po rijeci10/minParametri
- 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 zahtjeva: Zahtjevna ruta: 10 zahtjeva/minuti, i s ključem.
I izvoz sadrži `_attribution`, s licencom u `_attribution.license` (CC BY 4.0); prikaži `_attribution.source`, `_attribution.url` i licencu uz datoteku.
Pragovi, plovidba, bilteni
GET
/api/v1/bulletinsHidrološka izvješća po zemljiParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/navigationKritične točke i ograničenja plovidbeParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/thresholdsSlužbeni pragovi ( LDC/HDC, RNW/HSW, obrana od poplava )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v2/bulletinsHidrološka izvješća, po stranicama s kursorom ( v2 )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v2/navigationPlovidba, jedan popis po stranicama ( v2 )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v2/thresholdsSlužbeni pragovi, po stranicama s kursorom ( v2 )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
Epizode upozorenja
GET
/api/v1/episodesJavne epizode LDC/HDCParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/episodes/{id}Jedna epizoda upozorenjaParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GeoJSON
GET
/api/v1/geojson/riversPlovna linija Dunava + Sava / 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/geojson/stationsFeatureCollection postajaParametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
Izvori i kvaliteta podataka
GET
/api/v1/meta/availabilityMjesečna dostupnost po izvoru ( 12 mjeseci ): dani s podacima i posljednja preuzimanjacurl 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/meta/healthStanje izvoracurl 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/meta/qualityKvaliteta podataka po postaji: sumnjiva očitanja i stanje izvoracurl 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v1/meta/sourcesZadnje ažuriranje po izvorucurl 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
GET
/api/v2/meta/sourcesIzvori podataka, po stranicama s kursorom ( v2 )Parametri
- 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 zahtjeva: Anonimno: 60 zahtjeva/minuti (klizni prozor); s `Authorization: Bearer <ključ>`: 600/minuti.
Odgovor sadrži `_attribution`; prikaži `_attribution.source` i `_attribution.url` uz podatke.
Ograničenje zahtjeva
Klizni prozor od 60 sekundi; niz mjerenja je zahtjevna krajnja točka (10 u minuti). Iznad ograničenja: 429 s retry_after_seconds u tijelu te zaglavljima Retry-After i X-RateLimit-*. Odbijeni zahtjevi ne troše sljedeći prozor.
| Zaglavlje | Značenje |
|---|---|
| X-RateLimit-Limit | 60 / 600 / 3000 / 10 |
| X-RateLimit-Remaining | 0 … limit |
| Retry-After | s ( 429 ) |
| 429 · retry_after_seconds | JSON |
Tipizirani TypeScript klijent
Tipovi generirani izravno iz ugovora — svaka ruta, parametar i odgovor, bez ručno pisanih modela.
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']Izvoz otvorenih podataka
Datoteke prethodnog dana, jedan redak po postaji, za svaku zemlju porječja, u CSV ili JSON formatu. Odgovori se mogu spremati u predmemoriju (ETag, Last-Modified, Cache-Control); licenca i navođenje izvora nalaze se u zaglavljima datoteke i u bloku _attribution u JSON-u.
- Albanija ALCSVJSON
- Austrija ATCSVJSON
- Bosna i Hercegovina BACSVJSON
- Bugarska BGCSVJSON
- Švicarska CHCSVJSON
- Češka CZCSVJSON
- Njemačka DECSVJSON
- Hrvatska HRCSVJSON
- Mađarska HUCSVJSON
- Italija ITCSVJSON
- Moldavija MDCSVJSON
- Crna Gora MECSVJSON
- Sjeverna Makedonija MKCSVJSON
- Poljska PLCSVJSON
- Rumunjska ROCSVJSON
- Srbija RSCSVJSON
- Slovenija SICSVJSON
- Slovačka SKCSVJSON
- Ukrajina UACSVJSON
Licenca: Creative Commons Attribution 4.0 International · Navođenje izvora: DanubeAlert i nacionalne hidrološke službe · Prethodni dan, u vremenskoj zoni zemlje.
Konfigurator widgeta
Vodostaj postaje na vašoj stranici: odaberite postaju, temu, jezik i brending, pogledajte widget uživo i kopirajte iframe kod u bilo koji CMS.
Tvoji widgeti u tri koraka
Odaberi vrstu i postavke — pregled i isječak se odmah ažuriraju.
Pregled ( minijatura )
Isječak za umetanje
<iframe
src="https://danubealert.arcm.ro/embed/v1/station?slug=achleiten&theme=auto&lang=hr&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>Cijeli ugovor: /api/v1/openapi.en.json · /api/v1/openapi.json · Podaci: nacionalne hidrološke službe, putem DanubeAlerta