Spain Company Registry API — Officers, Insolvencies (BORME) avatar

Spain Company Registry API — Officers, Insolvencies (BORME)

Pricing

from $1.00 / 1,000 company events

Go to Apify Store
Spain Company Registry API — Officers, Insolvencies (BORME)

Spain Company Registry API — Officers, Insolvencies (BORME)

Daily structured events from Spain's official company registry (BORME/BOE): incorporations, director appointments and removals, capital changes, insolvency proceedings. Typed English fields, 9.5M+ events since 2009, official source.

Pricing

from $1.00 / 1,000 company events

Rating

0.0

(0)

Developer

Heorhii Kozlitin

Heorhii Kozlitin

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

0

Monthly active users

12 days ago

Last modified

Share

Spain Company Registry API — Company Officers, Capital, Insolvencies (BORME)

Structured, typed English events from Spain's official company registry gazette (BORMEBoletín Oficial del Registro Mercantil, published by BOE): incorporations, director appointments and removals, capital changes, insolvency proceedings, dissolutions, and 40+ more act types. No Spanish required, no PDF scraping, no manual gazette monitoring.

A real event, abridged for readability (one Sevilla company, five chained acts in a single gazette entry — sole-shareholder change, director termination, new director + proxy appointments):

{
"event_id": "sha1:02030cddb9436152cfcfa64e5a4acb5b5fd81744",
"date": "2026-08-06",
"borme_id": "BORME-A-2026-150-41",
"province": "SEVILLA",
"act_number": 368350,
"company_name": "CEMEK-ALO 26 SL.",
"company_slug": "cemek-alo-26-sl",
"company_flags": [],
"acts": [
{"act_type_raw": "Sociedad unipersonal", "act_type": "SOLE_SHAREHOLDER_STATUS"},
{"act_type_raw": "Cambio de identidad del socio único", "act_type": "SOLE_SHAREHOLDER_CHANGE",
"payload_raw": "THE SEVEN HOUSE FAMILY PROJECT MANAGEMENT LLC."},
{"act_type_raw": "Ceses/Dimisiones", "act_type": "TERMINATIONS",
"roles": [{"role_raw": "Adm. Unico", "role": "SOLE_DIRECTOR", "names": ["MONTESA KAIJSER CARLOS DAVID"]}]},
{"act_type_raw": "Nombramientos", "act_type": "APPOINTMENTS",
"roles": [
{"role_raw": "Adm. Unico", "role": "SOLE_DIRECTOR", "names": ["THE SEVEN HOUSE FAMILY PROJECT MANAGEMENT LLC"]},
{"role_raw": "Apoderado", "role": "PROXY_HOLDER", "names": ["MONTESA KAIJSER CARLOS DAVID"]},
{"role_raw": "Apo.Sol.", "role": "SOLE_PROXY_HOLDER", "names": ["MONTESA KAIJSER CARLOS DAVID", "ESPEJO RODRIGUEZ MARIA"]}
]},
{"act_type_raw": "Otros conceptos", "act_type": "OTHER",
"payload_raw": "El nuevo administrador único, esto es la sociedad THE SEVEN HOUSE FAMILY PROJECT MANAGEMENT LLC, designa como REPRESENTANTE PERSONA FISICA a DON ZIED RIAHI con NIE Z2040540P."}
],
"registral": {"seccion": 8, "hoja": "SE155277", "inscription": "2", "reg_date": "2026-07-30",
"raw": "S 8 , H SE155277, I/A 2 (30.07.26)."},
"source": "parser"
}

(raw_text and unparsed_spans abridged here for readability — every record the actor returns carries the full schema, including verbatim source text for audit. Pulled live from the hosted API on 2026-08-06.)

Field reference

FieldTypeMeaning
event_idstringDeterministic SHA1 — stable across re-runs, safe to deduplicate.
datestring (YYYY-MM-DD)BORME publication date.
borme_idstringOfficial gazette entry ID (traceable back to the source PDF).
provincestringSpanish province as printed in BORME.
act_numberintegerSequential act number within the BORME issue.
company_name / company_slugstringRegistered name and a normalized slug.
company_flagsarrayNotable status flags (e.g. sole-shareholder).
actsarrayOne or more chained acts in this gazette entry (a single entry often reports several changes at once).
acts[].act_typeenum (52 values)Typed English event kind — see full list below.
acts[].act_type_rawstringOriginal Spanish label, always preserved.
acts[].rolesarrayOfficer role changes: role (56 normalized values), role_raw, names.
acts[].payload_rawstringAct-specific free text (amounts, addresses, identities) not yet split into typed fields.
registralobjectSheet, section, inscription number, registration date — the registry coordinates of the entry.
raw_textstringFull original gazette text for the entry, always present, for audit.
unparsed_spansarrayAny fragment the parser could not classify — never silently dropped.
sourcestringparser for normally processed entries.

