Norway Companies Scraper
Pricing
from $11.90 / 1,000 results
Norway Companies Scraper
Scrape Norway's Brønnøysund company register by name or filter (legal form, NACE, municipality, employees, VAT, dates). Clean firmographics with CEO, board, annual accounts, address and share capital. Batch lookup by org number, sub-units of a parent, and a change feed for CRM sync.
Pricing
from $11.90 / 1,000 results
Rating
0.0
(0)
Developer
Norm Data
Maintained by CommunityActor stats
0
Bookmarked
1
Total users
0
Monthly active users
8 days ago
Last modified
Categories
Share

🇳🇴 Norway Companies Scraper
Scrape the Norwegian company register (Brreg / Brønnøysundregistrene, the Brønnøysund Register Centre) with no API key and no login. Search over a million Norwegian entities by name or by structured filters, look up a batch of organisation numbers, pull every establishment of a company, or read the register's change feed.
Get clean structured company data for KYB, compliance and B2B lead generation: legal form, NACE industry codes, addresses, employees, VAT (MVA) and bankruptcy status, the full board, chair, CEO and auditor, share capital, and filed annual accounts.
🎯 Who uses it?
🛡️ KYB / KYC and compliance teams
Verify a Norwegian counterparty by organisation number and capture legal form, status, officers and financials for the onboarding file.
📇 B2B sales and lead-gen teams
Build targeted company lists by industry (NACE), municipality, size, or VAT status, with phone, website and address.
🗂️ CRM and data teams
Feed a list of organisation numbers and refresh every account with current registry fields, leadership and accounts.
📈 Credit and risk analysts
Pull revenue, equity, liabilities and multi-year filed accounts for a portfolio of companies.
🗺️ Location and market researchers
Use sub-units mode to list every site a company operates from, or the change feed to watch new registrations and bankruptcies.
✨ What it does
- Search companies by name and any of: municipality, NACE industry code, legal form, postal code, employee range, institutional sector, VAT status, founding date range, registration date range, or bankrupt-only. Filters combine with logical AND.
- Look up by organisation number: paste a batch of nine-digit numbers, get the full record for each, companies and sub-units both. A number that doesn't resolve still comes back as its own row with an
error, so the output always matches your input list. - Sub-units (establishments): every branch, site, or department registered under a parent company, each with its own address, employees and industry code.
- Change feed: every entity registered or changed on or after a date, newest first, for syncing a local copy or watching for new companies, bankruptcies and liquidations.
- Board and CEO (optional): CEO, chair, and the full officer list with role codes, role names, birth dates, and listed order.
- Annual accounts (optional): filed accounts for every year on record, with revenue, operating result, total assets, equity, debt, and whether the filing was actually audited.
Missing source values are returned as null, never invented.
🏆 Why this scraper
- Two modes nobody else on Apify has: every establishment of a company, and the register's own change feed for monitoring and CRM sync.
- Real KYB depth. Board, chair, CEO, auditor, share capital, sector code, group membership, historical names and statutory purpose on every record.
- Multi-year financials with a real credit signal. Revenue, results, assets, equity and debt from filed accounts, plus whether each filing was actually audited, since small Norwegian companies can legally opt out.
- No API key, no login, no captcha. Public open data, delivered clean and flat.
⚖️ How it compares
| Capability | This actor | Other Brreg scrapers on Apify |
|---|---|---|
| Name search + organisation number lookup | yes | yes |
| Batch list of organisation numbers in one run | yes | some |
| Filters: municipality, NACE, legal form, postal code | yes | yes |
| Filters: employee range, VAT status, sector, date ranges | yes | some |
| Bankrupt-only filter | yes | rare |
| Officers: board, chair, CEO, auditor (full array with birth dates) | yes | names only, or none |
| Filed annual accounts, multi-year | yes | rare |
| Sub-units: every establishment of a company | yes | no |
| Change feed: entities registered or changed since a date | yes | no |
📦 What data you get
| Entity | Useful fields |
|---|---|
| Company | Registered name, organisation number, active status, legal form, NACE industry codes, institutional sector, employee count, founding and registration dates, VAT status, and bankruptcy/liquidation flags. |
| People | CEO, chair, and the full officer list with role names, birth dates, and listed order. |
| Financials | Filed annual accounts per year: revenue, operating result, annual result, total assets, equity, debt, whether audited. |
| Address & contact | Business and postal addresses, phone, website, and email where registered. |
| Group & history | Group membership, parent organisation number, and previous names with date ranges. |
| Sub-units & changes | Establishment rows with their own address and industry code, and change-feed rows with change type and timestamp. |
Every record includes scraped_at (UTC). Download your dataset from Apify as CSV, JSON, or Excel.
💡 Use cases
🛡️ Verify a counterparty
{ "mode": "lookup", "orgNumbers": ["923609016", "974760673"] }
📇 Build a lead list by industry and size
{ "mode": "search", "municipality": "0301", "orgForm": "AS", "employeesFrom": 20, "employeesTo": 100, "vatRegistered": "yes", "maxItems": 500 }
🗺️ Map every site a company operates from
{ "mode": "subunits", "parentOrgNumber": "923609016" }
📡 Watch for new or changed companies
{ "mode": "updates", "changedSince": "2026-09-01", "maxItems": 1000 }
⚙️ How the input is organised
The input form is split into sections that follow the mode you pick:
| Section | What it's for |
|---|---|
| Mode | Pick what to get: Search, Look up, Sub-units, or Change feed. |
| Search filters | Name plus structured filters: municipality, NACE code, legal form, postal code, employee range, sector, VAT status, bankrupt-only, and date ranges. |
| Look up and sub-units | Organisation numbers to look up, or a parent organisation number for sub-units. |
| Change feed | The date to pull changes since. |
| Enrichment | Add board/CEO data and filed annual accounts. Only charged when that data is actually found. |
Apify Free plan: every run is limited to a fixed 10-row sample. Upgrade your Apify plan to run your own settings.
💰 Pricing
Pay-per-event: a price for each kind of record the run produces. You only pay for the kinds you turn on:
| Charged for | Free | Bronze | Silver | Gold+ |
|---|---|---|---|---|
| result: One company row written to the dataset. | 0.014 | 0.0133 | 0.0126 | 0.0119 |
| Detail Record: Board, CEO and officers for one company. | 0.015 | 0.0142 | 0.0134 | 0.0126 |
| Financials record: Filed annual accounts for one company. | 0.015 | 0.0142 | 0.0134 | 0.0126 |
New Apify accounts start with $5 in free credit.
🚀 Run it
- Create a free Apify account with $5 in credit.
- Open the Norway Companies Scraper.
- Fill in the input (or keep the prefilled example), set the maximum number of results, then click Start.
- Export the results as CSV, Excel, JSON, or XML from the Dataset tab.
Run it programmatically through the Apify API (run-sync-get-dataset-items) or the ApifyClient for JavaScript and Python, and schedule it with Apify's built-in Scheduler.
🤖 Use with AI agents (MCP)
Give an AI agent live access to the Norway Companies Scraper through the Model Context Protocol:
claude mcp add --transport http apify "https://mcp.apify.com?tools=normdata/norway-companies-scraper"
Then prompt it in plain language to run the scraper and read back the results.
🔧 Troubleshooting
An organisation number returned an error: "not found" row.
Check it's the 9-digit number. The row is kept so your output matches your input list.
Names and labels are in Norwegian. They're kept exactly as filed, the register doesn't publish translations.
Board or accounts are missing. Turn on "Include board and CEO" or "Include annual accounts". Accounts only exist for companies that file them.
❓ FAQ
| Question | Answer |
|---|---|
| Where does the data come from? | Brønnøysund Register Centre's public open data. |
| Can I get every branch of a company? | Yes, Sub-units mode with the parent organisation number. |
| Can I watch for new companies or bankruptcies? | Yes, Change feed mode with "Changed since", on a schedule. |
| Are audited accounts flagged? | Yes, each filing says whether it was actually audited. |
| Do I need an API key? | No. |
🛡️ Limits & responsible use
This Actor reads only the Norwegian company register's own public open data. It never signs in and never accesses anything gated behind an account.
A Look up number that doesn't resolve still writes one row with error: "not found" rather than failing the run, so your output count matches your input list. Company names and labels are kept as filed in Norwegian; the register does not hold English names.
📧 Contact
Need a scraper for a different site, or found something wrong with this one? norm.data.scrapers@gmail.com
🧪 Local development
bun installbun test # offline: input parsing and normalisation against synthetic fixturesbun run src/main.ts # reads storage/key_value_stores/default/INPUT.json