API marée : comment récupérer des hauteurs d'eau en JSON

Les hauteurs d'eau de marée sont utilisées pour afficher un graphique, alimenter une application nautique, préparer une exportation ou automatiser un traitement. Dans ce type de cas, une réponse JSON est généralement le format le plus simple à exploiter.

L'API api-maree.fr permet justement de récupérer une série de hauteurs d'eau sur une période donnée, pour un site précis, avec une requête HTTP très simple.

Pourquoi le JSON est pratique pour les données de marée

Le JSON est lisible, standard et directement exploitable par la plupart des langages de programmation. Pour une API de marée, cela permet de récupérer une suite de dates et de hauteurs d'eau sans transformation intermédiaire, puis de réutiliser ces données dans un tableau, un graphique ou une logique métier plus spécifique.

C'est un format particulièrement adapté si vous souhaitez intégrer des niveaux d'eau dans un site web, une application mobile, un script Python, un backend ou un outil d'analyse.

Un exemple simple de requête

Pour récupérer des hauteurs d'eau, il suffit d'appeler l'endpoint /water-levels. L'exemple ci-dessous interroge Port-en-Bessin sur une journée complète avec un point toutes les 10 minutes.

GET /water-levels?site=port-en-bessin&from=2026-05-09T00:00&to=2026-05-10T00:00&step=10&tz=UTC&key=00000000000000000000000000000000

À quoi ressemble la réponse

L'API renvoie un objet JSON contenant le site demandé, la période interrogée, le fuseau horaire, l'unité et surtout un tableau data avec la série de hauteurs d'eau.

{
  "site": "port-en-bessin",
  "timezone": "UTC",
  "from": "2026-05-09T00:00:00Z",
  "to": "2026-05-10T00:00:00Z",
  "step_minutes": 10,
  "unit": "m",
  "data": [
    { "time": "2026-05-09T00:00:00Z", "height": 6.454 },
    { "time": "2026-05-09T00:10:00Z", "height": 6.605 },
    { "time": "2026-05-09T00:20:00Z", "height": 6.730 }
  ]
}

En pratique, le tableau data est généralement la partie la plus utile. Chaque ligne associe une date à une hauteur d'eau exprimée en mètres, ce qui facilite ensuite l'affichage ou les traitements automatisés.

Exemple en Python

En Python, quelques lignes suffisent pour appeler l'API et parcourir les points renvoyés.

import requests

url = "https://api-maree.fr/water-levels"
params = {
    "site": "port-en-bessin",
    "from": "2026-05-09T00:00",
    "to": "2026-05-10T00:00",
    "step": 10,
    "tz": "UTC",
    "key": "00000000000000000000000000000000"
}

response = requests.get(url, params=params, timeout=10)
payload = response.json()

for point in payload["data"]:
    print(point["time"], point["height"])

Exemple en JavaScript

Côté front-end ou dans un environnement JavaScript moderne, fetch permet de récupérer directement les hauteurs d'eau en JSON.

const url = new URL("https://api-maree.fr/water-levels");
url.search = new URLSearchParams({
  site: "port-en-bessin",
  from: "2026-05-09T00:00",
  to: "2026-05-10T00:00",
  step: "10",
  tz: "UTC",
  key: "00000000000000000000000000000000"
});

const response = await fetch(url);
const payload = await response.json();

console.log(payload.data);

Exemple en Kotlin

En Kotlin, il est tout aussi simple d'appeler l'API avec le client HTTP standard, puis de transmettre la réponse JSON à votre bibliothèque de désérialisation habituelle.

import java.net.URI
import java.net.http.HttpClient
import java.net.http.HttpRequest
import java.net.http.HttpResponse

val client = HttpClient.newHttpClient()
val url = "https://api-maree.fr/water-levels?site=port-en-bessin&from=2026-05-09T00:00&to=2026-05-10T00:00&step=10&tz=UTC&key=00000000000000000000000000000000"

val request = HttpRequest.newBuilder()
    .uri(URI.create(url))
    .GET()
    .build()

val response = client.send(request, HttpResponse.BodyHandlers.ofString())
println(response.body())

Que peut-on faire ensuite avec ces données

Une fois le JSON récupéré, plusieurs usages sont possibles. Vous pouvez afficher une courbe de marée, produire une table, exporter les données, comparer plusieurs périodes, ou encore croiser les hauteurs d'eau avec d'autres données métier.

Si vous souhaitez aller plus loin, la documentation complète détaille les endpoints disponibles, les contraintes de requête et le fonctionnement général du service.