Enhetsregisteret — oppdateringer (endringsfeed)
Enhetsregisteret — oppdateringer (endringsfeed)
Brønnøysundregistrene ·brreg-oppdateringerBrønnøysundregistrene publishes every change to Enhetsregisteret as an ordered feed: one record per change, carrying the organisation number, a change type and a monotonic `oppdateringsid`. Atlas walks it forward daily from a durable watermark, recording each change in `raw.brreg_oppdateringer` and the organisation's document at that moment in `raw.brreg_enheter_versions`. This is what keeps the bulk snapshot (`brreg-enheter-alle`) from going stale. The snapshot is a point in time; a bulk file cannot express a deletion, because absence from a 1.17M-record file is indistinguishable from a truncated download. Deletions arrive here, as `Sletting` and `Fjernet` change types. The feed has no retention window — it reaches back to `oppdateringsid` 1 in April 2018 — so a missed day, week or month catches up completely on the next run. Cadence is a freshness choice, not a correctness one.
Provenance
enhetsregisteret-oppdateringerGOVE2026-09-23T03:01:02.579103+00:00 · 0 rows · 414 runsUsed 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.
api_v1.atlas_inventory
What Atlas publishes: one row per endpoint with its row count, freshness and origin.
api_v1.brreg_enhet
Every organisation registered in Norway, mirrored from Brønnøysundregistrene's Enhetsregisteret.
Momskompensasjon for frivillige organisasjoner
Per-source indicator data for lottstift-momskompensasjon (Lotteri- og stiftelsestilsynet), at the publisher's own grain.
Voluntary organisations per kommune
Active voluntary organisations per kommune and ICNPO category.
Voluntary organisations per kommune, total
One row per kommune: how many active voluntary organisations are registered there.
NGO chapter registry match (federated)
The 9 federated NGOs' chapters, found by name pattern in Brønnøysundregistrene's register.
NGO chapter subunits (unitary)
The local units of the 2 unitary NGOs (Frelsesarmeen, Kirkens Bymisjon), found as Brreg underenheter.
api_v1.unattributed_totals
The part of a published quantity that belongs to no municipality.
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.
brreg-enheter-alledim_brreg_enhetindicators__lottstift_momskompensasjonint_ngo_chapter_registry_match + 9 morebrreg-frivilligedim_brreg_enhetindicators__lottstift_momskompensasjonint_ngo_chapter_registry_match + 9 moressb-klass-kommunermart_atlas_inventorymart_kommune_ngo_summarymart_kommune_ngo_totals + 1 morebrreg-underenheterint_ngo_chapter_subunitsmart_atlas_inventorymart_ngo_chapter_subunitslottstift-momskompensasjonindicators__lottstift_momskompensasjonmart_atlas_inventorymart_indicators__lottstift_momskompensasjonfhi-alkoholmart_atlas_inventorymart_unattributed_totalsfhi-befolkningmart_atlas_inventorymart_unattributed_totalsfhi-befolkningsvekstmart_atlas_inventorymart_unattributed_totalsDimensions
| Code | Meaning | Value format | Notes |
|---|---|---|---|
| oppdateringsid | Brreg's monotonic change identifier, and the cursor the feed is walked by | bigint, sparse | 🔴 Sparse, and that matters. The id space runs to ~25.18M against ~16.4M records, so the gap between two ids is NOT the number of changes between them — asking for id 16,417,000 returns a first record of 16,427,801. Never compute a backlog by subtracting ids; read `page.totalElements` at the cursor, which is a correct remaining-record count. |
| endringstype | What kind of change Brreg recorded | Ny, Endring, Sletting, Fjernet or Ukjent | All five occur and all five are handled. `Sletting` is the deletion in current traffic; `Fjernet` is real but concentrated in older eras (23 of 500 at oppdateringsid 16,400,000, and absent from the 2026-09-11 daily sample); `Ukjent` is the entire pre-2018-08 history and must never delete anything. Stored verbatim and not constrained to an enum — a sixth value must land and be counted, not rejected at the door. |
| organisasjonsnummer | The organisation the change is about | 9 digits, leading zeros significant — always text | Joins to raw.brreg_enheter_snapshot. Retained after deletion, which is what lets a tombstone address a row that no longer has a live entity behind it. |
| doc | The organisation's document as it stood when the change was received | jsonb, or null when the entity fetch failed | ⚠️ For a `Sletting` this is Brreg's SIX-KEY STUB, not a full record — a deleted organisation still answers HTTP 200 with `slettedato` set. Branch on endringstype; never assume doc is a complete Enhet, and never detect deletion from a status code. |
| process_status | What Atlas did with the change | applied, tombstoned or skipped_unknown | Derived from endringstype at load time. `skipped_unknown` covers both `Ukjent` and any future sixth value, deliberately — the run counts and surfaces them rather than guessing an action. |
Sample query
Live PostgREST query returning the first 5 rows this source publishes. It queries a published api_v1 relation — raw tables are not exposed through the public API.
https://api-atlas.urbalurba.com/brreg_enhet?limit=5
Citation
Brønnøysundregistrene. (n.d.). Enhetsregisteret — oppdateringer (endringsfeed). Retrieved from https://data.brreg.no/enhetsregisteret/api/dokumentasjon. Available in Atlas at https://atlas.sovereignsky.no/datasets/brreg-oppdateringer.
@misc{atlas_brreg_oppdateringer,
author = {Brønnøysundregistrene},
title = {Enhetsregisteret — oppdateringer (endringsfeed)},
year = {n.d.},
url = {https://data.brreg.no/enhetsregisteret/api/dokumentasjon},
note = {Available in Atlas at https://atlas.sovereignsky.no/datasets/brreg-oppdateringer}
}
https://atlas.sovereignsky.no/datasets/brreg-oppdateringer