API di SpotWave
I prezzi di SpotWave arrivano da una piccola API JSON in sola lettura. Puoi usarla per progetti personali, dashboard e domotica, rispettando le condizioni d'uso qui sotto.
Le basi
- URL di base:
https://spotwave.eu/api. Ogni endpoint è un sempliceGETsenza chiave API, e il CORS è aperto, quindi puoi chiamarla direttamente da una pagina web. - Specifica leggibile dalle macchine: documento OpenAPI. Da lì puoi generare un client in qualsiasi linguaggio.
- I prezzi sono al kWh in unità di valuta (€/kWh per i campi EUR). Ogni riga ha anche un blocco
nativenella valuta del mercato (DKK, SEK, NOK, PLN, …), convertito al cambio di riferimento giornaliero della BCE. - Gli orari sono in ISO 8601, in UTC. I prezzi del giorno prima arrivano in periodi di 15 minuti.
countryaccetta un codice di mercato da/meta/markets:NL,DE,SE3,DK1,NO2,ITNe così via.- I totali sono mercato + accise + oneri di rete al kWh, poi IVA. I margini dei fornitori non sono inclusi; nelle fonti trovi come si calcola ogni cifra.
Endpoint
GET /meta/markets
Tutti i mercati (zone di prezzo) supportati, con nome, valuta e costi mensili fissi (IVA inclusa), che non vengono mai sommati al prezzo al 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=…
Il dettaglio del prezzo totale per ogni periodo di un intervallo. from e to sono timestamp ISO (inclusi); un intervallo oltre i 92 giorni viene ridotto agli ultimi 92.
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=…
Stessi parametri e stessa risposta di /spotprice, per la giornata di domani. Restituisce un array vuoto finché i prezzi di domani non escono, di solito verso le 13:00.
curl "https://spotwave.eu/api/forecast?country=DE&from=2026-10-21T00:00:00Z&to=2026-10-21T23:59:59Z"GET /spotprice/current?country=…
L'ultimo prezzo all'ingrosso salvato per un mercato: solo il prezzo di mercato, senza accise né oneri. hourUtc è l'inizio del periodo. Restituisce 404 se il mercato non ha dati.
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=…
I percentili del prezzo all'ingrosso degli ultimi 30 giorni, che SpotWave usa per dire se un prezzo è basso o alto.
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=…
Livelli di riferimento di lungo periodo: la media mobile annuale del prezzo totale, quella dell'anno scorso e una fascia typical (basso/medio/alto per ora del giorno, UTC) ricavata dallo stesso periodo degli ultimi anni. I campi sono null finché lo storico non basta.
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
Una fotografia di tutti i mercati: prezzo totale e di mercato attuali, intervallo di oggi, quota delle imposte, aliquota IVA e una mini curva oraria, dal più economico al più caro. È ciò che alimenta la pagina dei mercati.
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
Quando i dati sono stati aggiornati l'ultima volta e, per ogni mercato, se i prezzi di domani sono già arrivati. Utile per sapere quando chiamare /forecast.
curl https://spotwave.eu/api/meta/status{ "lastUpdated": "2026-10-20T13:05:12Z", "tomorrowPublished": { "NL": true, "DE": true, "SE3": false, … } }GET /history
I prezzi passati di un mercato: medie mensili e annuali, giorni e ore record, ore sotto zero e il prezzo medio per ora del giorno negli ultimi 12 mesi. Solo prezzo all'ingrosso, nella valuta del mercato al cambio di oggi.
curl "https://spotwave.eu/api/history?country=NL"GET /history/month
Un mese giorno per giorno: media, minimo e massimo, ore sotto zero, giorno più economico e più caro, e le medie del mese precedente e dello stesso mese dell'anno scorso.
curl "https://spotwave.eu/api/history/month?country=NL&month=2026-09"Con gli assistenti IA
SpotWave è anche un server MCP, così assistenti e agenti IA possono consultare da soli i prezzi attuali e passati. Aggiungi https://spotwave.eu/api/mcp come server MCP remoto (HTTP in streaming, senza chiave) in qualsiasi client compatibile con MCP. Offre quattro strumenti: list_markets, get_current_price, get_prices (oggi, domani o qualsiasi giorno passato) e 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"}'Mostra il prezzo sul tuo sito
Un piccolo widget con il prezzo totale e la curva di oggi, con un link a SpotWave. Scegli il mercato con market (qualsiasi codice da /meta/markets), la lingua con lang (en, nl, de, da, sv, nb, fi, fr, es, it, pl) e il tema con theme (light o dark).
<iframe src="https://spotwave.eu/embed?market=NL&lang=it&theme=light"
width="360" height="300" style="border:0;border-radius:14px"
title="Prezzo della luce oggi" loading="lazy"></iframe>Uso corretto
- L'API è gratuita e senza chiave ma gira su un piccolo server, quindi le richieste sono limitate. Se iniziano a essere rifiutate, aspetta e riprova più tardi.
- I prezzi cambiano al massimo ogni 15 minuti e quelli di domani arrivano una volta al giorno: non interrogarla più di una volta ogni 15 minuti e tieni in cache ciò che scarichi.
- Invia uno
User-Agentdescrittivo (il nome della tua app e un URL di contatto). Alcuni user agent predefiniti delle librerie HTTP sono bloccati dalla CDN davanti all'API. - Non c'è garanzia di disponibilità e gli endpoint possono cambiare.
Attribuzione
Se pubblichi qualcosa basato su questi dati, cita SpotWave con un link a spotwave.eu. I prezzi all'ingrosso vengono dalla piattaforma di trasparenza ENTSO-E; accise e oneri sono cifre indicative di SpotWave, documentate nella pagina delle fonti.
Home Assistant
È in preparazione un'integrazione Home Assistant che legge questa API. Nel frattempo il sensore RESTful integrato in Home Assistant può leggere /spotprice/current direttamente.