Nordic Company Registry & Financials API (Norway, Finland)
Pricing
from $6.00 / 1,000 company records
Nordic Company Registry & Financials API (Norway, Finland)
Look up or search Norwegian & Finnish companies in the official registers. One clean record per company: status, address, NACE, employees, VAT, board & roles, financial key figures.
Pricing
from $6.00 / 1,000 company records
Rating
0.0
(0)
Developer
Niklas Bergström
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Look up Norwegian and Finnish companies by organisation number or name, and get one clean, normalized JSON record per company, straight from the official government registers. No scraping, no API keys, no registration.
Each record includes:
- legal name and former names
- status (active, bankrupt, in liquidation, dissolved)
- legal form
- addresses
- NACE/TOL industry codes
- employees
- VAT number
- share capital
- board and management roles
- official annual-account key figures: revenue, operating profit, net income, total assets, equity and liabilities
Norway and Finland share one schema, so you can mix countries in a single run and get identical columns in JSON, CSV or Excel.
Coverage: Norway & Finland (Sweden coming).
| Country | Register | Lookup by ID | Name search | Roles / board | Financials | Licence |
|---|---|---|---|---|---|---|
| 🇳🇴 Norway | Brønnøysundregistrene (Enhetsregisteret + Regnskapsregisteret) | ✅ | ✅ | ✅ | ✅ key figures (latest filed year) | NLOD 2.0 |
| 🇫🇮 Finland | PRH / YTJ open data + PRH XBRL financial statements | ✅ | ✅ | ❌ (not in open data) | ⚠️ filing index + XBRL document links | CC BY 4.0 |
| 🇸🇪 Sweden | Bolagsverket | 🔜 coming | – | – | – | – |
What can I use it for?
- KYC / KYB and supplier onboarding. Check that a company exists, is active and is not bankrupt or in liquidation, and get its VAT number.
- CRM and lead enrichment. Turn a list of org numbers into addresses, industry codes, websites, employee counts and decision-makers.
- Credit and risk screening. Pull revenue, profit, equity and total assets for Norwegian companies.
- Market mapping. Search by name across both countries and build a list of companies in a niche.
How to use it
- Paste org numbers into Company IDs, or company names into Search by name.
- Turn on Include roles and/or Include financials if you need them.
- Click Start. Then download the results as JSON, CSV or Excel, or fetch them through the Apify API, from Make, Zapier or n8n, or with the Apify MCP server.
Input
| Field | Type | Description |
|---|---|---|
companyIds | array of strings | Norwegian org numbers (923609016) and/or Finnish Business IDs (0112038-9). The country is auto-detected and checksum-validated. Add a prefix to force a country: NO:923609016, FI:0112038-9. |
searchQueries | array of strings | Company names to search for, e.g. "Kesko". Results are ranked: active companies first, then exact match, then prefix match. |
country | AUTO / NO / FI | Restricts IDs and searches to one country. AUTO detects the country of each ID and searches both Norway and Finland. |
maxResultsPerQuery | integer (default 10) | Maximum number of companies returned for each search query and country. |
includeInactive | boolean (default true) | Whether search results include dissolved or bankrupt companies. |
includeRoles | boolean (default false) | Adds CEO, board, auditor, accountant and similar roles (Norway). |
includeFinancials | boolean (default false) | Adds annual-account key figures (Norway) or the XBRL filing index (Finland). |
includeRawData | boolean (default false) | Attaches the untouched register response under raw. |
maxConcurrency / maxRetries | integer | Tuning settings. The defaults are polite to the registers. |
{"companyIds": ["923609016", "0112038-9", "NO:914778271"],"searchQueries": ["Kesko"],"maxResultsPerQuery": 3,"includeRoles": true,"includeFinancials": true}
Output
Every dataset item has recordType company or error. Dataset views are provided for Overview, Financials, Contacts and Errors.
Abridged example (Equinor ASA):
{"recordType": "company","country": "NO","companyId": "923609016","vatNumber": "NO923609016MVA","name": "EQUINOR ASA","alternativeNames": ["Den norske stats oljeselskap a.s", "STATOIL ASA", "STATOILHYDRO ASA"],"legalForm": { "code": "ASA", "description": "Allmennaksjeselskap" },"status": "active","isActive": true,"registrationDate": "1995-03-12","foundedDate": "1972-09-18","businessAddress": { "street": "Forusbeen 50", "postalCode": "4035", "city": "STAVANGER", "municipality": "STAVANGER", "countryCode": "NO" },"industryCodes": [{ "code": "06.100", "description": "Utvinning av råolje", "scheme": "SN2025/NACE (Norway)", "primary": true }],"employees": 21231,"website": "www.equinor.com","shareCapital": { "amount": 5976872600.0, "currency": "NOK" },"roles": [{ "role": "Daglig leder", "roleCode": "DAGL", "roleGroup": "Daglig leder", "name": "Anders Opedal", "entityType": "person", "since": "2020-11-02" }],"financials": {"available": true,"latestFiledYear": "2025","currency": "USD","periodEnd": "2025-12-31","statementType": "company","keyFigures": {"revenue": 67956000000.0, "operatingProfit": 5563000000.0, "profitBeforeTax": 6124000000.0,"netIncome": 5731000000.0, "totalAssets": 103432000000.0, "equity": 39182000000.0,"totalLiabilities": 64249000000.0, "cashAndBank": 17651000000.0}},"sourceUrl": "https://virksomhet.brreg.no/nb/oppslag/enheter/923609016","license": "NLOD 2.0 (Norwegian Licence for Open Government Data)","fetchedAt": "2026-10-27T04:07:13Z"}
status is always one of active, pending, restructuring, liquidation, bankrupt, dissolved or unknown. The register's own wording is kept in statusDetails.
Error items (errorType: invalid_id, not_found, needs_credentials, api_error) tell you exactly which inputs failed, so a run never fails silently.
Pricing (pay per event)
| Event | Price | When |
|---|---|---|
company-record | $0.006 | One company record delivered |
financial-record | $0.03 | Key figures included in a record (Norway) |
Invalid IDs, IDs that don't exist in the register, Swedish IDs and API errors are free (you get an error item explaining why). Apify platform usage is included in the price.
The Actor respects your maximum cost per run. It checks the remaining budget before each record. When the budget cannot cover the financials, it delivers the record without key figures and does not charge for them. When the budget cannot cover the record itself, it stops cleanly.
Examples:
- 1,000 companies with basic data cost $6.
- 1,000 Norwegian companies with financial key figures cost $36.
Data sources and licences
- Norway: Brønnøysundregistrene open data (Enhetsregisteret API and Regnskapsregisteret API), licensed under NLOD 2.0.
- Finland: PRH open data (YTJ API v3) and the PRH XBRL financial statements API, licensed under CC BY 4.0.
Every record carries sourceName, sourceUrl and license, which makes attribution easy.
This Actor only uses official, keyless public APIs. It does not scrape websites. It rate-limits itself per host and retries with exponential backoff, honouring Retry-After.
Limitations
- Finland:
- Roles and board members are not part of PRH's open data; they are only available through PRH's paid Virre service, so
rolesis empty androlesNoteexplains why. - Employee counts are not published.
- Financials are returned as a list of filed XBRL statements with document links. Key figures are not parsed yet, so no
financial-recordcharge applies. - Name search is a register text search. Very generic names may need a more specific query.
- Roles and board members are not part of PRH's open data; they are only available through PRH's paid Virre service, so
- Norway: The open Regnskapsregisteret API returns the latest filed annual accounts only, not a multi-year history. Small companies and some company types (e.g. housing co-ops) may have no accounts.
- Sweden: Coming in a future version. Swedish org numbers are recognised today and return a free
needs_credentialsitem. - Denmark (CVR): Not supported.
Privacy / GDPR
Role holders are natural persons. This Actor exports only their name, role and start date, which is what the registers publish openly. It does not export birth dates, even where the register provides them.
You are responsible for having a lawful basis for processing personal data under GDPR (e.g. legitimate interest for KYB or B2B prospecting), and for honouring data-subject rights.
FAQ
How do I find the organisation number? Use searchQueries with the company name. Every result includes companyId.
Can I monitor companies for changes? Schedule the Actor and diff status, roles and financials.latestFiledYear between runs.
Is the data real-time? Yes. Every record is fetched live from the registers at run time (fetchedAt).