River level API
live height and flow from 2,900 gaugesGive a point, get the nearest live river gauge: how high the water is, whether it is rising, how much water flows and how that compares with a normal month.
Free plan · 500 calls a day, no cardRequest
curl -H "X-API-Key: YOUR_KEY" \ "https://atmoatlas.com/api/v1/river?lat=48.85&lon=2.35"
const res = await fetch("https://atmoatlas.com/api/v1/river?lat=48.85&lon=2.35", { headers: { "X-API-Key": "YOUR_KEY" } }); const data = await res.json();
import requests r = requests.get("https://atmoatlas.com/api/v1/river", params={"lat": "48.85", "lon": "2.35"}, headers={"X-API-Key": "YOUR_KEY"}) data = r.json()
Your key goes in the X-API-Key header.
Response
{
"gauge": { "id": "F700000103", "name": "La Seine à Paris - Austerlitz", "river": "La Seine",
"lat": 48.84469, "lon": 2.36551, "distance_km": 1.3 },
"updated": "2026-11-03T07:20:00Z",
"height_m": 1, "height_reference": "gauge zero (local datum of the station)",
"change_24h_m": 0.04, "trend": "steady", "tidal": false,
"flow_m3s": 78.8, "flow_usual_m3s": 234.139, "flow_status": "low",
"series": [ { "time": "2026-11-03T06:25:00Z", "height_m": 1 },
{ "time": "2026-11-03T06:55:00Z", "height_m": 0.992 },
{ "time": "2026-11-03T07:20:00Z", "height_m": 0.995 } ],
"source": "Hub'Eau hydrometry (Eaufrance), Licence Ouverte Etalab 2.0"
}Real response for Paris on 3 November 2026 (hours=1): the Seine is low for the season.
Coverage and source
- Coverage
- France, mainland and overseas: about 2,900 live gauges
- Refresh
- Every 15 minutes, as the gauges report
- History
- Height series over the last 48 hours
- Source
- Hub’Eau hydrometry (Eaufrance), Licence Ouverte Etalab 2.0
What the response contains
| Field | Meaning |
|---|---|
gauge | The gauge used: id, name, river, position and distance from your point. |
height_m | Water height in metres, measured from the gauge’s own zero. |
change_24h_m / trend | Change over 24 hours and the trend over 3 hours: rising, falling or steady. |
flow_m3s / flow_usual_m3s | Flow now and the usual flow for this month, from past monthly averages. |
flow_status | low, normal or high compared with the same month in past years. |
tidal | true where the river follows the tide (Loire at Nantes, Garonne at Bordeaux…). |
series | Height every 30 minutes over the period you ask for (up to 48 hours). |
Parameters
| Parameter | Type | Description |
|---|---|---|
lat / lon | float | Latitude and longitude. Required. |
radius | float | Search radius in km, up to 25 (10 if omitted). |
hours | int | Hours of height series, 1 to 48 (24 if omitted). |
What people build with it
Fishing, canoe and kayak apps
Tell paddlers and anglers whether the river is low, normal or high today.
Campsites and riverside businesses
Show the water level on a booking page or a staff dashboard.
Property and insurance tools
Follow the rivers near a portfolio of addresses and spot unusual rises.
Farming and water management
Compare today’s flow with a normal month before irrigating or pumping.
Frequently asked questions
Which rivers are covered?
Every French gauge that reports live to the national network: big rivers like the Seine, Loire, Rhône and Garonne, and many small ones. About 2,900 gauges, 2,200 of them with flow.
What does the height mean?
It is measured from the zero of each gauge, so it is best read as a change over time or against the usual flow, not compared between two rivers.
Can I use it commercially?
Yes. Hub’Eau data is published under the Licence Ouverte Etalab 2.0, which allows commercial use when the source is shown.
Try it with your own key
Create an account in a minute: the key arrives straight away, and the same key opens every other dataset.