Skip to main content

Enhetsregisteret — underenheter, oppdateringer (endringsfeed)

Brønnøysundregistrene logo
BetaNLODNo fixed time range· daily

Enhetsregisteret — underenheter, oppdateringer (endringsfeed)

Brønnøysundregistrene · brreg-underenheter-oppdateringer

Brønnøysundregistrene publishes every change to the underenheter register as its own ordered feed, independent of the enheter feed `brreg-oppdateringer` reads — a real bootstrap run against live data on 2026-10-04 seeded this feed's watermark at 21,390,729, an entirely separate counter from enheter's own feed. Atlas walks it forward from a durable watermark, recording each change in `raw.brreg_underenheter_oppdateringer` and the sub-unit's document at that moment in `raw.brreg_underenheter_versions`. This is what keeps the bulk snapshot (`brreg-underenheter`) from going stale. The snapshot is a point in time; a bulk file cannot express a deletion. Those arrive here, as `Sletting` and `Fjernet` change types — confirmed live 2026-10-04 (a 100-row sample at the current cursor held Ny 51, Endring 35, Sletting 14). The feed reaches back to its own id 1 (2018, same era as the enheter feed), so a missed cycle catches up completely on the next run.

Provenance​

PublisherBrønnøysundregistrene
Upstream IDenhetsregisteret-underenheter-oppdateringer
LicenseNLOD
PeriodicityP1D
EU Data ThemeGOVE
AttributionInneholder data under norsk lisens for offentlige data (NLOD) tilgjengeliggjort av Brønnøysundregistrene
Methodology
Walked by CURSOR ONLY — `?oppdateringsid=<last+1>&size=10000` — same trap as the enheter feed and verified against this one independently 2026-10-04: `page` is capped, `_links.next` is built with `page=`, and a caught-up response has no `_embedded` key at all rather than an empty array. 🔴 Uses `_embedded.oppdaterteUnderenheter` and `_links.underenhet`, NOT the enheter feed's `oppdaterteEnheter` / `_links.enhet` — upstream naming, not a design choice, and asserted in this source's own tests. The watermark lives in `raw.brreg_underenheter_feed_watermark` — its own single-row table, not a shared one with the enheter feed's watermark, because the two id spaces are independent. Same reasoning as the enheter feed for why this is a Postgres row and not a Dagster cursor. A run is capped at 50,000 changes (`BRREG_UNDERENHETER_FEED_MAX_CHANGES`), same reasoning as the enheter feed's cap.

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.

No Atlas views consume this dataset yet — it may be a reference table or recently added.

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.

No co-occurring datasets in Atlas yet.

Dimensions​

CodeMeaningValue formatNotes
oppdateringsidBrreg's monotonic change identifier for the underenheter feed, and the cursor it is walked bybigint, sparse🔴 Its own id space, not comparable to the enheter feed's oppdateringsid — a real bootstrap run against live data on 2026-10-04 seeded this feed's watermark at 21,390,729, an entirely separate counter from enheter's own. Sparse like the enheter feed's; never compute a backlog by subtracting ids, read page.totalElements at the cursor.
endringstypeWhat kind of change Brreg recordedNy, Endring, Sletting, Fjernet or UkjentSame five values as the enheter feed. Ny, Endring and Sletting all confirmed in a live 2026-10-04 sample at the current cursor. Stored verbatim and not constrained to an enum — a sixth value must land and be counted, not rejected at the door.
organisasjonsnummerThe sub-unit the change is about9 digits, leading zeros significant — always textJoins to raw.brreg_underenheter_snapshot. Retained after deletion.
docThe sub-unit's document as it stood when the change was receivedjsonb, or null when the entity fetch failed⚠️ For a Sletting/Fjernet this is NOT a full record, and it is not even consistently a stub. Confirmed live 2026-10-04: a Sletting (organisasjonsnummer 920045154) answers HTTP 200 with a 6-key stub (respons_klasse "SlettetUnderEnhet", slettedato set); a Fjernet (organisasjonsnummer 934464524) answers HTTP 410 with an even more minimal 3-key body and is stored here as NULL. Branch on endringstype; never assume doc is complete or present, never detect deletion from a status code.
process_statusWhat Atlas did with the changeapplied, tombstoned or skipped_unknownDerived from endringstype at load time.

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, oppdateringer (endringsfeed). Retrieved from https://data.brreg.no/enhetsregisteret/api/dokumentasjon. Available in Atlas at https://atlas.sovereignsky.no/datasets/brreg-underenheter-oppdateringer.
BibTeX
@misc{atlas_brreg_underenheter_oppdateringer,
author = {Brønnøysundregistrene},
title = {Enhetsregisteret — underenheter, oppdateringer (endringsfeed)},
year = {n.d.},
url = {https://data.brreg.no/enhetsregisteret/api/dokumentasjon},
note = {Available in Atlas at https://atlas.sovereignsky.no/datasets/brreg-underenheter-oppdateringer}
}
Permalink
https://atlas.sovereignsky.no/datasets/brreg-underenheter-oppdateringer

About this source​

Brønnøysundregistrene publishes every change to the underenheter register as its own ordered feed, independent of the enheter feed `brreg-oppdateringer` reads — a real bootstrap run against live data on 2026-10-04 seeded this feed's watermark at 21,390,729, an entirely separate counter from enheter's own feed. Atlas walks it forward from a durable watermark, recording each change in `raw.brreg_underenheter_oppdateringer` and the sub-unit's document at that moment in `raw.brreg_underenheter_versions`. This is what keeps the bulk snapshot (`brreg-underenheter`) from going stale. The snapshot is a point in time; a bulk file cannot express a deletion. Those arrive here, as `Sletting` and `Fjernet` change types — confirmed live 2026-10-04 (a 100-row sample at the current cursor held Ny 51, Endring 35, Sletting 14). The feed reaches back to its own id 1 (2018, same era as the enheter feed), so a missed cycle catches up completely on the next run.