Skip to main content

Data Sources

Norway uses a single official registry for all company data.
  • Bronnysundregistrene (BR-Reg / The Bronnoysund Register Centre) — Operated by the Norwegian government, BR-Reg maintains the Enhetsregisteret (Entity Register) and Foretaksregisteret (Business Register). It is the sole data source for all Norwegian entities. Accessed via a REST API (data.brreg.no/enhetsregisteret/api), it provides comprehensive company data including legal form, status, management roles, activity codes (NACE), employees, addresses, contact information, and sub-entities (establishments). The API covers all entity types: commercial companies, sole proprietorships, non-profits, and public institutions.
The BR-Reg REST API returns structured JSON data with a clean, flat structure. Company data, roles, and sub-entities are accessed through separate API endpoints. Roles data includes role groups (rollegrupper) containing individual role entries with type codes and person/entity details.

Company Identifiers

Query Identifiers

Company TypeSourceFormatExampleNotes
All entitiesBR-Reg9 digits (Organization Number)923609016Organisasjonsnummer, accepts spaces or dots as separators
Organization Number Format: The organization number is 9 digits. It can be entered in three formats: 923609016 (no separators), 923 609 016 (spaces), or 923.609.016 (dots). All formats are normalized internally by stripping separators. The display format uses dots: 923.609.016.

Identifiers in API Response

Once you retrieve company data, the identifiers object contains all available identifiers for that entity:
Identifier TypeFormatExampleFound In
organisasjonsnummer9 digits923609016All entities
vatNumber9 digits + MVA923609016MVAVAT-registered companies (auto-generated)
VAT Number Auto-Generation: The VAT number is automatically generated by appending MVA to the organization number when the company has registrertIMvaregisteret = true. It is not a separate identifier from the registry.

Search Capabilities

Search TypePatternExampleMatch TypeExpected Results
By Organization Number9 digits923609016ExactSingle company (1 result)
By Organization Number (spaces)3+3+3 digits923 609 016ExactSingle company (1 result)
By Organization Number (dots)3.3.3 digits923.609.016ExactSingle company (1 result)
By NameText string"Equinor"FuzzyMultiple results (up to 20)
Search Performance: Use identifier-based searches (organization number) for best performance and exact matching. Name searches query the BR-Reg REST API and may return multiple results.
Name search queries the BR-Reg REST API at /enheter?navn=.... Identifier searches (organization number) perform exact lookups via /enheter?organisasjonsnummer=... and are significantly faster.

Quirks & Gotchas

QuirkDetails
Organization number normalizationThe 9-digit organization number accepts three input formats: 123456789, 123 456 789, 123.456.789. All are normalized by stripping spaces and dots. The display format uses dots (123.456.789).
VAT number auto-generationVAT numbers are not stored in the registry. They are automatically generated by appending MVA to the organization number when registrertIMvaregisteret = true.
Deterministic role mappingAll 20 role type codes have pre-computed isLegalRepresentative and isOtherKeyPerson flags. No AI is involved in role classification.
Two-pass board member detectionBoard members (MEDL) are normally classified as Other Key Persons. However, if there is exactly one non-employee board member on the entire board, that person is promoted to Legal Representative as “Sole Board Member”. This requires counting all board members before classification.
Signing authority promotionBoard members with explicit signing authority (keywords: signatur, prokura, firmategn, alene) are promoted from Other Key Person to Legal Representative regardless of board size.
Employee representative detectionBoard members elected by employees (valgtAv.kode === 'AREP') or with employee-related keywords (ansatte, ansatterepresentant) are excluded from the single-member board count. They are always classified as Other Key Persons.
No shareholder or UBO dataThe BR-Reg public API does not expose ownership, shareholder, or beneficial ownership information.
Up to 3 NACE codesNorway provides up to 3 structured NACE activity codes (naeringskode1, naeringskode2, naeringskode3). These are official registry codes, never AI-inferred.
Address preferenceThe system prefers forretningsadresse (business address) over postadresse (postal address) for legalAddress. Establishments prefer beliggenhetsadresse (location address).
Registration date priorityRegistration date uses a preference chain: stiftelsesdato (founding date) > registreringsdatoEnhetsregisteret (entity register date) > oppstartsdato (start date).
Resigned roles filteredRoles with fratraadt = true (resigned) are excluded from both legal representatives and other key persons.
Phone number formattingNorwegian phone numbers are formatted to E.164 format by prepending +47 if the number is 8 digits and does not already include the country code.
Activity description sourcesActivity description is sourced from aktivitet (activity text array) first, falling back to vedtektsfestetFormaal (statutory purpose) if unavailable.
Financial years from separate endpointAnnual report availability is fetched from virksomhet.brreg.no (a different endpoint than the main API at data.brreg.no), parsing the regnskapsAarResponse from the HTML response.

