REST API for Norwegian company data, geography, financials, and more.
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.
https://preg.pimba.no/api/v1
200 — Success400 — Bad request (invalid input, missing required parameters)401 — Unauthorized (missing or invalid token)404 — Not found500 — Server errorSearch and filter companies with pagination. At least one filter parameter is required.
| Parameter | In | Description |
|---|---|---|
query | query | Full-text search on company name optional |
industry_code | query | NACE industry code (e.g. 43.210) optional |
org_form | query | Organization form code (e.g. AS, ASA, ENK) optional |
municipality_code | query | 4-digit municipality code optional |
county_code | query | 2-digit county code optional |
postal_code | query | 4-digit postal code optional |
min_employees | query | Minimum employee count optional |
max_employees | query | Maximum employee count optional |
vat_registered | query | Filter by VAT registration status optional |
bankruptcy | query | Filter by bankruptcy status optional |
under_liquidation | query | Filter by liquidation status optional |
founded_after | query | Founded on or after date (YYYY-MM-DD) optional |
founded_before | query | Founded on or before date (YYYY-MM-DD) optional |
parent_org_number | query | Filter by parent company org number optional |
registered_after | query | Registered on or after date (YYYY-MM-DD) optional |
registered_before | query | Registered on or before date (YYYY-MM-DD) optional |
min_revenue | query | Minimum revenue (from financial statements) optional |
max_revenue | query | Maximum revenue (from financial statements) optional |
min_health_score | query | Minimum financial health score (0-100) optional |
max_health_score | query | Maximum financial health score (0-100) optional |
health_grade | query | Financial health grade: A, B, C, D, or E optional |
revenue_trend | query | Revenue trend: growing, stable, or declining optional |
chain | query | Filter to members of a specific chain (e.g. Rørkjøp) optional |
exclude_chain | query | Exclude members of a specific chain optional |
chain_status | query | Chain affiliation: none (unaffiliated) or any (has chain) optional |
lat, lng, radius_km | query | Proximity search: companies within radius_km (max 500) of the point. All three required together; each result gains a distance_km field optional |
sort | query | Sort order: name, employees, founded, registered, revenue, health, trend, relevance (default when query is set), distance (requires proximity params; default when proximity is set) optional |
limit | query | Max results (default: 50, max: 250) optional |
offset | query | Pagination 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
Time-ordered feed of newly founded companies (by founding_date), newest first. Useful for spotting fresh prospects in a segment.
| Parameter | In | Description |
|---|---|---|
since | query | Only companies founded on/after this date (default: 90 days ago) optional |
industry_code | query | NACE prefix match on either industry code optional |
municipality_code, county_code | query | Geographic filters optional |
limit, offset | query | Pagination (limit default 50, max 1000) optional |
GET /api/v1/companies/establishments?since=2026-01-01&industry_code=43&county_code=46
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
Returns company details including name, address, organization form, industry codes, and registration status.
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit Norwegian organisasjonsnummer required |
include | query | Comma-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:
health — computed financial health score and graderevenue_trend — CAGR-based classification: growing, stable, or declininghistory — array of previous years (up to 4) with year, revenue, operating_profit, net_income; the latest year is in the summary fields above, not repeated hereGET /api/v1/companies/923609016?include=financials,roles
Validate that a company exists and check its VAT registration status.
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit organisasjonsnummer required |
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.
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit organisasjonsnummer required |
// Response shape
{
"years": [ { /* 2024 financials + health */ }, { /* 2023 */ }, ... ],
"revenue_trend": "growing" // or "stable", "declining", null
}
Returns board members, CEO, and other registered roles for a company.
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit organisasjonsnummer required |
include_inactive | query | Include historical/inactive roles (default: false) optional |
Returns the company's sentral godkjenning (central building approval) status and licensed areas from DIBK.
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit organisasjonsnummer required |
Returns latitude/longitude coordinates for the company's registered address (geocoded via Kartverket).
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit organisasjonsnummer required |
Returns companies added or modified since a given timestamp. Supports cursor-based pagination.
| Parameter | In | Description |
|---|---|---|
since | query | Timestamp: RFC 3339 (2026-02-22T05:15:00Z), datetime (2026-02-22T05:15:00), or date (2026-02-22) required |
type | query | Filter: added or modified optional |
limit | query | Max results (default: 100, max: 1000) optional |
cursor | query | Pagination cursor from next_cursor in previous response optional |
GET /api/v1/changes?since=2026-02-01&type=added&limit=50
Returns the parent company (overordnet enhet) if one is registered. Returns 404 if the company has no parent or is not found.
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit organisasjonsnummer required |
Returns all companies that have this company as their parent (direct children only). Returns an empty array if no subsidiaries exist.
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit organisasjonsnummer required |
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.
| Parameter | In | Description |
|---|---|---|
org_number | path | 9-digit organisasjonsnummer required |
GET /api/v1/companies/923609016/structure
Search for board/management roles across all companies. At least one filter is required.
| Parameter | In | Description |
|---|---|---|
holder_org_number | query | Filter by role holder's org number optional |
person_name | query | Filter by person name (case-insensitive partial match) optional |
role_type | query | Filter by role type optional |
limit | query | Max results (default: 50, max: 250) optional |
offset | query | Pagination offset (default: 0) optional |
At least one of holder_org_number, person_name, or role_type is required.
Search for companies by building approval criteria (DIBK Sentral Godkjenning). At least one filter is required.
| Parameter | In | Description |
|---|---|---|
function | query | Approval function optional |
subject_area | query | Subject area optional |
grade | query | Approval grade optional |
limit | query | Max results (default: 50, max: 250) optional |
offset | query | Pagination offset (default: 0) optional |
At least one of function, subject_area, or grade is required.
Returns postal code details including name, municipality, and county.
| Parameter | In | Description |
|---|---|---|
code | path | 4-digit Norwegian postal code required |
GET /api/v1/postal_codes/0001
Returns municipality details with its parent county.
| Parameter | In | Description |
|---|---|---|
code | path | 4-digit municipality code required |
Lists all municipalities, optionally filtered by county.
| Parameter | In | Description |
|---|---|---|
county_code | query | Filter by county code optional |
Returns a GeoJSON FeatureCollection with county boundary polygons. Response is cached for 24 hours.
Returns application/geo+json content type.
Returns industry benchmark data from SSB (Statistics Norway) for a given NACE code.
| Parameter | In | Description |
|---|---|---|
nace_code | path | NACE industry code (e.g. 43.210) required |
year | query | Specific year to fetch optional |
GET /api/v1/industry_benchmarks/43.210?year=2023
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.
| Parameter | In | Description |
|---|---|---|
industry_code | query | NACE prefix (matches either industry code) required |
year | query | Restrict to statements for this year (default: latest per company) optional |
municipality_code, county_code | query | Geographic filters optional |
GET /api/v1/industry_aggregates?industry_code=43.22&county_code=46
Returns all chains with the number of member companies.
GET /api/v1/chains
Returns paginated list of member companies for a given chain.
| Parameter | In | Description |
|---|---|---|
chain_name | path | Chain name (e.g. Rørkjøp) required |
limit | query | Max results (default: 50, max: 250) optional |
offset | query | Pagination offset (default: 0) optional |
GET /api/v1/chains/Rørkjøp/members?limit=100
Bulk upsert chain memberships. With ?replace=true, removes members not in the payload (full sync mode).
| Parameter | In | Description |
|---|---|---|
chain_name | path | Chain name required |
replace | query | Remove 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 }