orakel
Docs navigation

Canonical

Field catalog

Every field Orakel exposes, its type, and its source.

Updated 2026-04-29

Every field Orakel exposes, typed and attributed. Types use TypeScript-ish notation. Nullable fields reflect source gaps. Source names: Brreg, Regnskap, Aksjonær, Doffin, Mattilsynet, TBR, SSB, PRH, Tilastokeskus, Bolagsverket, SCB, Orakel (computed or enrichment-derived).

Composite key: Company and its child tables are keyed on (country, orgNumber). orgNumber is 9 digits for NO, NNNNNNN-N for FI, 10 digits for SE. Don't assume length.

_sources (response-level)

Every /api/companies/* response carries a _sources object alongside the data. It surfaces which upstream fed which field so consumers can render per-field attribution without re-inferring source mappings client-side. See Attribution → _sources response field for the full shape and a rendering snippet.

Field Type Notes
_sources.attribution string[] Deduplicated display list — paste into a "Data via …" footer
_sources.fields Record<string, string | { source: string; computed: true }> Per-field source map; keys omitted when data is absent

Common fields.* values: "Brønnøysundregistrene" (NO core), "Bolagsverket" (SE core + financials), "YTJ" (FI core), "Regnskapsregisteret" (NO financials), "Tilastokeskus" (FI financials), "SSB Klass" (industry/org-form/country/county labels), "SSB" (aggregate context when include=context), "Orakel enrichment pipeline" (domain, social handles, technologies — synthesized from multiple upstream signals).

_sources credits the source of what's returned; it does not imply coverage depth. For financial-year depth by country see Limitations → Financial-year depth.

Company

One row per legal entity.

Field Type Source Notes
orgNumber string Brreg (NO) / PRH (FI) / Bolagsverket (SE) 9 digits NO, NNNNNNN-N FI, 10 digits SE
country CountryCode Orakel "NO" | "FI" | "SE"
name string Brreg / PRH / Bolagsverket Current active registered name
orgFormCode string Brreg / PRH / Bolagsverket e.g. AS, ASA, Oy, AB
orgFormDescription string | null Brreg / PRH / Bolagsverket (SE: SCB) SE description comes from SCB jurForm
naceCode1 string | null Brreg / PRH / SCB SE NACE is from SCB, not Bolagsverket
naceDescription1 string | null Brreg / PRH / Bolagsverket SE uses free-text verksamhetsbeskrivning
naceCode2 string | null Brreg / SCB NO, SE only
naceDescription2 string | null Brreg NO only
naceCode3 string | null Brreg / SCB NO, SE only
naceDescription3 string | null Brreg NO only
employeeCount number | null Brreg NO only
hasRegisteredEmployees boolean Brreg NO only; defaults false elsewhere
businessAddressStreet string | null Brreg / PRH / Bolagsverket
businessAddressZip string | null Brreg / PRH / Bolagsverket
businessAddressCity string | null Brreg / PRH / Bolagsverket FI prefers English post-office name
businessAddressMuni string | null Brreg / PRH NO, FI only
businessAddressMuniNo string | null Brreg / PRH Joins to Municipality.code and ssb_municipality_stats.municipalityNo
postalAddressStreet string | null Brreg / PRH NO, FI only
postalAddressZip string | null Brreg / PRH NO, FI only
postalAddressCity string | null Brreg / PRH NO, FI only
website string | null Brreg / PRH Self-reported at registration; may be stale
phone string | null Brreg NO only
enrichedDomains string[] Orakel All verified domains for the company
primaryDomain string | null Orakel Best-match verified domain
domainConfidence number | null Orakel 0–100 composite score
brregWebsiteValid boolean | null Orakel Whether Brreg's registered website verified
linkedinHandle string | null Orakel Extracted from homepage
facebookHandle string | null Orakel Extracted from homepage
instagramHandle string | null Orakel Extracted from homepage
twitterHandle string | null Orakel Extracted from homepage
parentOrgNumber string | null Brreg Immediate parent in a corporate group
technologies Json | null Orakel Array of { name, category, confidence, detectedAt } — see Technology section
techSyncedAt Date | null Orakel Last technology scan
sslSansSyncedAt Date | null Orakel Last crt.sh SAN scan
foundingDate Date | null Brreg / PRH / Bolagsverket Stiftelsesdato (NO)
registrationDate Date | null Brreg / PRH / Bolagsverket
registeredInVat boolean Brreg / PRH NO, FI (Merverdiavgiftsregisteret / registeredEntries=6)
registeredInBiz boolean Brreg / PRH NO (Foretaksregisteret), FI (tradeRegisterStatus=1)
isBankrupt boolean Brreg NO only
isBeingDissolved boolean Brreg / Bolagsverket NO, SE (Bolagsverket avregistreringsdatum)
isInGroup boolean Brreg NO only
sectorCode string | null Brreg NO only; institusjonell sektorkode
sectorDescription string | null Brreg NO only
description string | null Brreg (NO) / Bolagsverket (SE) / YTJ (FI) / CVR (DK) Business activity description. Source text varies by country.
descriptionKeywords string[] Orakel Top-10 keywords extracted from description; stopwords removed
trafficRank number | null Orakel (Tranco) Tranco top-1M rank (1 = highest traffic). Updated weekly. Null if domain not in list.
trafficRankUpdatedAt Date | null Orakel When trafficRank was last refreshed
employerRegisterDate Date | null YTJ FI only. Date company first registered as a regular employer
directMarketingDenied boolean | null CVR DK only. Direct marketing protection flag (reklamebeskyttet)
businessAddressLat number | null Orakel (Kartverket / DAWA / Nominatim) Geocoded latitude. Populated by weekly job, not at ingest.
businessAddressLng number | null Orakel (Kartverket / DAWA / Nominatim) Geocoded longitude. Same source as businessAddressLat.
digitalizationIndex number | null [computed] Orakel Fraction of 12 tech categories covered (0–1). Null when technologies is null.
socialIndex number | null [computed] Orakel Fraction of 4 social platforms with a handle (0–1).
sizeClass "micro" | "small" | "medium" | "large" | "enterprise" | null [computed] Orakel From employeeCount: micro 0–10, small 11–50, medium 51–200, large 201–1000, enterprise 1001+.
latestRevenueNOK bigint | null [computed] Orakel Denormalized latest revenue from Financial; updated on financial sync

Financial

Unique on (country, orgNumber, regnskapstype, periodFrom, periodTo). Ratios computed at read time.

Field Type Source Notes
orgNumber string Regnskap (NO) / Tilastokeskus (FI) FK to Company
country CountryCode Orakel
regnskapstype string Regnskap / Tilastokeskus SELSKAP (company) | KONSERN (consolidated). Always SELSKAP for FI
periodFrom Date Regnskap / Tilastokeskus Fiscal period start
periodTo Date Regnskap / Tilastokeskus Fiscal period end
currency string Regnskap / Tilastokeskus As filed; most NO filings NOK, FI defaults EUR
revenue number | null Regnskap Sum driftsinntekter; not yet mapped for FI
operatingCosts number | null Regnskap Sum driftskostnad; not yet mapped for FI
operatingResult number | null Regnskap Driftsresultat; not yet mapped for FI
netFinancials number | null Regnskap Netto finans; not yet mapped for FI
preTaxProfit number | null Regnskap Ordinært resultat før skattekostnad; not yet mapped for FI
netResult number | null Regnskap Årsresultat; not yet mapped for FI
totalAssets number | null Regnskap / Tilastokeskus FI maps from XBRL fi_MC:x360
totalEquity number | null Regnskap Sum egenkapital; not yet mapped for FI
totalDebt number | null Regnskap Sum gjeld; not yet mapped for FI
varekostnad number | null Regnskapsregisteret Cost of goods sold (Varekostnad). NO only. Populated from multi-year history; null on filings where the figure isn't available.
avskrivning number | null Regnskapsregisteret Depreciation and amortisation (Avskrivning). NO only. Same coverage as varekostnad.
syncedAt Date Orakel Last time Orakel fetched this filing
ratios.profitMargin number | null [computed] Orakel netResult / revenue
ratios.operatingMargin number | null [computed] Orakel operatingResult / revenue
ratios.returnOnAssets number | null [computed] Orakel netResult / totalAssets
ratios.returnOnEquity number | null [computed] Orakel netResult / totalEquity
ratios.equityRatio number | null [computed] Orakel totalEquity / totalAssets
ratios.debtToEquityRatio number | null [computed] Orakel totalDebt / totalEquity
ratios.grossMargin number | null [computed] Orakel (revenue − varekostnad) / revenue. null when varekostnad is absent.
ratios.ebitda number | null [computed] Orakel operatingResult + avskrivning. null when either field is absent.
revenueGrowthYoY number | null [computed] Orakel (revenue_t − revenue_t-1) / abs(revenue_t-1)

Role

Board, CEO, auditor, owners. NO and DK.

Field Type Source Notes
orgNumber string Brreg FK to Company
country CountryCode Orakel "NO" | "DK"
roleGroupCode string Brreg e.g. STYR (board)
roleGroupDescription string | null Brreg
roleTypeCode string Brreg e.g. LEDE (chair), DAGL (CEO), REVI (auditor)
roleTypeDescription string | null Brreg
personFirstName string | null Brreg Natural-person role holders
personMiddleName string | null Brreg
personLastName string | null Brreg
personBirthDate Date | null Brreg Full birth date as filed
entityOrgNumber string | null Brreg Entity role holders (auditor firms)
entityName string | null Brreg
isResigned boolean Brreg Fratraadt
isDeregistered boolean Brreg
sortOrder number Brreg Stable order within a role group
ownershipPercent number | null Brreg (NO) / CVR (DK) EIER/EJER roles only. NO: Brreg eierandel.prosent. DK: CVR EJERANDEL_PROCENT attribute.
syncedAt Date Orakel

SubUnit

Branch offices. Linked via parentOrgNumber. NO and DK (production units via penheder).

Field Type Source Notes
orgNumber string Brreg Sub-unit's own org number
country CountryCode Orakel Always "NO"
parentOrgNumber string Brreg FK to parent Company
name string Brreg
orgFormCode string Brreg
orgFormDescription string | null Brreg
naceCode1 string | null Brreg
naceDescription1 string | null Brreg
employeeCount number | null Brreg Sub-unit headcount
hasRegisteredEmployees boolean Brreg
locationAddressStreet string | null Brreg Physical location, not postal
locationAddressZip string | null Brreg
locationAddressCity string | null Brreg
locationAddressMuni string | null Brreg
locationAddressMuniNo string | null Brreg
phone string | null Brreg
registrationDate Date | null Brreg
addressLat number | null Orakel (Kartverket / Nominatim) Geocoded latitude of locationAddress.
addressLng number | null Orakel Geocoded longitude.

Shareholder

One row per shareholder per share class per year. GDPR-sensitive; see aksjonaerregisteret. NO only.

Field Type Source Notes
orgNumber string Aksjonær Investee company; FK to Company
country CountryCode Orakel Always "NO"
shareholderName string Aksjonær Display name (person or entity)
shareholderOrgNumber string | null Aksjonær 9-digit when shareholder is Norwegian entity; null for persons and foreign
shareholderType string | null Aksjonær "person" | "company" | "foreign"
postalCode string | null Aksjonær Entity shareholders only
location string | null Aksjonær Entity shareholders only
shareClass string | null Aksjonær e.g. A, B, ORDINÆR
shareCount bigint Aksjonær Shares held in this class
totalSharesInCompany bigint | null Aksjonær Total shares in this class, when supplied
year number Aksjonær Snapshot year (fiscal year described)
ownershipPct number | null [computed] Orakel shareCount / totalSharesInCompany × 100, 2 decimals

Inspection (Mattilsynet)

Food-safety visits. NO only.

Field Type Source Notes
tilsynId string Mattilsynet Unique per visit
orgNumber string Mattilsynet May reference a sub-unit rather than parent
name string Mattilsynet Venue name as filed
address string | null Mattilsynet
postnr string | null Mattilsynet
poststed string | null Mattilsynet
date Date Mattilsynet Inspection date
totalRating number Mattilsynet Smilefjes rating code (integer, not percentage)
rating1 number | null Mattilsynet Per-theme sub-score
rating2 number | null Mattilsynet
rating3 number | null Mattilsynet
rating4 number | null Mattilsynet
inspectionType number Mattilsynet Visit type code
syncedAt Date Orakel

License (TBR)

Alcohol and tobacco licenses, unique on (licenseNumber, registerType). NO only.

Field Type Source Notes
licenseNumber number TBR Bevillingsnummer or Registreringsnummer
orgNumber string TBR License holder
holderName string | null TBR Innehaver
venueName string | null TBR Sted
venueOrgNumber string | null TBR Sub-unit org number when different from holder
registerType string TBR Alkoholsbevilling | Tobakksbevilling
licenseTypeCode string TBR 01SKJE, 11ENGR, 18TBIM, 19TBEK
licenseTypeDesc string | null TBR
productGroups string[] TBR GRP1, GRP2, GRP3, TROY, TINN
address string | null TBR
postnr string | null TBR
poststed string | null TBR
municipality string | null TBR Issuing municipality name
municipalityNo string | null TBR SSB 4-digit code
validFrom Date | null TBR
validTo Date | null TBR
syncedAt Date Orakel

ProcurementNotice (Doffin)

Keyed on noticeId. Buyer orgNumber nullable when Doffin didn't supply a matchable ID. NO only.

Field Type Source Notes
noticeId string Doffin Stable upstream identifier
orgNumber string | null Doffin Buyer; null when upstream format didn't normalise
contractingAuthority string | null Doffin Buyer name
title string Doffin
description string | null Doffin Long-form text
cpvCodes string[] Doffin Common Procurement Vocabulary codes
noticeType string | null Doffin tender / award / prior information
estimatedValue number | null Doffin Buyer's estimate at publication
currency string | null Doffin
publishedDate Date | null Doffin
issueDate Date | null Doffin
deadline Date | null Doffin Submission deadline
locationIds string[] Doffin NUTS / municipality codes
status string | null Doffin Open enum — upstream can add values
rawData Json | null Doffin Full upstream payload for unmodelled fields
syncedAt Date Orakel

DomainEnrichment

Per-company enrichment pipeline state. NO live; FI and SE planned.

Field Type Source Notes
orgNumber string Orakel FK to Company
country CountryCode Orakel
status string Orakel pending | processing | confirmed | ambiguous | rejected
confirmedDomains string[] Orakel Result set
primaryDomain string | null Orakel Best-match verified domain
confidence number Orakel 0–100 composite score
candidates Json | null Orakel Per-candidate signal breakdown
stage number Orakel Pipeline stage 0–5
priority number Orakel Higher = processed first
brregWebsiteValid boolean | null Orakel Signal: did Brreg's website verify
homepageOrgNr string | null Orakel Signal: org number found on candidate homepage
rdapHolder string | null Orakel Signal: NORID RDAP domain holder
llmConfidence number | null Orakel LLM adjudication score when used
llmReasoning string | null Orakel LLM reasoning text
linkedinHandle string | null Orakel Captured during scraping
facebookHandle string | null Orakel
instagramHandle string | null Orakel
twitterHandle string | null Orakel
startedAt Date | null Orakel
completedAt Date | null Orakel

Technology

Company.technologies is a JSON array. Each element:

Field Type Source Notes
name string Orakel e.g. WordPress, Google Analytics, Meta Pixel
category string Orakel cms | analytics | chat | marketing | ecommerce | framework | advertising
confidence number Orakel 0–100, per-signature weight
detectedAt string (ISO date) Orakel When this scan detected the signature

Ad pixels

Company.technologies entries with category = "advertising": Meta Pixel, Google Tag Manager, Snap Pixel, TikTok Pixel, X Pixel, LinkedIn Insight Tag. Queryable via ?hasAnyAdPixel=true.

Social handles

Scalar columns on Company and DomainEnrichment.

Field Type Source Notes
linkedinHandle string | null Orakel LinkedIn company-page slug
facebookHandle string | null Orakel
instagramHandle string | null Orakel
twitterHandle string | null Orakel X/Twitter handle

Municipality

From SSB Klass 131.

Field Type Source Notes
code string (4 digits) SSB e.g. 3905 (Tønsberg)
name string SSB
countyCode string (2 digits) SSB First two digits of code
countyName string SSB From classification 104 (fylker)

SSB municipality stats

Keyed on (municipalityNo, year, metric).

Field Type Source Notes
municipalityNo string SSB Joins to Company.businessAddressMuniNo
year number SSB
metric string SSB Currently population
value number SSB
sourceTable string SSB SSB table ID, e.g. 07459
capturedAt Date Orakel

SSB industry stats

Keyed on (naceSection, year, metric). Section mapped from Company.naceCode1.

Field Type Source Notes
naceSection string SSB Single letter, e.g. J for ICT
year number SSB
metric string SSB avgMonthlyWage | enterpriseCount
value number SSB
sourceTable string SSB / Orakel SSB table ID (11419, 14000) or brreg-derived
capturedAt Date Orakel

Country coverage

Entity NO FI SE DK
Company ✓ (seed list)
Financial best-effort (totalAssets only) — (Phase 3b)
Role
SubUnit ✓ (production units via penheder)
Shareholder
Inspection (Mattilsynet)
License (TBR)
ProcurementNotice (Doffin)
DomainEnrichment planned planned
Technology / Ad pixels / Social planned planned
Municipality / SSB stats