Skip to main content

api_v1.brreg_enhet

Atlas view

api_v1.brreg_enhet

api_v1.brreg_enhet

Every organisation registered in Norway, mirrored from Brønnøysundregistrene's Enhetsregisteret.

Built from​

This Atlas view joins data from the following upstream sources. Click through for provenance, methodology, and citation.

Showing direct dbt parents. See full lineage in /lineage/ →

Columns​

ColumnDescription
organisasjonsnummerNine-digit Norwegian organisation number. Text, never a number — leading zeros are significant. Stable for the life of the organisation, and the join key for organisational data from any Norwegian source.
navnRegistered name, verbatim from Brreg. For an enkeltpersonforetak (organisasjonsform ENK) this is very often the proprietor's own personal name, because that is how the register records them.
organisasjonsform_kodeLegal form code — AS (aksjeselskap), ENK (enkeltpersonforetak), FLI (forening/lag/innretning), STI (stiftelse) and others. The usual filter for separating companies from associations, or for excluding sole proprietorships.
organisasjonsform_beskrivelseHuman-readable Norwegian label for organisasjonsform_kode, as Brreg publishes it.
naeringskode1_kodePrimary NACE industry code (SN2007), e.g. 94.992. Null for roughly 2% of the register.
kommune_nrKommune code of the registered business address. For an enkeltpersonforetak the registered business address is commonly the proprietor's home address. Null where no business address is registered (~6%). Some codes are historical or pseudo-regions and will not resolve against a current kommune list.
antall_ansatteRegistered employee count. NULL MEANS "NOT REPORTED", NOT ZERO — the field is present on only ~4% of records. Use har_registrert_antall_ansatte to distinguish the two; reading NULL as 0 understates staffed organisations badly.
har_registrert_antall_ansatteWhether Brreg holds a registered employee count at all. Present on 100% of records, and the only way to tell "zero employees" from "no figure reported".
konkursWhether the organisation is in bankruptcy proceedings. Straight from Brreg.
under_avviklingWhether the organisation is being wound up voluntarily. Straight from Brreg.
under_tvangsavviklingWhether the organisation is under compulsory winding-up or dissolution.
is_activeConvenience boolean — true when none of konkurs, under_avvikling or under_tvangsavvikling is set. Means "trading", not "exists": all three states are still registered organisations. Ignore this column if you want everything registered.
registrert_i_frivillighetsregisteretWhether the organisation is in Frivillighetsregisteret, the voluntary-organisation register — true for roughly 72,800 records. This is what makes the Norwegian voluntary sector discoverable as a population rather than a curated list.
registrert_datoDate the organisation was entered in Enhetsregisteret.
icnpo_nummerPrimary ICNPO code as the organisation classified itself in Frivillighetsregisteret, e.g. "9100". Null for organisations not in that register, and for members declaring none. Null does not mean "not voluntary" — use registrert_i_frivillighetsregisteret for that.
icnpo_kategoriPrimary ICNPO category label paired with icnpo_nummer.
grasrotandel_deltar_iWhether the organisation participates in Grasrotandelen, Norsk Tipping's grassroots funding scheme. Null for organisations not in Frivillighetsregisteret.
frivillig_innfoert_datoDate of entry in Frivillighetsregisteret — distinct from registrert_dato, which is the Enhetsregisteret entry. Organisations often exist for years before registering as voluntary.
last_seen_atWhen the INGEST last wrote this row into Atlas's raw layer, from either the bulk snapshot or a change-feed run. Tracks Atlas's load, not an upstream event. Read it together with reconciled_at — this is the ingest clock, that is the transform clock.
reconciled_atWhen the TRANSFORM last reconciled this row into the served layer. 🔴 Read both clocks: the change feed polls every half hour and this reconciliation follows ten minutes behind it, so the data behind this endpoint can be older than what Atlas has already ingested. Without both, "current" means different things depending on which table you read — an install once sat 13.5 hours behind Brreg with every health check green. ⚠️ Only organisations that actually changed are re-stamped, so an old value means "nothing about this organisation has changed since then", not "this endpoint is stale".
epostadresseEmail address the organisation registered with Brreg. Present on 324,967 of 1,175,334 rows (27.65%), counted 2026-09-24.
mobilMobile number registered with Brreg. Present on 308,989 of 1,175,334 rows (26.29%), counted 2026-09-24.
telefonTelephone number registered with Brreg. Present on 194,520 of 1,175,334 rows (16.55%), counted 2026-09-24.
hjemmesideWebsite the organisation registered with Brreg. Present on 114,075 of 1,175,334 rows (9.71%), counted 2026-09-24.
registrert_i_mvaregisteretWhether the organisation is registered in mvaregisteret. Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
registrert_i_foretaksregisteretWhether the organisation is registered in foretaksregisteret. Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
registrert_i_stiftelsesregisteretWhether the organisation is registered in stiftelsesregisteret. Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
registrert_i_partiregisteretWhether the organisation is registered in partiregisteret. Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
er_i_konsernWhether Brreg records the organisation as part of a group (konsern). Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
stiftelsesdatoDate Brreg records for this event. Present on 676,822 of 1,175,334 rows (57.59%), counted 2026-09-24.
vedtektsdatoDate Brreg records for this event. Present on 491,178 of 1,175,334 rows (41.79%), counted 2026-09-24.
registreringsdato_foretaksregisteretDate Brreg records for this event. Present on 577,303 of 1,175,334 rows (49.12%), counted 2026-09-24.
registreringsdato_merverdiavgiftsregisteretDate Brreg records for this event. Present on 410,226 of 1,175,334 rows (34.90%), counted 2026-09-24.
registreringsdato_mva_enhetsregisteretDate Brreg records for this event. Present on 410,230 of 1,175,334 rows (34.90%), counted 2026-09-24.
registreringsdato_frivillig_mvaDate Brreg records for this event. Present on 49,032 of 1,175,334 rows (4.17%), counted 2026-09-24.
registreringsdato_frivillighetsregisteretDate Brreg records for this event. Present on 72,826 of 1,175,334 rows (6.20%), counted 2026-09-24.
registreringsdato_antall_ansatte_enhetsregDate Brreg records for this event. Present on 177,771 of 1,175,334 rows (15.13%), counted 2026-09-24.
registreringsdato_antall_ansatte_navDate Brreg records for this event. Present on 177,682 of 1,175,334 rows (15.12%), counted 2026-09-24.
fravalg_revisjon_datoDate Brreg records for this event. Present on 294,837 of 1,175,334 rows (25.09%), counted 2026-09-24.
fravalg_revisjon_beslutnings_datoDate Brreg records for this event. Present on 213,866 of 1,175,334 rows (18.20%), counted 2026-09-24.
konkursdatoDate Brreg records for this event. Present on 3,249 of 1,175,334 rows (0.28%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
under_avvikling_datoDate Brreg records for this event. Present on 7,396 of 1,175,334 rows (0.63%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
tvangsopplost_pga_manglende_regnskap_datoDate Brreg records for this event. Present on 975 of 1,175,334 rows (0.08%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
tvangsopplost_pga_manglende_revisor_datoDate Brreg records for this event. Present on 302 of 1,175,334 rows (0.03%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
tvangsopplost_pga_mangelfullt_styre_datoDate Brreg records for this event. Present on 106 of 1,175,334 rows (0.01%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
under_rekonstruksjonsforhandling_datoDate Brreg records for this event. Present on 15 of 1,175,334 rows (0.00%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
tvangsavviklet_pga_manglende_sletting_datoDate Brreg records for this event. Present on 103 of 1,175,334 rows (0.01%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
registreringsdato_partiregisteretDate Brreg records for this event. Present on 24 of 1,175,334 rows (0.00%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
under_utenlandsk_insolvensbehandling_datoDate Brreg records for this event. Present on 2 of 1,175,334 rows (0.00%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
naeringskode1_beskrivelseIndustry classification (NACE) as registered with Brreg. Present on 1,139,692 of 1,175,334 rows (96.97%), counted 2026-09-24.
naeringskode2_kodeIndustry classification (NACE) as registered with Brreg. Present on 18,343 of 1,175,334 rows (1.56%), counted 2026-09-24.
naeringskode2_beskrivelseIndustry classification (NACE) as registered with Brreg. Present on 18,343 of 1,175,334 rows (1.56%), counted 2026-09-24.
naeringskode3_kodeIndustry classification (NACE) as registered with Brreg. Present on 1,577 of 1,175,334 rows (0.13%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
naeringskode3_beskrivelseIndustry classification (NACE) as registered with Brreg. Present on 1,577 of 1,175,334 rows (0.13%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
institusjonell_sektorkode_kodeInstitutional sector classification from SSB’s code list. Present on 1,078,258 of 1,175,334 rows (91.74%), counted 2026-09-24.
institusjonell_sektorkode_beskrivelseInstitutional sector classification from SSB’s code list. Present on 1,078,258 of 1,175,334 rows (91.74%), counted 2026-09-24.
hjelpeenhetskode_kodeAuxiliary-unit classification code. Present on 33,455 of 1,175,334 rows (2.85%), counted 2026-09-24.
hjelpeenhetskode_beskrivelseAuxiliary-unit classification code. Present on 33,455 of 1,175,334 rows (2.85%), counted 2026-09-24.
kapital_belopShare-capital detail as registered with Brreg. Present on 439,027 of 1,175,334 rows (37.35%), counted 2026-09-24.
kapital_valutaShare-capital detail as registered with Brreg. Present on 439,027 of 1,175,334 rows (37.35%), counted 2026-09-24.
kapital_antall_aksjerShare-capital detail as registered with Brreg. Present on 439,027 of 1,175,334 rows (37.35%), counted 2026-09-24.
kapital_innfort_datoDate Brreg records for this event. Present on 439,027 of 1,175,334 rows (37.35%), counted 2026-09-24.
kapital_typeShare-capital detail as registered with Brreg. Present on 439,027 of 1,175,334 rows (37.35%), counted 2026-09-24.
kapital_fullt_innbetaltShare-capital detail as registered with Brreg. Present on 439,027 of 1,175,334 rows (37.35%), counted 2026-09-24.
kapital_innbetaltShare-capital detail as registered with Brreg. Present on 439,027 of 1,175,334 rows (37.35%), counted 2026-09-24.
foretaksform_i_hjemlandet_kodeForeign-registration detail, present only for organisations registered abroad. Present on 24,452 of 1,175,334 rows (2.08%), counted 2026-09-24.
foretaksform_i_hjemlandet_beskrivelseForeign-registration detail, present only for organisations registered abroad. Present on 24,452 of 1,175,334 rows (2.08%), counted 2026-09-24.
foretaksform_i_hjemlandet_beskrivelse_bokmaalForeign-registration detail, present only for organisations registered abroad. Present on 24,452 of 1,175,334 rows (2.08%), counted 2026-09-24.
utenlandsk_register_adresse_adresseForeign-registration detail, present only for organisations registered abroad. Present on 22,464 of 1,175,334 rows (1.91%), counted 2026-09-24.
utenlandsk_register_adresse_poststedForeign-registration detail, present only for organisations registered abroad. Present on 22,464 of 1,175,334 rows (1.91%), counted 2026-09-24.
utenlandsk_register_adresse_landForeign-registration detail, present only for organisations registered abroad. Present on 22,464 of 1,175,334 rows (1.91%), counted 2026-09-24.
utenlandsk_register_navnForeign-registration detail, present only for organisations registered abroad. Present on 22,464 of 1,175,334 rows (1.91%), counted 2026-09-24.
registreringsnummer_i_hjemlandetForeign-registration detail, present only for organisations registered abroad. Present on 22,464 of 1,175,334 rows (1.91%), counted 2026-09-24.
underlagt_lovgivning_landForeign-registration detail, present only for organisations registered abroad. Present on 24,452 of 1,175,334 rows (2.08%), counted 2026-09-24.
underlagt_lovgivning_landkodeForeign-registration detail, present only for organisations registered abroad. Present on 24,452 of 1,175,334 rows (2.08%), counted 2026-09-24.
overordnet_enhetOrganisation number of the parent unit, when the organisation is part of a group. Present on 1,757 of 1,175,334 rows (0.15%), counted 2026-09-24. 🔵 The sparsity IS the signal — this is an event that few organisations reach, and it is exactly what a consumer filtering for them needs.
maalformOfficial language form the organisation registered (Bokmål / Nynorsk). Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
siste_innsendte_aarsregnskapYear of the most recent annual accounts Brreg has received. ⚠️ Upstream sends this as a string; it is cast only when it matches four digits, so one malformed value cannot fail a build across 1.17M rows. Present on 448,912 of 1,175,334 rows (38.19%), counted 2026-09-24.
aktivitetFree-text description of what the organisation does, as an array of lines. Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
vedtektsfestet_formaalThe purpose set out in the organisation’s articles, as an array of lines. Present on 490,235 of 1,175,334 rows (41.71%), counted 2026-09-24.
frivillig_mva_registrert_beskrivelserDescriptions of the activities covered by voluntary VAT registration. Present on 49,032 of 1,175,334 rows (4.17%), counted 2026-09-24.
historiske_navnPrevious names, as jsonb objects carrying `navn`, `fraDato` and `tilDato`. 🔴 jsonb rather than text[] because the elements are OBJECTS — verified against non-empty rows, since the array is empty on most. Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
paategningerOfficial remarks Brreg has attached to the organisation, as jsonb objects carrying `tekst`. 🔴 jsonb rather than text[] for the same reason as `historiske_navn`, and getting this wrong would have flattened enforcement notices into unparseable strings. Present on 1,175,334 of 1,175,334 rows (100.00%), counted 2026-09-24.
forretningsadresse_adresseBusiness address component, as registered with Brreg. ⚠️ An ARRAY of street lines upstream, not a single string. Present on 1,156,677 of 1,175,334 rows (98.41%), counted 2026-09-24.
forretningsadresse_postnummerBusiness address component, as registered with Brreg. Present on 1,156,677 of 1,175,334 rows (98.41%), counted 2026-09-24.
forretningsadresse_poststedBusiness address component, as registered with Brreg. Present on 1,156,677 of 1,175,334 rows (98.41%), counted 2026-09-24.
forretningsadresse_kommuneBusiness address component, as registered with Brreg. Present on 1,156,677 of 1,175,334 rows (98.41%), counted 2026-09-24.
forretningsadresse_landBusiness address component, as registered with Brreg. Present on 1,156,677 of 1,175,334 rows (98.41%), counted 2026-09-24.
forretningsadresse_landkodeBusiness address component, as registered with Brreg. Present on 1,156,677 of 1,175,334 rows (98.41%), counted 2026-09-24.
postadresse_adressePostal address component, as registered with Brreg. ⚠️ An ARRAY of street lines upstream, not a single string. Present on 203,770 of 1,175,334 rows (17.34%), counted 2026-09-24.
postadresse_postnummerPostal address component, as registered with Brreg. Present on 203,770 of 1,175,334 rows (17.34%), counted 2026-09-24.
postadresse_poststedPostal address component, as registered with Brreg. Present on 203,770 of 1,175,334 rows (17.34%), counted 2026-09-24.
postadresse_kommunePostal address component, as registered with Brreg. Present on 203,770 of 1,175,334 rows (17.34%), counted 2026-09-24.
postadresse_landPostal address component, as registered with Brreg. Present on 203,770 of 1,175,334 rows (17.34%), counted 2026-09-24.
postadresse_landkodePostal address component, as registered with Brreg. Present on 203,770 of 1,175,334 rows (17.34%), counted 2026-09-24.
postadresse_kommune_nrPostal address component, as registered with Brreg. Present on 203,770 of 1,175,334 rows (17.34%), counted 2026-09-24.
docThe complete upstream record as Brreg published it, with nothing dropped or renamed — including postal and business addresses, telephone, mobile, email, website, capital, institutional sector code, articles of association and historical names. Responses are large: a document averages ~1.7 kB, so select the typed columns instead unless you need a field this view does not surface.

Sample query​

Live PostgREST query that returns the first 5 rows. URL adapts to the current host — local dev shows api-atlas.localhost; the deployed site shows the configured API base.

https://api-atlas.urbalurba.com/brreg_enhet?limit=5

About this view​

Every organisation registered in Norway, mirrored from Brønnøysundregistrene's Enhetsregisteret. Every organisation registered in Norway — the whole of Brønnøysundregistrene's Enhetsregisteret, around 1.17 million rows, current as of the last change-feed run. Companies, foundations, associations, public bodies and sole proprietorships. 🔵 CHECK WHETHER YOUR RESULT WAS TRUNCATED, AND DO NOT CHECK IT AGAINST YOUR OWN `limit`. Send `Prefer: count=exact` and compare the total in the `Content-Range` response header against the number of rows you actually received: Content-Range: 0-4/1175169 with 5 rows -> truncated Comparing `rows.length` against your own `limit=N` cannot see the cap that matters. A server-side `db-max-rows` applies BELOW your limit, so a cap of 1 000 against `limit=20000` returns 1 000 rows and the comparison passes. It measures your intent, not the server's answer. (The recipe is a consumer's, relayed on urb-agents #1410.) 🔵 Nobody can read `db-max-rows` from outside — PostgREST exposes no endpoint for its effective settings, so "unset" and "set above N" are indistinguishable. A cap is only ever discoverable by exceeding it. Atlas has it UNSET today; this check keeps you correct if that changes. 🔴 THE COUNT IS WHAT COSTS, AND ONLY WHEN YOUR FILTER CANNOT USE AN INDEX. Measured against this relation 2026-09-23: kommune_nr=eq.1103 + count=exact 0.10 s 27 765 rows navn=ilike.*...* + count=exact 10.87 s 428 rows navn=ilike.*...* without the count 0.16 s 428 rows no filter + count=exact 0.50 s 1 175 169 ⚠️ Adding the count to that pattern query cost 70x on a result of 428 rows. `count=exact` cannot stop at your limit — it counts every matching row — so an unindexed predicate scans all 1.17 million. ⚠️ AN EARLIER VERSION OF THIS NOTE SAID "DO NOT SEND count=exact WITH A FILTER". That is too broad — an equality filter on `kommune_nr` came back in 0.10 s above — and the advice would have pushed consumers off a cheap, correct call. 🔵 MEASURE YOUR OWN PREDICATE RATHER THAN TRUSTING A LIST OF COLUMNS. `organisasjonsnummer` carries a unique index. `kommune_nr` appears only inside a PARTIAL index restricted to voluntary, active rows, so whether a bare `kommune_nr` filter can use it depends on the rest of your query. The timings above are measurements, not query plans — this relation is not introspectable from outside, and the cheap experiment is to send your real query twice, once with the count and once without. ⚠️ INSIDE A BROWSER FETCH A SLOW COUNT IS A TIMEOUT, NOT A SLOW ANSWER. A consumer diagnosed one as a CORS failure, because a request that never completes is indistinguishable from a blocked one on the fetch side. CORS is fine (urb-agents #1361). 🔴 AND DO NOT SUBSTITUTE `count=planned` AS THE DETECTOR. It is fast (0.16 s on the pattern above) and its error is unbounded in BOTH directions. Measured 2026-09-23: navn ilike *zzzzqqq* planned 118 exact 0 navn ilike *frivillig* planned 118 navn ilike *røde* planned 118 navn ilike *as* planned 570 606 no filter planned 1 176 875 exact 1 175 169 ⚠️ 118 for a pattern that matches NOTHING, and the same 118 for three unrelated patterns — for those it is not an estimate of your query at all, it is the planner's fallback guess. `*as*` gets a real estimate, so it is not a constant either; you cannot tell which you got. 🔴 And unfiltered it reports 1 706 MORE rows than exist. A detector built on it would raise a FALSE TRUNCATION ALARM on a complete answer — the opposite failure to the one you were guarding against, and just as silent. `count=estimated` does not help — measured 10.99 s, because it falls back to an exact count when the planner's estimate is small. Use `planned` only where an order of magnitude will do, never to decide completeness. Kilde: Brønnøysundregistrene. Inneholder data under norsk lisens for offentlige data (NLOD) tilgjengeliggjort av Brønnøysundregistrene — https://data.norge.no/nlod/no/2.0. Re-users must carry this attribution onward; it is a condition of the licence, not a courtesy. Deleted organisations are excluded. Brreg reports deletions through its change feed and Atlas applies them, so an organisation removed upstream disappears from here — but the version history is kept, so what it looked like before removal remains answerable. Completeness caveat: this reflects deletions Brreg REPORTS. A row Atlas holds that Brreg never had would not be removed by any automatic path, because no change event would ever mention it.