Canonical
Brønnøysundregistrene
Norwegian central company register — firmographics, sub-units, and roles.
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 rolesGET /api/companies/:orgNumber— full company record. Norwegian companies not yet in the database are fetched from Brreg on the fly and cachedGET /api/companies/:orgNumber/group— corporate-group tree built fromparentOrgNumberGET /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
websiteis 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
Companydo not include sub-unit headcounts — aggregate acrosssubUnits[]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=NOtoGET /api/companies/:orgNumber— on a database miss Orakel fetches live from Brreg. - Dissolved and bankrupt companies are retained.
dissolvedAtmay be set while the record still appears in search results; filter onisBankruptorisBeingDissolvedif you want to exclude them. orgNumberis globally unique within Norway, but across the Nordic registries Orakel stores records under(country, orgNumber). Always passcountryexplicitly when querying a specific record from a multi-country client.- Brreg stores auditors as entity roles (
entityOrgNumberpopulated) rather than as person roles. Board roles are per-person.