How to Scrape Brreg Norway Company Data & Leads 2026
Extract Norwegian B2B leads from brreg.no (Enhetsregisteret): org number, industry, email, phone, address and CEO names, filtered by NACE code and town.
Norway runs one of the cleanest open company registries in Europe. Brønnøysundregistrene publishes the entire Enhetsregisteret — every registered Norwegian company, with org number, industry code, address and often direct contact details — as a free, keyless JSON API. The problem isn’t access; it’s shape. The registry’s raw payloads are deeply nested, capped at roughly 10,000 records per query, and give you one company at a time when what you actually want is a filtered spreadsheet of solvent, VAT-registered firms in a specific industry and town. This guide covers how the Enhetsregisteret API actually works, where its limits bite, and how to turn it into a clean B2B lead list.
What’s worth extracting
Every Norwegian company in the registry resolves to a consistent record. Grouped by what you’ll actually use downstream:
- Identity —
orgNumber(organisasjonsnummer, the stable join key),name,orgForm/orgFormText(legal form code like AS, ENK, ASA plus its description). - Industry —
industryCode/industryText(the NACE / næringskode and its Norwegian description). - Contact —
email(epostadresse),phone(falls back to mobile),mobile,website(hjemmeside) — present only when the company registered them. - Address —
address,zip,city,municipality/municipalityCode(4-digit kommunenummer),country/countryCode, plus a separatepostalAddress/postalZip/postalCitywhen a mailing address is registered. - Size & sector —
employees,hasRegisteredEmployees,sectorCode/sectorText(institutional sector). - Dates —
registeredDate(registration in Enhetsregisteret) andfoundedDate(stiftelsesdato). - Status flags —
vatRegistered(in the MVA register),isBankrupt(konkurs),underLiquidation(underAvvikling). - Director leads —
ceoName(daglig leder) andchairName(styreleder), populated only when you enable role enrichment. - Provenance —
url(the direct brreg API URL for the company) andscrapedAttimestamp.
For a lead-gen list you need at minimum the identity, industry, contact and status fields. For KYC or due-diligence work, the status flags and org number carry the weight.
How the Enhetsregisteret API works
The registry exposes its data at data.brreg.no/enhetsregisteret. The main entity search accepts standard filter parameters and returns a paginated result set. A minimal search by name looks like:
https://data.brreg.no/enhetsregisteret/api/enheter
?navn=marketing
&naeringskode=73.110
&kommunenummer=0301
®istrertIMvaregisteret=true
&size=100
The response is nested JSON — company records live under _embedded.enheter, contact and address details sit in sub-objects, and NACE codes come back as arrays. The scraper flattens all of that into one row per company, de-duplicates by orgNumber, and walks the pages automatically until it hits your maxResults cap.
The parameter names map directly onto the actor’s input. In practice you set filters in a form rather than hand-building URLs:
{
"naeringskode": "73.110",
"kommunenummer": "0301",
"konkurs": "false",
"maxResults": 1000
}
That query returns solvent advertising agencies in Oslo. NACE codes use the nn.nnn format (62.010 software, 69.201 accounting, 47.111 grocery); kommunenummer is a 4-digit municipality code (0301 Oslo, 4601 Bergen, 5001 Trondheim). If you don’t know the codes, run a free-text query first and read the industryCode and municipalityCode columns off the output.
Director names come from a second endpoint. Turn on includeRoles and the actor fetches each company’s /roller record to pull ceoName and chairName. That’s one extra request per company, so rolesConcurrency (default 6) controls how many run in parallel.
For anything the built-in filters don’t cover, there’s an escape hatch: extraParams passes any other supported Enhetsregisteret query parameter through as a raw key/value pair. If brreg exposes a filter the form doesn’t surface — an institutional sektorkode, a niche registration attribute — you can still use it without waiting on the tool to add a dedicated field. It’s the difference between a form that’s convenient and one that’s also complete.
▶ Run the Brreg Norway Company Scraper on Apify — filter Enhetsregisteret by industry, municipality, employees and VAT status, then export a clean company list to CSV or Excel. No API key, no login.
The access reality
The registry itself is genuinely open — no key, no login, no captcha, no rate-limit registration — but there are three hard constraints you have to design around.
The 10,000-record ceiling. Deep pagination is capped at roughly 10k records per query. That’s an Enhetsregisteret limit, not a scraper limit, and no amount of retrying gets you past it. If a broad filter (say, all AS companies nationwide) would exceed that, you have to split the run — by municipality, postcode, or registration-date range — and combine the datasets afterward.
Contact-detail fill rate is low on broad queries. email, phone, mobile and website only exist when the company chose to register them. Across a wide, unfiltered slice, fill rate is often single-digit percent — many entries are dormant sole proprietorships that never added contact info. The fix is to narrow to active firms: filter registrertIMvaregisteret=true (VAT-registered companies are trading and far more likely to have a contact record) and konkurs=false (solvent). That trade of raw volume for contactability is the single most important lever for lead quality.
Main entities only. The actor scrapes main companies (/enheter). Sub-units and business locations (/underenheter) — individual branches, shops, sites — are out of scope. If you need per-location data, this isn’t the tool.
Routing goes through Apify’s datacenter proxy by default, which is plenty for an open government API — you don’t need residential IPs here.
Example output
One row per company, contact fields present when the registry has them:
{
"orgNumber": "914795753",
"name": "ABRAHAMSEN MARKETING",
"orgForm": "ENK",
"orgFormText": "Enkeltpersonforetak",
"industryCode": "73.110",
"industryText": "Reklamebyråvirksomhet",
"email": "[email protected]",
"phone": "924 31 366",
"website": null,
"city": "OSLO",
"municipalityCode": "0301",
"employees": null,
"vatRegistered": true,
"isBankrupt": false,
"underLiquidation": false,
"ceoName": null,
"registeredDate": "2015-01-14",
"url": "https://data.brreg.no/enhetsregisteret/api/enheter/914795753"
}
Note that website and ceoName are null here — the first because this company registered no site, the second because includeRoles wasn’t on for this run.
Who uses this
- B2B lead generation — build a targeted Norwegian prospect list by NACE code plus municipality, with email, phone and website attached where registered.
- Sales prospecting — filter to VAT-registered, solvent firms in a given employee range, enable role enrichment, and reach the daglig leder or styreleder directly.
- Market research — count and profile companies by industry, region, sector and founding date to size a Norwegian market segment.
- KYC, compliance and due diligence — verify org numbers, VAT status and bankruptcy / liquidation flags against the official source of record.
- Competitor mapping — pull every company in a vertical or town and benchmark them on size, status and age.
- CRM enrichment — look companies up by org number and append canonical registry fields to records you already hold.
- New-business monitoring — set a
fraRegistreringsdatoEnhetsregisteretstart date to surface freshly founded Norwegian companies for early outreach.
Cost and effort: build vs. managed
You can build this yourself — the API is open, so a script that hits data.brreg.no, walks pages and flattens the JSON is a day’s work for a competent engineer. The cost isn’t the first version; it’s everything after: handling the nested contact/address sub-objects, deduping by org number, chaining the /roller lookups for director names without hammering the endpoint, splitting queries around the 10k cap, and re-checking it all when brreg tweaks a field. Then it’s yours to maintain forever.
The managed actor is pay-per-result: a fraction of a cent per company row plus a trivial start fee. A 1,000-company industry-and-town query lands in the low single digits of dollars, role enrichment included. For most sales and research teams the deciding factor isn’t the compute bill — it’s not spending the engineering hours on registry plumbing.
Common pitfalls
Specific gotchas when working with Enhetsregisteret data:
- Don’t treat empty contact fields as errors. A null
emailmeans the company never registered one, not that the scrape failed. Filter for VAT-registered firms if you need high fill rates. - Split around the 10k cap deliberately. If your segment is large, partition by
kommunenummeror registration-date range up front — discovering the ceiling mid-run wastes the run. - Norwegian legal forms matter for targeting.
AS(aksjeselskap) are limited companies with real operations;ENK(enkeltpersonforetak) are sole proprietorships, often one person. Filterorganisasjonsformif you only want incorporated companies. - Phone falls back to mobile. The
phonefield uses the registered landline, or the mobile if no landline exists. Keepmobiletoo if you want to distinguish them. - Role enrichment is slower and adds a request per company. Only enable
includeRoleswhen you actually need director names, and tunerolesConcurrencyfor large runs. - Bankruptcy and liquidation are separate flags.
isBankrupt(konkurs) andunderLiquidation(underAvvikling) are distinct states — check both if you’re screening for financial health.
Wrapping up
The Enhetsregisteret is a rare thing: a complete, official, free company registry with no access wall. The work is entirely in the shaping — flattening the nested JSON, deduping, chaining role lookups, and navigating the 10k pagination cap. If you need Norwegian company data once, the API is worth learning. If you need repeatable, filtered lead lists exported to a spreadsheet, let a managed actor carry the plumbing.
▶ Open the Brreg Norway Company Scraper on Apify — one run yields a de-duplicated list of Norwegian companies with org number, industry, contact details and optional CEO / chair names, exportable to CSV, Excel or JSON. No API key or login. Start on Apify’s free monthly credit.
Related guides
EU Company Registry Data Export — Germany, France, Netherlands
How to extract company-registry records from Handelsregister, INPI, and KvK in a unified schema — for KYC, B2B lead generation, and compliance workflows.
How to Scrape Allabolag.se Sweden Company Leads in 2026
Extract Swedish company data from allabolag.se — org number, revenue, CEO, phone and email — without an API key. A guide to bulk firmographics and B2B leads.
How to Scrape the Australia Business Register (ABN/ABR)
Bulk-export Australian business names, ABNs, status and registration dates from the official data.gov.au CKAN register — no API key, no browser, no captcha.