Mappings

Company Status

Company status is determined deterministically from boolean flags in the BR-Reg API response. No AI inference is involved in status determination.
Local StatusEnglishStandardized StatusClosure ReasonNotes
AktivActiveActiveDefault status when no closure flags are set
KonkursBankruptcyClosedBankruptcykonkurs = true
Under avviklingUnder LiquidationUnder Insolvency ProceedingVoluntary DissolutionunderAvvikling = true
Under tvangsavvikling eller tvangsopplosningUnder Forced LiquidationUnder Insolvency ProceedingCourt OrderunderTvangsavviklingEllerTvangsopplosning = true
OpphortCeasedClosedOthernedleggelsesdato or slettedato is set
Status determination uses a priority chain: (1) konkurs (bankruptcy), (2) underAvvikling (voluntary liquidation), (3) underTvangsavviklingEllerTvangsopplosning (forced liquidation), (4) presence of nedleggelsesdato or slettedato (cessation/deletion date). If none apply, the company is Active.
Norway uses the organisasjonsform.kode from the BR-Reg API. The system translates the code to English using a deterministic pre-computed lookup table with 32 legal form codes. Legal form standardization (ISO 20275 code) is AI-enriched via the enrichLegalForm parser.
CodeNorwegian NameEnglish TranslationTypical Standardized
ASAksjeselskapPrivate Limited CompanyLimited Liability Company
ASAAllmennaksjeselskapPublic Limited CompanyCorporation
ENKEnkeltpersonforetakSole ProprietorshipSole Proprietorship
ANSAnsvarlig selskapGeneral PartnershipPartnership
DASelskap med delt ansvarGeneral Partnership with Shared LiabilityPartnership
KSKommandittselskapLimited PartnershipPartnership
NUFNorskregistrert utenlandsk foretakNorwegian Registered Foreign CompanyOther
ESEKEuropeisk selskapEuropean CompanyCorporation
CodeNorwegian NameEnglish TranslationTypical Standardized
SASamvirkeforetakCooperativeCooperative
BASelskap med begrenset ansvarCooperativeCooperative
BBLBoligbyggelagHousing CooperativeCooperative
BRLBorettslagCondominiumCooperative
FLIForening/lag/innretningAssociationNonprofit Organization
STIStiftelseFoundationNonprofit Organization
KIRKDen norske kirkeChurchNonprofit Organization
PKPensjonskassePension FundOther
CodeNorwegian NameEnglish TranslationTypical Standardized
FKFFylkeskommunalt foretakMunicipal EnterpriseGovernment-Owned Entity
KFKommunalt foretakMunicipal EnterpriseGovernment-Owned Entity
IKSInterkommunalt selskapInter-Municipal CompanyGovernment-Owned Entity
SFStatsforetakState EnterpriseGovernment-Owned Entity
KOMMKommuneMunicipalityGovernment-Owned Entity
FYLKFylkeskommuneCountyGovernment-Owned Entity
STATStatenStateGovernment-Owned Entity
OPMVOffentlig administrasjonPublic AdministrationGovernment-Owned Entity
CodeNorwegian NameEnglish TranslationTypical Standardized
SPASparebankSavings BankOther
GFSGjensidig forsikringsselskapCo-ownershipOther
SAMTingsrettslig sameieCo-ownershipOther
TVAMTvungent sameieForced Co-ownershipOther
KBOKonkursboBankruptcy EstateOther
PREPartrederiPartnership with Divided ResponsibilityPartnership
VPFOVerdipapirfondSecurities FundOther
IKJPIkke-juridisk personNon-Legal EntityOther
ORGLAnnen organisasjonsformOther Organizational FormOther
The English translation of legal form codes is deterministic (pre-computed lookup table with 32 entries). However, the standardized category and ISO 20275 code assignment are AI-enriched via the enrichLegalForm parser, so exact standardized mappings may evolve.
Legal representatives are extracted deterministically from the BR-Reg roles API endpoint (/enheter/{id}/roller). The system uses a pre-computed mapping of 20 role type codes with explicit isLegalRepresentative flags. A two-pass algorithm handles board member classification.
CodeNorwegian NameEnglish TranslationMapped Role
MEDLStyremedlemBoard MemberBoard Member
VARAVaramedlemDeputy Board MemberBoard Member
REVIRevisorAuditorAuditor
OBSObservatorObserverBoard Observer
FFORForretningsforerBusiness ManagerBusiness Manager
REGNRegnskapsforerAccountantAccountant
DTPRDeltaker med proratarisk ansvarPartner with Pro Rata LiabilityPartner
BOBEBostyrerBankruptcy Trustee/AdministratorAdministrator
CodeNorwegian NameEnglish TranslationNotes
KONTKontaktpersonContact PersonNot a key person
ADOSAdministrativ enhet - offentlig sektorAdministrative Unit - Public SectorNot a key person
KDEBKonkursdebitorBankruptcy DebtorNot a key person

