Pimbaregisteret API

REST API for Norwegian company data, geography, financials, and more.

Authentication

All API endpoints require a Bearer token. Include it in the Authorization header:

curl -H "Authorization: Bearer YOUR_TOKEN" https://preg.pimba.no/api/v1/companies/923609016

Contact [email protected] to request an API token.

Base URL

https://preg.pimba.no/api/v1

Response Codes

Companies

GET /companies Search companies

Search and filter companies with pagination. At least one filter parameter is required.

ParameterInDescription
queryqueryFull-text search on company name optional
industry_codequeryNACE industry code (e.g. 43.210) optional
org_formqueryOrganization form code (e.g. AS, ASA, ENK) optional
municipality_codequery4-digit municipality code optional
county_codequery2-digit county code optional
postal_codequery4-digit postal code optional
min_employeesqueryMinimum employee count optional
max_employeesqueryMaximum employee count optional
vat_registeredqueryFilter by VAT registration status optional
bankruptcyqueryFilter by bankruptcy status optional
under_liquidationqueryFilter by liquidation status optional
founded_afterqueryFounded on or after date (YYYY-MM-DD) optional
founded_beforequeryFounded on or before date (YYYY-MM-DD) optional
parent_org_numberqueryFilter by parent company org number optional
registered_afterqueryRegistered on or after date (YYYY-MM-DD) optional
registered_beforequeryRegistered on or before date (YYYY-MM-DD) optional
min_revenuequeryMinimum revenue (from financial statements) optional
max_revenuequeryMaximum revenue (from financial statements) optional
min_health_scorequeryMinimum financial health score (0-100) optional
max_health_scorequeryMaximum financial health score (0-100) optional
health_gradequeryFinancial health grade: A, B, C, D, or E optional
revenue_trendqueryRevenue trend: growing, stable, or declining optional
chainqueryFilter to members of a specific chain (e.g. Rørkjøp) optional
exclude_chainqueryExclude members of a specific chain optional
chain_statusqueryChain affiliation: none (unaffiliated) or any (has chain) optional
lat, lng, radius_kmqueryProximity search: companies within radius_km (max 500) of the point. All three required together; each result gains a distance_km field optional
sortquerySort order: name, employees, founded, registered, revenue, health, trend, relevance (default when query is set), distance (requires proximity params; default when proximity is set) optional
limitqueryMax results (default: 50, max: 250) optional
offsetqueryPagination offset (default: 0) optional

At least one filter parameter is required.

GET /api/v1/companies?query=pimba
GET /api/v1/companies?municipality_code=0301&org_form=AS&min_employees=5
GET /api/v1/companies?industry_code=43.210&county_code=46
GET /api/v1/companies?industry_code=43.210&health_grade=A&sort=health
GET /api/v1/companies?org_form=AS&revenue_trend=growing&sort=trend
GET /api/v1/companies?chain_status=none&industry_code=43.210&county_code=46
GET /api/v1/companies?exclude_chain=Rørkjøp&min_employees=5
GET /companies/establishments Recently founded companies

Time-ordered feed of newly founded companies (by founding_date), newest first. Useful for spotting fresh prospects in a segment.

ParameterInDescription
sincequeryOnly companies founded on/after this date (default: 90 days ago) optional
industry_codequeryNACE prefix match on either industry code optional
municipality_code, county_codequeryGeographic filters optional
limit, offsetqueryPagination (limit default 50, max 1000) optional
GET /api/v1/companies/establishments?since=2026-01-01&industry_code=43&county_code=46
GET /companies/liquidations Recently bankrupt or liquidating companies

Time-ordered feed of companies in bankruptcy or under liquidation, most recently updated first. Same parameters as /companies/establishments; since filters on last-updated.

GET /api/v1/companies/liquidations?since=2026-01-01&industry_code=43
GET /companies/{org_number} Fetch company data

Returns company details including name, address, organization form, industry codes, and registration status.

ParameterInDescription
org_numberpath9-digit Norwegian organisasjonsnummer required
includequeryComma-separated list of related data to include: financials, roles, approvals optional

When include=financials is set, the financials object includes the most recent year's data plus:

GET /api/v1/companies/923609016?include=financials,roles
GET /companies/{org_number}/validate Validate company

Validate that a company exists and check its VAT registration status.

ParameterInDescription
org_numberpath9-digit organisasjonsnummer required
GET /companies/{org_number}/financials Financial statements

Returns all available financial statements (regnskap) from BRREG Regnskapsregisteret. The response contains a years array (newest first) and a revenue_trend classification. Each year includes a computed health object with score (0-100), grade (A-E), and per-dimension sub-scores when financial data is available.

ParameterInDescription
org_numberpath9-digit organisasjonsnummer required
// Response shape
{
  "years": [ { /* 2024 financials + health */ }, { /* 2023 */ }, ... ],
  "revenue_trend": "growing"  // or "stable", "declining", null
}
GET /companies/{org_number}/roles Board and management

Returns board members, CEO, and other registered roles for a company.

ParameterInDescription
org_numberpath9-digit organisasjonsnummer required
include_inactivequeryInclude historical/inactive roles (default: false) optional
GET /companies/{org_number}/building_approval Building approval status

