orakel
Docs navigation

Canonical

Shareholders

Shareholder positions from Aksjonærregisteret. Forward (by investee) and reverse (by owner) lookups.

Updated 2026-04-21

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 /shareholders calls to trace ultimate beneficial ownership.
  • M&A research: by-owner to enumerate a holding company's portfolio.
  • Change detection: diff year against year - 1 to surface transfers.