Canonical
Aksjonærregisteret
Shareholder ownership for Norwegian AS/ASA companies — who owns what, annual snapshot.
Source: Aksjonærregisteret (Skatteetaten — Norwegian Tax Administration) Data: Shareholders and ownership percentages for AS/ASA companies License: NLOD 2.0 (Norwegian Licence for Open Government Data) Attribution required: Yes — credit "Skatteetaten / Aksjonærregisteret" Link: https://www.skatteetaten.no/skjema/aksjonaerregisteret/ Update cadence: Annual snapshot, typically released March/April for the previous fiscal year
What it is
Aksjonærregisteret is the official shareholder register for Norwegian AS and ASA companies, maintained by the Norwegian Tax Administration. Each row records one shareholder position in one company at the snapshot date: the shareholder identity, the share class, and the number of shares held.
Orakel ingests the annual CSV release from Skatteetaten. The register is useful for group-structure analysis (who owns the parent of a group), beneficial-ownership mapping, and M&A research. See the GDPR section below for how personal-data obligations shape what Orakel stores and exposes.
Fields provided
| Field | Type | Notes |
|---|---|---|
orgNumber |
string | Investee company. Part of the composite key (country, orgNumber). |
shareholderName |
string | Shareholder display name (person or entity) |
shareholderOrgNumber |
string | 9-digit org number when the shareholder is a Norwegian entity; null for natural persons and foreign entities |
shareholderType |
string | "person" | "company" | "foreign" |
postalCode / location |
string | Stored only for entity shareholders (not natural persons) — see GDPR section |
shareClass |
string | e.g. A, B, ORDINÆR |
shareCount |
bigint | Shares held in this class |
totalSharesInCompany |
bigint | Total outstanding shares of this class for the company at snapshot, when supplied by the source |
year |
int | Snapshot year |
ownershipPct |
float | Computed at read time: shareCount / totalSharesInCompany × 100, to two decimals |
Unique key: (country, orgNumber, shareholderName, shareClass, year).
GDPR & personal data
This source contains personal data. Natural-person shareholders are identified by name; the register also carries birth year and postal area at source. Orakel's data-minimisation policy, documented in the full GDPR assessment, shapes what we store and return.
Legal basis. Processing is lawful under GDPR Art. 6(1)(f) — legitimate interest. The interest balancing test rests on four facts: the data is already publicly available via Skatteetaten, Orakel operates a B2B information service, Norwegian shareholders have a reasonable expectation that AS/ASA ownership is public, and the processing is in line with what established peers (Proff.no, Enin.ai, Bisnode) already do with the same source.
What Orakel stores.
- Shareholder name, share class, share count, snapshot year — for all shareholder types.
postalCodeandlocation— only for entity shareholders, never for natural persons.- Birth date / fødselsnummer — never stored. Filtered out at CSV import.
What Orakel returns.
GET /api/companies/:orgNumber/shareholdershides natural-person rows by default. They are returned only when the caller sets?includePersons=true.- All API traffic requires an authenticated key. There is no public web UI.
Retention. Snapshots older than three years are deleted when a new annual import completes. CSV source files are deleted after successful import. Backups rotate at 30 days.
Data-subject rights. Requests for access, rectification, erasure, or objection go to hello@orakel.cloud and are handled within 30 days. Rectification of source data is referred back to Skatteetaten. Erasure requests are assessed individually — because the underlying data is public, erasure may be refused where the legitimate interest balance still holds, and refusal is documented.
Endpoints that surface this data
GET /api/companies/:orgNumber/shareholders— shareholders of the given company for one or more snapshot years. Returns{ data, availableYears }. Natural persons hidden unlessincludePersons=trueis passed. Optionalyearparameter.GET /api/shareholders/by-owner?shareholderOrgNumber=<9-digit>— reverse lookup: every company a given entity owns shares in, sorted by share count. Optionalyearparameter. Entity shareholders only.
Limitations
- AS and ASA only. Sole proprietorships, foundations, associations, and municipal entities are not in scope.
- Annual snapshot. Intra-year changes (secondary transactions, new issuances) aren't captured until the next release.
- The raw feed can collapse small positions (<1%) into aggregate rows for large companies. Orakel imports what Skatteetaten publishes and does not reconstruct these.
Gotchas
- Foreign entity shareholders have no Norwegian
orgNumber. They are stored withshareholderOrgNumber = nullandshareholderType = "foreign"— match onshareholderNameif you need to aggregate. - Natural persons are identified publicly by name + postal area + birth year at source. Orakel's public shape is narrower — name only — which matches the privacy-preserving defaults above.
ownershipPctusestotalSharesInCompanyfrom the source where present; when it's missing Orakel falls back to the sum of stored positions for that(year, shareClass). The fallback can understate the denominator if small positions have been collapsed upstream.- Snapshot dates differ between the Skatteetaten release year and the fiscal year it refers to.
yearin Orakel is the fiscal year the snapshot describes.