BYTETOOLS

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.

No API key requiredHTTPSFree tier

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
curl 'https://flood-api.open-meteo.com/v1/flood?latitude=31.52&longitude=74.35&daily=river_discharge'
JavaScript (fetch)
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);
Python (requests)
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())
Response — HTTP 200 (truncated)
{
  "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-2

Parameters

ParameterTypeRequiredDescription
latitude / longitudefloatRequiredCoordinates of the river point. 31.52
dailystringRequiredVariables such as river_discharge or river_discharge_mean. river_discharge
start_date / end_datestringOptionalHistorical range as YYYY-MM-DD, back to 1984. 2026-01-01
ensemblebooleanOptionalReturn 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

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.