North Data Scraper - EU Company Register & Officers
Pricing
from $3.50 / 1,000 company profiles
North Data Scraper - EU Company Register & Officers
Scrape North Data for European company register records: court and number (HRB, Companies House, Siren, KVK), EUID, LEI, address, officers, published financials and events. Search by legal name or paste a profile URL. Fast HTTP crawl on Apify, no login.
Pricing
from $3.50 / 1,000 company profiles
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by North Data GmbH. Data is read from publicly accessible pages only. No login and no official API key. You are responsible for complying with applicable law (including GDPR where officer names appear) and the site’s terms. North Data’s terms prohibit using the data for credit assessments. No warranty on accuracy or completeness. Provided for informational and research use.
Register officers: Officer names and roles come from public commercial-register pages. Keep
includeOfficerson only when you have a lawful basis to process that personal data.
| North Data (EU registers) | Europages (EU directory) | WLW (DACH directory) |
|---|---|---|
| North Data Scraper ◄── you are here | Europages Scraper | WLW Scraper |
| Handelsregister, Companies House, Siren, KvK, officers, published financials | Europe-wide B2B suppliers, VAT, contacts | DE / AT / CH suppliers, phone, email, VAT |
North Data scraper for Apify — turn a legal name or company profile URL into structured European commercial-register data. Collect register court and number (HRB / HRA, Companies House, Siren, KVK, KBO), EUID, LEI, registered address, company officers with roles, published financial time series when accounts exist, and register events (capital changes, mergers, insolvency flags).
Use it as a North Data API alternative for KYB / counterparty checks, CRM enrichment, and supplier vetting — without wrapping the paid Data Services API. Fast HTTP crawl (curl_cffi) — no headless browser. Export JSON, CSV, or Excel. Works from Python, Node.js, or an MCP / AI assistant via Apify.
Use cases
| Use case | What you get |
|---|---|
| KYB / counterparty check | Court + number, EUID, LEI, status, recent register events |
| CRM enrichment | Resolve a legal name to a canonical register identity and address |
| Officer mapping | Managing directors / board members with roles and person URLs |
| Supplier risk | Insolvency / liquidation flags from the public event feed |
| Listed-company financials | Yearly revenue and earnings when North Data publishes figures |
| Register ID harvest | Search-only rows (name, city, HRB/Siren label, URL) without opening profiles |
When to use this Actor
- You need North Data company profiles as one dataset row per company
- You have legal names, keywords, or North Data profile URLs
- You want officers, EUID/LEI, and published financials without an official API key
- You prefer a browser-free HTTP scrape on Apify (Python or Node.js client, or MCP)
When not to use this Actor
- Paywalled North Data fields (full shareholders, some charts, printing) — public HTML only
- Guaranteed revenue on every SME — most small companies never publish accounts
- More than ~45 hits per anonymous search — that ceiling is the website, not this Actor
- Credit scoring — forbidden by North Data’s terms; this Actor is for research / KYB identity
- Official bulk API / quarterly exports — that is North Data’s paid Data Services product
- B2B directory contacts (phone, email, VAT on supplier listings) — use Europages or WLW instead
Key features
- Name search —
searchQueriespaginates public results (15 per page, 45 anonymous cap) - Profile URLs — paste a company page and skip search
- Search-only mode —
fetchProfiles: falsereturns identity rows without opening each page - Officers — name, role, city, person URL from structured data
- Financial series — year, value, filing title and date when North Data publishes figures
- Register events — registration, capital, management, mergers;
insolvencyboolean - English or German labels (
northdata.com/northdata.de) - HTTP only — Chrome TLS fingerprint, 256 MB default, datacenter proxy is enough
- Deduped push — unique by profile URL within a run
Input parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
searchQueries | Array | ["Bayerische Motoren Werke"] | Company names or keywords. Legal names rank better than short tokens like BMW. |
startUrls | Array | [] | Profile and/or search URLs. Person pages are skipped. |
language | String | "en" | en (northdata.com) or de (northdata.de). |
fetchProfiles | Boolean | true | Open each company page for officers, financials, EUID/LEI, events. |
includeOfficers | Boolean | true | Officers array. |
includeFinancials | Boolean | true | Yearly series when published. |
includeEvents | Boolean | true | Register / officer event timeline. |
includePublications | Boolean | false | Up to 25 patent / bulletin feed items. |
maxItems | Integer | 20 | Cap across all queries and URLs. |
requestDelaySecs | Number | 0.4 | Pause between HTTP requests. |
proxyConfiguration | Object | Apify Proxy on | Datacenter is sufficient. |
Example — legal name + one profile URL
{"searchQueries": ["Bayerische Motoren Werke"],"startUrls": [{"url": "https://www.northdata.com/Zalando%20SE,%20Berlin/HRB%20158855%20B"}],"fetchProfiles": true,"includeOfficers": true,"includeFinancials": true,"maxItems": 5,"language": "en"}
Example — cheap identity list (no profile fetch)
{"searchQueries": ["Siemens Energy"],"fetchProfiles": false,"maxItems": 15}
Output fields
| Field | Description |
|---|---|
recordType | search or profile |
name / alternateName | Legal name and former / trading name when published |
url | North Data profile URL |
registerCourt / registerKind / registerNumber / registerLabel | Registrar identity (HRB, Companies House, Siren, …) |
euid / leiCode | European Unique Identifier and LEI when published |
street / postalCode / city / country | Registered address |
foundingDate / corporatePurpose / industry | Dates, purpose, industry breadcrumb |
officers[] | name, role, city, url |
officerCount | Number of officers on the profile |
financials[] | { metric, values[{ year, value, formattedValue, publicationDate }] } |
revenue / earnings | Latest numeric figures when a series exists |
events[] | Dated register / officer events |
insolvency | True if events mention insolvency or liquidation |
status | active, terminated, or liquidation when detectable |
publications[] | Optional patent / bulletin feed (max 25) |
Example profile row
{"recordType": "profile","name": "Bayerische Motoren Werke AG","city": "München","country": "DE","registerKind": "HRB","registerNumber": "42243","registerCourt": "Munich","euid": "DED2601V.HRB42243","leiCode": "YEH5ZCD6E441RHVHD759","officerCount": 123,"insolvency": false,"status": "active","url": "https://www.northdata.com/BMW+AG,+M%C3%BCnchen/HRB+42243"}
Typical workflow
- Start with legal names (
searchQueries) or paste profile URLs (startUrls). - Leave
fetchProfiles: truefor officers, EUID/LEI, financials and events. Set itfalsefor a cheap identity list. - Cap the run with
maxItems. Export the dataset as JSON, CSV, or Excel. - For commercial contacts (phone, email, VAT on public listings), continue with Europages Scraper or WLW Scraper.
Practical tips
- Prefer legal names over ticker-style tokens (
Bayerische Motoren Werke, notBMW) - Paste a profile URL when you already have the North Data page — skips search and the 45-hit cap
- Use
language: "de"when you need German labels (Geschäftsführer, Handelsregister) - Keep
requestDelaySecsat 0.4+ on longer crawls - Datacenter proxy is enough; residential is not required for public HTML
- Need DACH supplier contacts after register IDs? Run WLW Scraper
Integration examples
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('crawloop/northdata-scraper').call({searchQueries: ['Bayerische Motoren Werke'],fetchProfiles: true,maxItems: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 3));
Python
from apify_client import ApifyClientclient = ApifyClient(token)run = client.actor("crawloop/northdata-scraper").call(run_input={"searchQueries": ["Bayerische Motoren Werke"],"fetchProfiles": True,"maxItems": 5,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item.get("name"), item.get("euid"), item.get("leiCode"))
cURL
curl "https://api.apify.com/v2/acts/crawloop~northdata-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"searchQueries":["Bayerische Motoren Werke"],"fetchProfiles":true,"maxItems":5}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP. Connect your Apify account, then call crawloop/northdata-scraper.
Example prompts:
- "Run North Data Scraper for Bayerische Motoren Werke, max 5, return name, euid, leiCode, officers"
- "Look up Zalando SE on North Data and summarize register events and latest revenue"
- "Chain Europages Scraper then North Data Scraper to add HRB / EUID to supplier leads"
Suite next step
North Data is register identity (court, number, officers, published accounts). For Europe-wide B2B directory contacts (phone, email, VAT on public listings), run Europages Scraper next. For DACH-only Wer liefert was coverage, use WLW Scraper. For Dutch Chamber of Commerce cards, use KvK Handelsregister Scraper.
FAQ
Does every company have revenue? No. Public accounts are common for listed groups and some GmbHs; most SMEs leave revenue / financials empty. Register identity is the reliable part.
Why did “BMW” not return BMW AG first? North Data matches the token in names. Use the legal name (Bayerische Motoren Werke) or a direct profile URL.
Can I page past 45 results? Not while anonymous. The website stops after offset 30 (45 rows). Use more specific queries or paste known profile URLs.
Do you wrap the official North Data API? No. This Actor reads public HTML and JSON-LD only. You do not need an API key.
Is this a Handelsregister.de scraper? No. It reads North Data’s public company pages, which aggregate Handelsregister, Companies House, Siren, KvK, KBO and other European registers. For the official German register portal itself, use a dedicated Handelsregister Actor.
Which countries are covered? Whatever North Data publishes on the public profile — commonly Germany, UK, France, Netherlands, Belgium and other EU registers. Coverage follows the source page, not a separate country filter.
Are person pages supported? No. Person URLs are skipped. Search hits that point at people are dropped; company profiles remain.
Can I use northdata.de? Yes. Set language to de for German labels. Register numbers (HRB, EUID, LEI) are the same.
May I use this for credit scoring? No. North Data’s terms forbid credit assessments. Use the dataset for research, KYB identity, and enrichment only.
Related Actors
| Actor | Use for |
|---|---|
| North Data Scraper ◄── you are here | EU commercial-register identity, officers, published financials |
| Europages Scraper | Europe-wide B2B directory, VAT & contacts |
| WLW Scraper | DACH B2B suppliers from Wer liefert was |
| KvK Handelsregister Scraper | Dutch Chamber of Commerce public search + KvK lookup |