Preskoči na sadržaj

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>

Besplatan API ključ →OpenAPI 3.1 ugovor

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
curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/observations"
TypeScript
// 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.

Blok `_attribution`
{
  "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"
}
_attribution · /export/daily
{
  "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 potvrdu

    Parametri

    • 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 nizvodno

    Parametri

    • 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 zemlje

    Parametri

    • 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 h
    curl
    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 postaja

    Parametri

    • 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 klimatologije

    Parametri

    • 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 postaje

    Parametri

    • 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šća

    Parametri

    • 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/wizard

    Parametri

    • 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/min

    Parametri

    • 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 zraka

    Parametri

    • 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/min

    Parametri

    • 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/min

    Parametri

    • 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/min

    Parametri

    • 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 danu

    Parametri

    • 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/min

    Parametri

    • 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/min

    Parametri

    • 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/min

    Parametri

    • 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/min

    Parametri

    • 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 leda

    Parametri

    • 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 usporedbom

    Parametri

    • 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 slivu
    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 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 sliva
    curl
    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 postaja
    curl
    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, zemlje

    Parametri

    • 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/min

    Parametri

    • 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/min

    Parametri

    • 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/min

    Parametri

    • 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 razdoblja
    curl
    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/min

    Parametri

    • 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 zemlji

    Parametri

    • 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 plovidbe

    Parametri

    • 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/HDC

    Parametri

    • 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 upozorenja

    Parametri

    • 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 / Tisa
    curl
    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 postaja

    Parametri

    • 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 preuzimanja
    curl
    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 izvora
    curl
    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 izvora
    curl
    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 izvoru
    curl
    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.

Ograničenje zahtjeva
ZaglavljeZnačenje
X-RateLimit-Limit60 / 600 / 3000 / 10
X-RateLimit-Remaining0 … limit
Retry-Afters ( 429 )
429 · retry_after_secondsJSON

Tipizirani TypeScript klijent

Tipovi generirani izravno iz ugovora — svaka ruta, parametar i odgovor, bez ručno pisanih modela.

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

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.

Tema
Veličina

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