API de SpotWave

Los precios de SpotWave salen de una pequeña API JSON de solo lectura. Puedes usarla en proyectos personales, paneles y domótica, siguiendo las condiciones de uso de abajo.

Lo básico

Endpoints

GET /meta/markets

Todos los mercados (zonas de precio) disponibles, con su nombre, moneda y costes fijos mensuales (IVA incluido), que nunca se suman al precio por 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=…

El desglose del precio total para cada periodo de un intervalo. from y to son marcas de tiempo ISO (incluidas); un intervalo de más de 92 días se recorta a los últimos 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=…

Mismos parámetros y misma respuesta que /spotprice, para el día de mañana. Devuelve un array vacío hasta que se publican los precios de mañana, normalmente hacia las 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=…

El último precio mayorista guardado para un mercado: solo el precio de mercado, sin impuestos ni peajes. hourUtc es el inicio del periodo. Devuelve 404 si el mercado no tiene datos.

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=…

Percentiles del precio mayorista de los últimos 30 días, que SpotWave usa para decir si un precio es barato o caro.

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=…

Niveles de referencia a largo plazo: la media móvil anual del precio total, la del año pasado y una banda typical (bajo/medio/alto por hora del día, UTC) calculada con la misma época de los últimos años. Los campos son null hasta que hay historial suficiente.

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 foto de todos los mercados: precio total y de mercado actuales, rango de hoy, peso de los impuestos, tipo de IVA y una mini gráfica por horas, del más barato al más caro. Es lo que alimenta la página de mercados.

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

Cuándo se actualizaron los datos por última vez y, por mercado, si ya están los precios de mañana. Útil para saber cuándo llamar a /forecast.

curl https://spotwave.eu/api/meta/status
{ "lastUpdated": "2026-10-20T13:05:12Z", "tomorrowPublished": { "NL": true, "DE": true, "SE3": false, … } }

GET /history

Precios pasados de un mercado: medias mensuales y anuales, días y horas récord, horas bajo cero y el precio medio por hora del día en los últimos 12 meses. Solo precio mayorista, en la moneda del mercado al cambio de hoy.

curl "https://spotwave.eu/api/history?country=NL"

GET /history/month

Un mes día a día: media, mínimo y máximo, horas bajo cero, día más barato y más caro, y las medias del mes anterior y del mismo mes del año pasado.

curl "https://spotwave.eu/api/history/month?country=NL&month=2026-09"

Con asistentes de IA

SpotWave también es un servidor MCP, así que los asistentes y agentes de IA pueden consultar ellos mismos los precios actuales y pasados. Añade https://spotwave.eu/api/mcp como servidor MCP remoto (HTTP en streaming, sin clave) en cualquier cliente compatible con MCP. Ofrece cuatro herramientas: list_markets, get_current_price, get_prices (hoy, mañana o cualquier día pasado) y 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"}'

Pon el precio en tu web

Un pequeño widget con el precio total y la gráfica de hoy, con un enlace a SpotWave. Elige el mercado con market (cualquier código de /meta/markets), el idioma con lang (en, nl, de, da, sv, nb, fi, fr, es, it, pl) y el tema con theme (light o dark).

<iframe src="https://spotwave.eu/embed?market=NL&lang=es&theme=light"
  width="360" height="300" style="border:0;border-radius:14px"
  title="Precio de la luz hoy" loading="lazy"></iframe>

Uso razonable

Atribución

Si publicas algo hecho con estos datos, cita a SpotWave con un enlace a spotwave.eu. Los precios mayoristas vienen de la plataforma de transparencia de ENTSO-E; los impuestos y peajes son cifras orientativas de SpotWave, documentadas en la página de fuentes.

Home Assistant

Estamos preparando una integración de Home Assistant que lee esta API. Mientras tanto, el sensor RESTful que trae Home Assistant puede leer /spotprice/current directamente.

Mercados · Guía · API