orakel
Docs navigation

Canonical

Helsedirektoratet TBR

Norwegian alcohol and tobacco sales licenses — which companies are licensed to sell what.

Updated 2026-04-21

Source: Helsedirektoratet (TBR — Tobakks- og alkoholregister) Data: Alcohol and tobacco sales licenses License: NLOD 2.0 Attribution required: Yes — "Helsedirektoratet" Link: https://tbr.helsedirektoratet.no Update cadence: Weekly full refresh (Monday 07:00), all three sub-registers

What it is

TBR is Norway's central register for alcohol and tobacco sales licenses. It covers three sub-registers: alcohol licenses (Alkoholsbevilling), tobacco licenses (Tobakksbevilling), and tobacco sales registrations. Each record links to a company by orgNumber and specifies the license type (pouring, retail, wholesale, import), the product groups covered, the venue, the issuing municipality, and the validity period.

Orakel fetches each register in full once a week and upserts on (licenseNumber, registerType).

Fields provided

Field Type Notes
licenseNumber int Bevillingsnummer (or Registreringsnummer for tobacco sales) — unique within a registerType
orgNumber string (9 digits) Norwegian organisation number of the license holder
holderName string Innehaver as filed
venueName string Sted — the venue or selling location
venueOrgNumber string Sub-unit org number of the venue where different from the holder
registerType string Alkoholsbevilling or Tobakksbevilling (both tobacco licenses and tobacco sales use the latter)
licenseTypeCode / licenseTypeDesc string Tillatelsestype — e.g. 01SKJE (pouring), 11ENGR (wholesale), 18TBIM (tobacco import), 19TBEK (tobacco retail)
productGroups string[] Varegrupper — GRP1 (≤4.7% beer), GRP2 (4.7–22% wine), GRP3 (>22% spirits), TROY (smoking tobacco), TINN (non-smoking tobacco)
address / postnr / poststed string Venue address
municipality / municipalityNo string Issuing municipality (name + SSB 4-digit code)
validFrom / validTo date License validity window
syncedAt datetime Last time Orakel refreshed this record

Endpoints that surface this data

  • GET /api/licenses — search licenses; filter by orgNumber, registerType, licenseTypeCode, municipalityNo, or activeOnly=true (validTo ≥ today). Cursor-paginated.

Limitations

  • Coverage is licensed sellers only — the vast majority of Norwegian companies have no TBR record.
  • License type vocabulary follows Helsedirektoratet's scheme. Per-municipality quirks exist upstream but are not re-mapped here.
  • Expired licenses are retained. Use activeOnly=true or filter on validTo to exclude them.

Gotchas

  • One company can hold many licenses — one per venue and per register type. Join on orgNumber rather than assuming a single row.
  • venueOrgNumber can differ from orgNumber: the parent holds the license, the sub-unit is the physical venue. A value of "0" upstream is normalised to null.
  • Some tobacco sales records carry Registreringsnummer rather than Bevillingsnummer — both land in licenseNumber, with registerType disambiguating.