Special Board Member Logic

The system implements a two-pass algorithm for board member classification:
ScenarioClassificationNotes
Board member (MEDL) with signing authorityLegal RepresentativeKeywords: signatur, prokura, firmategn, alene
Single non-employee board member on the boardLegal RepresentativePromoted to “Sole Board Member” when there is exactly 1 non-employee board member
Board member in multi-member boardOther Key PersonStandard classification
Employee representative board memberOther Key PersonDetected by valgtAv.kode === 'AREP' or employee-related keywords
Two-Pass Board Member Detection: The system first counts all non-employee, non-deputy board members (LEDE, NEST, MEDL). If exactly one is found, that board member is promoted to Legal Representative as “Sole Board Member”. This requires full context of all roles before classification decisions are made.
Role classification is fully deterministic using the pre-computed ROLE_TYPES mapping. No AI inference is involved in determining whether a person is a legal representative or other key person. Only the English translation enrichment step uses AI (for standardized role mapping to Topograph enum).

Shareholders

Shareholder data is not available from the BR-Reg API. The Norwegian business registry does not expose ownership or shareholder information through its public API.
Unlike Denmark (which provides shareholder data via CVR) or the Netherlands (which extracts shareholder data from trade register extracts via AI parsing), Norway’s public registry API does not include any ownership data.

Other Key Persons

Other key persons include board members, auditors, accountants, business managers, and other non-executive roles. Both individual and corporate entities can hold these roles (e.g., an auditing firm as REVI).

Ultimate Beneficial Owners

UBO data is not available from the BR-Reg API. The Norwegian business registry does not expose beneficial ownership information through its public API endpoints.

Activity Codes

Norway uses the SN2007 (Standard for naeringsgruppering) classification, which is the Norwegian implementation of NACE Rev. 2. Activity codes come directly from the BR-Reg API structured fields (naeringskode1, naeringskode2, naeringskode3).
SN2007 (Norwegian) -> NACE Rev. 2 (European) -> ISIC Rev. 4 (International)
ClassificationSourceExampleAI Inferred?
NACEnaeringskode1.kode (primary)62.010No (official from registry)
NACEnaeringskode2.kode (secondary)49.500No (official from registry)
NACEnaeringskode3.kode (tertiary)35.110No (official from registry)
ISICDerived from NACE via enrichActivities parser6201Sometimes
AI Enrichment: NACE codes are never AI-inferred for Norway — they come directly from the registry as structured data. ISIC codes are derived from NACE via the enrichActivities parser, which may use AI when formal mapping tables do not cover the specific code. Every activity item includes an isAIInferred flag.
Multiple Activity Codes: Norway supports up to 3 NACE activity codes per company: naeringskode1 (primary business activity), naeringskode2 (secondary), and naeringskode3 (tertiary). Each includes both the code and a Norwegian description.

Data Availability

Data Availability Matrix

Data TypeCommercial CompaniesSole EntrepreneursNon-ProfitsPublic EntitiesNotes
Company Profile✅ Async✅ Async✅ Async✅ AsyncFull data from BR-Reg API
Legal RepresentativesDeterministic from roles API
Other Key Persons⚠️ LimitedBoard members, auditors, etc.
ShareholdersNot available from BR-Reg
Ultimate Beneficial OwnersNot available from BR-Reg
EstablishmentsFrom sub-entities (underenheter)
Activity CodesNACE from naeringskode fields
Legend: ✅ Available | ❌ Not Available | ⚠️ Conditionally Available | Async = Asynchronous processing

