Orakel-dokumentasjon

Begrensninger og grenser

Kjente hull, forespørselsgrenser, hvor ferske dataene er, og policyen for betalte kilder.

Denne siden samler det Orakel ikke gjør. De kjente hullene er bevisste valg, ikke feil. De fleste stammer fra policyen for betalte kilder lenger ned.

Forespørselsgrenser

Hvor mye hver nøkkel kan hente styres av planen (lib/tiers.ts). Enkeltnøkler kan overstyre standardverdiene med ApiKey.rateLimit, ApiKey.dailyLimit og ApiKey.monthlyLimit.

PlanForespørsler per minuttPer døgnPer månedMaks sidestørrelse
free205005 00020
pro605 00050 000100
enterprise120ubegrensetubegrenset100
internal120ubegrensetubegrenset100

Grenser per IP-adresse (lib/rate-limit.ts):

  • Mislykket API-autentisering: 20 per 15 minutter
  • Admin-innlogging: 5 per 15 minutter
  • Utsending av innloggingslenke: 5 per e-postadresse per time
  • Skjemaet for tilgangsforespørsel: 3 per time

Vern mot skraping:

  • Markørdybde: 50 sider per 5 minutter per nøkkel på /api/companies
  • Gratisplanen må sende minst ett filter til /api/companies (requireFilterOnSearch)

Alle tellere ligger i minnet og nullstilles ved utrulling. Én server, ingen Redis. Kvotetellingen ligger i databasen (UsageLog) med 60 sekunders mellomlagring i minnet.

Hvor ferske dataene er

KildeFrekvensMaksimalt etterslep
Enhetsregisteret (NO)Endringer hvert 15. minutt~15 minutter
Enhetsregisteret (NO)Fullt uttrekk månedligmaks 1 måned
Regnskapsregisteret (NO)Løpende, i porsjoner6 måneder etter regnskapsårets slutt
Aksjonærregisteret (NO)Årlig uttrekk~1 år
Doffin (NO)Daglig, kun endringer~24 timer
Mattilsynet (NO)Ukentlig (mandag 05:00)~1 uke
Helsedirektoratet TBR (NO)Ukentlig (mandag 07:00)~1 uke
SSB Klass (NO)Klassifikasjoner ved behov, statistikk månedlig (den 1., 06:00)varierer
PRH / YTJ (FI)Ukentlig (mandag 03:00 UTC)~1 uke
Tilastokeskus XBRL (FI)Daglig (04:00 UTC)~24 timer
Bolagsverket og SCB (SE)Daglig (05:00 UTC)~24 timer
BerikelsespipelineDaglige porsjoner og ukentlig utsæd~24 timer

Tidspunktene er UTC der ikke annet står. Etterslepene er øvre grenser i normal drift. Kaldstart og kilder bak tilgangskontroll (for eksempel forhåndsvisnings-API-et til Regnskapsregisteret) kan bruke lengre tid.

Hvor mange regnskapsår

Dybden varierer per land, fordi API-ene oppfører seg ulikt:

  • NO (Regnskapsregisteret). Returnerer bare siste innleverte år per henting. Flere år bygger seg opp passivt over tid, omtrent ett nytt år per driftsår. En bedrift som synkroniseres for første gang i dag, gir ett år. Dypere historikk krever Brønnøysundregistrenes betalte arkiv, som ikke er kjøpt inn under policyen for betalte kilder.
  • FI (Tilastokeskus XBRL). Lister alle digitale innleveringsperioder per selskap og henter hver av dem, så flere år kommer inn i én synkronisering. Begrenset av de omtrent 30 000 selskapene som leverer digitalt, se KNOWN_GAPS.FI.
  • SE (Bolagsverket HVD). iXBRL fra regnskapsåret 2020 og senere. Før 2020 finnes bare papir. Se KNOWN_GAPS.SE.

Landdekning

Norge, Finland, Sverige (fase 3a og 3b) og Danmark er i drift. Roller for Sverige (fase 3c) venter på søknad om tilgang til Bolagsverkets «Företagsinformation». Ingen tidsplan.

Matrisen per felt ligger i feltkatalogen.

KNOWN_GAPS.FI, sitert ordrett fra lib/countries.ts (teksten står på engelsk i kildekoden og gjengis uendret):

  • roles - not exposed by free PRH APIs (paid Virre only)
  • financial field decoding - dimensional XBRL taxonomy; only totalAssets reliably mapped from one fixture, expand incrementally
  • financials coverage - ~30K digital filers; paper filings require paid Virre

Finsk statistikk (Tilastokeskus StatFin):

  • Overlevelsesgrad: StatFin publiserer ikke overlevelsesgrad per årskull gjennom PxWeb. fiveYrSurvivalRate er tom for alle finske selskaper.
  • Lønn er utledet: avgMonthlyWage regnes ut (sum lønn delt på årsverk delt på 12) og kan avvike fra et direkte undersøkelsestall.
  • Valuta: avgMonthlyWage er i euro.

