Canonical
Shareholders
Shareholder positions from Aksjonærregisteret. Forward (by investee) and reverse (by owner) lookups.
Data source: Aksjonærregisteret (Skatteetaten). Annual snapshot, Norwegian AS and ASA only. Natural-person rows are hidden by default under the GDPR data-minimisation policy.
GET /api/companies/:orgNumber/shareholders
Request
| Parameter | Type | Required | Description |
|---|---|---|---|
orgNumber |
string | yes | Path parameter. 9-digit org number. |
year |
integer | no | Filter to one snapshot year (e.g. 2024). Omit to return all years. |
includePersons |
boolean | no | Default false. When true, natural-person shareholders are included. See the GDPR section before enabling. |
Response
{
"data": [
{
"shareholderName": "HOLDING AS",
"shareholderOrgNumber": "987654321",
"shareholderType": "company",
"shareClass": "Ordinære aksjer",
"shareCount": 50000,
"totalSharesInCompany": 100000,
"year": 2024,
"ownershipPct": 50.0
}
],
"availableYears": [2024, 2023, 2022]
}ownershipPct is computed at read time as shareCount / totalSharesInCompany × 100. When the source omits totalSharesInCompany, Orakel falls back to the sum of stored positions for that (year, shareClass).
GET /api/shareholders/by-owner
Reverse lookup: every investee held by a given shareholder org.
Request
| Parameter | Type | Required | Description |
|---|---|---|---|
shareholderOrgNumber |
string | yes | 9-digit org number of the shareholder. Entity shareholders only — natural persons have no org number. |
year |
integer | no | Filter to one snapshot year. |
Response
{
"shareholderOrgNumber": "987654321",
"data": [
{
"orgNumber": "912345678",
"companyName": "SUBSIDIARY AS",
"orgFormCode": "AS",
"employeeCount": 12,
"shareClass": "A",
"shareCount": 1000,
"totalSharesInCompany": 1000,
"year": 2024,
"ownershipPct": 100.0
}
]
}Examples
curl
curl -H "Authorization: Bearer $ORAKEL_KEY" \
"https://orakel.cloud/api/companies/923609016/shareholders?year=2024"
curl -H "Authorization: Bearer $ORAKEL_KEY" \
"https://orakel.cloud/api/shareholders/by-owner?shareholderOrgNumber=987654321"JavaScript
const res = await fetch(
"https://orakel.cloud/api/companies/923609016/shareholders?year=2024",
{ headers: { Authorization: `Bearer ${process.env.ORAKEL_KEY}` } },
);
const { data, availableYears } = await res.json();Error modes
| Status | Meaning | Action |
|---|---|---|
| 400 | orgNumber is not 9 digits; shareholderOrgNumber missing or malformed |
Check the parameter |
| 401 | Missing or invalid API key | Check the Authorization header |
| 429 | Rate or quota exceeded | Back off |
Rate limits
Per-key RPM per tier.
Typical use cases
- Group mapping: chain
/shareholderscalls to trace ultimate beneficial ownership. - M&A research:
by-ownerto enumerate a holding company's portfolio. - Change detection: diff
yearagainstyear - 1to surface transfers.