Spain's commercial registry publishes the acts it registers (incorporations, appointments, changes of registered office, extinctions and more) in the BORME, a section of the State's official gazette, the BOE. The BOE offers an open-data API to read it. This tutorial shows how the API works, what it returns, and what you still need to build to turn a daily gazette into usable company records.
Everything below comes from the BOE's own documentation, "API para el acceso a los sumarios del BORME", read on 9 October 2026.
What you'll learn
- What the BOE's BORME API does, and what it doesn't
- How to call it, with working requests
- How the response is structured
- How to go from the daily summary to each company's acts
- The hard parts: parsing, matching and keeping history
What the API gives you
The BOE's API serves the summary (sumario) of each day's BORME. The summary lists the day's publications by section: for section A (registered acts), one item per provincial registry, with links to that province's text for the day.
It doesn't give you a company search, a company record or a lookup by tax number. It gives you the official index of each day, from which you reach the published texts. Everything else is yours to build.
How to call it
The documentation describes a REST API over HTTPS. Requests use the GET method only; any other method (POST, PUT…) returns a 403 error. You choose the format with the Accept header: XML or JSON.
There's one call: /datosabiertos/api/borme/sumario/{fecha}, where the date is required, in the format AAAAMMDD (year, month, day). The documentation's example:
curl -L -X GET -H "Accept: application/xml" \
"https://boe.es/datosabiertos/api/borme/sumario/20240529"
For JSON:
curl -L -X GET -H "Accept: application/json" \
"https://boe.es/datosabiertos/api/borme/sumario/20240529"
The return codes are the usual ones: 200 for success, 400 for an invalid identifier or parameters, 404 when the requested information doesn't exist (for example, a date with no gazette), and 5xx for server errors. The BORME is published on working days, so expect 404 on weekends and holidays and treat it as "no gazette", not as a failure.
What the response looks like
According to the documentation, the response has a root node with two children:
- status, with a
codeand a shorttext(200 and "ok" on success); - data, holding the
sumario: its metadata (the publication,BORME, and the publication date), then onediario(issue) with its number.
Inside the issue, each section has a code and a name. Section A is "SECCIÓN PRIMERA. Empresarios. Actos inscritos". Each item in it has:
- an identifier, such as
BORME-A-2024-102-03: section, year, issue number and the province code; - a title, the province, such as
ALICANTE/ALACANT; - links to the province's publication for the day in several formats, including an HTML text (
url_html) and an XML version (url_xml), with the page range.
So the summary is a map: for a date, which provinces published acts, and where to read them.
From the summary to each company's acts
A daily pipeline usually looks like this:
- Fetch the summary for the date. Skip 404s.
- Take the section A items, one per province.
- Fetch each province's text for the day, using the item's links.
- Split the text into entries. Each entry concerns one company: a sequence number, the company name, then one or more acts, each with its label (Constitución, Nombramientos, Ceses/Dimisiones, Cambio de domicilio social, Extinción…), and finally the registry data with the company's sheet and the registration date.
- Parse each act into a type and its details.
- Match the entry to a company using the province and registry sheet, not the name: names change, sheets don't.
- Store the act with its reference and dates, so every fact you show can be traced back to the BOE.
Run it every working day, keep the history, and you have a timeline for each company. Our guide on how to read the BORME explains each act and what it means.
The hard parts
Parsing is most of the work. The texts are written for people. Acts follow conventions, but labels vary, several acts share one entry, and officer acts list roles and names in running text. Expect to write and maintain a parser with many cases, and to test it on real days.
Matching needs the sheet. The BORME doesn't publish the tax number (NIF). The stable key is the province plus the registry sheet. If your users only have a NIF, you can't match it from the BORME alone.
History starts when you start. The API gives you any date you ask for, but each day is one call plus one fetch per province. Building years of history means a long backfill, and you must keep it running every day after that.
Personal data. Officer acts contain names of people. Decide what you keep, why, and for how long, in line with data protection law, and keep only what your product needs.
Reuse conditions. The documentation states that reusing the information implies accepting the BOE's conditions. Read them, and cite the BOE as your source.
Is it worth building yourself?
If you need the BORME for one province, one use case or a research project, the API is the right starting point: it's official, free and simple. Building and running a daily, parsed, matched history across every province is a different project, with maintenance that never ends. That's the trade-off to weigh. For what to ask of any data provider, see what to check in a company data API, and for the background, the Spanish BORME explained.
Fuentio reads the BORME every working day and will serve each Spanish company's parsed acts, matched by province and registry sheet, with the BOE reference and dates of each act, since 6 October 2025. The API isn't open yet: join the waitlist below to hear the day it opens.
See what we cover in France and Spain.
Limits. The API's behaviour comes from the BOE's documentation (version 2.0 of 28 May 2026), read on 9 October 2026; check it before you build, as it can change. This tutorial describes a public service of the BOE; it isn't affiliated with it.
Frequently asked questions
Does the BOE have an API for the BORME?
Yes. The BOE's open-data API serves the daily BORME summary in XML or JSON, at /datosabiertos/api/borme/sumario/{fecha}.
Can I search a company by name or NIF with the BORME API?
No. It returns each day's summary. Company search and matching are yours to build, and the BORME doesn't publish the NIF.
Why do I get a 404?
The date has no BORME, usually a weekend or holiday. The documentation lists 404 as "the requested information doesn't exist".
Is the BORME API free?
It's an open-data service of the BOE; reuse implies accepting the BOE's conditions.
