Marcos Ramírez BETA
Datos oficiales del BOE, BORME y subvenciones convergiendo en una única API JSON

Apispain: los datos públicos de España en una API para devs

· ⏱ 8+ min lectura

Necesitaba sacar datos del BORME por código. Empresas nuevas, nombramientos, ceses, disoluciones.

Mi primer instinto fue montar un scraper. De hecho, hace poco escribí sobre Scrapling, el scraper de Python que se recoloca solo cuando la web cambia. Justo lo que necesitas contra una fuente oficial: aguanta rediseños sin romperse.

“Perfecto para el BORME”, pensé.

Y entonces me topé con Apispain, una API que ya te da BOE, BORME, BDNS y PLACE en JSON limpio. Guardé el scraper en el cajón. Esto te ahorra el problema entero.

Por qué scrapear el BORME es un infierno

Quien haya sacado datos oficiales del Estado por código sabe de lo que hablo.

Cada organismo tiene su formato. XML antiguos, endpoints que devuelven HTML pensado para humanos, paginaciones sin documentar, fechas en tres formatos dentro del mismo archivo.

Te montas un parser. Funciona. Hasta que la fuente cambia un campo y se rompe. Otra vez.

Scrapling resuelve la parte de que no se rompa. Pero sigues teniendo que normalizar tú cada fuente, una por una. Y son cuatro, cada una con su gracia. Ahí es donde Apispain cambia la ecuación.

Qué es Apispain

La idea es simple, y por eso me gusta. Alguien se ha comido el marrón de parsear las fuentes oficiales para que tú no tengas que hacerlo.

En lugar de pelearte con cuatro APIs distintas, hablas con una sola. Mismo formato, misma autenticación, misma paginación para todo.

Está hecho en España, por cierto.

Estas son las cuatro fuentes que unifica:

FuenteQué contieneActualización
BOEBoletín Oficial del Estado: leyes, decretos, resolucionesDiaria (08:30)
BORMERegistro Mercantil: constituciones, nombramientos, ceses, disolucionesDiaria (09:30)
BDNSBase de Datos Nacional de SubvencionesCada 6 horas
PLACEPlataforma de Contratación del Sector Público (licitaciones)Cada 2 horas

O sea: normativa, empresas, ayudas y contratos públicos, todo bajo el mismo techo. Y refrescado solo, sin que montes ningún cron.

El SDK oficial de npm

La forma más rápida de integrarlo es el SDK oficial en npm: una librería para las cuatro fuentes.

npm install apispain

Instancias el cliente con tu API key y tienes un namespace por fuente:

import Apispain from 'apispain';

const client = new Apispain({ apiKey: process.env.APISPAIN_KEY });

// Subvenciones por comunidad autónoma
const subs = await client.bdns.getSubvenciones({ ccaa: 'Cataluña', limit: 5 });

// Licitaciones abiertas
const { data } = await client.place.getLicitaciones({ abiertas: true, limit: 10 });

// Sociedad del Registro Mercantil por ID
const soc = await client.borme.getSociedadById('ES123456789');

Cuatro namespaces, uno por fuente: client.boe, client.borme, client.bdns y client.place.

Y te devuelve JSON normalizado, no el XML del Registro Mercantil tal cual. Esa es la diferencia entre tardar una tarde y tardar una semana.

Por debajo es una API REST con base en https://api.apispain.es/v1, autenticada por API key. Si no trabajas en JavaScript, la consumes por HTTP directamente.

La búsqueda semántica con Inteligencia Artificial

Esta es la parte que se sale de lo habitual.

Además de los filtros de toda la vida, Apispain trae una búsqueda semántica con Inteligencia Artificial. Le preguntas en lenguaje natural y rastrea las cuatro fuentes a la vez, ordenando por relevancia.

Te explico por qué importa.

Buscar “subvenciones para digitalización de pymes en Andalucía” a mano significa saber en qué campo va cada cosa, qué códigos de región usa la BDNS y cómo filtrar. Un coñazo.

Con la búsqueda semántica, lo escribes como lo dirías y te trae lo relevante de golpe. Para prototipar rápido, es oro.

Eso sí: las búsquedas con Inteligencia Artificial están limitadas por plan. No es para tirarlas en un bucle.

Portal visual, webhooks y alertas

No todo es código.

Apispain trae un portal visual sin código para buscar, filtrar y exportar a Excel. Útil cuando el que necesita el dato es el del despacho de al lado, no un desarrollador.

Y para automatizar de verdad: webhooks en tiempo real y alertas.

Le dices que vigile una empresa, una subvención o un tipo de licitación. Te avisa cuando aparece algo nuevo. Sin polling, sin cron, sin servidor escuchando.

Para un despacho que monitoriza el Registro Mercantil o una consultora que caza subvenciones, eso es el caso de uso entero resuelto.

Cuánto cuesta Apispain

Los precios se entienden de un vistazo, sin “contacta con ventas” para todo:

