North Data Scraper - European Company Registry
Pricing
from $2.49 / 1,000 companies
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
Maintained by CommunityActor stats
0
Bookmarked
9
Total users
7
Monthly active users
a day ago
Last modified
Categories
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.
| Input | Company names, or North Data company and search page links |
| Output | One row per company: register court and number, EUID, LEI, legal form, status, address, industry, purpose, officers, and revenue where it is published |
| Ceiling | 2,000 companies per run, and about 59 results per search term, which is North Data's own limit |
| Account needed | None |
| 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 get | Field |
|---|---|
| Registered name, and the names it had before | name, formerNames |
| Legal form and status | legalForm, status |
| Register court and number, as one line and split | registryId, registryLine, register, registerNumber |
| EU-wide identifier, LEI and other identifiers | euid, lei, otherIdentifiers, northDataId |
| Address, split into parts, and former addresses | address, street, postalCode, city, country, countryCode, formerAddresses |
| Industry, founding date and corporate purpose | industry, foundingDate, corporatePurpose |
| Registered legal representatives, name and role | officers, officerCount |
| Latest revenue, earnings and employees, where published | revenue, revenueYear, revenueFormatted, earnings, earningsYear, employees |
| Patents in the latest year | patentsLatestYear, patentsLatestCount |
| How many register announcements there are, and the latest date | publicationCount, latestPublicationDate |
| The announcements themselves, optional | publications |
| Dated register history, optional | events, eventCount |
| Year-by-year revenue and earnings, optional | revenueSeries, earningsSeries |
| Where the row came from | url, detailsFetched, searchQuery, scrapedAt |
▶️ How to scrape European company records
- Open North Data Scraper and click Try for free.
- Type names into Company names to search, one per line, or paste links into North Data URLs.
- Pick Countries if you want to narrow it.
- Set Maximum companies. Leave Open each company page on unless you only need a shortlist.
- 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}
| Field | Default | What it is |
|---|---|---|
searchQueries | none, the box starts at Zalando | Company names or keywords, one per line. |
startUrls | none | North Data company pages or ?query= search pages. Person pages are rejected. |
countries | all of them | Restrict to any of the 26 countries North Data indexes. |
includeDetails | on | Open each company page for the full record. Off gives you the listing fields only. |
includeOfficers | on | Registered legal representatives, name and role as the register publishes them. |
includePublications | off | Up to 25 register announcements per company, with date and text. |
includeEvents | off | Dated register events from the company page's history. 12 at most per company in our tests. Needs includeDetails on. |
includeFinancialHistory | off | The full revenue and earnings series instead of the latest year. |
maxItems | 20 | Total companies for the whole run, up to 2,000. |
proxyConfiguration | leave it alone | Optional, 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.
| Field | How to read it |
|---|---|
registerNumber, register | The register id and the court that holds it, so HRB 158855 B plus its Amtsgericht. |
euid, lei | The EU-wide identifier, and the Legal Entity Identifier where the company has one. lei is null for most private companies. |
legalForm | Worked 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. |
status | Active, Liquidation or Terminated. With includeDetails off, only Terminated can be told apart. |
officers | Name, first and last name, role and North Data profile link. No contact details, ever. officerCount stays filled when you switch officers off. |
revenue, revenueFormatted | The number in the company's currency, and North Data's own short form like €12.3B. revenueYear says which year. |
employees | Read from the page text, so treat it as a hint. See the limits below. |
northDataId | Filled instead of registryId on records North Data holds without a register entry. |
events | Only 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. |
detailsFetched | Whether the company page was opened for this row. |
🧾 Reading the output
| Row | How to spot it | Billed |
|---|---|---|
| A company | ok: true and no charged key | yes |
| The sample row | _sample: true and charged: false | no |
| A diagnostic | ok: false, _diagnostic: true and an errorCode | no |
| Code | What it means |
|---|---|
BAD_URL | A link that is not a North Data company or search page. Person pages land here. |
NO_RESULTS | North Data matched nothing for that term. |
NOT_FOUND | No page at that address. |
RATE_LIMITED | North Data throttled the request. Re-run to pick that one up. |
SUGGEST_BLOCKED, SUGGEST_BAD_JSON, LISTING_BLOCKED, SEARCH_FAILED | The search step did not come back usable. |
PAGE_BLOCKED, UNEXPECTED_PAGE, PAGE_FAILED | A company page did not come back usable. |
TIME_LIMIT | The 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
statusandlatestPublicationDateon 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:
formerNamesandformerAddressesconnect 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.
countriesnarrows 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
countriesfield instead. includeEventsis a short list. North Data's page showed 12 entries at most in our tests, not a company's full register file.employeesis 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 want | Use |
|---|---|
| European register records, officers and published revenue | This one |
| Companies registered at Companies House on the days you pick | New UK Companies Scraper |
| US public-company filings by keyword, ticker or CIK | SEC EDGAR Scraper |
| Who imports what into the US, and from which shipper | ImportYeti 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.
Is scraping North Data legal?
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.