orakel
Docs navigation

Canonical

Brønnøysundregistrene

Norwegian central company register — firmographics, sub-units, and roles.

Updated 2026-04-21

Source: Brønnøysundregistrene (Brreg) Data: Companies (Enhetsregisteret), sub-units (underenheter), roles (board, CEO, auditor) License: NLOD 2.0 (Norwegian Licence for Open Government Data) Attribution required: Yes — "Brønnøysundregistrene" must be credited on any redistribution Link: https://www.brreg.no Update cadence: Every 15 minutes (diff sync), monthly full snapshot

What it is

Brreg is Norway's central registry for businesses and organizations. Every legal entity registered in Norway — AS, ASA, ENK, NUF, foundations, municipalities, associations — has a record here, keyed by a 9-digit organization number.

Orakel ingests the full dataset and tracks changes through the Brreg updates feed. Every 15 minutes Orakel pulls new changes and upserts the affected records; once a month a full snapshot re-seeds the database to catch anything the feed missed.

Fields provided

Field Type Notes
orgNumber string (9 digits) Part of the composite key (country, orgNumber). For Brreg rows, country = "NO".
name string Official registered name
orgFormCode / orgFormDescription string AS, ASA, ENK, NUF, etc.
naceCode1 / naceDescription1 string Primary industry (NACE)
naceCode2 / naceCode3 string Up to two further industry codes
employeeCount int Registered employee count
hasRegisteredEmployees bool Some companies file without a count
businessAddress* strings Street, zip, city, municipality name, municipality number
postalAddress* strings Separate postal address where different
website string As registered with Brreg — not always current
phone string As registered with Brreg
parentOrgNumber string Immediate parent in a corporate group
foundingDate date Stiftelsesdato
registrationDate date Registreringsdato Enhetsregisteret
registeredInVat bool Registered in Merverdiavgiftsregisteret
registeredInBiz bool Registered in Foretaksregisteret
isBankrupt bool Konkurs flag
isBeingDissolved bool Under avvikling or tvangsavvikling
isInGroup bool Part of a corporate group
sectorCode / sectorDescription string Institusjonell sektorkode
subUnits[] records Underenheter — branch offices, each with its own orgNumber, location address, employee count, NACE code
roles[] records Board members, CEO, auditor and similar — see the Role entries below

Roles

Each role record carries:

Field Type Notes
roleGroupCode / roleGroupDescription string e.g. STYR (board)
roleTypeCode / roleTypeDescription string e.g. LEDE (chair), DAGL (CEO), REVI (auditor)
personFirstName / personMiddleName / personLastName string For natural-person role holders
personBirthDate date Full birth date as filed
entityOrgNumber / entityName string For entity role holders (e.g. auditor firms)
isResigned bool Fratraadt
isDeregistered bool
sortOrder int Rekkefolge — stable order within a role group

Endpoints that surface this data

  • GET /api/companies — search companies; returns Brreg firmographics plus embedded financials and active roles
  • GET /api/companies/:orgNumber — full company record. Norwegian companies not yet in the database are fetched from Brreg on the fly and cached
  • GET /api/companies/:orgNumber/group — corporate-group tree built from parentOrgNumber
  • GET /api/updates?since=<ISO date> — cursor-paginated feed of companies whose record changed after the given timestamp. Backed by Brreg's own updates feed.

Limitations

  • Brreg itself covers firmographics and roles. Financial statements live in regnskapsregisteret; shareholder data lives in aksjonaerregisteret.
  • Registered website is self-reported at registration and is frequently stale. Orakel runs a separate domain-enrichment pipeline (primaryDomain, enrichedDomains) to produce a verified domain.
  • Employee counts for the parent Company do not include sub-unit headcounts — aggregate across subUnits[] if you need a total.

Gotchas

  • The 15-minute diff sync can lag the public Brreg UI by a few minutes. For a guaranteed-fresh record, pass ?country=NO to GET /api/companies/:orgNumber — on a database miss Orakel fetches live from Brreg.
  • Dissolved and bankrupt companies are retained. dissolvedAt may be set while the record still appears in search results; filter on isBankrupt or isBeingDissolved if you want to exclude them.
  • orgNumber is globally unique within Norway, but across the Nordic registries Orakel stores records under (country, orgNumber). Always pass country explicitly when querying a specific record from a multi-country client.
  • Brreg stores auditors as entity roles (entityOrgNumber populated) rather than as person roles. Board roles are per-person.