Guide · Norway · Lookup, roles and insolvency
Brreg API: Norwegian company data, roles and insolvency
A customer types an organisasjonsnummer or the first letters of a name; your form fills in the legal name, organisation form, status, address and industry code from Enhetsregisteret, the register of legal entities run by Brønnøysundregistrene (Brreg), and the same key reads the roles, the compulsory-liquidation signal and the insolvency notices. One key, and the same response shape as every other country the API covers.
Norway at a glance
Register: Brønnøysund Register Centre
Identifiers Organisasjonsnummer
- Company recordsYes
- OfficersYes
- Insolvency noticesYes
- Corporate eventsRegister changes
- MonitoringYes
- Financial statementsAnnual accounts
- VAT numberFrom the register, if VAT-registered
- NACE classYes
- UpdatedDaily
The guide below states the limits of every row. Financial statements are on the Scale plan and above; the other plans and the free trial get 10 calls a month.
Price From EUR 9.99 a month (Starter plan)
In other languagesNorsk
Sign upTry Norway live
Look up a company in Norway with the shared demo key. No sign-up.
The demo key is shared and capped per page view; your own key has the limits of your plan.
Is there an official Norwegian company registry API?
As at 5 Nov 2026, yes: Brønnøysundregistrene publishes an open Enhetsregisteret API (data.brreg.no) with search, single lookups, bulk downloads in JSON and CSV, roles and update feeds; its documentation mentions no API key for the public endpoints, caps search results at 10,000 per query and states the data is under the Norwegian licence for public data (NLOD 2.0). One API across the live countries adds a company record in the same response shape as every other country, with register-change events, monitoring and the other countries behind one key. Scope limits for Norway: no gazette events (register-change events only), no beneficial owners and no credit scores; sole proprietorships are included as the register publishes them.
Brreg API and Prometiam, field by field
The official side is as stated above (as at 5 Nov 2026); the Prometiam side follows the Norway scope on this page.
| Field | Official Brreg API | Prometiam |
|---|---|---|
| Access | Open; the documentation mentions no API key for the public endpoints. | An API key; a docs demo key and free tools let you try without an account. |
| Company record | Search and single lookups; bulk downloads in JSON and CSV. | Search and record keyed on the organisasjonsnummer, in the same response shape as every other country. |
| Roles | Roles are published. | Appointments on the record and officer search by name; current roles without appointment dates. |
| Updates | Update feeds. | Register-change events (none before 14 Oct 2026) and monitoring alerts. |
| Search result cap | 10,000 results per query. | Paged with a cursor on the new-company feed. |
| Insolvency notices | Not among the parts read on 5 Nov 2026 (search, single lookups, roles, update feeds and bulk files). | Corporate notices linked by the organisasjonsnummer; the compulsory-liquidation signal on the record. |
| Other countries | Norway only. | The live countries under one key. |
| Licence | NLOD 2.0. | Contains data from the Brønnøysund Register Centre, NLOD 2.0. |
Brreg API: what to know before you build on it
From Brreg's own documentation, as read on 5 Nov 2026, and the roles data it publishes:
- It is the Norwegian register alone: a second country is a second integration, with another identifier and another response shape.
- A search returns at most 10,000 results per query; a wider set means narrower filters or the bulk files.
- Changes come as update feeds that you read and apply to your own copy.
- The register publishes current roles without appointment dates, and a person's date of birth as year and month only.
- The data is under the Norwegian licence for public data (NLOD 2.0): read its terms before you redistribute.
What you get, and what you do not
Norway ships company records and officers (roles), a registry-compliance signal for compulsory liquidation, corporate insolvency notices and public-procurement awards from TED. Norway has register-change events (name, status, legal form and registered address), dated when the change first appears in the register data, none before 14 Oct 2026, no gazette; it can be monitored (status change, dissolution, sanctions match, register-change events).
| Feature | For Norway | Where |
|---|---|---|
| Company record | Yes, keyed on the organisasjonsnummer. | GET /companies/search, GET /companies/{id} |
| Officers (roles) | Yes: directors, chair, CEO, auditor and others from the roles register. Current roles without appointment dates; a person's date of birth as year and month only. | appointments on the record, GET /people/search?country=NO |
| Registry-compliance signal | Yes: Brønnøysund compulsory liquidation (forced_dissolution). | risk_flag_type=registry_compliance, include=risk_flags |
| Insolvency notices | Yes. Norway is one of the sixteen insolvency markets (FR, DE, GB, AT, CH, NO, FI, US, NL, DK, HR, SE, ES, LV, EE, SG), corporate only, linked to the company by its number. | GET /insolvency/search, POST /insolvency/check |
| Public procurement | Yes: TED, above the EU thresholds only. Awards carry the organisasjonsnummer as published and are not linked to company records. | GET /procurement/awards?country=NO |
| Corporate events | register-change events only (name, status, legal form, registered address), none before 14 Oct 2026; Norway publishes no gazette. | — |
| Monitoring | Yes. Norway is monitored: a subscription alerts on status changes, dissolution, sanctions matches and register-change events (none before 14 Oct 2026), and never on insolvency notices. | — |
| Beneficial owners | No. | — |
Searching officers by name needs a Starter plan or above; a trial key has 25 calls a month. If you want to know what the register itself is, start with What is Brønnøysundregistrene? (also på norsk).
What the Norwegian record gives your product
- Exact match on the organisasjonsnummer.
company_number=923609016withcountry=NO. It is nine digits and the last is a modulus-11 check digit. The match is exact, so send the nine digits with no spaces. The free organisasjonsnummer lookup runs the same call. - The id is the organisasjonsnummer. The
idthe search returns is the number itself, as an integer, so a Norwegian customer's own identifier goes straight to the detail call:GET /companies/923609016?country=NO. Other countries offset their ids; Norway does not. - Autocomplete by name.
?name=is a normalised, partial match ranked by a match score. Each call is one request. - The register's own state. Brønnøysund's bankruptcy, liquidation and compulsory-liquidation flags are in
local_status, andlocal_status: "dissolved"means the company no longer exists (status: "deregistered"). - A new-company feed.
founded_after=2026-09-01withcountry=NOlists companies by incorporation date, newest first, paged withnext_cursor. - One schema for every country. The same response shape whichever
countryyou pass, so a multi-country flow needs one integration.
| Field | What it holds for Norway |
|---|---|
company_number, id | The nine-digit organisasjonsnummer: 923609016. The id is the same number as an integer. |
company_name | The registered name in capitals, with previous_names and their dates. |
legal_form, local_legal_form, local_legal_form_name | The organisation form, such as AS, ASA, ENK or NUF, with its full label in local_legal_form_name. A NUF is a Norwegian branch of a foreign company: it has an organisasjonsnummer, but the legal entity sits abroad. |
local_status, status, stage | The Brønnøysund status in local_status, with the standard status and stage beside it where the value is recognised. |
address, postal_code, city, province | The registered address; province is the municipality. |
activity_code, activity_description | The NACE industry code and its description. |
employees, website | The employee count and the website, where the register holds them; the company detail also carries a phone number and a VAT-registered flag. |
capital_amount, capital_currency | Share capital in NOK. capital_eur is the same amount converted at the ECB reference rate of 2 October 2026, an approximation for comparing sizes. |
founding_date, dissolution_date | The incorporation date and, for a dissolved company, the dissolution date. |
Validate before you call
An organisasjonsnummer is nine digits whose last digit is a modulus-11 check digit, computed over the first eight with the weights 3, 2, 7, 6, 5, 4, 3, 2. A remainder that would give a check digit of 10 is never issued. That makes it one of the identifiers you can reject offline, in your own code, before it costs a call. Numbers in issue start around 810 million; a lower leading digit is usually another nine-digit identifier. The identifier validator runs the same arithmetic in the browser; this is the version to paste into a form handler:
// Norwegian organisasjonsnummer: 9 digits, the last is a mod-11 check digit
const WEIGHTS = [3, 2, 7, 6, 5, 4, 3, 2]
export function checkOrgnr(input) {
const d = String(input).replace(/[\s.]/g, '')
if (!/^\d{9}$/.test(d)) return null
const rem = WEIGHTS.reduce((a, w, i) => a + w * Number(d[i]), 0) % 11
const check = rem === 0 ? 0 : 11 - rem
return check !== 10 && check === Number(d[8]) ? d : null // a computed 10 is never issued
}
checkOrgnr('923609016') // '923609016' (Equinor ASA)
checkOrgnr('923 609 016') // '923609016': spaces are ignored
checkOrgnr('923609017') // null: the check digit should be 6A passing check says the number is well-formed, never that the organisation exists or is still registered. That is what the lookup is for.
Four calls
# 1. By organisasjonsnummer curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?company_number=923609016&country=NO" # 2. By name, for a type-ahead field curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?name=equinor&country=NO&limit=5" # 3. The full record, roles included: the id is the organisasjonsnummer curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/923609016?country=NO&include=risk_flags" # 4. Companies incorporated since a date, newest first curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?founded_after=2026-09-01&country=NO&limit=100"
To resolve a list, POST /companies/lookup takes up to 100 items in one call, each one counted as one request:
curl -X POST "https://api.prometiam.com/functions/v1/risk-api/companies/lookup" \
-H "Authorization: Bearer $PROMETIAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"country":"NO","company_number":"923609016"},{"country":"NO","company_number":"982463718"},{"country":"NO","name":"Norsk Hydro"}]}'Beyond the record: roles, compulsory liquidation and insolvency
Roles
The company record carries appointments: each has a role_type, a role_description, an action and the person. The Brønnøysund roles file publishes current roles without appointment dates, so the date fields are empty for Norway. To find an officer by name, GET /people/search?name=hansen&country=NO needs a Starter plan or above. Norwegian officers carry a year-month date of birth only and are matched on name plus birth month, because Brreg assigns no person identifier; two officers who share both can merge. Norwegian person ids are returned raw, like the company ids.
The registry-compliance signal
# Companies in compulsory liquidation curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?risk_flag_type=registry_compliance&country=NO&limit=20"
On a single company, include=risk_flags returns the signal (forced_dissolution, dated in as_of). It is a registry-compliance signal, not an insolvency or a dissolution: read it with status.
Insolvency notices
# Notices filed under one organisasjonsnummer
curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \
"https://api.prometiam.com/functions/v1/risk-api/insolvency/search?country=NO&company_number=923609016"
# A list of counterparties in one call
curl -X POST "https://api.prometiam.com/functions/v1/risk-api/insolvency/check" \
-H "Authorization: Bearer $PROMETIAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"country":"NO","company_number":"923609016"},{"country":"NO","company_number":"914778271"}]}'Notices are corporate only, from sixteen markets (FR, DE, GB, AT, CH, NO, FI, US, NL, DK, HR, SE, ES, LV, EE, SG). An empty result means no notice was found, not that the company is solvent. The batch call counts every item as one request. Because Norway has no gazette, this is the place to look for a Norwegian company's insolvency history.
Public procurement
# Awards published under an organisasjonsnummer curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/procurement/awards?country=NO&nif=923609016&limit=20"
Norwegian awards come from TED, above the EU thresholds only, so contracts below the thresholds do not appear. The rows carry the organisasjonsnummer as published, without a link to a company record; the award is returned either way. Amounts published in krone are converted at the ECB annual average rate for the award year, and currency keeps the published one. Awards to natural persons are never returned.
An autocomplete endpoint in Node
Your server keeps the key and proxies the search; the form calls your server. A full-length, well-formed organisasjonsnummer goes to the exact filter, anything else is a name, and a full-length number that fails its check digit is rejected before it costs a call:
// server: /api/no-company?q=... (keep the key out of the browser)
app.get('/api/no-company', async (req, res) => {
const q = String(req.query.q || '').trim()
const compact = q.replace(/[\s.]/g, '')
const looksLikeId = /^\d{9}$/.test(compact) // a full-length number; anything shorter is still a name
const orgnr = looksLikeId ? checkOrgnr(compact) : null
if (looksLikeId && !orgnr) return res.status(422).json({ error: 'That is not a valid organisasjonsnummer' })
const params = new URLSearchParams({ country: 'NO', limit: '6', ...(orgnr ? { company_number: orgnr } : { name: q }) })
const r = await fetch('https://api.prometiam.com/functions/v1/risk-api/companies/search?' + params,
{ headers: { Authorization: 'Bearer ' + process.env.PROMETIAM_API_KEY } })
if (!r.ok) return res.status(502).json({ error: 'Lookup failed' })
const { data } = await r.json()
res.json(data.map(c => ({ id: c.id, name: c.company_name, orgnr: c.company_number, form: c.local_legal_form_name || c.legal_form,
status: c.status, city: c.city, municipality: c.province, postal_code: c.postal_code, address: c.address })))
})If you are comparing it with Brreg's own API
Enhetsregisteret is open data, and Brreg publishes its own API, which is free. This API is the alternative when you need Norway alongside other countries under one key and one response shape, with the insolvency notices, the compulsory-liquidation signal and the procurement awards on the same call shape. The register itself is explained in What is Brønnøysundregistrene? and, for Norwegian readers, on the Norwegian pages.
What Norway does not carry
- A gazette event stream. Norway publishes no corporate-event gazette; the event endpoints return register-change events only (name, status, legal form, registered address), none before 14 Oct 2026. Use the insolvency endpoints for Norwegian insolvency.
- Monitoring. Norway is monitored: a subscription alerts on status changes, dissolution, sanctions matches and register-change events (none before 14 Oct 2026), and never on insolvency notices. To catch a bankruptcy notice, send your counterparties through
POST /insolvency/checkon a schedule. - Appointment dates and full dates of birth. The roles file has neither: current roles only, and a birth month.
- Beneficial owners. Not served for Norway.
- Credit scores. Not served.
- Financial statements. Annual accounts as filed are served from the Scale plan: the last three approved accounts, with no employee count in the accounts.
Pricing
Norway is included in every tier at no upcharge. Starter begins with a 14-day trial: 500 credits in total, 10 requests/minute, card required, nothing charged for 14 days. Subscribing keeps the same key working. Then Starter at €9.99/month (1,000 credits, 60 requests/minute), Professional at €29.99/month (10,000 credits, 120 requests/minute) and Scale at €99.99/month (50,000 credits, 300 requests/minute), monthly or annual; annual is ten months' price for twelve. A company record costs 1 credit, an autocomplete keystroke costs 1 credit, and error responses cost nothing. Officers by name are a Starter-tier scope, with 25 calls a month on a trial key.
Brreg API questions
Brreg API documentation
Brønnøysundregistrene documents its open Enhetsregisteret API at data.brreg.no. Ours is documented in the API docs.
Brreg API example
One call to our API for a Norwegian company, by organisasjonsnummer:
curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?company_number=923609016&country=NO"
Brreg API in Python
The same call with requests:
import os
import requests
r = requests.get(
"https://api.prometiam.com/functions/v1/risk-api/companies/search",
params={"company_number": "923609016", "country": "NO"},
headers={"Authorization": "Bearer " + os.environ["PROMETIAM_API_KEY"]},
)
print(r.json())Brreg API key
As at 5 Nov 2026, Brreg's documentation mentions no API key for the public endpoints. Ours needs a key. To try without an account, use the demo key in the docs or the free tools, such as the organisasjonsnummer lookup.
Brreg API price
Brreg's own API is free. Ours starts at Starter, EUR 9.99 a month for 1,000 credits; a company search or a company record costs 1 credit. The 14-day trial gives 500 credits, card required, nothing charged during it.
FAQ
How do I look up a Norwegian company by organisasjonsnummer from an API?
Call GET /companies/search?company_number=923609016&country=NO. The match is exact, so send the nine digits with no spaces and validate the modulus-11 check digit in your own code first.
Is the id the organisasjonsnummer?
Yes. For Norway the id the API returns is the organisasjonsnummer itself, as an integer, so GET /companies/923609016?country=NO works straight from the number. Other countries offset their ids.
Does it include board members and roles?
Yes. The roles register (directors, chair, CEO, auditor and others) comes back as appointments on the company record. The register publishes current roles without appointment dates, and a person's date of birth as year and month only.
Are there corporate events or monitoring for Norway?
Yes, with limits. Norway publishes no corporate-event gazette, so the event endpoints return register-change events only (name, status, legal form, registered address), none before 14 Oct 2026, and the monitor endpoint covers every live country except France and Chile.
Does it cover Norwegian insolvency?
Yes. Norway is one of the sixteen insolvency markets (FR, DE, GB, AT, CH, NO, FI, US, NL, DK, HR, SE, ES, LV, EE, SG), corporate only. GET /insolvency/search matches the organisasjonsnummer printed on the notice. An empty result is not proof of solvency.
How much does the Norway company data API cost?
Norway is included in every tier at no upcharge. Free is a 14-day trial with 500 credits in total and card required, nothing charged for 14 days; subscribing keeps the same key working. Paid tiers run from EUR 9.99 to EUR 99.99 a month, monthly or annual.
Can I call the API from the browser?
You can, but a key in the browser is public. Proxy the search through your server, as in the sample above. Rate limits are per key.
Everything about Norway
Guides
Free tools
Comparisons
In other languages
Norsk 14
- Hva er Brønnøysundregistrene
- Søk organisasjonsnummer
- KYB-onboarding via API
- Leverandørkontroll med API
- Konkursovervåking med API
- Konkurser per måned i Norge
- Brreg API
- Purehelp-alternativ
- Selskaps-API for Norge
- MVA-nummer: sjekk om firmaet er MVA-registrert
- Konkursregisteret
- Salgssignaler
- Hvem vinner offentlige anbud
- Norge: formater for bedriftsidentifikatorer (Organisasjonsnummer)
More countries: Nordics
Source: Brønnøysundregistrene (Enhetsregisteret), Norway. Licensed under the Norwegian Licence for Open Government Data (NLOD).