Sondeva Renovables

API

La API de datos

Los mismos proyectos que exporta a Excel, leídos desde su propio programa: su CRM, su hoja de cálculo o su cuadro de mandos. Es solo de Enterprise Plus, con una clave personal, y gasta del mismo cupo mensual de proyectos exportados que el Excel, el CSV y los informes (500 proyectos distintos al mes). No tiene precio propio.

Empezar

  1. Cree una clave en el buscador, en «Mi espacio», pestaña «API». Se le muestra una sola vez: cópiela entonces. Puede tener hasta tres activas y revocar cualquiera cuando quiera.
  2. Mándela en cada petición, en la cabecera Authorization: Bearer sdv_….
  3. Pida los proyectos con GET /api/v1/proyectos.
curl -H "Authorization: Bearer $SONDEVA_CLAVE" \
     "https://renovables.sondeva.es/api/v1/proyectos?pagina=1&por_pagina=50"

Con filtros (el parámetro f es un JSON, el mismo que usa el buscador; hay que escaparlo en la dirección):

curl -G -H "Authorization: Bearer $SONDEVA_CLAVE" \
     --data-urlencode 'f={"tecnologias":["eolica"],"ccaa":["Aragón"],"mw_min":20,"dias":365}' \
     "https://renovables.sondeva.es/api/v1/proyectos"

La clave es de usted y abre lo que abre su cuenta: no la ponga en una página web, en un programa que corra en el navegador de otras personas ni en un repositorio. La API no admite peticiones desde otras páginas. Si se le escapa, revóquela en «Mi espacio» y cree otra: la anterior deja de abrir al instante.

Conectar su asistente de IA (MCP)

Con el conector, su asistente (Claude, Cursor o cualquiera que use el Model Context Protocol) busca proyectos y lee fichas con su clave, y le contesta con el enlace al anuncio oficial de cada uno. Es un solo fichero de Python, sin nada que instalar: sondeva-mcp.py. Corre en su ordenador; Sondeva no ve sus conversaciones, solo las mismas peticiones que haría su programa, y gasta del mismo cupo.

En Claude Code:

claude mcp add sondeva --env SONDEVA_CLAVE=sdv_… -- python /ruta/a/sondeva-mcp.py

En Claude Desktop, en claude_desktop_config.json:

{"mcpServers": {"sondeva": {"command": "python",
  "args": ["/ruta/a/sondeva-mcp.py"],
  "env": {"SONDEVA_CLAVE": "sdv_…"}}}}

Le da dos herramientas: buscar_proyectos (los filtros de abajo, por páginas) y ver_proyecto (un proyecto por su id). Solo leen.

Plantilla: de la API a un CSV

sondeva-a-csv.py pide todas las páginas de una búsqueda y las guarda en un CSV que Excel abre sin preguntar, con las citas de las fuentes al final. Cambie FILTROS por los suyos y ejecútelo:

SONDEVA_CLAVE=sdv_… python sondeva-a-csv.py proyectos.csv

GET /api/v1/proyectos

Lo que encaja con sus filtros, del más nuevo al más viejo, uno por anuncio (como el Excel). Sin f, todos los proyectos de todo el histórico.

ParámetroQué es
fLos filtros, como un JSON (abajo). Sin él, ninguno.
paginaDesde 1. Por defecto, 1.
por_paginaDe 1 a 100. Por defecto, 50.

Los filtros (f)

ClaveValor
tecnologiasLista de textos: eolica, fotovoltaica, evacuacion, hibrida, almacenamiento, termosolar, centro_datos, biogas, hidrogeno.
fasesLista de fases: informacion_publica, evaluacion_ambiental, autorizacion_previa, autorizacion_construccion, acuerdo_ejecucion, interes_autonomico, utilidad_publica, prorroga, transmision, otro.
estadosLista: vivo, desistido, caducado, denegado. Vacía, todos.
fuentes, ccaa, provinciasListas de textos, como en el buscador («BOE», «Aragón», «Soria»).
mw_min, mw_maxNúmeros. La potencia es la mayor cifra del título. incluir_sin_mw (por defecto true) decide si entran los que no la dicen.
hibridacion, repotenciacionincluir, excluir o solo.
cambio_de_manosincluir o solo (los que han cambiado de dueño en el último año, según el BORME).
clientes, relacionUna lista de empresas y todos, clientes o nuevos: solo sus clientes o solo promotores que no lo son.
diasUn entero (los últimos N días) o null (todo el histórico).
textoPalabras que tienen que estar todas en el título, el nombre, el promotor, las provincias, los nudos, el identificador o la marca y el modelo de equipo que declara el anuncio (hasta 200 caracteres).

La respuesta

{
  "cupo": {"mes": "2026-10", "usados": 50, "limite": 500},
  "total": 1234, "pagina": 1, "por_pagina": 50, "paginas": 25,
  "items": [
    {"id": "BOE:BOE-B-2026-12345", "fuente": "BOE", "proyecto": "Viento Sur", "fase": "informacion_publica", "mw": 49.9, "...": "..."},
    {"id": "BOE:BOE-B-2026-12346", "fuera_del_cupo": true}
  ],
  "fuentes": ["Boletín Oficial del Estado (Agencia Estatal BOE, datos abiertos)"],
  "nota_ambiental": null
}