KNOWN_GAPS.SE, sitert ordrett fra lib/countries.ts:

  • roles - requires separate Bolagsverket «Företagsinformation» credential (apply when customer asks)
  • financials coverage - HVD contains only digitally filed iXBRL from FY 2020+; digital filing was voluntary through FY 2025 so large/listed ABs (Volvo, H&M, Ericsson) historically filed PDF and are absent. Mandatory FY 2026 → first large-AB filings arrive spring 2027.
  • financials pre-2020 - paper-only, no digital history

Svensk statistikk (SCB):

  • Overlevelsesgrad: SCB publiserer ikke overlevelsesgrad per årskull gjennom PxWeb-API-et. fiveYrSurvivalRate er tom for alle svenske selskaper.
  • Valuta: avgMonthlyWage er i svenske kroner.

KNOWN_GAPS.DK, sitert ordrett fra lib/countries.ts:

  • beneficial ownership - post-Sept 2025 6AMLD requires legitimate-interest justification; skipped by default

Plikter etter personvernforordningen

Aksjonærregisteret inneholder personopplysninger. Videreformidler du aksjonærdata, trenger du et dokumentert behandlingsgrunnlag. Hele drøftingen står i Aksjonærregisteret. Orakels eget grunnlag er berettiget interesse etter artikkel 6 nr. 1 bokstav f, aksjonærer som er privatpersoner er skjult med mindre du sender ?includePersons=true, og fødselsdatoer lagres aldri.

Policy for betalte kilder

Orakel bygger kun på frie, offentlige data. Betalte abonnementer (Virre, Näringslivsregistret, Bisnode, D&B, Vainu, Apollo, Proxycurl i stor skala, BuiltWith og lignende) kjøpes ikke før en konkret betalende kunde dekker kostnaden gjennom kontrakten sin. Hullene dokumenteres og leveres tomme. Ber en kunde om data fra et hull, prises abonnementet inn i avtalen.

Dagens hull som stammer fra denne policyen:

LandHullBetalt kilde som ville dekket det
FIStyremedlemmer og ansvarlige personer (roller)Virre
FIRegnskap for de som leverer på papirVirre
FIFull XBRL-kartlegging (bare totalAssets tolkes)Referansedata for taksonomien
SERollerNäringslivsregistret
SERegnskap før 2020Digitalisering av papirarkivet
DKReelle rettighetshavere etter september 2025Prosess for berettiget interesse etter sjette hvitvaskingsdirektiv
AlleBerikelse i stor skalaBisnode, D&B, Vainu, Apollo, Proxycurl, BuiltWith, Clearbit, ZoomInfo

Hull dokumenteres i stedet for å fylles med betalte data på spekulasjon. Trenger en kunde et bestemt felt, prises kilden inn i oppdraget framfor å bli levert som en generell funksjon.

Kjente stubber og delvise funksjoner

  • SSB Klass, nivå 2: planlagt utvidelse utover dagens tre tabeller (07459, 11419, 14000). Ikke eksponert ennå.
  • XBRL-kartlegging for Finland: MC_TO_FIELD i lib/ytj/financials.ts tolker bare totalAssets pålitelig. Øvrige Financial-kolonner er tomme for finske rader.
  • Det finske selskapsuniverset: fase 1 leverer en utvalgt liste, ikke hvert eneste Y-tunnus. Ta kontakt på hello@orakel.cloud for å få lagt til en bestemt bedrift.
  • Svenske regnskapstall: skjemaet er på plass, innlastingen venter på tilgang i fase 3b.
  • Svenske enkeltpersonforetak: tolvsifrede personlige organisasjonsnumre hoppes over i fase 3a.

Svarhodene henger etter kildelisten

lib/attribution.ts setter X-Data-Source til den norske kildelisten og X-Data-License: NLOD 2.0 på hvert svar. Etter fase 1 (Finland) og fase 3a (Sverige) returnerer API-et data fra PRH, Tilastokeskus, Bolagsverket og SCB uten at det gjenspeiles i hodene. Hodet er beholdt som et landuavhengig signal om NLOD 2.0, ikke som en kildeliste per svar.

For presis kildehenvisning per svar, bruk _sources-feltet i svarkroppen. Det gjenspeiler nøyaktig hvilke kilder som bidro, og holder seg oppdatert etter hvert som nye land og berikere kommer til.

Sikkerhet

API-nøkler lagres SHA-256-hashet. Mister du en, lager du en ny; den kan ikke gjenopprettes. Destinasjonskonfigurasjon (Attio-token, webhook-hemmeligheter) krypteres med AES-256-GCM. Admin-økter ligger i databasen, med httpOnly, sameSite=strict og 24 timers levetid. Sammenligning av hemmeligheter er tidskonstant. CSRF-token kreves på alle endringer i administrasjonsgrensesnittet.