Canonical
Regnskapsregisteret
Annual financial statements for Norwegian companies — revenue, profit, balance sheet, computed ratios.
Source: Regnskapsregisteret (part of Brønnøysundregistrene) Data: Annual financial statements for AS/ASA companies — income statement, balance sheet License: NLOD 2.0 (Norwegian Licence for Open Government Data) Attribution required: Yes — credit "Brønnøysundregistrene / Regnskapsregisteret" Link: https://w2.brreg.no/regnskap/ Update cadence: Continuous (chunked background sync); the most recent fiscal year typically lands in Regnskapsregisteret six months after year-end
What it is
Regnskapsregisteret is the official register of annual financial statements for Norwegian companies that have a filing obligation — primarily AS and ASA. Each filing covers one fiscal period and contains an income statement and balance sheet in the currency the company reports in (usually NOK).
The upstream Regnskapsregisteret API exposes only the most recent filed year per company per fetch — not the full filing history. Orakel stores each fetched year as a Financial record and retains prior years across sync runs, so multi-year depth accumulates passively (~1 year per calendar year of operation). Deeper history (older annual filings, full notes, paper-only submissions) is only available via Brreg's paid Regnskapsregisteret archive, which Orakel does not ingest — see the paid-data policy. The API is flagged as preview by Brreg — individual lookups can fail — so Orakel persists what it has and retries.
Fields provided
| Field | Type | Notes |
|---|---|---|
orgNumber |
string | Part of the composite key (country, orgNumber) on the parent company |
regnskapstype |
string | Filing type — e.g. SELSKAP (company) vs. KONSERN (consolidated) |
periodFrom / periodTo |
date | Fiscal period start and end. Often a calendar year, but not always. |
currency |
string | Reporting currency as filed (most filings are NOK) |
revenue |
float | Sum driftsinntekter |
operatingCosts |
float | Sum driftskostnad |
operatingResult |
float | Driftsresultat |
netFinancials |
float | Netto finans |
preTaxProfit |
float | Ordinært resultat før skattekostnad |
netResult |
float | Årsresultat |
totalAssets |
float | Sum eiendeler |
totalEquity |
float | Sum egenkapital |
totalDebt |
float | Sum gjeld |
syncedAt |
datetime | Last time Orakel fetched this filing |
Computed on every response
Company and search endpoints attach computed ratios to each Financial record. These are not stored in the database — they are derived at read time from the fields above.
| Field | Formula | Notes |
|---|---|---|
ratios.profitMargin |
netResult / revenue |
Rounded to 4 decimals |
ratios.operatingMargin |
operatingResult / revenue |
|
ratios.returnOnAssets |
netResult / totalAssets |
|
ratios.returnOnEquity |
netResult / totalEquity |
|
ratios.equityRatio |
totalEquity / totalAssets |
|
ratios.debtToEquityRatio |
totalDebt / totalEquity |
|
revenueGrowthYoY |
(revenue_t − revenue_t-1) / abs(revenue_t-1) |
Compared against the previous filed year in the same series |
Each ratio returns null when the denominator is zero or either operand is missing.
Endpoints that surface this data
GET /api/companies/:orgNumber— the company record includesfinancials[]sorted newest first, with ratios and YoY growth attachedGET /api/companies— search results include up to the two most recent filings per company, with ratios attachedGET /api/updates?since=<ISO date>— companies whose record changed include their latest filing
There is no standalone /api/financials endpoint; financials are always returned embedded on the parent company.
Limitations
- Only companies with a statutory filing obligation appear here — AS, ASA, and a few other forms. Sole proprietorships (ENK) do not file and have no financial records.
- Denormalized
latestRevenueNOKon the company row is updated during financial sync and used for tier revenue filters. It trails the most recent filing until the next sync pass. - Computed ratios return
nullwhen the denominator is zero or the underlying number is missing. Do not treatnullas a neutral value. - The Regnskapsregisteret API is flagged as preview by Brreg. Occasional 5xx responses are retried with exponential backoff; a sustained outage shows up as stale
syncedAtvalues.
Gotchas
- A full financial sync takes roughly ten hours for the AS/ASA population. The job is split into chunks and runs every 30 minutes, resuming from the last processed
orgNumber, so it survives deploys. - Year-depth is emergent. A single sync fetches the latest filing only, so a company synced for the first time today returns one year. Multi-year coverage grows as Orakel keeps running — expect one new year per calendar year of operation, not a deep backfill. If a deal requires long historical runs, price Brreg's paid archive into it.
- Fiscal years don't always align to calendar years. Use
periodFrom/periodTorather than inferring a year from the filing. - A single company can have both a
SELSKAPfiling and aKONSERN(consolidated) filing for the same period. They are stored as separate records, uniquely keyed on(country, orgNumber, regnskapstype, periodFrom, periodTo). - Currency is recorded as filed. A NOK-denominated filing and a EUR-denominated filing for the same group can appear side by side — always check
currencybefore aggregating across companies.