Documents

All Companies

Document TypeAPI CategoryFormatSKUAvailabilityNotes
Enhetsutskrift (Trade Register Extract)tradeRegisterExtractPDFNOR_REGISTER_EXTRACT✅ Always availableOfficial extract (~30 sec delivery)
Arsregnskap (Annual Report)financialStatements[]PDFNOR_ANNUAL_REPORT✅ When filedAnnual reports by fiscal year (~30 sec delivery)
Trade Register Extract: The Enhetsutskrift is always available for any registered entity. It is retrieved from the official register and generated as a PDF with an estimated delivery time of ~30 seconds.
Annual Reports: Financial statements are listed by querying the virksomhet.brreg.no endpoint for available financial years. Each year with an annual report generates a separate document entry with period information (start and end dates of the fiscal year). The document name follows the pattern Arsregnskap {year} (e.g., “Arsregnskap 2024”). Annual reports are fetched and cached permanently since they do not change once published.

Example API Responses

All examples use placeholder data. Query: POST /company with { "id": "<id>", "countryCode": "NO", "dataPoints": ["companyProfile"] }
{
  "company": {
    "id": "123456789",
    "countryCode": "NO",
    "identifiers": { "organisasjonsnummer": "123456789", "vatNumber": "123456789MVA" },
    "legalName": "Nordisk Teknologi AS",
    "registrationDate": "2015-06-15",
    "activityDescription": "Utvikling og salg av programvare.",
    "status": { "localName": "Aktiv", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Aksjeselskap", "englishTranslation": "Private Limited Company", "standardized": "Limited Liability Company" },
    "employeeCount": { "exact": 25 },
    "activities": {
      "NACE": [
        { "code": "62.010", "description": "Programmeringstjenester", "isAIInferred": false },
        { "code": "62.020", "description": "Konsulentvirksomhet tilknyttet informasjonsteknologi", "isAIInferred": false }
      ],
      "ISIC": [
        { "code": "6201", "description": "Computer programming activities", "isAIInferred": true }
      ]
    },
    "legalAddress": { "addressLine1": "Karl Johans gate 10", "city": "OSLO", "postalCode": "0154", "region": "OSLO", "countryCode": "NO" },
    "phones": ["+4712345678"],
    "website": "https://www.example.no"
  },
  "legalRepresentatives": [
    { "type": "individual", "role": { "localName": "Daglig leder", "englishTranslation": "Managing Director", "standardized": "CEO" }, "individual": { "name": { "fullName": "Lars Hansen", "firstName": "Lars", "lastName": "Hansen" }, "birthDate": { "year": 1980, "month": 3, "day": 15 } } },
    { "type": "individual", "role": { "localName": "Styrets leder", "englishTranslation": "Chairman", "standardized": "Chairman of the Board" }, "individual": { "name": { "fullName": "Kari Olsen", "firstName": "Kari", "lastName": "Olsen" } } }
  ],
  "otherKeyPersons": [
    { "type": "individual", "role": { "localName": "Styremedlem", "englishTranslation": "Board Member", "standardized": "Board Member" }, "individual": { "name": { "fullName": "Erik Berg", "firstName": "Erik", "lastName": "Berg" } } },
    { "type": "company", "role": { "localName": "Revisor", "englishTranslation": "Auditor", "standardized": "Auditor" }, "company": { "id": "987654321", "legalName": "Norsk Revisjon AS" } }
  ],
  "establishments": [
    { "name": "Nordisk Teknologi AS Avd Oslo", "id": "912345678", "active": true, "address": { "city": "OSLO", "postalCode": "0154", "countryCode": "NO" } }
  ]
}
{
  "company": {
    "id": "987654321",
    "countryCode": "NO",
    "identifiers": { "organisasjonsnummer": "987654321" },
    "legalName": "Hansen Konsult",
    "registrationDate": "2020-01-10",
    "activityDescription": "Bedriftsradgivning og administrativ radgivning.",
    "status": { "localName": "Aktiv", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Enkeltpersonforetak", "englishTranslation": "Sole Proprietorship", "standardized": "Sole Proprietorship" },
    "employeeCount": { "exact": 1 },
    "activities": {
      "NACE": [{ "code": "70.220", "description": "Bedriftsradgivning og annen administrativ radgivning", "isAIInferred": false }],
      "ISIC": [{ "code": "7020", "description": "Management consultancy activities", "isAIInferred": true }]
    },
    "legalAddress": { "addressLine1": "Storgata 5", "city": "BERGEN", "postalCode": "5003", "region": "BERGEN", "countryCode": "NO" }
  },
  "legalRepresentatives": [
    { "type": "individual", "role": { "localName": "Innehaver", "englishTranslation": "Owner", "standardized": "Partner" }, "individual": { "name": { "fullName": "Morten Hansen", "firstName": "Morten", "lastName": "Hansen" } } }
  ]
}
Note: Sole proprietorships (ENK) have the owner (Innehaver) as the only legal representative. No shareholders or board members are present.
{
  "company": {
    "id": "111222333",
    "countryCode": "NO",
    "identifiers": { "organisasjonsnummer": "111222333" },
    "legalName": "Gammel Bedrift AS (konkurs)",
    "registrationDate": "2010-05-20",
    "status": {
      "localName": "Konkurs",
      "active": false,
      "statusDetailsBeta": {
        "status": "CLOSED",
        "closureReason": "BANKRUPTCY",
        "additionalInfo": "Company is in bankruptcy proceedings"
      }
    },
    "legalForm": { "localName": "Aksjeselskap", "englishTranslation": "Private Limited Company", "standardized": "Limited Liability Company" },
    "legalAddress": { "addressLine1": "Industrivegen 20", "city": "TRONDHEIM", "postalCode": "7030", "countryCode": "NO" }
  },
  "legalRepresentatives": [],
  "otherKeyPersons": [
    { "type": "individual", "role": { "localName": "Bostyrer", "englishTranslation": "Bankruptcy Trustee/Administrator", "standardized": "Administrator" }, "individual": { "name": { "fullName": "Advokat Nilsen", "firstName": "Advokat", "lastName": "Nilsen" } } }
  ]
}
Note: Bankrupt companies have konkurs = true, status is CLOSED with closure reason BANKRUPTCY. A bankruptcy trustee (Bostyrer, code BOBE) may appear as an other key person.
{
  "company": {
    "id": "555666777",
    "countryCode": "NO",
    "identifiers": { "organisasjonsnummer": "555666777" },
    "legalName": "Norsk Idrettslag",
    "registrationDate": "2005-03-01",
    "activityDescription": "Fremme idrettsaktiviteter og organisere lokale sportsarrangementer.",
    "status": { "localName": "Aktiv", "active": true, "statusDetailsBeta": { "status": "ACTIVE" } },
    "legalForm": { "localName": "Forening/lag/innretning", "englishTranslation": "Association", "standardized": "Nonprofit Organization" },
    "employeeCount": { "exact": 3 },
    "activities": {
      "NACE": [{ "code": "93.120", "description": "Idrettslag og -klubber", "isAIInferred": false }],
      "ISIC": [{ "code": "9312", "description": "Activities of sports clubs", "isAIInferred": true }]
    },
    "legalAddress": { "addressLine1": "Idrettsveien 12", "city": "STAVANGER", "postalCode": "4001", "region": "STAVANGER", "countryCode": "NO" }
  },
  "legalRepresentatives": [
    { "type": "individual", "role": { "localName": "Styrets leder", "englishTranslation": "Chairman", "standardized": "Chairman of the Board" }, "individual": { "name": { "fullName": "Ingrid Bakke", "firstName": "Ingrid", "lastName": "Bakke" } } }
  ],
  "otherKeyPersons": [
    { "type": "individual", "role": { "localName": "Styremedlem", "englishTranslation": "Board Member", "standardized": "Board Member" }, "individual": { "name": { "fullName": "Tor Eriksen", "firstName": "Tor", "lastName": "Eriksen" } } }
  ]
}
Note: Non-profits (FLI) are retrieved from the same BR-Reg API as commercial companies. They may have board members, chairman, and auditors. No shareholders or UBOs.
Documents are returned when "dataPoints": ["availableDocuments"] is requested.
API CategoryDocumentNotes
tradeRegisterExtractEnhetsutskrift PDFAlways available (~30 sec)
financialStatements[]Arsregnskap (annual reports by year)When filed, with period data