🇪🇸 Spain — Boletín Oficial del Registro Mercantil (BORME) — Agencia Estatal Boletín Oficial del Estado (AEBOE), Ministerio de la Presidencia, Justicia y Relaciones con las Cortes
Access Spain's official company register in real time via the OpenRegistry MCP endpoint. Unified schema, source-linked, live passthrough (no caching).
Data license: Aviso legal BOE (Orden PRE/1563/2011) — reuse of BOE / BORME content is free for any purpose (commercial and non-commercial) with attribution to the Agencia Estatal Boletín Oficial del Estado and a notice of the date of consultation; ineditability of the official electronic edition is preserved. See https://www.boe.es/avisos_legales/aviso_legal.php
Real-time: yes — every call hits upstream
Caching notes: Search result cache: 10 seconds; BORME-C XML cache: 10 seconds for cross-call de-duplication. Every call hits boe.es live. Pass fresh=true to bypass. BORME is published daily except Saturdays, Sundays, and Madrid public holidays; the open-data sumario API carries the day's full index as soon as AEBOE publishes it.
Global fan-out: excluded by default — pass jurisdiction: "ES" explicitly.
Spain — publications-gazette surface. company_id is the exact denominación (e.g. 'TELEFÓNICA, S.A.'); no free company-of-record profile. Section II filings, officer / shareholder delta stream, and PDF/XML fetch are supported.
Company ID format
Spain has no free public company-of-record identifier. NIF (formerly CIF) is not exposed by BORME. BORME indexes by denominación social; this adapter uses the exact denominación as surfaced by Section II (e.g. 'TELEFÓNICA, S.A.', 'INDITEX, S.A.', 'FOO, S.L.') as company_id. Matching is case-insensitive and whitespace/punctuation-tolerant. document_id is the BORME-C identifier 'BORME-C-YYYY-NNNN' (4-digit year + announcement-level sequential).
Native values upstream reports: en funcionamiento, en liquidación, disuelta, extinguida, concurso de acreedores
Mapping to the unified four-value enum:
Unified
Native values
active
en funcionamiento
inactive
en liquidación, concurso de acreedores
dissolved
disuelta, extinguida
unknown
(none)
Known quirks
id_formatwarning — Spain has no free public company-of-record identifier — the fiscal number is not exposed on the free surface. company_id is the exact denominación as printed in the announcement title (e.g. 'TELEFÓNICA, S.A.'), case-insensitive and whitespace/punctuation-tolerant. document_id is a publication code of the form 'XXX-C-YYYY-NNNN'.
searchinfo — search_companies runs a title full-text match against the gazette, dedupes by denominación, and returns distinct companies with their latest publication. Pasting a publication id short-circuits to the one-hit envelope. Merger/spin-off/global-transfer titles list multiple denominaciones and are split so each surfaces as a distinct candidate.
statuswarning — The free surface is a publications gazette, not a company-of-record feed — most candidates have status='unknown'. Dissolved / liquidation status surfaces only when an announcement's section names that state change.
routingblocker — get_company_profile always returns 501. No free profile API; paid alternatives exist but are outside the free surface. The 501 points callers to list_filings as the free path.
filingsinfo — list_filings takes the exact denominación, hydrates each gazette row from the structured data endpoint, and returns one UnifiedFiling per Section II publication with section preserved. Category filter accepts canonical keys (merger, spin-off, capital-increase, capital-reduction, dissolution, transformation, assembly-call, global-asset-transfer, segregation, other) or a raw Spanish section substring.
documentsinfo — fetch_document returns the raw PDF (default, application/pdf) or the source XML (application/xml) for a publication id — the adapter does NOT parse announcement text, AI clients read the PDF/XML themselves. Daily-summary ids are rejected 400 because only the per-company section is addressable.
officerswarning — get_officers returns a delta stream of acto paragraphs matching officer keywords (appointment, cessation, revocation, sole-administrator, liquidator, attorney-in-fact, councillor, auditor). Each row names the company but not the person — callers parse the raw text for names and roles, oldest-first, to reconstruct the board.
shareholderswarning — get_shareholders returns a delta stream of actos matching single-shareholder, capital-increase/reduction, merger/spin-off, global-transfer. Full shareholder books for limited-liability and joint-stock companies are company-held and not filed with the registry, so multi-holder share rosters are not recoverable from the free surface.
pscblocker — get_persons_with_significant_control always returns 501. Spain's beneficial-ownership register is AML-gated with no public REST API; access is restricted to obliged entities and legitimate-interest requesters.
chargesblocker — get_charges always returns 501. Real-estate mortgages and movable-asset charges are held in separate paid registries, not exposed on the free surface.
officersblocker — get_officer_appointments and search_officers always return 501. No free cross-company officer-name index is available for Spain.
egresswarning — list_actos_inscritos (and therefore get_officers / get_shareholders) requires a server-side PDF-text binary to slice gazette Section I PDFs. On edge/worker runtimes this raises 503; deployments must route the call to a full-OS backend.
routinginfo — global_search_excluded=true: this surface returns publications rather than companies, so ES only serves on explicit jurisdiction='ES'.
Available jurisdiction_data fields
Every tool response carries a jurisdiction_data object with the raw upstream fields (names unchanged). The full field set per record type: