Skip to contents

One row per endpoint reachable through the fifteen exports, with the pagination model, the retrieval window, and how the package behaves at the boundary. The evidence column separates what BRREG documents (https://data.brreg.no/enhetsregisteret/api/dokumentasjon/) from what has been observed against the live service; limits observed for one route are never assumed for another. Boundary probes for the search routes run in the scheduled live test workflow (tests/testthat/test-liveapi-audit.R).

Enhetsregisteret API

Base URL https://data.brreg.no/enhetsregisteret/api.

RouteFunctionPaginationLimits and boundaryEvidence
GET /enheter/{orgnr}brreg_entity()none200 (entity or SlettetEnhet), 404 unknown, 410 deleteddocumented; 200-with-SlettetEnhet observed on 25/25 recent deletions (2026-08)
GET /underenheter/{orgnr}brreg_entity()noneas enheterdocumented
GET /enheter?...brreg_search(), brreg_children()page/size; page.totalElements reportedsize at most 10,000; size * (page + 1) at most 10,000, else HTTP 400; the package aborts with tidybrreg_error_result_window when total_matches exceeds the window and more was requested; an employee range within 1 to 4 (fraAntallAnsatte/tilAntallAnsatte) is refused for privacy with HTTP 400observed 2026-08-08 (Bergen query: 57,954 matches; result 10,000 retrievable, 10,001 answered 400); privacy rule observed 2026-10-30
GET /underenheter?...brreg_search(), brreg_underenheter()as enheteras enheter; no konkurs filter (the package rejects bankrupt)documented; window probed in the live suite
GET /enheter/{orgnr}/rollerbrreg_roles()none (whole payload)404 unknown entity, 410 deleted; empty rollegrupper for an entity without rolesdocumented
GET /roller/enheter/{orgnr}/juridiskerollerbrreg_roles_legal()none404 when nothing is registereddocumented
GET /konsernstruktur/{orgnr}brreg_konsern()none (recursive tree)404 both for unknown numbers and for entities in no group; depth observed to 6documented; depth observed (ASA census, 2026-10)
GET /oppdateringer/enheter, /oppdateringer/underenheterbrreg_updates(), brreg_update_fields()cursor: dato for the first page, oppdateringsid (exclusive) thereafter; size at most 10,000no documented window; field patches (includeChanges) available from 2025-09documented; cursor semantics observed
GET /oppdateringer/rollerbrreg_updates() with type = "roller"afterTime for the first page, afterId thereafter; size at most 10,000CloudEvents without field detaildocumented; afterId pagination not yet probed live
GET /enheter/lastned, /underenheter/lastned, /roller/totalbestandbrreg_download()none (one gzipped JSON file)regenerated nightly; ETag and Last-Modified sent; the CSV variants (/lastned/csv) are not readdocumented; sizes observed 2026-08 (196 / 75 / 131 MB)
GET /organisasjonsformerbuild script onlynone44 codesobserved 2026-06-16

Fullmakt service

Base URL https://data.brreg.no/fullmakt.

RouteFunctionPaginationLimits and boundaryEvidence
GET /enheter/{orgnr}/signaturbrreg_signatur()none404 when nothing is registered (common for ENK); 200 with status.rutineStatus and no combinations when the rule cannot be resolved mechanically (tidybrreg_warning_unresolved)documented; unresolved case observed 2026-10-30 (Equinor ASA)
GET /enheter/{orgnr}/prokurabrreg_prokura()noneas signaturdocumented

Regnskapsregisteret API

Base URL https://data.brreg.no/regnskapsregisteret/regnskap (OpenAPI 1.1.16).

RouteFunctionPaginationLimits and boundaryEvidence
GET /{orgnr}, optional år, regnskapstypebrreg_regnskap()none (whole array)up to three fiscal years per type since 2026-10-01, KONSERN before SELSKAP; 404 when no accounts are served (unknown number, no filing, or a year outside the window); HTTP 500 oppstillingsplan som ikke er støttet (PLAN) for banks, insurers and pension funds, mapped to tidybrreg_warning_unsupported_plandocumented; behaviour change observed 2026-10-06 (six filings per ASA)

SSB KLASS (not BRREG)

Base URL https://data.ssb.no/api/klass/v1.

RouteFunctionPaginationLimits and boundaryEvidence
GET /classifications/6/codesAt, /classifications/39/codesAtget_brreg_dic()nonewhole code list for a date and languageobserved 2026-06-16

Rate limiting

BRREG publishes no rate limit or rate-limit headers; the package throttles itself to 5 requests per second per host and retries 429, 503, 500, 502 and 504 up to three times, as well as connection failures and the register's rate limit when it arrives as HTTP 200 with the text Too many requests (then a tidybrreg_error_rate_limited). The Regnskapsregisteret 500 for an unsupported accounting plan is final. Request timeouts are httr2's defaults.

See also