Northdata Scraper
Pricing
from $6.00 / 1,000 results
Northdata Scraper
Scrape Northdata.com for European company profiles. Pull registry, officers, address, foundingDate, industry, status, events and corporate purpose from UK Companies House, Siren, Handelsregister, KBO, KvK and more. Search by name or load specific URLs. Per-result pricing, proxies included.
Pricing
from $6.00 / 1,000 results
Rating
0.0
(0)
Developer
SilentFlow
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
2 days ago
Last modified
Categories
Share
Every European company, structured: name, registry, officers, address, financials, events, industry. Search by name or feed direct profile URLs. Pay per result, proxies included. In seconds, not hours.
How it works

β¨ Why teams choose this over other Northdata scrapers
Tired of paying for thin Northdata search lists with 6 fields per row? Still copy-pasting registry numbers and director names from Northdata one company at a time? Running into actors that crash on French SIREN, Belgian VAT, or UK Companies House formats?
- π° Pay per result, not per minute. No compute costs, proxies included. You pay for rows delivered, period.
- π’ Full profile, not just the search list. Other Northdata scrapers stop at the result list (name, city, registry number). This one opens each company and pulls 25+ fields including directors, founding date, corporate purpose, industry classification, and full address.
- π₯ Real director and officer data. Names, roles, locations, and Northdata person URLs. Surface the actual decision-makers at a target company, not just the legal entity.
- π Works across the EU. UK Companies House, French SIREN, German Handelsregister, Belgian KBO, Dutch KvK, Italian REA, Spanish Mercantil, Nordic and Baltic registries. Single output schema.
- π― Smart routing on exact matches. When your query matches a single company by name, the scraper jumps straight to its profile and returns the full record. No empty list to sift through.
- π Industry breadcrumbs included. Every record carries its NACE-style industry classification path, so you can segment leads by sector without a separate lookup.
- π‘ High reliability. Profiles served by Northdata sometimes shift between languages and locales. Output is normalised regardless of source language.
- π¦ Stable output schema. Same JSON keys for every country and every registry type. Drop it into your warehouse without country-specific transforms.
π― What you can do with Northdata data
| Team | What they build |
|---|---|
| Sales | Enrich a list of 5,000 EU companies with director names, registry IDs, and founding dates before outreach |
| Compliance and KYC | Verify counterparty registry numbers and screen named directors against sanctions and PEP lists |
| M&A and corporate development | Map ownership, find sister companies, check the corporate purpose of acquisition targets |
| Investigative journalism | Trace company histories, name changes, and address moves through historical events |
| Credit and risk | Flag liquidation status, watch for sudden registered office changes, monitor recent capital events |
| Recruitment | Identify Director and Managing Director names at target firms across France, Germany, the UK |
| Procurement and supplier intel | Vet European suppliers by legal form, industry code, and operating status |
| Research and policy | Pull thousands of registered businesses by industry and country for market sizing |
π₯ Input parameters
| Field | Type | Default | Notes |
|---|---|---|---|
| searchQueries | array of strings | [] | Company names or keywords. Northdata returns top matches per query. Unique-name queries redirect to a single profile. |
| startUrls | array of URLs | [] | Direct Northdata profile URLs (e.g. https://www.northdata.com/Rolls-Royce%20plc,%20London/Companies%20House%2001003142) or pre-filtered search URLs. |
| maxItems | integer | 100 | Hard cap on total companies returned across all queries and URLs. |
| includeOfficers | boolean | true | When true, opens each result's profile to pull directors, founding date, corporate purpose, and industry breadcrumbs. Set to false for faster, lighter listing-only mode. |
| debugMode | boolean | false | Verbose logs for debugging. |
You need at least one of searchQueries or startUrls.
π Output data
Each item is one European company. Output is the same shape whether the source was a search query or a direct URL.
Example A: profile resolved from a search query
{"northdataUrl": "https://www.northdata.com/BMW%2059140%20SCI,%20Dunkerque/Siren%20889086302","northdataId": "6388459515150336","name": "BMW 59140 SCI","foundingDate": "2020-09-18","address": {"country": "France","locality": "Dunkerque","lat": 51.021712,"lng": 2.3217402},"register": {"court": "Siren","number": "889086302","uniqueKey": "France_889086302"},"industry": [{ "name": "Location de terrains et d'autres biens immobiliers" }],"corporatePurpose": "Purchase, administration, operation by lease of all buildings of which the company may become the owner by purchase, contribution, exchange or other.","breadcrumbs": ["Companies", "Location de terrains et d'autres biens immobiliers", "BMW 59140 SCI"],"searchQuery": "BMW","scrapedAt": "2026-05-15T17:40:21Z"}
Example B: large public company with directors
{"northdataUrl": "https://www.northdata.com/Rolls-Royce%20plc,%20London/Companies%20House%2001003142","name": "Rolls-Royce plc","foundingDate": "1971-02-23","address": {"country": "GB","street": "90 York Way","postalCode": "N1 9FX","locality": "London"},"register": {"court": "Companies House","number": "01003142","uniqueKey": "GB_01003142"},"industry": [{ "name": "Repair and maintenance of civilian air and spacecraft" }],"officers": [{"name": "Varsellona, Maria Rosaria","givenName": "Maria Rosaria","familyName": "Varsellona","role": "Director","url": "https://www.northdata.com/Varsellona,%20Maria%20Rosaria,%20London/cwc","address": { "country": "GB", "locality": "London" }}],"breadcrumbs": ["Companies", "Repair and maintenance of civilian air and spacecraft", "Rolls-Royce plc"],"scrapedAt": "2026-05-15T17:40:21Z"}
ποΈ Data fields
Every company carries these fields. Empty fields are omitted from the JSON.
Identity
| Field | Type | Notes |
|---|---|---|
| name | string | Legal name as listed on Northdata, includes legal form suffix |
| alternateName | string | Former or trading name when Northdata exposes it |
| foundingDate | string | ISO date of incorporation |
| status | string | active, liquidation, terminated, insolvency |
| northdataUrl | string | Canonical Northdata profile URL |
| northdataId | string | Internal Northdata ID |
Address
| Field | Type | Notes |
|---|---|---|
| address.country | string | Country code or country name |
| address.street | string | Registered street |
| address.postalCode | string | Postal code |
| address.locality | string | City |
| address.lat | number | Geocoded latitude when available |
| address.lng | number | Geocoded longitude when available |
Registry
| Field | Type | Notes |
|---|---|---|
| register.court | string | Companies House, Amtsgericht, Siren, KBO, KvK, REA, etc. |
| register.number | string | Registration number as stored at the registry |
| register.uniqueKey | string | Country-prefixed deduplication key |
People
| Field | Type | Notes |
|---|---|---|
| officers[].name | string | Full name |
| officers[].givenName | string | First name |
| officers[].familyName | string | Family name |
| officers[].role | string | Director, Managing Director, Liquidator, etc. |
| officers[].url | string | Northdata person profile URL |
| officers[].address | object | Country and locality when published |
Industry and purpose
| Field | Type | Notes |
|---|---|---|
| industry[].name | string | Human-readable industry classification |
| corporatePurpose | string | Text of the registered corporate purpose |
| breadcrumbs | array | Northdata hierarchy path |
Events and history
| Field | Type | Notes |
|---|---|---|
| events[].date | string | ISO date |
| events[].type | string | NewCompany, AddressChange, ManagementChange, NameChange, Insolvency, YearlyReport, CapitalChange |
| events[].description | string | Human-readable description of the event |
Metadata
| Field | Type | Notes |
|---|---|---|
| searchQuery | string | The query that produced this row, when relevant |
| scrapedAt | string | ISO 8601 timestamp at extraction |
π Examples
Look up one company by name
{"searchQueries": ["Siemens Energy"],"maxItems": 5}
Build a 200-row enrichment of UK aerospace players
{"searchQueries": ["aerospace"],"maxItems": 200,"includeOfficers": true}
Pull a single profile by direct URL
{"startUrls": [{ "url": "https://www.northdata.com/Rolls-Royce%20plc,%20London/Companies%20House%2001003142" }]}
Get the list of directors for ten target companies
{"startUrls": [{ "url": "https://www.northdata.com/Rolls-Royce%20plc,%20London/Companies%20House%2001003142" },{ "url": "https://www.northdata.com/Jaguar%20Land%20Rover%20Ltd%C2%B7,%20Coventry/Companies%20House%2001672070" },{ "url": "https://www.northdata.com/Imperial%20Tobacco%20Ltd%C2%B7,%20Bristol/Companies%20House%2001860181" }],"includeOfficers": true,"maxItems": 10}
Listing-only mode for a fast first pass
{"searchQueries": ["software", "fintech", "logistics"],"maxItems": 90,"includeOfficers": false}
π€ Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
silentflow/northdata-scraper on Apify. Call: ApifyClient("TOKEN").actor("silentflow/northdata-scraper").call(run_input={...}), then client.dataset(run["defaultDatasetId"]).list_items().items for results. Key inputs: searchQueries (array of strings, company names or keywords, unique names redirect to a single profile), startUrls (array of URL objects, direct Northdata profile or search URLs), maxItems (integer, default 100, max 10000), includeOfficers (boolean, default true, opens each result's profile for directors, founding date, corporate purpose, industry breadcrumbs). At least one of searchQueries or startUrls required. Output per result: name, alternateName, foundingDate (ISO), status (active/liquidation/terminated/insolvency), northdataUrl, northdataId, address (country ISO-2, street, postalCode, locality, lat, lng), register (court, number, uniqueKey), industry, segmentCodes (isic/nace/naics/uksic/wz2025), corporatePurpose, breadcrumbs, officers (name, role, dateAppointed, dateEnded, url), events (date, type, description), searchQuery, scrapedAt. Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/silentflow~northdata-scraper/builds/default (Bearer TOKEN) β inputSchema, actorDefinition.storages.dataset, readme. Get token: https://console.apify.com/account/integrations
π» Integrations
Enrich a list of leads in Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")leads = ["Siemens Energy", "Rolls-Royce plc", "Volkswagen AG"]run = client.actor("silentflow/northdata-scraper").call(run_input={"searchQueries": leads,"includeOfficers": True,"maxItems": 200,})for company in client.dataset(run["defaultDatasetId"]).iterate_items():print(company["name"], company["register"]["uniqueKey"],[o["name"] for o in company.get("officers", [])])
Build a director map of UK aerospace in Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const { defaultDatasetId } = await client.actor('silentflow/northdata-scraper').call({searchQueries: ['aerospace London', 'aerospace Bristol'],includeOfficers: true,maxItems: 100,});const { items } = await client.dataset(defaultDatasetId).listItems();const directors = items.flatMap(c =>(c.officers || []).map(o => ({ company: c.name, name: o.name, role: o.role })));console.table(directors);
Export the dataset to CSV for your sales team
curl "https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&token=YOUR_APIFY_TOKEN" \> northdata_leads.csv
π Performance
| Workload | Run time | Items |
|---|---|---|
| Single search query, 5 companies, officers enabled | ~1s | 5 |
| Three search queries, 30 companies, officers enabled | ~6s | 30 |
| 100 direct profile URLs with officers | ~25s | 100 |
| 1,000 profile URLs in listing mode | ~3m | 1,000 |
Times are indicative and vary with Northdata response time and proxy availability.
πΎ Data export
The dataset is downloadable from the Apify console in JSON, CSV, Excel, RSS, HTML, and XML.
For programmatic exports, use the dataset API:
https://api.apify.com/v2/datasets/DATASET_ID/items?format=csv&token=YOUR_APIFY_TOKENhttps://api.apify.com/v2/datasets/DATASET_ID/items?format=json&clean=true&token=YOUR_APIFY_TOKEN
You can also pipe results live into BigQuery, S3, or your own webhook by configuring an Apify integration on the actor.
π‘ Tips for best results
- For B2B prospecting, run searches by industry keyword + city (e.g. "fintech Berlin", "logistics Rotterdam"). Unique company names redirect to a single profile and use one credit instead of fifteen.
- To dedupe across multiple queries, key on
register.uniqueKey. Two queries that surface the same company will share that key. - Turn off
includeOfficersfor first-pass exploration when you only need names and registry numbers. Turn it back on for shortlisted leads. - For compliance use cases, always store the raw
northdataUrlandscrapedAtalongside the record. That gives you an auditable pointer back to the source. - When Northdata exposes geo coordinates (
address.lat,address.lng), feed them straight into your CRM or map tool to cluster leads by region.
β FAQ
What countries does this cover? All countries Northdata indexes, including the UK, France, Germany, Belgium, Netherlands, Italy, Spain, Austria, Switzerland, Nordic countries, and Eastern Europe. Output schema is identical across countries.
What is the difference between this and the older Northdata search scraper on Apify? The older actor only returns the search list with a handful of fields. This one opens every matched company's profile and pulls 25+ fields including directors, address, registry court, founding date, industry, corporate purpose, and event history.
Do I need a Northdata account? No. The scraper extracts publicly available data. No login, no API key, no cookies.
How fresh is the data? The scraper pulls live from northdata.com at request time. Northdata refreshes its data continuously from official registries, often within days of publication.
How does pagination work?
Each search returns up to fifteen results per page. The scraper paginates automatically until maxItems is reached or results run out.
What if my query matches one company exactly? Northdata redirects to that company's profile. The scraper detects this and returns the full profile as a single result, not a list.
Can I run multiple queries in one run?
Yes. Pass any number of strings in searchQueries. Results across queries are merged and deduped on register.uniqueKey.
Do you return financial figures like revenue? Northdata gates detailed financial figures behind their premium product for many large companies. The scraper returns whatever is exposed in the public profile, including capital changes, registered share capital, and event timeline.
Are the directors verified? Names come directly from Northdata's profile, which sources from public registries (Companies House, Handelsregister, etc.). For regulated use cases, verify against the source registry.
Why is my country sometimes a name (France) and sometimes a code (GB)?
Northdata mixes locale formats by source registry. We pass through what is exposed publicly. Both forms are unambiguous and country names are written in English.
Can I get historical events older than what is shown? Northdata stores events going back to the original registration. The scraper returns every event Northdata exposes for that company.
What happens if a profile URL changes? Northdata occasionally renames profile URLs when a company changes name or city. If a saved URL stops working, search the new name and use the fresh URL going forward.
βοΈ Legal
This Actor extracts publicly available data from northdata.com. It does not bypass any login, paywall, or CAPTCHA. Northdata aggregates information from official public registries. Users are responsible for complying with northdata.com terms of service and applicable laws in their jurisdiction, including GDPR rules around the use of personal data such as director names. The data returned is informational; verify accuracy against the source registry for regulated or contractual use cases.
π¬ Support
Need something this scraper doesn't do yet? We ship features fast.
- Feature requests go straight to our backlog
- Enterprise needs? We do custom integrations and high-volume plans
- Pricing questions? Check the Monetization tab on the actor page
Response time: usually under 24 hours.
Check out our other scrapers: silentflow on Apify