Para desarrolladores

API de Precios PVPC

Accede al precio de la luz en tiempo real desde tu aplicación, dashboard domótico o sistema de automatización. Datos oficiales de Red Eléctrica de España (ESIOS).

Hobby
0 €
para siempre
  • Precio actual + clasificación
  • 100 llamadas/día
  • Endpoint /precio
  • Histórico de precios
  • Precios de mañana
  • Datos por zona
  • Precios 24h del día
Pro
9,99 €
al mes
  • Todo en Hobby
  • 5.000 llamadas/día
  • Histórico hasta 365 días
  • Precios de mañana
  • Datos de las 5 zonas
  • Curva 24h completa
  • SLA garantizado
Business
49,99 €
al mes
  • Todo en Pro
  • 50.000 llamadas/día
  • Histórico hasta 365 días
  • Precios de mañana
  • Datos de las 5 zonas
  • Curva 24h completa
  • Soporte prioritario

🔑 Obtén tu API key gratis

Regístrate con tu email y obtendrás una API key hobby al instante. Sin tarjeta de crédito.

✅ ¡API key creada!
⚠️ Guarda esta key en un lugar seguro. No se puede recuperar.

📖 Documentación

Todos los endpoints requieren autenticación via header x-api-key o query param ?key=TU_KEY.

GET /api/v2/precio Hobby+
Precio PVPC actual con clasificación de mercado, hora mínima/máxima del día y metadatos. Los planes Pro+ reciben además el array de 24 precios horarios (precios_24h).
curl -H "x-api-key: TU_KEY" https://luxa.eco/api/v2/precio
# Respuesta ejemplo: { "ok": true, "precio_kwh": 0.1423, "hora": "14:00", "fecha": "2026-03-20", "clasificacion": "normal", "hora_min": "03:00", "min_dia": 0.0982, "hora_max": "20:00", "max_dia": 0.2581, "zona": "peninsula" }
GET /api/v2/historico Pro+
Histórico de precios PVPC hora a hora. Parámetros: dias (1–365, default 7), zona (peninsula|canarias|baleares|ceuta|melilla).
curl -H "x-api-key: TU_KEY" "https://luxa.eco/api/v2/historico?dias=7&zona=peninsula"
# Respuesta ejemplo: { "ok": true, "dias": 7, "zona": "peninsula", "data": [ { "fecha": "2026-03-14", "hora": "00:00", "precio_kwh": 0.1042 }, { "fecha": "2026-03-14", "hora": "01:00", "precio_kwh": 0.0998 }, ... ] }
GET /api/v2/manana Pro+
Precios de mañana hora a hora (disponibles desde ~20:30 cada día). Retorna disponible: false si ESIOS aún no los ha publicado.
curl -H "x-api-key: TU_KEY" https://luxa.eco/api/v2/manana
# Respuesta cuando disponible: { "ok": true, "disponible": true, "fecha": "2026-03-21", "data": [ { "hora": "00:00", "precio_kwh": 0.0921 }, { "hora": "01:00", "precio_kwh": 0.0887 }, ... ] } # Respuesta antes de las 20:30: { "ok": true, "disponible": false, "mensaje": "Precios publicados a las 20:30h" }
GET /api/v2/zonas Pro+
Precio actual en las 5 zonas tarifarias de España: Península, Canarias, Baleares, Ceuta y Melilla.
curl -H "x-api-key: TU_KEY" https://luxa.eco/api/v2/zonas
# Respuesta ejemplo: { "ok": true, "hora": "14:00", "zonas": { "peninsula": { "precio_kwh": 0.1423, "clasificacion": "normal" }, "canarias": { "precio_kwh": 0.1571, "clasificacion": "normal" }, "baleares": { "precio_kwh": 0.1468, "clasificacion": "normal" }, "ceuta": { "precio_kwh": 0.1423, "clasificacion": "normal" }, "melilla": { "precio_kwh": 0.1423, "clasificacion": "normal" } } }
GET /api/v2/status Hobby+
Información de tu API key: plan actual, llamadas realizadas hoy y límite diario. Útil para monitorizar el uso.
curl -H "x-api-key: TU_KEY" https://luxa.eco/api/v2/status
# Respuesta ejemplo: { "ok": true, "plan": "hobby", "email": "tu@email.com", "uso_hoy": 42, "limite_diario": 100, "restantes": 58 }
POST /api/v2/register Público
Registro automático. Envía un JSON con email y opcionalmente nombre. Retorna la API key. Guárdala — no se puede recuperar.
curl -X POST https://luxa.eco/api/v2/register \ -H "Content-Type: application/json" \ -d '{"email":"tu@email.com","nombre":"Tu nombre"}'
# Respuesta: { "ok": true, "api_key": "xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx", "plan": "hobby", "limite_diario": 100 }
ERR Errores comunes
Todos los errores siguen el mismo formato con código HTTP y campo error.
# 401 — Sin API key o inválida { "ok": false, "error": "API key inválida o inactiva", "code": 401 } # 429 — Rate limit superado { "ok": false, "error": "Límite diario superado (100/día en plan hobby)", "code": 429 } # 403 — Endpoint requiere plan Pro { "ok": false, "error": "Este endpoint requiere plan Pro o superior", "code": 403 }

🧪 Pruébalo en vivo

Pega tu API key y haz una llamada real al endpoint /precio: