Spain Company Search API and MCP — Find a NIF by Name or Brand
Send a company name, a brand or a NIF and get matching entries from the Registro Mercantil open-data directory: name, NIF/CIF, status, address, legal form, registry office, sheet number, EUID, CNAE activity and a link. Use the NIF with Spain company for officers and other registrations.
- You send
- a company name, brand or NIF, plus optional status filter and max_items
- You get back
- Name, NIF/CIF, status, address, legal form, registry office, sheet number, EUID, CNAE activity and link
- Coverage
- Spain — entities on Registro Mercantil (Registradores de España open data).
- Price
- 2 points per returned record — $2 per 1,000
- Billed per record actually returned, capped by max_items. A request that returns nothing costs nothing.
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 | Type the name into Registro Mercantil (Registradores de España open data) and read the results | 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 | $2 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 |
|---|---|---|
total_items | number | How many records are in this response. |
first_item | object | The first record, repeated from items for quick access. |
items | array | The matching entries. |
total_found | number | How many matches the register reported for the query. |
page_count | number | How many result pages were read for this request. |
blocked | boolean | True if the register could not be read; false on a normal run. |
items[].registration_number | string | NIF/CIF. |
items[].name | string | Registered name. |
items[].status | string | Vigente, Liquidada or Concurso. |
items[].address | string | Address. Null where the directory has none, as on the first sample item. |
items[].company_type | string | Legal form in Spanish, e.g. Sociedades de responsabilidad limitada. Null on some entries. |
items[].registry_office | string | Registry office. |
items[].sheet_number | string | Sheet number at that office. |
items[].euid | string | European Unique Identifier. Null on some entries. |
items[].irus | string | IRUS identifier. |
items[].cnae_code, items[].cnae_description | string | CNAE activity. Null on some entries. |
items[].special_situation | string | Note that special situations exist for the entity. |
items[].website | string | Website where listed; null in the sample. |
items[].other_registrations_count | number | How many other entries share the NIF. |
items[].url | string | Link to the entry in the directory. |
items[].incorporation_date | null | Null in the sample. |
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_companies_search",
"keyword": "inditex",
"max_items": 2,
"start_page": 1,
"partial": false,
"human": "# Spain — Registro Mercantil — company search\n\n- **Keyword:** inditex\n- **Results:** 2 of 6 found\n- **Proxy traffic:** 4.8 KB",
"machine": {
"total_items": 2,
"first_item": {
"registration_number": "V15632003",
"name": "INDITEX COGENERACION, A.I.E.",
"status": "Liquidada",
"address": null,
"url": "https://opendata.registradores.org/directorio/-/sociedad/1000067460052/inditex-cogeneracion--a-i-e-",
"company_type": null,
"incorporation_date": null,
"euid": null,
"irus": "1000067460052",
"registry_office": "A CORUÑA",
"sheet_number": "19516",
"special_situation": "Existen situaciones especiales",
"cnae_code": "3519",
"cnae_description": "Producción de energía eléctrica de otros tipos",
"website": null,
"other_registrations_count": 0
},
"items": [
{
"registration_number": "V15632003",
"name": "INDITEX COGENERACION, A.I.E.",
"status": "Liquidada",
"address": null,
"url": "https://opendata.registradores.org/directorio/-/sociedad/1000067460052/inditex-cogeneracion--a-i-e-",
"company_type": null,
"incorporation_date": null,
"euid": null,
"irus": "1000067460052",
"registry_office": "A CORUÑA",
"sheet_number": "19516",
"special_situation": "Existen situaciones especiales",
"cnae_code": "3519",
"cnae_description": "Producción de energía eléctrica de otros tipos",
"website": null,
"other_registrations_count": 0
},
{
"registration_number": "B81529844",
"name": "INDITEX INTERMEDIACION Y DISTRIBUCION DE PRODUCTOS DE IMPORTACION Y EXPORTACION SL",
"status": "Vigente",
"address": "C/ BORNEO 1 BAJO, SALAMANCA",
"url": "https://opendata.registradores.org/directorio/-/sociedad/1000054547765/inditex-intermediacion-y-distribucion-de-productos-de-importacion-y-exportacion-sl",
"company_type": "Sociedades de responsabilidad limitada",
"incorporation_date": null,
"euid": "ES37010.000024185",
"irus": "1000054547765",
"registry_office": "SALAMANCA",
"sheet_number": "6623",
"special_situation": "Existen situaciones especiales",
"cnae_code": null,
"cnae_description": null,
"website": null,
"other_registrations_count": 0
}
],
"total_found": 6,
"page_count": 1,
"blocked": false,
"proxy_traffic_bytes": 4926
},
"total_points": 4
}How to run it
The same lookup works from the app, the API, or as a tool an agent can call mid-task.
Results come back in the same envelope as every other source: a session id, a readable summary, the structured result and the points charged.
curl -X POST https://api.neuralverge.ai/functions/v1/run-es-companies-search \
-H "Authorization: Bearer YOUR_API_KEY" \
-H "Content-Type: application/json" \
-d '{"keyword":"inditex","max_items":2}'What teams use it for
Where this field shows up in an actual workflow.
Turn a brand or company name into the NIF that Spain company needs.
Keep Vigente entries and drop liquidated ones from a list.
Use CNAE codes in the results to group companies by activity.
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.
- —Some fields, such as address, legal form and CNAE, are null on entries where the directory does not have them.
- —The list does not include officers. Spain company returns them.
- —A group name such as inditex returns many related entities; read status and NIF to pick the right one.
Questions, answered
Yes. The keyword can be a company name, a brand or a NIF.
Related sources
Try spain company search on your own data
One request format across every source in the catalog.