North Data Scraper - European Company Registry avatar

North Data Scraper - European Company Registry

Pricing

from $2.49 / 1,000 companies

Go to Apify Store
North Data Scraper - European Company Registry

North Data Scraper - European Company Registry

European company register records from North Data, 26 countries: legal form, register court and HRB number, EUID, LEI, address, status, industry and officers. Revenue only where the company publishes accounts, which most small ones do not. No account. $2.55 per 1,000 companies.

Pricing

from $2.49 / 1,000 companies

Rating

0.0

(0)

Developer

Dami's Studio

Dami's Studio

Maintained by Community

Actor stats

0

Bookmarked

9

Total users

7

Monthly active users

a day ago

Last modified

Share

Type a European company name or paste a North Data page and get the register record: the registered name, legal form, court and register number, EUID, LEI, address, status, industry, corporate purpose and the registered legal representatives with their roles, from 26 national registers.

The awkward part first. Revenue and employee figures are rare. They exist only where a company has to publish accounts, and most small European companies publish nothing. On a 260-company run of mostly small private companies, revenue was filled on 2% of rows and employees on 1%, while the register fields were on every row. Buy it for the register data and treat the financials as a bonus.

InputCompany names, or North Data company and search page links
OutputOne row per company: register court and number, EUID, LEI, legal form, status, address, industry, purpose, officers, and revenue where it is published
Ceiling2,000 companies per run, and about 59 results per search term, which is North Data's own limit
Account neededNone
Price$2.55 per 1,000 companies on the Free plan, a little less on paid plans. The free plan's $5 a month covers about 1,900

🔍 What North Data Scraper does

North Data pulls 26 national company registers into one site. The German Handelsregister, Austria's Firmenbuch, UK Companies House, France's Sirene, the Dutch KvK, Sweden's Bolagsverket, Spain's Registro Mercantil and the Greek GEMI are all in there, along with Israel.

Search by name, or paste company pages and ?query= search pages. Both in the same run is fine. A broad name brings back the whole family: Zalando returns Zalando SE and a run of its subsidiaries, each as its own row, so use the full registered name when you want one company.

includeDetails is the setting that changes the run. Left on, every company page is opened and you get the full record. Turned off, you get only what the results listing shows: name, city, country, register id and status. That is much faster, and the right call for a shortlist rather than a dataset.

Three extras are off by default because they make rows noticeably bigger. includePublications adds up to 25 register announcements per company, which is where appointments, capital changes, mergers and insolvency notices live. includeEvents adds the short, dated register history from the company page. includeFinancialHistory swaps the latest-year figures for the whole year-by-year series.

📋 What data you get from each European company

What you getField
Registered name, and the names it had beforename, formerNames
Legal form and statuslegalForm, status
Register court and number, as one line and splitregistryId, registryLine, register, registerNumber
EU-wide identifier, LEI and other identifierseuid, lei, otherIdentifiers, northDataId
Address, split into parts, and former addressesaddress, street, postalCode, city, country, countryCode, formerAddresses
Industry, founding date and corporate purposeindustry, foundingDate, corporatePurpose
Registered legal representatives, name and roleofficers, officerCount
Latest revenue, earnings and employees, where publishedrevenue, revenueYear, revenueFormatted, earnings, earningsYear, employees
Patents in the latest yearpatentsLatestYear, patentsLatestCount
How many register announcements there are, and the latest datepublicationCount, latestPublicationDate
The announcements themselves, optionalpublications
Dated register history, optionalevents, eventCount
Year-by-year revenue and earnings, optionalrevenueSeries, earningsSeries
Where the row came fromurl, detailsFetched, searchQuery, scrapedAt

▶️ How to scrape European company records

  1. Open North Data Scraper and click Try for free.
  2. Type names into Company names to search, one per line, or paste links into North Data URLs.
  3. Pick Countries if you want to narrow it.
  4. Set Maximum companies. Leave Open each company page on unless you only need a shortlist.
  5. Click Start, then download the dataset as JSON, CSV or Excel, or read it from the Apify API.

Want to see the row shape first? Clear both boxes and start it. You get one labelled sample row, and it is not charged.

💰 How much does it cost to scrape European company records?

$2.55 per 1,000 companies on the Free plan, $2.53 on Starter, $2.51 on Scale and $2.49 on Business. On the free plan, the $5 Apify gives you each month covers about 1,900 companies.

The price is the same with Open each company page on or off, and the publications, events and year-by-year financials add nothing on top. The sample row and diagnostic rows are not charged, and a search that matches nothing produces no charged rows.

📥 What you give it