Quickstart

from apify_client import ApifyClient
client = ApifyClient("<APIFY_API_TOKEN>")
run = client.actor("zon4a/spain-company-registry-borme-events").call(
run_input={"dateFrom": "2026-08-01", "dateTo": "2026-08-01"})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["company_name"], [a["act_type"] for a in item["acts"]])

Coverage, freshness & accuracy

  • 9.5M+ events in the dataset, growing daily.
  • Full history: every publication date from 2009-01-02 to today (BORME publishes Monday–Friday).
  • Updated daily on each publication day.
  • Parse completeness 99.89% over the last 30 days (consumed/total characters, measured per file) — anything unrecognized is preserved verbatim in unparsed_spans, never silently dropped.
  • ~3.28M distinct companies represented in the underlying dataset.
  • Source: BORME, fetched via the official BOE open-data API — every record traceable to its official gazette entry.

Pricing

Pay-per-event: $0.01 per actor start + $0.001 per event actually delivered after your filters. You pay for what you receive — filters are applied before charging.

Why this actor

BORME is published only in Spanish, only as daily gazette issues, and the raw acts are dense legal shorthand ("Ceses/Dimisiones. Adm. Unico: ..."). This actor turns them into a normalized event stream:

  • Structured fields (since v0.1.8): incorporations carry capital_eur, cnae (printed or inferred), municipality, address, start_date; capital acts carry amounts in EUR; insolvencies carry case number, court and phase.
  • 52 typed event kinds (English enums): INCORPORATION, APPOINTMENTS, TERMINATIONS, CAPITAL_INCREASE, MERGER_BY_ABSORPTION, INSOLVENCY_STATUS, DISSOLUTION, SOLE_SHAREHOLDER_CHANGE, PROVISIONAL_SHEET_CLOSURE_NIF_REVOKED, …
  • 56 normalized officer roles: SOLE_DIRECTOR, JOINT_AND_SEVERAL_DIRECTOR, PROXY_HOLDER, LIQUIDATOR, AUDITOR, … with person/entity names extracted per role.
  • Registry coordinates (Datos registrales: sheet, section, inscription, registration date) parsed into fields.
  • Nothing silently dropped: parse completeness is measured per file; any unrecognized fragment is preserved verbatim in unparsed_spans, and the full original text is always in raw_text.
  • Stable IDs: event_id is deterministic — safe to deduplicate across re-runs.

Use cases

  • KYC / AML / onboarding — verify a Spanish counterparty's current directors, check for insolvency proceedings, liquidation status, or a tax-authority sheet closure before signing.
  • Company registry API for Spain — pull officer changes, capital events and incorporations programmatically instead of reading gazette PDFs.
  • Sales intelligence & lead generation — newly incorporated companies by province and day; leadership changes as buying signals.
  • Credit & supplier risk monitoring — watch portfolio companies for INSOLVENCY_STATUS, DISSOLUTION, CAPITAL_REDUCTION, EXTINCTION.
  • AI agents & LLM pipelines — typed JSON with English enums slots directly into agent tools, RAG corpora and workflow automations (n8n, Make, Zapier via Apify integrations). This actor runs with limited permissions and plain run-to-completion semantics, so it is safe to call from autonomous agents.
  • Journalism & research — corporate activity by region, sector dynamics, officer networks.

Input

All fields are optional — the default run fetches yesterday's issue, all provinces, all event types.

{
"dateFrom": "2026-06-30",
"dateTo": "2026-06-30",
"provinces": ["MADRID", "BARCELONA"],
"actTypes": ["INCORPORATION", "APPOINTMENTS", "TERMINATIONS"],
"companyNameFilter": "metales"
}
FieldMeaning
dateFrom / dateToPublication date range (YYYY-MM-DD), any dates since 2009-01-02. Defaults: yesterday / dateFrom.
provincesProvince names as printed in BORME (MADRID, VALENCIA, …). Empty = all ~50.
actTypesFilter by typed event kind (see full list below). Empty = all.
companyNameFilterCase-insensitive substring match on company name — cheap way to watch specific companies.

All 52 event types

