API SpotWave
Les prix de SpotWave viennent d'une petite API JSON en lecture seule. Vous pouvez l'utiliser pour vos projets perso, tableaux de bord et votre domotique, dans le respect des conditions ci-dessous.
L'essentiel
- URL de base :
https://spotwave.eu/api. Chaque endpoint est un simpleGET, sans clé d'API, et le CORS est ouvert : vous pouvez l'appeler directement depuis une page web. - Spécification lisible par machine : document OpenAPI. Générez un client dans n'importe quel langage à partir de celle-ci.
- Les prix sont par kWh en unités monétaires (€/kWh pour les champs EUR). Chaque ligne a aussi un bloc
nativedans la devise du marché (DKK, SEK, NOK, PLN, …), converti au taux de référence quotidien de la BCE. - Les heures sont en ISO 8601, en UTC. Les prix day-ahead sont donnés par périodes de 15 minutes.
countryprend un code de marché de/meta/markets:NL,DE,SE3,DK1,NO2,ITN, etc.- Les montants tout compris sont spot + taxes + acheminement au kWh, puis TVA. Les marges des fournisseurs ne sont pas comprises ; voir les sources pour le calcul de chaque chiffre.
Endpoints
GET /meta/markets
Tous les marchés (zones de prix) pris en charge, avec leur nom, leur devise et leurs coûts mensuels fixes (TVA comprise), qui ne sont jamais intégrés au prix par kWh.
curl https://spotwave.eu/api/meta/markets[
{
"code": "NL",
"name": "Netherlands",
"currency": "EUR",
"fees": {
"gridFixedPerMonth": 39.83,
"energyTaxCreditPerMonth": 52.41,
"netPerMonth": -12.58,
"native": { "currency": "EUR", "gridFixedPerMonth": 39.83, "energyTaxCreditPerMonth": 52.41, "netPerMonth": -12.58 }
}
},
…
]GET /spotprice?country=…&from=…&to=…
La composition du prix tout compris pour chaque période d'un intervalle. from et to sont des horodatages ISO (inclus) ; un intervalle de plus de 92 jours est ramené aux 92 derniers jours.
curl "https://spotwave.eu/api/spotprice?country=NL&from=2026-10-20T00:00:00Z&to=2026-10-20T23:59:59Z"[
{
"periodUtc": "2026-10-20T12:00:00Z",
"country": "NL",
"spotEurPerKwh": 0.10301,
"energyTaxEurPerKwh": 0.0916,
"gridFeeEurPerKwh": 0.0,
"vatEurPerKwh": 0.0408681,
"totalEurPerKwh": 0.2354781,
"native": { "currency": "EUR", "spotPerKwh": 0.10301, "energyTaxPerKwh": 0.0916, "gridFeePerKwh": 0.0, "vatPerKwh": 0.0408681, "totalPerKwh": 0.2354781 }
},
…
]GET /forecast?country=…&from=…&to=…
Mêmes paramètres et même réponse que /spotprice, pour la journée de demain. Renvoie un tableau vide tant que les prix day-ahead de demain ne sont pas publiés, en général vers 13 h.
curl "https://spotwave.eu/api/forecast?country=DE&from=2026-10-21T00:00:00Z&to=2026-10-21T23:59:59Z"GET /spotprice/current?country=…
Le dernier prix de gros enregistré pour un marché : le prix spot brut, sans taxes ni frais. hourUtc est le début de la période. Renvoie 404 si le marché n'a pas de données.
curl "https://spotwave.eu/api/spotprice/current?country=NL"{ "id": 3179619, "country": "NL", "hourUtc": "2026-10-20T15:45:00Z", "eurPerKwh": 0.25471 }GET /spotprice/stats?country=…
Les percentiles du prix de gros sur les 30 derniers jours, que SpotWave utilise pour dire si un prix est bas ou élevé.
curl "https://spotwave.eu/api/spotprice/stats?country=SE3"{
"p25": 0.0401, "median": 0.0825, "p75": 0.1208, "avg": 0.0842,
"native": { "currency": "SEK", "p25": 0.4452, "median": 0.9165, "p75": 1.3411, "avg": 0.9352 }
}GET /spotprice/context?country=…
Des niveaux de référence sur longue période : la moyenne glissante annuelle du prix tout compris, celle de l'an dernier et une bande typical (bas/moyen/haut par heure de la journée, UTC) tirée de la même période des années récentes. Les champs sont null tant que l'historique est insuffisant.
curl "https://spotwave.eu/api/spotprice/context?country=NL"{
"yearAvg": 0.2409, "lastYearAvg": 0.2219,
"typical": [ { "i": 0, "low": 0.1694, "mid": 0.2172, "high": 0.2650 }, … ],
"native": { "currency": "EUR", "yearAvg": 0.2409, "lastYearAvg": 0.2219, "typical": [ … ] }
}GET /compare
Un instantané de tous les marchés : prix tout compris et spot actuels, fourchette du jour, part des taxes, taux de TVA et sparkline horaire, du moins cher au plus cher. C'est ce qui alimente la page marchés.
curl https://spotwave.eu/api/compare{
"asOf": "2026-10-20T15:58:49Z",
"euAvgSpot": 0.1596,
"zones": [
{
"country": "NL", "name": "Netherlands",
"currentAllIn": 0.4012, "spot": 0.2400, "taxShare": 40.19, "vatRate": 21.0,
"todayMin": 0.2307, "todayMax": 0.4012, "isNegative": false,
"sparkline": [0.1701, 0.1681, 0.1722, …],
"native": { "currency": "EUR", "currentAllIn": 0.4012, "spot": 0.2400, "todayMin": 0.2307, "todayMax": 0.4012, "sparkline": [ … ] }
},
…
]
}GET /meta/status
Quand les données ont été mises à jour pour la dernière fois et, par marché, si les prix de demain sont arrivés. Pratique pour savoir quand appeler /forecast.
curl https://spotwave.eu/api/meta/status{ "lastUpdated": "2026-10-20T13:05:12Z", "tomorrowPublished": { "NL": true, "DE": true, "SE3": false, … } }GET /history
Les prix passés d'un marché : moyennes mensuelles et annuelles, jours et heures records, heures sous zéro et prix moyen par heure de la journée sur les 12 derniers mois. Prix spot de gros uniquement, dans la devise du marché au taux du jour.
curl "https://spotwave.eu/api/history?country=NL"GET /history/month
Un mois jour par jour : moyenne, minimum et maximum, heures sous zéro, jour le moins cher et le plus cher, et les moyennes du mois précédent et du même mois l'an dernier.
curl "https://spotwave.eu/api/history/month?country=NL&month=2026-09"Avec les assistants IA
SpotWave est aussi un serveur MCP : les assistants et agents IA peuvent consulter eux-mêmes les prix actuels et passés. Ajoutez https://spotwave.eu/api/mcp comme serveur MCP distant (HTTP streamable, sans clé) dans n'importe quel client compatible MCP. Il propose quatre outils : list_markets, get_current_price, get_prices (aujourd'hui, demain ou n'importe quel jour passé) et compare_markets.
curl https://spotwave.eu/api/mcp -H 'Content-Type: application/json' -H 'Accept: application/json, text/event-stream' \
-d '{"jsonrpc":"2.0","id":1,"method":"tools/list"}'Intégrer le prix sur votre site
Un petit widget avec le prix tout compris et la courbe du jour, et un lien vers SpotWave. Choisissez le marché avec market (n'importe quel code de /meta/markets), la langue avec lang (en, nl, de, da, sv, nb, fi, fr, es, it, pl) et le thème avec theme (light ou dark).
<iframe src="https://spotwave.eu/embed?market=NL&lang=fr&theme=light"
width="360" height="300" style="border:0;border-radius:14px"
title="Prix de l'électricité aujourd'hui" loading="lazy"></iframe>Usage raisonnable
- L'API est gratuite et sans clé mais tourne sur un petit serveur : le nombre de requêtes est limité. Si des requêtes sont refusées, patientez puis réessayez plus tard.
- Les prix changent au plus toutes les 15 minutes et ceux de demain arrivent une fois par jour : n'interrogez pas plus d'une fois toutes les 15 minutes et gardez en cache ce que vous récupérez.
- Envoyez un
User-Agentexplicite (le nom de votre appli et une URL de contact). Certains user agents par défaut des bibliothèques HTTP sont bloqués par le CDN placé devant l'API. - Aucune garantie de disponibilité, et les endpoints peuvent changer.
Attribution
Si vous publiez quelque chose construit sur ces données, merci de citer SpotWave avec un lien vers spotwave.eu. Les prix de gros viennent de la plateforme de transparence ENTSO-E ; les taxes et frais sont les chiffres indicatifs de SpotWave, documentés sur la page sources.
Home Assistant
Une intégration Home Assistant qui lit cette API est en préparation. En attendant, le capteur RESTful intégré à Home Assistant peut lire /spotprice/current directement.