Open-Meteo Flood API
Free flood forecasting API with no key: daily river discharge forecasts worldwide from the GloFAS global flood model, with historical data back to 1984. Tested.
Endpoint tested and returned HTTP 200 on 2026-08-20
What is the Open-Meteo Flood API?
The Open-Meteo Flood API is a free, key-free API providing river discharge forecasts and historical data worldwide, based on the Global Flood Awareness System (GloFAS) model operated by the Copernicus Emergency Management Service.
River discharge forecasting is normally the preserve of national hydrological agencies. This endpoint exposes GloFAS — the same global flood model used for emergency planning — through a free, key-free interface for any coordinates worldwide.
Discharge is measured in cubic metres per second and is meaningful only relative to that river's normal range. A value of 500 m³/s is catastrophic on a small river and unremarkable on a large one, so always compare against the historical record for the same point rather than using an absolute threshold.
Quick facts
- Base URL
https://flood-api.open-meteo.com/v1/flood- Authentication
- No API key required.
- Rate limit
- Shares the Open-Meteo fair-use policy — roughly 10,000 requests per day.
- Pricing
- Free including commercial use below the daily limit.
- CORS
- Not enabled — call it from your server
- Official docs
- Read the docs
How to use the Open-Meteo Flood API
Every request below was executed against the live API on 2026-08-20, and the response shown is the real body it returned — not an illustration.
1. Fetch river discharge forecast
GET https://flood-api.open-meteo.com/v1/flood?latitude=31.52&longitude=74.35&daily=river_discharge
curl 'https://flood-api.open-meteo.com/v1/flood?latitude=31.52&longitude=74.35&daily=river_discharge'const res = await fetch("https://flood-api.open-meteo.com/v1/flood?latitude=31.52&longitude=74.35&daily=river_discharge");
if (!res.ok) throw new Error(`Request failed: ${res.status}`);
const data = await res.json();
console.log(data);import requests
res = requests.get("https://flood-api.open-meteo.com/v1/flood?latitude=31.52&longitude=74.35&daily=river_discharge", timeout=20)
res.raise_for_status()
print(res.json()){
"latitude": 31.525002,
"longitude": 74.375015,
"generationtime_ms": 0.3679990768432617,
"utc_offset_seconds": 0,
"timezone": "GMT",
"timezone_abbreviation": "GMT",
"elevation": 219.0,
"daily_units": {
"time": "iso8601",
"river_discharge": "m³/s"
},
"daily": {
"time": [
"2026-08-19",
"2026-08-20",
"2026-08-21",
"2026-08-22",
"2026-08-23",
"2026-08-24",
"2026-08-25",
"2026-08-26",
"2026-08-27",
"2026-08-28",
"2026-08-29",
"2026-08-30",
"2026-08-31",
"2026-09-01",
"2026-09-02",
"2026-09-03",
"2026-09-04",
"2026-09-05",
"2026-09-06",
"2026-09-07",
"2026-09-08",
"2026-09-09",
"2026-09-10",
"2026-09-11",
"2026-09-12",
"2026-09-13",
"2026-09-14",
"2026-09-15",
"2026-09-16",
"2026-09-17",
"2026-09-18",
"2026-09-19",
"2026-09-20",
"2026-09-21",
"2026-09-22",
"2026-09-23",
"2026-09-24",
"2026-09-25",
"2026-09-26",
"2026-09-27",
"2026-09-28",
"2026-09-29",
"2026-09-30",
"2026-10-01",
"2026-10-02",
"2026-10-03",
"2026-10-04",
"2026-10-05",
"2026-10-06",
"2026-10-07",
"2026-10-08",
"2026-10-09",
"2026-10-10",
"2026-10-11",
"2026-10-12",
"2026-10-13",
"2026-10-14",
"2026-10-15",
"2026-10-16",
"2026-10-17",
"2026-10-18",
"2026-10-19",
"2026-10-20",
"2026-10-21",
"2026-10-2Parameters
| Parameter | Type | Required | Description |
|---|---|---|---|
latitude / longitude | float | Required | Coordinates of the river point. 31.52 |
daily | string | Required | Variables such as river_discharge or river_discharge_mean. river_discharge |
start_date / end_date | string | Optional | Historical range as YYYY-MM-DD, back to 1984. 2026-01-01 |
ensemble | boolean | Optional | Return ensemble members for uncertainty analysis. true |
Response fields
daily.timearray- Dates for each forecast value.
daily.river_dischargearray- Discharge in cubic metres per second.
daily_unitsobject- Units for each variable.
latitude / longitudenumber- The model grid point actually used.
generationtime_msnumber- How long the query took server-side.
What you can build with the Open-Meteo Flood API
- Build flood early-warning alerts for a river location
- Assess flood risk for insurance or planning
- Analyse decades of river discharge trends
- Support agricultural and water resource planning
Common errors and how to fix them
All values null
The coordinates are not on a modelled river.
Fix: GloFAS models rivers above a minimum catchment size; small streams are not covered.
Discharge value hard to interpret
It is absolute, in m³/s.
Fix: Compare against the historical range for the same point — thresholds are river-specific, not universal.
400
Unknown daily variable name.
Fix: Use river_discharge, or the ensemble variants documented in the API reference.
Open-Meteo Flood API — frequently asked questions
Is there a free flood forecasting API?
Yes. The Open-Meteo Flood API exposes GloFAS river discharge forecasts worldwide with no API key required.
What is river discharge?
The volume of water flowing past a point per second, in cubic metres. It is the standard hydrological measure of river flow and the basis of flood forecasting.
How do I know if a discharge value means flooding?
You cannot from the number alone — it is river-specific. Fetch the historical range for the same coordinates and compare; 500 m³/s is extreme on a small river and normal on a large one.
Does it cover small streams?
No. GloFAS models rivers above a minimum catchment size, so small streams and headwaters return null.
Tools that pair with this API
JSON Formatter
Format, beautify and minify JSON online with 2-space, 4-space or tab indentation. Sort keys alphabetically and catch syntax errors instantly — free and private.
Unit Converter
Convert between units of length, weight, temperature, area, volume, speed, time and data storage instantly, with a swap button and common conversion tables.
Open-Meteo Flood is an independent third-party service and is not affiliated with ByteTools or ByteVancer. Details on this page were verified on 2026-08-20; always check the official documentation before relying on this API in production, as terms and limits can change.