Canonical
Helsedirektoratet TBR
Norwegian alcohol and tobacco sales licenses — which companies are licensed to sell what.
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 byorgNumber,registerType,licenseTypeCode,municipalityNo, oractiveOnly=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=trueor filter onvalidToto exclude them.
Gotchas
- One company can hold many licenses — one per venue and per register type. Join on
orgNumberrather than assuming a single row. venueOrgNumbercan differ fromorgNumber: the parent holds the license, the sub-unit is the physical venue. A value of"0"upstream is normalised tonull.- Some tobacco sales records carry
Registreringsnummerrather thanBevillingsnummer— both land inlicenseNumber, withregisterTypedisambiguating.