Spain Company Registry API and MCP — Status, Activity and Officers by NIF
Send a Spanish NIF/CIF, or the link to the record, and get the company from the Registro Mercantil open-data directory published by Registradores de España: name, status (Vigente, Liquidada or Concurso), address, registry office and sheet number, the IRUS and EUID identifiers, CNAE and NACE activity codes with descriptions, website, special situation, officers with their roles, and other registry entries under the same NIF such as branches.
- You send
- a Spanish NIF/CIF or the registry link
- You get back
- Name, status, address, registry office and sheet, EUID and IRUS identifiers, CNAE/NACE activity, website, officers and other registrations under the same NIF
- Coverage
- Spain — entities on Registro Mercantil (Registradores de España open data).
- Price
- 10 pts — $10 per 1,000
- Charged only when the record resolves. A lookup that finds nothing is not billed.
Ways to get this data
Three approaches teams use today, and where each one runs into trouble.
| Approach | What it takes | Cost | Trade-off |
|---|---|---|---|
| Registro Mercantil (Registradores de España open data) directly | Open Registro Mercantil (Registradores de España open data) and read the record | Usually free, sometimes per-document | A different interface, language and data shape for every country you add |
| Collecting it yourself | Build and host a crawler per register, then keep each one alive | Infrastructure and maintenance | Registers change their pages without warning, and nobody is on the hook when yours breaks |
| NeuralVerge | One request, the same shape as every other source in the catalog | $10 per 1,000, misses not billed | Covers Spain — other countries are separate sources with the same request format |
What you get back
Every field in the example response below.
| Field | Type | Description |
|---|---|---|
company.registration_number | string | The NIF/CIF. |
company.name | string | Registered company name. |
company.status | string | Registry status: Vigente, Liquidada or Concurso. |
company.address | string | Address on one line. |
company.street, company.city, company.province | string | The address split into parts. |
company.registry_office | string | Registry office (registro) where the company is filed. |
company.sheet_number | string | Sheet (hoja) number at that office. |
company.irus | string | IRUS identifier of the registry entry. |
company.euid | string | European Unique Identifier. |
company.activity | string | CNAE code with description. |
company.cnae_code, company.cnae_description | string | Spanish activity classification. |
company.nace_code, company.nace_description | string | The matching NACE code and its English description. |
company.website | string | Company website. |
company.officers | array | Officers with name and role. The same person can appear twice with different spellings of the role. |
company.other_registrations | array | Other entries under the same NIF, such as branches, with name, status, registry_office, sheet_number, irus and url. |
company.url | string | Link to the record in the directory. |
company.special_situation, company.company_type, company.incorporation_date | null | Null in the sample: the record carries no value for them. |
blocked | boolean | True if the directory could not be read; false on a normal run. |
pages_opened | number | Pages read to build the record. |
proxy_traffic_bytes | number | Traffic used by the run, in bytes. |
session_id | string | Id of this run, for tracing. |
kind | string | The source that produced the response. |
human | string | A short readable summary of the result. |
total_points | number | Points charged for this run. |
Example response
A real response, as returned.
{
"session_id": "11111111-1111-1111-1111-111111111111",
"kind": "es_company",
"company": "A15075062",
"company_id": "A15075062",
"human": "# Spain — Registro Mercantil — company\n\n- **Number:** A15075062\n- **Pages opened:** 1\n- **Proxy traffic:** 2.3 KB\n- **Name:** INDUSTRIA DE DISEÑO TEXTIL, S.A.\n- **Status:** Vigente\n- **Address:** Avenida de la Diputación, Edificio Inditex, ARTEIXO, A CORUÑA\n- **Activity:** 4642 Comercio al por mayor de prendas de vestir y calzado\n- **Source:** https://opendata.registradores.org/directorio/-/sociedad/1000059233873/industria-de-diseno-textil--s-a-",
"machine": {
"company": {
"registration_number": "A15075062",
"name": "INDUSTRIA DE DISEÑO TEXTIL, S.A.",
"status": "Vigente",
"address": "Avenida de la Diputación, Edificio Inditex, ARTEIXO, A CORUÑA",
"url": "https://opendata.registradores.org/directorio/-/sociedad/1000059233873/industria-de-diseno-textil--s-a-",
"company_type": null,
"incorporation_date": null,
"activity": "4642 Comercio al por mayor de prendas de vestir y calzado",
"euid": "ES15021.000000987",
"irus": "1000059233873",
"registry_office": "A CORUÑA",
"sheet_number": "3342",
"special_situation": null,
"street": "Avenida de la Diputación, Edificio Inditex",
"city": "ARTEIXO",
"province": "A CORUÑA",
"cnae_code": "4642",
"cnae_description": "Comercio al por mayor de prendas de vestir y calzado",
"nace_code": "4642",
"nace_description": "Wholesale of clothing and footwear",
"website": "inditex.com",
"officers": [
{
"name": "GARCIA MACEIRAS OSCAR",
"role": "Consejero Del.Mancom. Y Solidario"
},
{
"name": "GARCIA MACEIRAS OSCAR",
"role": "Consejero Del.Mancom. y Solidario"
}
],
"other_registrations": [
{
"name": "INDUSTRIA DE DISEÑO TEXTIL SA SUCURSAL EN BEIJING",
"status": "Vigente",
"registry_office": "A CORUÑA",
"sheet_number": "2416",
"irus": "1000404663260",
"euid": null,
"address": null,
"url": "https://opendata.registradores.org/directorio/-/sociedad/1000404663260/industria-de-diseno-textil-sa-sucursal-en-beijing"
},
{
"name": "INDUSTRIA DE DISEÑO TEXTIL SA SUCURSAL EN BEIJING",
"status": "Vigente",
"registry_office": "SANTIAGO DE COMPOSTELA",
"sheet_number": "2416",
"irus": "1000408893180",
"euid": null,
"address": null,
"url": "https://opendata.registradores.org/directorio/-/sociedad/1000408893180/industria-de-diseno-textil-sa-sucursal-en-beijing"
}
]
},
"blocked": false,
"pages_opened": 1,
"proxy_traffic_bytes": 2364
},
"total_points": 10
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
One company per request. Pass the registration number or the link to the record on the register.
curl -X POST https://api.neuralverge.ai/functions/v1/run-es-companies \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company":"A15075062"}'What teams use it for
Where this field shows up in an actual workflow.
Confirm status, address and registry details for a Spanish counterparty.
Use the other registrations to see branches and related entries under one NIF.
Bring CNAE and NACE codes into your own segmentation.
Read the listed administrators and their roles for an ownership or governance check.
Coverage, freshness and limits
What this source covers, how fresh it is, and where it stops.
Spain — entities on Registro Mercantil (Registradores de España open data).
Read at request time, so the answer reflects the register as it stands when you ask.
Registro Mercantil (Registradores de España open data) is a public register. Every response carries the source URL it was read from and a session id you can trace.
- —Officers are returned as the directory lists them, so the same person can appear more than once.
- —Legal form and incorporation date are null on this record.
- —Lookup is by NIF/CIF or record link. Use Spain company search to find a NIF from a name or brand.
Questions, answered
Vigente is active, Liquidada is liquidated, and Concurso is in insolvency proceedings, as the directory labels them.
Related sources
Try spain company on your own data
One request format across every source in the catalog.