Apispain: los datos públicos de España en una API para devs
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:
| Fuente | Qué contiene | Actualización |
|---|---|---|
| BOE | Boletín Oficial del Estado: leyes, decretos, resoluciones | Diaria (08:30) |
| BORME | Registro Mercantil: constituciones, nombramientos, ceses, disoluciones | Diaria (09:30) |
| BDNS | Base de Datos Nacional de Subvenciones | Cada 6 horas |
| PLACE | Plataforma 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:
| Plan | Precio/mes | Peticiones/mes | Límite | Extras |
|---|---|---|---|---|
| Free | 0 € | 100 | 10/min | Portal + 3 búsquedas con Inteligencia Artificial |
| Starter | 22,99 € | 300 | 60/min | 15 búsquedas con Inteligencia Artificial + 1 histórico BORME |
| Pro | 49,99 € | 1.000 | 100/min | 75 búsquedas con Inteligencia Artificial + 3 históricos + webhooks |
| Business | A medida | Ilimitado | A medida | White-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
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.
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.
OpenCode: Manual Completo - Guía Definitiva del Agente de Coding
Manual completo de OpenCode: instalación, configuración, modelos, agentes, MCP, GitHub integration y casos de uso prácticos. La guía más detallada del agente de coding open-source.