{
"searchQueries": ["Zalando SE", "Red Bull GmbH"],
"countries": ["DE", "AT"],
"maxItems": 50,
"includeDetails": true
}
FieldDefaultWhat it is
searchQueriesnone, the box starts at ZalandoCompany names or keywords, one per line.
startUrlsnoneNorth Data company pages or ?query= search pages. Person pages are rejected.
countriesall of themRestrict to any of the 26 countries North Data indexes.
includeDetailsonOpen each company page for the full record. Off gives you the listing fields only.
includeOfficersonRegistered legal representatives, name and role as the register publishes them.
includePublicationsoffUp to 25 register announcements per company, with date and text.
includeEventsoffDated register events from the company page's history. 12 at most per company in our tests. Needs includeDetails on.
includeFinancialHistoryoffThe full revenue and earnings series instead of the latest year.
maxItems20Total companies for the whole run, up to 2,000.
proxyConfigurationleave it aloneOptional, under Advanced. Only if you want the run to go out through a particular network of your own.

📤 What you get back

A real row from a run on 1 October 2026, with the default settings. The officer list is cut to two of its 16 entries, and otherIdentifiers and corporatePurpose are cut short.

{
"ok": true,
"name": "Zalando SE",
"formerNames": [],
"legalForm": "SE",
"status": "Active",
"registryId": "Amtsgericht Charlottenburg (Berlin) HRB 158855 B",
"registryLine": "District Court of Charlottenburg (Berlin) HRB 158855 B",
"register": "District Court of Charlottenburg (Berlin)",
"registerNumber": "HRB 158855 B",
"northDataId": null,
"euid": "DEF1103R.HRB158855B",
"lei": "529900YRFFGH5AXU4S86",
"otherIdentifiers": [
{"source": "Stockp", "label": "Stock exchange listed companies - Profiles", "value": "ZAL.DE"},
{"source": "EUID", "label": null, "value": "DEF1103R.HRB158855B"}
],
"address": "Valeska-Gert-Str. 5, 10243 Berlin, Germany",
"formerAddresses": [],
"street": "Valeska-Gert-Str. 5",
"postalCode": "10243",
"city": "Berlin",
"countryCode": "DE",
"country": "Germany",
"industry": "Auctioning in the retail trade without a pronounced focus",
"foundingDate": null,
"corporatePurpose": "The development, marketing and provision of internet services (e-commerce trade in goods of various kinds, in particular clothing and footwear), ...",
"officers": [
{"name": "Gentz, Robert Friedrich", "firstName": "Robert Friedrich", "lastName": "Gentz", "role": "Member of the Executive Board", "profileUrl": "https://www.northdata.com/Gentz,%20Robert%20Friedrich,%20Berlin/upd"},
{"name": "Schneider, David", "firstName": "David", "lastName": "Schneider", "role": "Member of the Executive Board", "profileUrl": "https://www.northdata.com/Schneider,%20David,%20Berlin/q17"}
],
"officerCount": 16,
"revenue": 12341475904,
"revenueYear": 2025,
"revenueFormatted": "€12.3B",
"earnings": 215019436,
"earningsYear": 2025,
"employees": 17778,
"patentsLatestYear": 2026,
"patentsLatestCount": 1,
"publicationCount": 25,
"latestPublicationDate": "2026-09-18",
"url": "https://www.northdata.com/Zalando%20SE,%20Berlin/Amtsgericht%20Charlottenburg%20(Berlin)%20HRB%20158855%20B",
"detailsFetched": true,
"searchQuery": "Zalando SE",
"scrapedAt": "2026-10-01T00:09:42.196Z"
}

That is a listed group. A small subsidiary often comes back with the register fields complete and officers, revenue and employees empty.

FieldHow to read it
registerNumber, registerThe register id and the court that holds it, so HRB 158855 B plus its Amtsgericht.
euid, leiThe EU-wide identifier, and the Legal Entity Identifier where the company has one. lei is null for most private companies.
legalFormWorked out from the registered name's suffix, because North Data prints no legal-form field. null rather than a guess when the suffix is not a known one.
statusActive, Liquidation or Terminated. With includeDetails off, only Terminated can be told apart.
officersName, first and last name, role and North Data profile link. No contact details, ever. officerCount stays filled when you switch officers off.
revenue, revenueFormattedThe number in the company's currency, and North Data's own short form like €12.3B. revenueYear says which year.
employeesRead from the page text, so treat it as a hint. See the limits below.
northDataIdFilled instead of registryId on records North Data holds without a register entry.
eventsOnly with includeEvents. Newest first, each with date, text such as Capital: €263M, the register code, and endDate when the entry has ended, like a director's term. Officer entries are left out when includeOfficers is off.
detailsFetchedWhether the company page was opened for this row.