Returns the company's sentral godkjenning (central building approval) status and licensed areas from DIBK.

ParameterInDescription
org_numberpath9-digit organisasjonsnummer required
GET /companies/{org_number}/geocode Coordinates

Returns latitude/longitude coordinates for the company's registered address (geocoded via Kartverket).

ParameterInDescription
org_numberpath9-digit organisasjonsnummer required

Change Feed

GET /changes Recently added or modified companies

Returns companies added or modified since a given timestamp. Supports cursor-based pagination.

ParameterInDescription
sincequeryTimestamp: RFC 3339 (2026-02-22T05:15:00Z), datetime (2026-02-22T05:15:00), or date (2026-02-22) required
typequeryFilter: added or modified optional
limitqueryMax results (default: 100, max: 1000) optional
cursorqueryPagination cursor from next_cursor in previous response optional
GET /api/v1/changes?since=2026-02-01&type=added&limit=50

Corporate Structure

GET /companies/{org_number}/parent Parent company

Returns the parent company (overordnet enhet) if one is registered. Returns 404 if the company has no parent or is not found.

ParameterInDescription
org_numberpath9-digit organisasjonsnummer required
GET /companies/{org_number}/subsidiaries Direct subsidiaries

Returns all companies that have this company as their parent (direct children only). Returns an empty array if no subsidiaries exist.

ParameterInDescription
org_numberpath9-digit organisasjonsnummer required
GET /companies/{org_number}/structure Full corporate tree

Returns the full corporate structure tree. Walks up to the root parent, then returns all descendants as a flat list with a depth field. Returns 404 if the company is not found.

ParameterInDescription
org_numberpath9-digit organisasjonsnummer required
GET /api/v1/companies/923609016/structure

Roles Search

GET /roles Search roles across companies

Search for board/management roles across all companies. At least one filter is required.

ParameterInDescription
holder_org_numberqueryFilter by role holder's org number optional
person_namequeryFilter by person name (case-insensitive partial match) optional
role_typequeryFilter by role type optional
limitqueryMax results (default: 50, max: 250) optional
offsetqueryPagination offset (default: 0) optional

At least one of holder_org_number, person_name, or role_type is required.

Building Approvals Search

GET /building_approvals Search by approval criteria

Search for companies by building approval criteria (DIBK Sentral Godkjenning). At least one filter is required.

ParameterInDescription
functionqueryApproval function optional
subject_areaquerySubject area optional
gradequeryApproval grade optional
limitqueryMax results (default: 50, max: 250) optional
offsetqueryPagination offset (default: 0) optional

At least one of function, subject_area, or grade is required.

Geography

GET /postal_codes/{code} Postal code lookup

Returns postal code details including name, municipality, and county.

ParameterInDescription
codepath4-digit Norwegian postal code required
GET /api/v1/postal_codes/0001
GET /municipalities/{code} Municipality lookup

Returns municipality details with its parent county.

ParameterInDescription
codepath4-digit municipality code required
GET /municipalities List municipalities

Lists all municipalities, optionally filtered by county.

ParameterInDescription
county_codequeryFilter by county code optional
GET /counties/boundaries.geojson County boundaries

Returns a GeoJSON FeatureCollection with county boundary polygons. Response is cached for 24 hours.

Returns application/geo+json content type.

Industry Benchmarks

GET /industry_benchmarks/{nace_code} SSB benchmarks

Returns industry benchmark data from SSB (Statistics Norway) for a given NACE code.

ParameterInDescription
nace_codepathNACE industry code (e.g. 43.210) required
yearquerySpecific year to fetch optional
GET /api/v1/industry_benchmarks/43.210?year=2023
GET /industry_aggregates Aggregated financials by industry

Aggregates our companies' latest (or a given year's) financial statements across a NACE industry — company count, revenue total/average/median, average operating profit, and average health score. Useful for judging a prospect against its peers.

ParameterInDescription
industry_codequeryNACE prefix (matches either industry code) required
yearqueryRestrict to statements for this year (default: latest per company) optional
municipality_code, county_codequeryGeographic filters optional
GET /api/v1/industry_aggregates?industry_code=43.22&county_code=46

Chain Memberships

GET /chains List chains with member counts

Returns all chains with the number of member companies.

GET /api/v1/chains
GET /chains/{chain_name}/members List chain members

Returns paginated list of member companies for a given chain.

ParameterInDescription
chain_namepathChain name (e.g. Rørkjøp) required
limitqueryMax results (default: 50, max: 250) optional
offsetqueryPagination offset (default: 0) optional
GET /api/v1/chains/Rørkjøp/members?limit=100
POST /chains/{chain_name}/sync Sync chain memberships

Bulk upsert chain memberships. With ?replace=true, removes members not in the payload (full sync mode).

ParameterInDescription
chain_namepathChain name required
replacequeryRemove existing members not in payload optional
POST /api/v1/chains/Rørkjøp/sync?replace=true
Content-Type: application/json

{ "members": ["923609016", "912345678"] }

// Response: { "upserted": 2, "removed": 5 }