API v1 · OpenAPI 3.1
API и отворени данни за нивото на Дунав
Безплатен JSON API за нивото на Дунав: станции с прагове LDC/HDC, дневни редове, GeoJSON и договор OpenAPI 3.1, с лимити на заявките и примерен код.
- Базов URL
- https://danubealert.arcm.ro/api/v1
- Удостоверяване
- Authorization: Bearer <key>
Преглед
Публичното API v1 дава хидрологичните данни на басейна на Дунав във формат JSON: станциите с прагове LDC/HDC, измерванията и прогнозите, официалните прагове, критичните места за корабоплаване, хидрологичните бюлетини, GeoJSON и състоянието на източниците. Пълният договор: /api/v1/openapi.json (OpenAPI 3.1).
Планове и ограничения
Анонимно (без заглавка): 60 заявки в минута, CORS * при GET. С ключ на интегратор (Authorization: Bearer <ключ>): 600 заявки в минута. Ключовете се създават безплатно от профила ви. Неправилен, непознат или отменен ключ получава 401 (WWW-Authenticate: Bearer error="invalid_token"), а не анонимен достъп; отмененият ключ спира да работи веднага.
Анонимно
60заявки / минута
Без заглавие, CORS * за GET — достатъчно, за да пробваш всеки маршрут.
Безплатен API ключ
600заявки / минута
Authorization: Bearer <ключ>, създаден в профила ти, показва се веднъж.
Тежки маршрути
10заявки / минута
Серии и експорти ( observations, export ), на ключ или IP.
Пример
Последното дневно ниво на станция, с curl и с TypeScript.
curl -sS "https://danubealert.arcm.ro/api/v1/stations/budapest/observations"// Днешното ниво в Будапеща
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 }Крайни точки
Всички маршрути на публичния API v1, само четене ( GET ), с параметрите им и готова заявка.
Примери по маршрут
Всеки маршрут по-долу има изпълнима заявка curl, JavaScript и Python, своя лимит на заявки и блока `_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"
}{
"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"
}Станции
GET
/api/v1/alerts/confirmИзпратената по имейл връзка за потвърждение на известие или дневен отчет: не включва нищо, отваря страницата за потвърждениеПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
POST
/api/v1/alerts/confirmВключва известието или дневния отчет от страницата за потвърждение ( единствената стъпка, която го активира )Параметри
- tquery
GET
/api/v1/basin-precipitationСума на валежите за 24 / 72 ч по подбасейн, свързана със станцията надолу по течениетоПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/countries/{code}/stationsСтанциите на една държаваПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/report/todayДенят в един обект: състояние на басейна, какво се променя днес, станции над / под праговете, прогноза за 24–72 ч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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stationsСписък на станциитеПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}Станция, праговете ѝ LDC/HDC и отклонението на деня от климатологиятаПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/eventsИсторически наводнения и засушавания на една станцияПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/neighborsСъседи нагоре / надолу по течението и вливанияПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v2/stationsСписък на станциите ( v2, курсор + полета + формат )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/wizardПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
Измервания и прогнози
GET
/api/v1/forecast/accuracyТочност на официалните прогнози спрямо измерените стойности, по източник и хоризонт ( +24 / +48 / +72 ч )10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/measurementsТемпература на водата, отток, температура на въздухаПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/observationsСравнение на до 6 станции в един отговор10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/climatologyКлиматология по ден от годината от цялата редица: средно, медиана и перцентили10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/dischargeРедица от оттоци ( м³/с )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/forecastПрогноза за станцията ( където има )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/forecast-accuracyТочност на прогнозата в една станция, по източник и хоризонт: колко добра е прогнозата тук10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/iceЛедени явления от националните бюлетини, уеднаквени по станция и денПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/observationsРедица от нива ( см )10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/percentileПерцентил на днешната стойност спрямо същия ден през последните 30 години10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/recordsИсторически рекорди10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/same-dayСъщият ден в предишни години10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/stations/{slug}/winterЗимни явления и дебелина на ледаПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/summary/low-waterНиски води: последователни дни под LDC, по участък, с история и сравнениеПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/summary/todayДнешната обстановка: нива, прагове, прогнози, аномалиите на деня и какво се променя днес в басейна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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
Реки и държави
GET
/api/v1/countriesДържавите в басейна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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/riversРеките в басейна и броят на станциите им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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/rivers/{rau}Граф на реката: устие, притоци, държавиПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v2/countriesДържавите в басейна, странициране с курсор ( v2 )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v2/riversРеките в басейна, странициране с курсор ( v2 )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
Експорти
GET
/api/v1/export/country/{cod}Експорт CSV / JSON по държава10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Експортът също съдържа `_attribution`, с лиценза в `_attribution.license` (CC BY 4.0); покажи `_attribution.source`, `_attribution.url` и лиценза до файла.
GET
/api/v1/export/dailyДневен експорт CSV / JSON по държава10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Експортът също съдържа `_attribution`, с лиценза в `_attribution.license` (CC BY 4.0); покажи `_attribution.source`, `_attribution.url` и лиценза до файла.
GET
/api/v1/export/rangeЕкспорт на дълги периоди за изследователи ( CSV / Parquet, със странициране чрез курсор и лиценз за всеки ред )10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Експортът също съдържа `_attribution`, с лиценза в `_attribution.license` (CC BY 4.0); покажи `_attribution.source`, `_attribution.url` и лиценза до файла.
GET
/api/v1/export/range/licensesЛицензи на източниците и начин на цитиране при експорта на период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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Експортът също съдържа `_attribution`, с лиценза в `_attribution.license` (CC BY 4.0); покажи `_attribution.source`, `_attribution.url` и лиценза до файла.
GET
/api/v1/export/river/{rau}Експорт CSV / JSON по река10/minПараметри
- 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"])Лимит на заявки: Тежък маршрут: 10 заявки/минута, дори с ключ.
Експортът също съдържа `_attribution`, с лиценза в `_attribution.license` (CC BY 4.0); покажи `_attribution.source`, `_attribution.url` и лиценза до файла.
Прагове, корабоплаване, бюлетини
GET
/api/v1/bulletinsХидрологични бюлетини по държаваПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/navigationКритични точки и ограничения за корабоплаванетоПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/thresholdsОфициални прагове ( LDC/HDC, RNW/HSW, защита от наводнения )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v2/bulletinsХидрологични бюлетини, странициране с курсор ( v2 )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v2/navigationКорабоплаване, един списък със странициране ( v2 )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v2/thresholdsОфициални прагове, странициране с курсор ( v2 )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
Епизоди на сигнали
GET
/api/v1/episodesПублични епизоди LDC/HDCПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/episodes/{id}Един епизод на известиеПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GeoJSON
GET
/api/v1/geojson/riversПлавателната линия на Дунав + Сава / Тиса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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/geojson/stationsFeatureCollection на станциитеПараметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
Източници и качество на данните
GET
/api/v1/meta/availabilityМесечна наличност по източник ( 12 месеца ): дни с данни и последните изпълнения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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/meta/healthСъстояние на източниците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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/meta/qualityКачество на данните по станция: съмнителни измервания и състояние на източника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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v1/meta/sourcesПоследна актуализация по източник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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
GET
/api/v2/meta/sourcesИзточници на данни, странициране с курсор ( v2 )Параметри
- 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"])Лимит на заявки: Анонимно: 60 заявки/минута (плъзгащ се прозорец); с `Authorization: Bearer <ключ>`: 600/минута.
Отговорът съдържа `_attribution`; покажи `_attribution.source` и `_attribution.url` до данните.
Ограничение на заявките
Плъзгащ се прозорец от 60 секунди; редът от измервания е тежка крайна точка (10 в минута). Над лимита: 429 с retry_after_seconds в тялото и заглавки Retry-After и X-RateLimit-*. Отказаните заявки не се броят за следващия прозорец.
| Заглавие | Значение |
|---|---|
| X-RateLimit-Limit | 60 / 600 / 3000 / 10 |
| X-RateLimit-Remaining | 0 … limit |
| Retry-After | s ( 429 ) |
| 429 · retry_after_seconds | JSON |
Типизиран 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']Експорт на отворени данни
Файловете от предходния ден, по един ред за станция, за всяка държава от басейна, във формат CSV или JSON. Отговорите могат да се кешират (ETag, Last-Modified, Cache-Control); лицензът и посочването на източника са в заглавките на файла и в блока _attribution на JSON.
- Албания ALCSVJSON
- Австрия ATCSVJSON
- Босна и Херцеговина BACSVJSON
- България BGCSVJSON
- Швейцария CHCSVJSON
- Чехия CZCSVJSON
- Германия DECSVJSON
- Хърватия HRCSVJSON
- Унгария HUCSVJSON
- Италия ITCSVJSON
- Молдова MDCSVJSON
- Черна гора MECSVJSON
- Северна Македония MKCSVJSON
- Полша PLCSVJSON
- Румъния ROCSVJSON
- Сърбия RSCSVJSON
- Словения SICSVJSON
- Словакия SKCSVJSON
- Украйна UACSVJSON
Лиценз: Creative Commons Attribution 4.0 International · Посочване на източника: DanubeAlert и националните хидрологични служби · Предходният ден, в часовата зона на държавата.
Конфигуратор на уиджет
Нивото на станция директно на вашия сайт: изберете станцията, темата, езика и брандинга, вижте уиджета на живо и копирайте iframe кода във всяка CMS.
Твоите уиджети в три стъпки
Избери типа и настройките — прегледът и кодът се обновяват веднага.
Преглед ( миниатюра )
Код за вмъкване
<iframe
src="https://danubealert.arcm.ro/embed/v1/station?slug=achleiten&theme=auto&lang=bg&accent=00BABE"
title="Danube water level — Ахлайтен"
width="100%"
height="300"
style="border:0;max-width:640px;"
loading="lazy"
referrerpolicy="strict-origin-when-cross-origin"
></iframe>Пълният договор: /api/v1/openapi.en.json · /api/v1/openapi.json · Данни: националните хидрологични служби, чрез DanubeAlert