PlanPrecio/mesPeticiones/mesLímiteExtras
Free0 €10010/minPortal + 3 búsquedas con Inteligencia Artificial
Starter22,99 €30060/min15 búsquedas con Inteligencia Artificial + 1 histórico BORME
Pro49,99 €1.000100/min75 búsquedas con Inteligencia Artificial + 3 históricos + webhooks
BusinessA medidaIlimitadoA medidaWhite-label, 300 búsquedas con Inteligencia Artificial, soporte dedicado

El plan gratis no es de mentira: 100 peticiones al mes y portal dan para probar antes de soltar un euro.

Y los webhooks entran ya en el plan Pro, que para una herramienta de monitorización a 49,99 € es razonable.

Apispain frente a eInforma y Axesor

Hay que ser honesto: España ya tiene proveedores de datos de empresas.

eInforma y Axesor (esta última, del grupo Experian) llevan años dando informes mercantiles, financieros y de riesgo.

Pero juegan a otra cosa. Son plataformas para el departamento de riesgos o el analista, con informes ricos y precios de empresa.

No están pensadas para que un desarrollador integre datos en su producto en una tarde. Su fuerte es el informe; el de Apispain es la API.

¿Y las fuentes oficiales gratis?

Existe la opción gratis total: el origen.

El BOE tiene su propia API de datos abiertos, y casi todo lo demás es público.

Si solo necesitas una fuente, de forma puntual, y no te importa parsear, no pagues nada. Ve directo al origen, o tira de Scrapling y te lo montas.

Apispain gana cuando lo que te ahorras vale más que la cuota:

  • Normalización de las cuatro fuentes.
  • Paginación resuelta.
  • Mantenimiento cuando la fuente cambia.
  • Webhooks sin montar infraestructura.

Para un proyecto serio que dependa de estos datos, sale rentable. Para un script de un solo uso, no.

Para quién tiene sentido

  • Despachos de abogados que vigilan cambios en el Registro Mercantil.
  • Consultoras de subvenciones que cazan ayudas sin mirar la BDNS a mano.
  • Empresas que licitan y necesitan enterarse de los concursos que les encajan.
  • SaaS y startups que enriquecen su producto con datos verificados de empresas.
  • Quien hace due diligence en compraventas.

Si te suena alguno, esto te quita trabajo. Si lo tuyo es un dato suelto, ya sabes: fuente oficial y a correr.

Lo que viene: scoring de riesgo

Tienen anunciado un motor de scoring de riesgo que combinará las cuatro fuentes para evaluar empresas a diario.

Lo interesante: prometen los factores explicados, no un número opaco de caja negra.

Si lo clavan, empiezan a pisar el terreno de los grandes, pero con su filosofía de API. Habrá que verlo.

Preguntas frecuentes

¿Los datos de Apispain son oficiales?

Sí. Vienen directos de BOE, BORME, BDNS y PLACE. Apispain no inventa nada: normaliza y expone en JSON lo que ya publica el Estado.

¿Puedo usar Apispain gratis?

Sí, hay un plan Free con 100 peticiones al mes, portal y 3 búsquedas con Inteligencia Artificial. Suficiente para probar si encaja.

¿Por qué pagar si las fuentes son públicas?

Porque parsear cuatro fuentes, normalizarlas, paginar y mantener eso cuando cambian te cuesta tiempo. Pagas por no hacerlo y por tener todo bajo una sola API.

¿En qué se diferencia de eInforma o Axesor?

Esos son plataformas de informes orientadas a riesgo, con precio de empresa. Apispain es una API para desarrolladores: su producto es el endpoint, no el informe.

Fuentes

Compártelo si te ha resultado útil.

Si necesitas integrar datos públicos en el software de tu empresa, puedo ayudarte.

¿Has peleado alguna vez con el XML del BORME o con la API del BOE? Cuéntame cómo lo resolviste.

Y… el scraper, de momento, sigue en el cajón.

Artículos relacionados

Código Python de scraping recolocándose sobre una estructura web que cambia

Scrapling: el scraper de Python que se repara cuando la web cambia

Scrapling es una librería de scraping para Python con una idea que llevábamos años pidiendo: cuando la web cambia su HTML, el scraper se recoloca solo en vez de romperse. Tres fetchers, bypass de Cloudflare, un parser 784 veces más rápido que BeautifulSoup y un framework de spiders incluido. Te cuento qué hace bien, dónde tiene truco y cuándo NO deberías usarlo.

08:30 7 min Marcos Ramírez Lucía
Terminal en Windows con comandos Git mostrando un renombrado de archivo con cambio de case

Git en Windows: renombrar un archivo cambiando solo el case

En Windows, cambiar solo el case de un nombre de archivo con Git no funciona con un simple mv ni con git mv directo. El sistema de archivos es case-insensitive y Git tiene core.ignorecase=true por defecto, así que simplemente ignora el cambio. La solución es un renombrado en dos pasos: primero a un nombre temporal y luego al nombre final. Te explico por qué ocurre, cómo solucionarlo y cuándo te vas a encontrar con este problema más de lo que crees.

08:30 9 min Marcos Ramírez Lucía