orakel
Docs navigation

Canonical

GET /api/companies/:orgNumber/group

Corporate group tree for a Norwegian company. Walks up to the root via parentOrgNumber, then returns all descendants.

Updated 2026-04-22

Request

GET /api/companies/:orgNumber/group

Parameter Type Required Description
orgNumber string yes Path parameter. 9-digit Norwegian org number.

Resolution: the handler walks parentOrgNumber up to 5 levels to find the group root, then returns the full tree via BFS, capped at 500 members. Only Norwegian records are supported — group structure is not available in the Finnish or Swedish registers via the free data set.

Response

{
  "root": {
    "orgNumber": "923609016",
    "name": "EQUINOR ASA",
    "orgFormCode": "ASA",
    "employeeCount": 22000,
    "children": [
      { "orgNumber": "987654321", "name": "EQUINOR ENERGY AS", "orgFormCode": "AS", "employeeCount": 4500, "children": [] }
    ]
  },
  "totalMembers": 47,
  "_sources": {
    "attribution": ["Brønnøysundregistrene"],
    "fields": {
      "companyCore": "Brønnøysundregistrene",
      "groupHierarchy": "Brønnøysundregistrene"
    }
  }
}

A single _sources block covers the whole tree — all hierarchy data comes from Brreg (parent/subsidiary linkage). See Attribution → _sources response field.

For companies with no parent and no subsidiaries, the response is a single-node tree with totalMembers: 1 and an explanatory message field.

Examples

curl

curl -H "Authorization: Bearer $ORAKEL_KEY" \
  https://orakel.cloud/api/companies/923609016/group

JavaScript

const res = await fetch(
  "https://orakel.cloud/api/companies/923609016/group",
  { headers: { Authorization: `Bearer ${process.env.ORAKEL_KEY}` } },
);
const { root, totalMembers } = await res.json();

Error modes

Status Meaning Action
400 orgNumber is not 9 digits Check the path segment
401 Missing or invalid API key Check the Authorization header
404 Company not in the database Call /api/companies/:orgNumber first to trigger a Brreg fetch
429 Rate or quota exceeded Back off

Rate limits

Per-key RPM per tier. A single group query may issue several DB passes; it still counts as one request against the quota.

Typical use cases

  • Mapping a target account to the full group for account-based selling.
  • Flagging records whose owner is already in your CRM (match on any orgNumber in the tree).
  • Due-diligence: find every subsidiary of a holding company.