OpenCorporates alternative · Spain

OpenCorporates Spain alternative

Spanish corporate filings are published every working day in the BORME (Boletín Oficial del Registro Mercantil), administered by the AEBOE. The structured Sección II is XML; the much richer Sección I (officers, shareholders, capital changes, the actos inscritos) is a PDF stream per province. OpenRegistry wires both. Sección II goes through the structured feed. Sección I is delta-streamed and backed by an offline province index.

OpenRegistry on Spain

What OpenCorporates has for Spain

OpenCorporates includes Spanish company records in its catalogue. The identifier and name data is typically present. The richer fields (officers, shareholders, capital changes) live in the BORME province PDFs, which OC does not tend to parse, and coverage drops off past the basics.

What is out of scope

The Registro Mercantil Central full-shareholder register and the Colegio de Registradores' richer reports are paid services we do not proxy. The RETIR beneficial-ownership register is AML-gated under Ley 6/2023 transposing 5AMLD post CJEU C-37/20. Those routes return a structured 501 with the statutory portal pointer.

Why an actos-inscritos delta stream beats a normalised crawl

Spanish corporate changes (a new administrador, an ampliación de capital, a cese de administrador único) are declarative publications, not snapshots. The BORME publishes the act itself, not a re-derived state. list_actos_inscritos hands back the raw acts; the agent (or an offline pipeline) decides whether to fold them into a synthesised state. A schema that flattens them into a single "current officers" list will always be one publication behind.

Worked example

// MCP — find Inditex (Zara's parent) and walk its BORME stream
search_companies({ jurisdiction: "ES", query: "Industria de Diseño Textil" })
// → CIF A15075062, denominación INDUSTRIA DE DISEÑO TEXTIL SA

list_filings({ jurisdiction: "ES", company_id: "A15075062" })
list_actos_inscritos({ jurisdiction: "ES", company_id: "A15075062" })
fetch_document({ jurisdiction: "ES", document_id: "<BORME publication id>" })