Skip to main content

Enhetsregisteret — underenheter (alle)

Brønnøysundregistrene logo
BetaNLODPowers 2 viewsNo fixed time range· daily

Enhetsregisteret — underenheter (alle)

Brønnøysundregistrene · brreg-underenheter

Brønnøysundregistrene's underenheter register holds every sub-unit registered under a parent organisation — local branches, establishments and divisions (organisasjonsform BEDR and others) — around 867,000 of them (measured 2026-10-04). Brreg regenerates a complete gzipped JSON export daily; Atlas downloads that file, streams it, and stores each record verbatim as jsonb in `raw.brreg_underenheter_snapshot`, keyed on the sub-unit's own organisasjonsnummer. This is the sibling of brreg-enheter-alle (the parent-entity register) and was named as a follow-on when that source shipped (PLAN-001, INVESTIGATE-all-brreg-organisations.md): deferred until enheter's own bulk+change-feed machinery had run in production, which it has. Some organisations — including local branches of unitary NGOs such as Frelsesarmeen and Kirkens Bymisjon — are registered as underenheter rather than as enheter, so a copy of enheter alone has a population gap exactly where Atlas's NGO work cares (docs/research/ngo-research/ingestion-specs/brreg-underenheter.md). This is the **bootstrap** load: a complete point-in-time copy. Keeping it current is brreg-underenheter-oppdateringer's job (`/oppdateringer/underenheter`), which reads only what moved. Nothing is flattened, renamed or re-encoded on the way in. Typed columns for the fields Atlas actually queries belong in dbt.

Provenance​

PublisherBrønnøysundregistrene
Upstream IDenhetsregisteret-underenheter
LicenseNLOD
PeriodicityP1D
EU Data ThemeGOVE
AttributionInneholder data under norsk lisens for offentlige data (NLOD) tilgjengeliggjort av Brønnøysundregistrene
Methodology
Source file: GET https://data.brreg.no/enhetsregisteret/api/underenheter/lastned — one gzipped, pretty-printed JSON array, regenerated daily. Measured 2026-10-04: 867,024 records live via the API (`?size=1`'s page.totalElements); the bulk file's own count will differ by the day's churn, the same way enheter's bulk file and live API disagree (see brreg-enheter-alle's methodology_notes) — not a defect in either number. Same streaming approach as brreg-enheter-alle and the same reason: the file is one JSON array, not newline-delimited, and whole-file JSON.parse would need the entire document resident. No delimited format anywhere in the path; a test asserts a record containing a pipe, a newline and a double quote survives byte-identical. Personal names can appear in this register for the same reason as enheter (roles, sole proprietorships as sub-units) — the same 2026-09-11 ruling from Terje that they are lawfully public applies here; this is the same register, not a new question.

Used in Atlas views​

These Atlas views (api_v1.* PostgREST endpoints) include this dataset in their input. Click through for the sample query, column list, and lineage.

Joined with​

Datasets that co-occur with this one inside Atlas's dbt models — the datasets you'd typically combine with this one in a real query.

Dimensions​

CodeMeaningValue formatNotes
organisasjonsnummerThe sub-unit's own nine-digit national identifier, and the table's primary key9 digits, leading zeros significant — always text, never a numberDistinct from the parent's organisasjonsnummer, which lives inside doc as overordnetEnhet (a plain string field, verified live 2026-10-04 — not a nested object carrying its own organisasjonsnummer key). Stable for the life of the sub-unit and retained after deletion.
docThe upstream Underenhet object exactly as Brreg published itjsonb objectNot flattened and not indexed, for the same measured reason as brreg_enheter_snapshot.doc. Contains navn, organisasjonsform, overordnetEnhet, beliggenhetsadresse, naeringskode1, oppstartsdato, nedleggelsesdato and more.
snapshot_file_dateThe date of the bulk file this row was loaded fromdate, or null when the download sent no Last-ModifiedProvenance of the transfer, not of the sub-unit.
loaded_atWhen Atlas last wrote this rowtimestamptzUpdated by every upsert, so it tracks Atlas's load rather than any upstream event.

Sample query​

Ingested, not yet published. Atlas holds this source but no published relation carries it yet, so there is no query to run against the public API. Its rows are in Atlas; the modelling that would expose them has not been done. See meta_sources.served_as — an empty value is exactly this state.

Citation​

Recommended citation
Brønnøysundregistrene. (n.d.). Enhetsregisteret — underenheter (alle). Retrieved from https://data.brreg.no/enhetsregisteret/api/dokumentasjon. Available in Atlas at https://atlas.sovereignsky.no/datasets/brreg-underenheter.
BibTeX
@misc{atlas_brreg_underenheter,
author = {Brønnøysundregistrene},
title = {Enhetsregisteret — underenheter (alle)},
year = {n.d.},
url = {https://data.brreg.no/enhetsregisteret/api/dokumentasjon},
note = {Available in Atlas at https://atlas.sovereignsky.no/datasets/brreg-underenheter}
}
Permalink
https://atlas.sovereignsky.no/datasets/brreg-underenheter

About this source​

Brønnøysundregistrene's underenheter register holds every sub-unit registered under a parent organisation — local branches, establishments and divisions (organisasjonsform BEDR and others) — around 867,000 of them (measured 2026-10-04). Brreg regenerates a complete gzipped JSON export daily; Atlas downloads that file, streams it, and stores each record verbatim as jsonb in `raw.brreg_underenheter_snapshot`, keyed on the sub-unit's own organisasjonsnummer. This is the sibling of brreg-enheter-alle (the parent-entity register) and was named as a follow-on when that source shipped (PLAN-001, INVESTIGATE-all-brreg-organisations.md): deferred until enheter's own bulk+change-feed machinery had run in production, which it has. Some organisations — including local branches of unitary NGOs such as Frelsesarmeen and Kirkens Bymisjon — are registered as underenheter rather than as enheter, so a copy of enheter alone has a population gap exactly where Atlas's NGO work cares (docs/research/ngo-research/ingestion-specs/brreg-underenheter.md). This is the **bootstrap** load: a complete point-in-time copy. Keeping it current is brreg-underenheter-oppdateringer's job (`/oppdateringer/underenheter`), which reads only what moved. Nothing is flattened, renamed or re-encoded on the way in. Typed columns for the fields Atlas actually queries belong in dbt.