ACCOUNTS_NON_APPROVAL_JUSTIFICATION, ADDRESS_CHANGE, APPOINTMENTS, APPOINTMENT_CANCELLATIONS, BAD_DEBT_WRITE_OFF, BANKRUPTCY_LEGACY, BOND_ISSUE, BRANCH, CALLED_UP_CAPITAL_PAID, CAPITAL_INCREASE, CAPITAL_INCREASE_UNEXECUTED, CAPITAL_REDUCTION, COMPANY_REACTIVATION, COMPANY_WEBSITE, DISSOLUTION, DURATION_CHANGE, ERRATUM, EXTINCTION, FIRST_INSCRIPTION, FOREIGN_BRANCH_FIRST, GLOBAL_TRANSFER_ASSETS_LIABILITIES, INCORPORATION, INSOLVENCY_DECLARATION, INSOLVENCY_STATUS, LEGAL_ADAPTATION, MERGER_BY_ABSORPTION, MERGER_BY_UNION, NAME_CHANGE, OTHER, PARTIAL_SPIN_OFF, POWERS_MODIFICATION, PREVENTIVE_ANNOTATION, PROVISIONAL_SHEET_CLOSURE_INSOLVENCY, PROVISIONAL_SHEET_CLOSURE_NIF_REVOKED, PROVISIONAL_SHEET_CLOSURE_TAX, PURPOSE_CHANGE, PURPOSE_EXTENSION, REGISTRAL_DATA, REGISTRY_SHEET_REOPENED, REVOCATIONS, RE_ELECTIONS, SEGREGATION, SOLE_SHAREHOLDER_CHANGE, SOLE_SHAREHOLDER_DECLARATION, SOLE_SHAREHOLDER_STATUS, SOLE_SHAREHOLDER_STATUS_LOST, SOLE_TRADER, STATUTORY_AMENDMENTS, SUSPENSION_OF_PAYMENTS, TERMINATIONS, TOTAL_SPIN_OFF, TRANSFORMATION

How this compares

Several Spain business registry actors exist. Judge them all — including this one — by verifiable numbers, not adjectives:

  • Measured parse completeness: 99.89% over the last 30 days, and anything unrecognized is preserved in unparsed_spans — never silently dropped.
  • Full history: any date since 2009-01-02, not a rolling window.
  • 52 typed event kinds + 56 normalized roles — filterable enums, not raw Spanish strings.
  • Deterministic: same input, same output, stable event_ids — safe for pipelines and dedup.

Data quality & guarantees

  • Source: official BOE open-data API (boe.es/datosabiertos) — the authoritative publisher of BORME. Polite fetching (≤1 req/s, identifying User-Agent).
  • Per-file parse completeness is computed as consumed-characters / total-characters and logged; a warning is emitted for any file under 99.5%. Measured 99.89% over the last 30 days.
  • Unmapped labels come through as act_type: "OTHER" / role: "UNKNOWN_ROLE" with the raw Spanish label preserved — never dropped.
  • Deterministic parser (no LLM in the hot path): identical input always yields identical output.

Hosted API

A REST API over the full 2009+ archive — company timelines, watchlists with webhooks, MCP for agents — is opening soon: bormeapi.com.

  • Contains public-sector information from the Agencia Estatal Boletín Oficial del Estado (BORME), reused under Spanish open-data rules (Law 18/2015, RD 1495/2011). This actor is not affiliated with or endorsed by BOE.
  • BORME data is official public registry information. If you are an individual named in the registry and wish to exercise data-protection rights over derived outputs, contact the address in the actor's support section.

Use from AI agents (MCP)

Two ways to plug BORME into an agent:

1. Run this actor via Apify's MCP server — the agent starts paid runs on your Apify account (full firehose, any filters):

{ "mcpServers": { "apify": {
"type": "http",
"url": "https://mcp.apify.com/?actors=zon4a/spain-company-registry-borme-events",
"headers": { "Authorization": "Bearer <YOUR_APIFY_TOKEN>" } } } }

2. Free public MCP endpoint (read-only queries over the full 2009+ database — search, company timelines, daily digest; capped at 50 rows per response):

{ "mcpServers": { "borme": {
"type": "http",
"url": "https://mcp.bormeapi.com/mcp" } } }

Ask your agent things like "which companies declared insolvency in Madrid this week?" or "full registry timeline of ACME IBERIA SL".

FAQ

Does it cover the whole history? Yes — BORME has been published digitally since 2009-01-02; any date range since then works. BORME publishes Monday–Friday (no weekend/holiday issues; those days simply produce no records).

Is this the "official" registry (Registro Mercantil) full text? BORME is the official gazette of the registry: it publishes every registrable act (appointments, capital changes, insolvency…). It does not include full deed texts or annual accounts — for those you need the registry itself. For monitoring and screening, BORME is the canonical public source.

How fresh is the data? Each issue is published in the morning (Europe/Madrid) of its date; a run with dateFrom = today after publication returns same-day events.

Can I run it from an AI agent? Yes — see the MCP section above: call the actor via mcp.apify.com, or query the hosted database for free at mcp.bormeapi.com. Limited permissions, plain JSON output, deterministic charges per delivered record.

Engineering notes: You don't need to scrape BORME