total es todo lo que encaja, no solo la página. fuentes son las citas que exige cada boletín de los que salen en la página, y hay que conservarlas si republica los datos.

GET /api/v1/proyectos/<id>

Un proyecto por su id (con los dos puntos escritos tal cual o como %3A). Devuelve {"cupo": …, "proyecto": …}, o 404 si no existe.

El cupo

Los campos de cada proyecto

Son los del Excel, dichos para un programa: las claves están siempre, con null donde el dato no está. Ningún dato de personas físicas: ni quien firma por la sociedad, ni administradores o apoderados, ni correos personales; eso se queda en la ficha del buscador. Lo de la empresa, su web, su correo general y su teléfono (de su propia web), sí sale.

CampoQué es
idEl identificador en Sondeva: boletín y anuncio, «BOE:BOE-B-2026-12345». Es el que se pasa a /api/v1/proyectos/<id>.
fuenteEl boletín (BOE, BOA, BOJA, DOCM…).
identificadorEl identificador del anuncio en su boletín.
fecha_publicacionLa fecha del anuncio, AAAA-MM-DD.
proyectoEl nombre del proyecto, si el anuncio lo dice.
tituloEl título oficial del anuncio.
enlaceEl enlace al anuncio en el boletín, que es el que vale.
faseLa fase administrativa (la clave de arriba).
fase_nombreLa fase, con su nombre.
estadovivo, desistido, caducado, denegado o fuera.
estado_nombreEl estado, con su nombre.
estado_segunSi lo dice otro anuncio del mismo parque, {"fuente", "fecha"}.
tecnologiasLista de tecnologías (las claves de arriba).
tecnologias_nombreLas mismas, con su nombre.
hibridaciontrue si es una hibridación.
repotenciaciontrue si es una repotenciación.
mwLa mayor cifra de potencia del título, en MW (número).
mw_listaTodas las cifras de potencia del título.
promotorLa sociedad promotora.
cifSu CIF.
promotor_segunSi el promotor lo dice otro anuncio del mismo parque, {"fuente", "fecha"}.
provinciasLista de provincias.
comunidadesLista de comunidades autónomas.
es_clientetrue si el promotor está en la lista clientes del filtro.
nudosLos nudos o subestaciones por los que evacua, como los escribe el boletín.
mw_libres_nudoLos MW que le quedan al nudo, de la CNMC (número, o null si no se sabe).
comparten_nudoCon cuántos promotores distintos comparte nudo.
detrasLa sociedad que hay detrás del promotor (socio único), según el BORME.
municipioEl municipio que nombra el anuncio.
latitudSolo si el anuncio trae las coordenadas del proyecto.
longitudSolo si el anuncio trae las coordenadas del proyecto.
tension_kvLas tensiones que cita el texto, en kV.
superficie_haLa superficie que cita el texto, en hectáreas.
presupuesto_eurEl presupuesto que cita el texto, en euros.
expedienteEl número de expediente que cita el texto.
motivo_rechazoSolo de un proyecto denegado, lo que declara la resolución: dia_desfavorable (declaración de impacto ambiental desfavorable), acceso_caducado (caducidad del permiso de acceso a la red, Real Decreto-ley 23/2020) u otro (el texto no dice ninguno de los dos). null si no está denegado o no se leyó el texto.
alegaciones_recibidasCuántas alegaciones recibió en la información pública, si el anuncio lo cuenta (casi siempre la declaración de impacto ambiental): {"n", "mas_de"}. Es la primera cifra que da el anuncio; null si no la da.
colectorasLa subestación colectora que nombra el anuncio antes del nudo de la red, y cuántos otros parques de su provincia nombran la misma: [{"nombre", "parques_que_la_comparten"}]. Lista vacía si no nombra ninguna.
equiposLa marca y el modelo que declara el anuncio de cada pieza: {"aerogeneradores": {"marca", "modelo"}, "modulos": …, "inversores": …, "estructura": …, "baterias": …}, solo las piezas que lo dicen. Es lo que el promotor declara, casi siempre «o similar»: no una compra.
sensibilidad_eolicaLa zonificación ambiental del MITECO para eólica en el punto del proyecto.
sensibilidad_fotovoltaicaLa misma, para fotovoltaica.
red_natura{"dentro", "espacios"}: si el punto cae en la Red Natura 2000 y en cuáles. Es un apoyo a la decisión, no una prohibición ni un permiso.
contactoCómo contactar con la empresa, de su propia web: {"web", "correos", "telefonos"}.

Los campos de lo que dice el texto del anuncio (tensión, superficie, presupuesto, expediente) valen null cuando no se localizan: no significa que el anuncio no lo diga.

Errores

Siempre un JSON con {"error": "…"}.

CódigoCuándo
400Un parámetro no vale: f no es un JSON, pagina o por_pagina fuera de rango.
401Sin clave, con una mal escrita o inventada, o revocada. Es el mismo mensaje en los cuatro casos.
403La cuenta de la clave ya no es Enterprise Plus.
404El proyecto no existe, o la dirección no es de la API.
405La API solo responde a GET.
429Más de 60 peticiones en un minuto con la misma clave. La cabecera Retry-After dice cuántos segundos esperar.
503La API no está abierta todavía o no se puede contar su cupo ahora mismo: vuelva a intentarlo más tarde.

Cómo se lee