BORME API

Referencia de la API

BORME API ofrece el Boletín Oficial del Registro Mercantil (BORME) como JSON tipado: eventos extraídos de los anuncios de la sección A del BORME, con cobertura desde el 2 de enero de 2009, a partir de la fuente oficial del BOE. Es una API REST; todas las rutas cuelgan de la URL base https://api.bormeapi.com.

La referencia interactiva (Swagger), con todos los parámetros, los esquemas de respuesta y una consola para probar las llamadas desde el navegador, está en inglés: api.bormeapi.com/docs. La especificación OpenAPI está en api.bormeapi.com/openapi.json.

Los nombres de los campos, los valores enumerados (como los tipos de acto), los códigos y los mensajes de error están en inglés de forma deliberada y no se traducen: son el contrato con su código, y las integraciones dependen de ellos. Esta página los explica en español.

Autenticación

Las solicitudes a operaciones protegidas deben incluir su clave de API en la cabecera X-API-Key:

curl -H "X-API-Key: SU_CLAVE" "https://api.bormeapi.com/v1/events?limit=5"

La clave se obtiene en su cuenta: se accede con un enlace que le enviamos por correo electrónico, y existe un plan gratuito. Una solicitud sin clave, o con una clave desconocida o desactivada, recibe un 401.

Cuatro operaciones no necesitan clave: GET /v1/act-types, GET /v1/sources, GET /v1/health y GET /v1/exports/unsubscribe (el enlace de baja de los correos).

El servidor MCP para asistentes de IA, en https://mcp.bormeapi.com/mcp, responde sin clave con los límites del plan gratuito; con la misma cabecera X-API-Key aplica los de su plan.

Primeros pasos

1. Tipos de acto (sin clave)

La lista de los tipos de acto normalizados, que son los valores que acepta el filtro act_type:

curl "https://api.bormeapi.com/v1/act-types"

2. Buscar eventos

Las constituciones publicadas en Madrid, de la más reciente a la más antigua:

curl -H "X-API-Key: SU_CLAVE" \
  "https://api.bormeapi.com/v1/events?act_type=INCORPORATION&province=MADRID&limit=5"

Otros filtros: date_from y date_to (AAAA-MM-DD), company_name_contains (tres caracteres como mínimo), municipality, capital_min y capital_max. limit admite hasta 200 resultados por página y offset hasta 10.000. Con format=csv la respuesta es una tabla plana.

3. Cronología de una empresa

Cada evento trae el company_slug de su empresa. Con él se pide su cronología; order=desc devuelve primero los eventos más recientes:

curl -H "X-API-Key: SU_CLAVE" \
  "https://api.bormeapi.com/v1/companies/mercadona-sa/events?order=desc&limit=10"

El campo total indica cuántos eventos cubre el periodo de su plan; para paginar, incremente offset en pasos de limit, sin superar 10.000; este límite puede impedir recuperar toda la cronología.

Operaciones

Todas las operaciones públicas de la API. Los parámetros y los esquemas de respuesta de cada una están en la referencia interactiva.

MétodoRutaQué hace
GET/v1/eventsBusca eventos del registro, del más reciente al más antiguo, por fecha, provincia, municipio, tipo de acto, nombre de la empresa o capital.
GET/v1/companies/{slug}/eventsCronología de los eventos de una empresa, por páginas.
GET/v1/companies/{slug}Estado actual de una empresa derivado de lo publicado: situación, cargos, capital y domicilio; con as_of, el estado en una fecha.
GET/v1/companies/by-nif/{nif}Ficha de una empresa a partir de su NIF.
POST/v1/companies/by-nifConsulta por lote: fichas de varias empresas a partir de una lista de NIF.
GET/v1/companies/by-hoja/{hoja}Empresas por número de hoja registral del Registro Mercantil.
GET/v1/companies/{slug}/riskPerfil de riesgo de una empresa, basado en reglas y con los factores desglosados.
GET/v1/companies/{slug}/networkEmpresas potencialmente relacionadas por coincidencias en los nombres de quienes ocupan cargos; puede haber homónimos.
GET/v1/companies/{slug}/brandsNombres comerciales y marcas de una empresa, según la Oficina Española de Patentes y Marcas (OEPM).
GET/v1/brandsBusca qué empresa es titular de un nombre comercial o de una marca.
GET/v1/people/{name}/rolesEmpresas y cargos asociados al nombre consultado; puede haber homónimos.
GET/v1/signalsSeñales derivadas del BORME y de otras fuentes públicas, como ceses masivos de cargos, declaraciones de concurso o adjudicaciones de contratos públicos.
GET/v1/dumps/companiesVolcado completo de empresas en un CSV comprimido con gzip; uno al día.
POST/v1/watchlistsCrea una lista de vigilancia para una empresa o para un fragmento de denominación.
GET/v1/watchlistsMuestra las listas de vigilancia de su cuenta.
DELETE/v1/watchlists/{wl_id}Elimina una lista de vigilancia.
POST/v1/exports/subscriptionsCrea una suscripción para recibir por correo un CSV con los eventos de la última publicación que coincidan con el filtro guardado; no se envía si no hay coincidencias.
GET/v1/exports/subscriptionsMuestra las suscripciones CSV de su cuenta.
DELETE/v1/exports/subscriptions/{sub_id}Elimina una suscripción CSV.
GET/v1/exports/unsubscribeDa de baja un envío CSV desde el enlace del correo; no necesita clave.
GET/v1/stats/dailyEventos por día de publicación y grado de extracción de cada día.
GET/v1/provincesLas provincias tal como las publica el BORME, que son los valores del filtro province.
GET/v1/act-typesTodos los tipos de acto normalizados; no necesita clave.
GET/v1/sourcesQuién publica los datos de la API y cómo deben citarse; no necesita clave.
GET/v1/healthEstado del servicio; no necesita clave.

Errores

Toda respuesta de error es un objeto JSON con el campo detail. Casi siempre es una frase en inglés; en tres respuestas de la búsqueda por NIF es un objeto cuyo campo error indica el motivo. Las frases se citan aquí literalmente, tal como las recibirá su código; lo que va entre llaves, como {slug}, se sustituye por el valor de su solicitud.

401 — clave no válida

403 — el plan no incluye la operación

Cuando una operación exige un plan superior, el mensaje indica el plan mínimo y enlaza a su cuenta. Si contrató la API a través de RapidAPI, la frase termina en cambio con el plan de RapidAPI que necesita.

La cronología de una empresa también responde 403 cuando la empresa tiene eventos pero ninguno cae dentro del historial que cubre su plan; el mensaje indica cuántos hay y entre qué fechas.

404 — no encontrado

409 — NIF ambiguo

422 — solicitud no válida

Cuando un parámetro no cumple su tipo o sus límites (por ejemplo, limit=0), la API responde antes de ejecutar la operación y detail es una lista: cada elemento indica en loc el parámetro y en msg el motivo.

429 — límite alcanzado

500, 503 y 504 — errores del servidor

Límites y planes

Cada plan tiene un número de consultas al día y un periodo de historial de eventos. Al superar la cuota diaria, la API responde 429.

PlanConsultas al díaHistorial de eventos
free507 días
basic5.000365 días
pro50.000completo, desde 2009
risk200.000completo, desde 2009

Los precios y lo que incluye cada plan están en la sección de precios.

build 2026.10.12·b590345