🧾 Reading the output

RowHow to spot itBilled
A companyok: true and no charged keyyes
The sample row_sample: true and charged: falseno
A diagnosticok: false, _diagnostic: true and an errorCodeno
CodeWhat it means
BAD_URLA link that is not a North Data company or search page. Person pages land here.
NO_RESULTSNorth Data matched nothing for that term.
NOT_FOUNDNo page at that address.
RATE_LIMITEDNorth Data throttled the request. Re-run to pick that one up.
SUGGEST_BLOCKED, SUGGEST_BAD_JSON, LISTING_BLOCKED, SEARCH_FAILEDThe search step did not come back usable.
PAGE_BLOCKED, UNEXPECTED_PAGE, PAGE_FAILEDA company page did not come back usable.
TIME_LIMITThe run got close to its time limit and stopped on its own. The companies delivered before that are complete and charged. Give the run more time, or ask for fewer companies, to get the rest. It is the one diagnostic that can fail a run: only when the time limit stopped it before any company came back.

Rows are written as each company page finishes, so a run that hits its timeout keeps everything already delivered.

💡 What people use it for

  • Checking a supplier or customer before signing: register number, status, address and who can sign for the company.
  • Building a list of companies in one industry and country, then filling it in from the register rather than guessing.
  • Watching status and latestPublicationDate on a schedule to catch liquidations and insolvency notices early.
  • Pulling EUID and LEI to reconcile against an internal system that keys on them.
  • Tracing a group: formerNames and formerAddresses connect entities that have been renamed or moved.

🚧 What it does not do

  • No paywalled data. Balance sheets, profit-and-loss statements, shareholders, ownership graphs and risk reports sit behind a North Data subscription and are not read.
  • No personal contact details. Officers come back as the register publishes them, name and role. No e-mails, no phone numbers, no home addresses. Person pages are rejected as input.
  • About 59 results per search term is North Data's own ceiling for visitors without an account.
  • Country is not a deep filter. countries narrows the pool a term returns. It does not make North Data search further down.
  • A country filter inside a pasted search link is ignored. Use the countries field instead.
  • includeEvents is a short list. North Data's page showed 12 entries at most in our tests, not a company's full register file.
  • employees is a hint, not a headcount. It is read from the page text and can pick up a number that belongs to a register announcement rather than to the company. Check it before relying on it.
  • A search term that fails on its first page is reported as failed, and any partial matches it had are dropped rather than delivered. Re-run that term on its own.
  • It is not an official North Data tool. Dami's Studio is independent and is not affiliated with or endorsed by North Data, or by any other company named on this page.

🧭 Which company data scraper do you need?

If you wantUse
European register records, officers and published revenueThis one
Companies registered at Companies House on the days you pickNew UK Companies Scraper
US public-company filings by keyword, ticker or CIKSEC EDGAR Scraper
Who imports what into the US, and from which shipperImportYeti Scraper

❓ Questions people ask

How do I get a German company's HRB number?

Search the name and read registerNumber together with register. euid gives you the EU-wide identifier on top.

Which countries does North Data cover?

Austria, Belgium, Croatia, Cyprus, Czech Republic, Denmark, Estonia, Finland, France, Germany, Greece, Ireland, Israel, Lithuania, Luxembourg, Malta, Netherlands, Norway, Poland, Portugal, Romania, Slovakia, Spain, Sweden, Switzerland and the United Kingdom.

Do I need a North Data account?

No. It reads what North Data shows visitors without an account, which is also why balance sheets and shareholders stay out of reach.

How do I get more than 59 results for one search term?

Use several narrower terms in the same run. City names, keywords and legal form suffixes all work well as splits.

Can I search for people?

No. This is a company scraper and person pages are rejected. Officer records carry names and roles only.

Can I call it from code or connect it to an AI assistant?

Yes. The API tab has ready-made code for Python, JavaScript and the command line. For Claude, ChatGPT or another MCP client, connect https://mcp.apify.com/?tools=fetch-actor-details,dami_studio/northdata-scraper. Either way the run happens on your Apify account at the same price.

It reads pages North Data publishes without a login, and the underlying facts are public register records. Officer names are personal data, so GDPR applies to what you do next. Apify's write-up on the legality of web scraping is a good starting point, and we are not lawyers.

🆘 If something breaks

Open the Issues tab on the actor page. Send the name or URL you used and the run ID. The errorCode on the diagnostic row usually names the problem on its own.