DEV Community

Peter
Peter

Posted on

BORME Corporate Acts as Structured Data: Comparing Your Options in 2026

Every business day, Spain's Boletin Oficial del Registro Mercantil (BORME) publishes hundreds of corporate acts: company incorporations, officer appointments and dismissals, capital changes, dissolutions, mergers, and insolvency proceedings. For compliance teams monitoring Spanish counterparties or B2B sales teams prospecting new incorporations, this data is essential.

The problem: BORME publishes as PDFs. The official BOE API gives you PDF URLs but not the parsed content inside them.

This article compares three options for getting structured BORME data, with code examples.

Option 1: LibreBOR (formerly LibreBORME)

URL: librebor.me
Model: Free web interface, limited API behind Cloudflare
Status: Active — last confirmed updates February/March 2026

LibreBOR is the spiritual successor to the original LibreBORME open-source project. It provides a searchable web interface for BORME data at librebor.me, where you can look up any company and see its historical BORME acts. It's free and well-structured.

However, it comes with practical limitations:

  • Rate limiting and Cloudflare protection make bulk programmatic access unreliable
  • No official API documentation — the original LibreBORME had a documented API, but LibreBOR's API access is restricted
  • Dependency on a single maintainer — the original LibreBORME went offline in April 2025; while LibreBOR has been stable, there's no service-level guarantee
  • No Apify integration — you can't schedule runs, set up webhooks, or pipe results into your existing data pipeline on Apify

LibreBOR is excellent for ad-hoc lookups. If you need to check one company's BORME history, use it. If you need to process 500 acts daily in a production pipeline, the rate limiting becomes a blocker.

Option 2: BORME Scraper Pro (spain-data-solutions on Apify)

URL: apify.com/spain-data-solutions/borme-scraper-pro
Model: $8/month platform fee + usage charges
Status: Active — 8 total users, 2 monthly active

BORME Scraper Pro is a competing Apify actor that also parses BORME PDFs. It includes proxy rotation, province filtering, and claims 99.9% success rate. The developer renamed from startquicklabs and has been actively maintaining it.

Pricing structure: a fixed $8/month platform fee plus per-usage charges. This makes economic sense if you're running daily BORME extractions at scale. For occasional use — say, pulling one week's BORME data for a due diligence project — the monthly commitment may not justify the cost.

Option 3: BORME Corporate Acts Parser (minute_contest on Apify)

URL: apify.com/minute_contest/borme-corporate-acts-scraper
Model: Pay-per-use — $0.003 per result, no monthly fee
Status: Active — free tier friendly, HTTP-only (no Puppeteer)

Our BORME actor takes a different approach: pure HTTP requests and PDF parsing with pdfjs-dist. No browser automation, no proxy required, no monthly fee. You pay $0.003 per corporate act extracted.

How it works:

  1. Fetches the BORME Section A index from boe.es for your specified date
  2. Downloads the PDF files listed in the index
  3. Parses each PDF to extract structured corporate acts
  4. Returns JSON with act type, company name, NIF, province, and full details

Input example:

{
  "date": "2026-04-15",
  "province": "Barcelona"
}
Enter fullscreen mode Exit fullscreen mode

Output example:

{
  "date": "2026-04-15",
  "province": "Barcelona",
  "bormeNumber": "89",
  "actType": "Nombramientos",
  "company": "EJEMPLO SOLUCIONES SL",
  "nif": "B12345678",
  "details": {
    "appointee": "Garcia Lopez, Maria",
    "role": "Administrador único"
  }
}
Enter fullscreen mode Exit fullscreen mode

Running it via API:

curl -X POST "https://api.apify.com/v2/acts/minute_contest~borme-corporate-acts-scraper/runs?token=YOUR_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"date": "2026-04-15"}'
Enter fullscreen mode Exit fullscreen mode

Running it with the Python client:

from apify_client import ApifyClient

client = ApifyClient("YOUR_TOKEN")

run = client.actor("minute_contest/borme-corporate-acts-scraper").call(
    run_input={"date": "2026-04-15", "province": "Madrid"}
)

for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(f"{item['actType']}: {item['company']} ({item['nif']})")
Enter fullscreen mode Exit fullscreen mode

Cost comparison for common use cases:

Use Case Acts/Run BORME Scraper Pro Our BORME Parser
Daily monitoring (1 province, 1 month) ~1,500 $8 + usage ~$4.50
One-off due diligence (1 day, all provinces) ~500 $8 + usage ~$1.50
Quarterly batch (3 months, 2 provinces) ~9,000 $8 + usage ~$27.00

For the one-off and low-frequency use cases that most compliance teams and law firms run, pay-per-use is significantly cheaper. The break-even with BORME Scraper Pro's $8 monthly fee is around 2,600 acts per month — below that, pay-per-use wins.

What BORME Data Looks Like

BORME Section A publishes the following act types daily:

  • Constituciones — new company incorporations (the goldmine for B2B prospecting)
  • Nombramientos — officer appointments (directors, administrators, secretaries)
  • Ceses/Dimisiones — officer dismissals and resignations
  • Modificaciones — company statute changes
  • Aumentos de capital / Reducciones de capital — capital increases and reductions
  • Disoluciones — company dissolutions
  • Fusiones / Escisiones — mergers and spin-offs
  • Declaraciones de unicidad — single-member company declarations
  • Revocaciones de poderes — revocations of powers of attorney
  • Situaciones concursales — insolvency proceedings

Each act type is extracted with its specific fields. For example, a "Constitución" includes company name, NIF, registered address, initial capital, and appointed officers. A "Cese" includes the departing officer's name and role.

Practical Workflow: Monitoring New Spanish Incorporations

A common use case: your B2B sales team wants daily alerts when new companies are incorporated in your target provinces.

from apify_client import ApifyClient
import json

client = ApifyClient("YOUR_TOKEN")

# Run BORME parser for today
run = client.actor("minute_contest/borme-corporate-acts-scraper").call(
    run_input={"date": "2026-04-15"}
)

# Filter for new incorporations only
new_companies = [
    item for item in client.dataset(run["defaultDatasetId"]).iterate_items()
    if item["actType"] == "Constituciones"
]

for company in new_companies:
    print(f"NEW: {company['company']} (NIF: {company['nif']})")
    # Push to your CRM, Slack, or email pipeline
Enter fullscreen mode Exit fullscreen mode

Set this up as a scheduled run on Apify (daily at 10:00 CET, after BORME publishes), add a webhook to push results to your Slack or CRM, and you have a fully automated new-business monitoring system.

Summary

LibreBOR BORME Scraper Pro Our BORME Parser
Cost Free $8/month + usage $0.003/act, no monthly fee
Bulk access Rate limited Yes (proxy rotation) Yes (HTTP-only)
Apify integration No Yes Yes
Free tier N/A No ($8 minimum) Yes
Proxy required N/A Yes (included) No
Maintenance risk Single maintainer Developer-supported Developer-supported
Best for Ad-hoc lookups Daily high-volume pipelines Occasional/batch processing

Choose based on your volume and frequency. LibreBOR for quick manual lookups. BORME Scraper Pro if you're running thousands of acts daily and can justify the monthly commitment. Our parser for everything in between — project-based due diligence, periodic compliance checks, and batch processing without a recurring fee.

Top comments (0)