# Nordic Company Search: Norway (Brreg) & Finland (YTJ) (`swiftkit/nordic-companies`) Actor

Search Norwegian and Finnish companies in the official registers by name, industry code, city or size, or look up org numbers / Business IDs: legal form, industry, employees, website, address, founding date, bankruptcy and liquidation flags. Open data, no key. $2 per 1,000 companies.

- **URL**: https://apify.com/swiftkit/nordic-companies.md
- **Developed by:** [SwiftKit](https://apify.com/swiftkit) (community)
- **Categories:** Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$2.00 / 1,000 companies

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Nordic Company Search: Norway (Brreg) & Finland (YTJ)

Search the **official company registers of Norway and Finland**, or look up organisation numbers
and Business IDs, and get one clean row per company:

- **Identity:** organisation number / Business ID, name (plus Finnish trade names), legal form
- **Industry:** code and description (Norway SN2025, Finland TOL 2008, in English for Finland)
- **Size:** registered number of employees (Norway)
- **Contact:** website and business address
- **Dates:** founded and registered
- **Health flags:** bankrupt, in liquidation, deleted; Norway also: part of a group, VAT-registered
- A link to the company's page in the official register

**Search by** name, industry code, city/municipality and (Norway) minimum employees.

Sources: Norway's **Brønnøysund Register Centre** (Enhetsregisteret, NLOD open licence) and
Finland's **Finnish Patent and Registration Office** (YTJ open data, CC BY 4.0). No key, no login.

### Who it's for

- **B2B sales:** target lists by industry, city and company size (e.g. software companies in Oslo with 200+ staff).
- **KYB and finance:** verify numbers, legal form and bankruptcy or liquidation status in bulk.
- **Market research:** count and segment companies by industry and region.

### Input

| Option | Default | What it does |
|---|---|---|
| Country | Norway | Norway or Finland |
| Company name contains | – | Name search |
| Or look up numbers | – | Org numbers / Business IDs |
| Industry code | – | e.g. `62.100` (NO), `62010` (FI) |
| City / municipality | – | `OSLO`, `0301`, `Helsinki` |
| Minimum employees | 0 | Norway only |
| Only active companies | on | Skip deleted, bankrupt, liquidating |
| Include sole traders | off | See privacy |
| Max companies | 100 | Up to 10,000 |

### Output

Real data:

```json
{
  "status": "ok",
  "country": "NO",
  "id": "923609016",
  "name": "EQUINOR ASA",
  "legalForm": "Allmennaksjeselskap",
  "industryCode": "06.100",
  "industry": "Utvinning av råolje",
  "employees": 21272,
  "website": "https://www.equinor.com",
  "address": { "street": "Forusbeen 50", "postalCode": "4035", "city": "STAVANGER", "country": "Norge" },
  "partOfGroup": true,
  "bankrupt": false,
  "registerUrl": "https://virksomhet.brreg.no/nb/oppslag/enheter/923609016"
}
```

### Privacy, on purpose

- **Board members, CEOs and owners are never returned.**
- **Sole proprietorships are excluded by default** (Norway ENK, Finnish private traders): they are
  registered under the owner's own name.

### Pricing

You pay **per company returned**. Errors and not-found numbers are free. See the Pricing tab.

### Limits, honestly

- Norwegian field names and descriptions are in Norwegian (as published); Finnish ones are in English.
- Employee counts exist for Norway only.
- The Finnish name search is broad; the tool keeps only companies whose **current** names contain
  your text.

### More tools from SwiftKit

- [French Company Search (SIRENE)](https://apify.com/swiftkit/france-companies): French companies with revenue and VAT numbers
- [Brazil Company Search (CNPJ)](https://apify.com/swiftkit/brazil-companies): Brazilian companies by city and CNAE activity
- [Company Domain & Logo Finder](https://apify.com/swiftkit/company-lookup): websites, logos and socials for company names
- [SEC EDGAR Financials](https://apify.com/swiftkit/sec-edgar): financials of US-listed companies

### Questions?

Open an issue on the Issues tab.

# Actor input Schema

## `country` (type: `string`):

Which national register to search.

## `query` (type: `string`):

e.g. equinor or nokia.

## `ids` (type: `array`):

Norway: 9-digit organisation numbers. Finland: Business IDs like 0112038-9. When given, search filters are ignored.

## `industryCode` (type: `string`):

Norway: SN2025 code, e.g. 62.100 (programming). Finland: TOL 2008 code, e.g. 62010.

## `municipality` (type: `string`):

Norway: city or municipality name (OSLO) or number (0301). Finland: city name (Helsinki).

## `minEmployees` (type: `integer`):

Norway only: registered number of employees.

## `onlyActive` (type: `boolean`):

Skip deleted, bankrupt and liquidating companies.

## `includeSoleTraders` (type: `boolean`):

Sole proprietorships are excluded by default because they are named after a person.

## `maxResults` (type: `integer`):

Up to 10,000.

## Actor input object example

```json
{
  "country": "NO",
  "query": "equinor",
  "minEmployees": 0,
  "onlyActive": true,
  "includeSoleTraders": false,
  "maxResults": 100
}
```

# Actor output Schema

## `results` (type: `string`):

One row per company.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "query": "equinor"
};

// Run the Actor and wait for it to finish
const run = await client.actor("swiftkit/nordic-companies").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = { "query": "equinor" }

# Run the Actor and wait for it to finish
run = client.actor("swiftkit/nordic-companies").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "query": "equinor"
}' |
apify call swiftkit/nordic-companies --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,swiftkit/nordic-companies"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/eGcGIRToHzwTpfceK/builds/VITDRJO43dgo0AhUO/openapi.json
