Spain Company Directory Scraper (CIF, CNAE, Address & Phone)
Pricing
from $12.75 / 1,000 results
Spain Company Directory Scraper (CIF, CNAE, Address & Phone)
Look up Spanish companies by name and get CIF/NIF, CNAE activity code, full registered address, phone, website, legal form, employees and founding date. Export to JSON, CSV or Excel.
Pricing
from $12.75 / 1,000 results
Rating
0.0
(0)
Developer
Scrapers Lat
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
6 days ago
Last modified
Categories
Share
Spain Company Directory Scraper (CIF, CNAE, Address & Phone)
Here is one real result, with every field the actor returns (the directors array is trimmed here to 3 of 10 entries with ...; live records return every director. Director names are masked at the source):
{"companyName": "ACCIONA, SA","legalName": "ACCIONA, SA","cif": "A08001851","website": "http://www.acciona.com/es","phone": "916632850","phones": ["916632850"],"email": null,"activity": "Sociedades de cartera (holdings)","cnaeCode": "6421","cnaeDescription": "Actividades de sociedades holding","legalForm": "Sociedad anónima","street": "Avenida Gran Via De Hortaleza, 3","city": "Madrid","province": "Madrid","postalCode": "28033","country": "España","employees": 176,"foundingDate": "16/06/1916","capitalSocial": 54856653,"capitalSocialText": "54.856.653 €","listedOnStockExchange": true,"lastYearResult": "Positivo","nationalRanking": 542,"lastBormeDate": "04/08/2026","lastBormeAct": "Reelecciones","directors": [{ "role": "Presidente", "name": "JOSE MANUEL E...", "appointedDate": "22/10/2009" },{ "role": "Vicepresidente", "name": "JUAN IGNACIO E...", "appointedDate": "27/06/2018" },{ "role": "Consejero", "name": "MARIA S...", "appointedDate": "28/06/2023" }],"queryName": "Acciona","listingUrl": "https://www.einforma.com/informacion-empresa/acciona","source": "einforma","observedAt": "2026-08-10T14:30:05.672Z","error": null}
The most complete Spain company directory scraper available. It returns every field the public company directory exposes per business, including CIF, CNAE activity code, legal form, full address, phones, employees, founding date, share capital, stock listing, national ranking, latest BORME act and the board of directors, plus an optional contact enrichment add-on to find a business email.
📥 Input · 📤 Output · 💰 Pricing · ▶️ Examples
Table of contents
- What it does
- Quickstart
- Input reference
- Output reference
- Example output record
- Run via API and CLI
- Fetch results
- Billing and limits
- FAQ and troubleshooting
What it does
The actor looks up each Spanish company name you pass in a public company directory, resolves the best match, and writes one normalized record per company to the run's dataset. Each record carries the tax id (CIF), legal form, CNAE activity code and description, full postal address, phones, website, employee count, founding date, share capital, whether the company is listed on a stock exchange, its national ranking, the latest BORME act and date, and the board of directors as structured entries.
An optional paid contact enrichment add-on can look up a public business email and contact person when the directory record has no email. Director names are masked by the source directory.
Quickstart
Open the actor, paste this into the input, and press Run. It looks up four large Spanish companies and returns their full directory records.
{"companyNames": ["Mercadona", "Inditex", "Acciona", "Cementos Molins"],"maxCompanies": 10,"enrichContacts": false}
Provide one or more names in companyNames. Full or partial names both work; the actor resolves the best match for each.
Input reference
| Field | Type | Required | Default | Description |
|---|---|---|---|---|
companyNames | string[] | yes | (none) | One or more Spanish company names to look up, for example Mercadona, Inditex. Full or partial names both work; the actor resolves the best match for each. |
maxCompanies | integer | no | 10 | Maximum number of company records to return across all lookups. Free Apify plans are capped at 10 per run. |
enrichContacts | boolean | no | false | Optional paid add-on, off by default. For each result without an email, attempt to find a public business contact email and a contact person's name. Billed per attempt, plus an extra charge only when an email is found. |
enrichContactsMax | integer | no | 50 | Cap how many results the add-on tries to enrich. Free Apify accounts are capped at 3. |
Output reference
One dataset item per company. Types: string, number, boolean, string[], object[], or null when the source value is absent. The enriched* fields are populated only when the contact enrichment add-on is enabled.
| Field | Type | Description |
|---|---|---|
companyName | string | Company name as listed. |
legalName | string | Registered legal name. |
cif | string | Spanish tax identification code (CIF). |
website | string | Company website, or null. |
phone | string | Primary phone number, or null. |
phones | string[] | All phone numbers found. Empty array when none. |
email | string | Public email from the directory, or null. |
activity | string | Business activity description. |
cnaeCode | string | CNAE economic activity code. |
cnaeDescription | string | CNAE activity description. |
legalForm | string | Legal form, for example Sociedad anónima. |
street | string | Street address. |
city | string | City. |
province | string | Province. |
postalCode | string | Postal code. |
country | string | Country, normally España. |
employees | number | Reported employee count, or null. |
foundingDate | string | Founding date (DD/MM/YYYY), or null. |
capitalSocial | number | Share capital as a number, or null. |
capitalSocialText | string | Share capital as printed, with currency symbol. |
listedOnStockExchange | boolean | true when the company is listed on a stock exchange. |
lastYearResult | string | Last-year result indicator, for example Positivo. |
nationalRanking | number | National ranking of the company, or null. |
lastBormeDate | string | Date of the latest BORME act (DD/MM/YYYY), or null. |
lastBormeAct | string | Latest BORME act type, or null. |
directors | object[] | Board of directors as {role, name, appointedDate} entries. Names are masked at the source. |
queryName | string | The input name that produced this record. |
listingUrl | string | Source directory listing URL. |
source | string | Data source label (einforma). |
observedAt | string | ISO 8601 timestamp of when the record was collected. |
error | string | null on success. On a failed run, a single item with a populated error field is written instead. |
enrichedEmail | string | Public business contact email found by the add-on, or null. |
enrichedContactName | string | Contact person name found by the add-on, or null. |
enrichedJobTitle | string | Contact person job title found by the add-on, or null. |
enrichedEmailStatus | string | Verification status of the enriched email, or null. |
enrichedSource | string | Source URL the enriched contact was found on, or null. |
enrichedConfidence | string | Confidence label for the enriched contact, or null. |
Example output record
Real record from a live run (input {"companyNames": ["Mercadona","Inditex","Acciona","Cementos Molins"], "maxCompanies": 10}). The directors array is trimmed here to 3 of 10 entries with ...:
{"companyName": "ACCIONA, SA","legalName": "ACCIONA, SA","cif": "A08001851","website": "http://www.acciona.com/es","phone": "916632850","phones": ["916632850"],"email": null,"activity": "Sociedades de cartera (holdings)","cnaeCode": "6421","cnaeDescription": "Actividades de sociedades holding","legalForm": "Sociedad anónima","street": "Avenida Gran Via De Hortaleza, 3","city": "Madrid","province": "Madrid","postalCode": "28033","country": "España","employees": 176,"foundingDate": "16/06/1916","capitalSocial": 54856653,"capitalSocialText": "54.856.653 €","listedOnStockExchange": true,"lastYearResult": "Positivo","nationalRanking": 542,"lastBormeDate": "04/08/2026","lastBormeAct": "Reelecciones","directors": [{ "role": "Presidente", "name": "JOSE MANUEL E...", "appointedDate": "22/10/2009" }],"queryName": "Acciona","listingUrl": "https://www.einforma.com/informacion-empresa/acciona","source": "einforma","observedAt": "2026-08-10T14:30:05.672Z","error": null}
Run via API and CLI
Start a run and wait for it to finish, then read the dataset. Replace <TOKEN> with your Apify API token.
Run synchronously and get dataset items in one call:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~spain-companies-directory-scraper/run-sync-get-dataset-items?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companyNames":["Mercadona","Inditex"],"maxCompanies":10}'
Start a run asynchronously:
curl -X POST "https://api.apify.com/v2/acts/scrapers_lat~spain-companies-directory-scraper/runs?token=<TOKEN>" \-H "Content-Type: application/json" \-d '{"companyNames":["Acciona"],"enrichContacts":true,"enrichContactsMax":5}'
Apify CLI:
apify call scrapers_lat/spain-companies-directory-scraper \--input '{"companyNames":["Cementos Molins"]}'
Fetch results
Every run writes to a dataset. Fetch items as JSON, CSV, or Excel by changing format:
# JSONcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=json"# CSVcurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&clean=true&format=csv"# Paginate large datasetscurl "https://api.apify.com/v2/datasets/<DATASET_ID>/items?token=<TOKEN>&offset=1000&limit=1000"
<DATASET_ID> is returned as defaultDatasetId in the run object. Use offset and limit to page through large result sets. clean=true drops empty and internal fields.
Billing and limits
- Pay per result. You are charged per company returned (
resultevent). See the pricing tab for the current per-result price. - Contact enrichment add-on. When
enrichContactsis on, each enrichment attempt is billed, plus an extra charge only when an email is found. Leave it off to pay only the per-result price. - No charge on failure. If a run errors, the actor writes a single item with a populated
errorfield and does not charge for it. Empty runs cost nothing. - Spend cap respected. Set
maxTotalChargeUsdon the run; once reached, the actor stops emitting and charging further billable results. - Free Apify plans are capped at 10 companies per run, and the enrichment add-on is capped at 3 attempts. Upgrade for higher
maxCompanies.
FAQ and troubleshooting
Why are director names masked? The source directory masks director surnames for privacy. The actor returns the names exactly as published and does not unmask them.
Why did fewer records come back than names I entered?
A name may not resolve to a directory listing, or several inputs may resolve to the same company. The queryName field shows which input produced each record.
Why is email null?
The directory listing has no public email. Enable the contact enrichment add-on to attempt to find one.
What is nationalRanking?
The company's ranking within Spain as reported by the source directory. It is null when the source does not rank the company.
Is this an official company registry tool? No. This actor is independent and has no affiliation with the source directory or any Spanish authority. It reads only publicly available company data. Use the results in accordance with the source's terms.
Related scrapers
- Spain BORME Company Registrations Scraper: Spanish company acts from the BORME gazette.
- France Company Search Scraper: French companies with SIREN, address and activity.
- Belgium KBO Company Register Scraper: Belgian companies from the KBO/BCE register.
- Greece GEMI Companies Scraper: Greek companies from the GEMI register.
- Denmark CVR Companies Scraper: Danish companies from the CVR register.
- Colombia Company Financials Scraper: Colombian company financials and registry data.
More scrapers at scrapers.lat
Built and maintained by scrapers.lat, where we publish scrapers for public platforms: company registries, government data, finance, e-commerce and more. Browse the catalog or request a custom scraper at scrapers.lat.
Independent tool, not affiliated with the source directory or any Spanish authority. Accesses only publicly available company data. Use the results in accordance with the source's terms.
