# Brreg Scraper: Norway Company Registry Search & Leads (`mrslm_data/norway-company-registry`) Actor

Search Norway's official Brreg register (Enhetsregisteret) by name, NACE industry, municipality, size or date: org number, address, employees, website.

- **URL**: https://apify.com/mrslm_data/norway-company-registry.md
- **Developed by:** [MRSLM Data](https://apify.com/mrslm_data) (community)
- **Categories:** Lead generation, Business
- **Security:** Limited permissions
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 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.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Brreg Scraper: Norway Company Registry Search & Leads

**Search Norway's official business register (Brreg) by name, industry, municipality, size or registration date: org number, address, NACE, employees, website. $1.00 per 1,000 companies.**

This Actor searches the **Central Coordinating Register for Legal Entities (Enhetsregisteret)** run by the Brønnøysund Register Centre (Brreg), Norway's official register of every company and organisation. Search by company name, filter by NACE industry code, municipality, company form, employee count, VAT status or registration date, and get clean rows with the organisation number, address, industry, employees, website, share capital and status flags. No login, no API key and no browser: it uses Brreg's own open-data API.

### What the Brreg Scraper does

Brreg publishes the full register through a free open-data API at data.brreg.no. The Actor turns your input into register queries, pages through every match, removes duplicates across searches, drops sole proprietorships (ENK) so no private persons appear, and saves one row per company.

The most popular use is a **feed of newly registered Norwegian companies**: set `registeredWithinDays` (for example 1 or 7) plus an industry or municipality, schedule it, and you get a fresh lead list every morning. Others use it to **look up and verify** a list of company names, or to **size a market** (how many AS companies in NACE 62 have 10-50 employees in Bergen?).

### Who it is for

- **Accountants, banks, insurers and B2B sales teams** who want to contact newly founded companies first.
- **Recruiters and suppliers** who need every company in an industry and municipality, sized by employees.
- **Market analysts and journalists** tracking company formation by sector and region.
- **Data and compliance teams** that verify organisation numbers, VAT status and bankruptcy flags in bulk.

### Quick start

1. Press **Start**. The form is already filled with this example input, so the first run returns real rows in under a minute:

```json
{
  "industryCodes": [
    "62"
  ],
  "registeredWithinDays": 30,
  "maxResults": 30
}
```

2. Swap in your own values, or call the Actor through the Apify API, Make, Zapier, n8n or the Python/JS clients with the same JSON.
3. Download the results as JSON, CSV or Excel from the **Output** tab, or schedule the run to repeat.

### Real example: new IT companies in Oslo in the last 90 days

Run on 2 November 2026 with this input:

```json
{
  "industryCodes": [
    "62"
  ],
  "municipalityNumbers": [
    "0301"
  ],
  "registeredWithinDays": 90,
  "maxResults": 200
}
```

`0301` is the municipality number for Oslo, `62` matches every NACE code starting with 62 (computer programming and IT consultancy), and `maxResults: 200` caps the run. The run hit the cap in 6 seconds and was charged 200 company events, about $0.20.

- Industry split: 152 rows under 62.100 (programming), 48 under 62.200 (IT consultancy and management).
- Company forms: AS 190, NUF 7, FLI 2, DA 1. Sole proprietorships (ENK) are never returned.
- Registered between 2026-08-20 and 2026-11-02; 18 of the 200 are already VAT-registered and 7 list a website. Brand-new companies rarely have either yet, which is exactly why a fresh-registration feed is useful: you reach them before anyone else.

The newest rows (newest first):

| Name | Org number | NACE | Registered |
|---|---|---|---|
| LOSJI AS | 938795983 | 62.100 | 2026-11-02 |
| AI-KOLLEKTIVET AS | 938785678 | 62.200 | 2026-10-30 |
| ITURNUS AS | 938787395 | 62.100 | 2026-10-30 |
| MUSKLR AS | 938787484 | 62.100 | 2026-10-30 |
| PUNCHLINE AS | 838787312 | 62.100 | 2026-10-30 |
| STELLAR SOLUTIONS BY BERTOLI MAURO AS | 938781060 | 62.200 | 2026-10-29 |

To get every new Oslo IT company, set `maxResults` to 0. To cover all of Norway, remove `municipalityNumbers`.

### Sample row (real run, trimmed)

```json
{
  "orgNumber": "838747752",
  "name": "MINDA AS",
  "organisationForm": "AS",
  "organisationFormName": "Aksjeselskap",
  "industry": {
    "code": "62.100",
    "description": "Dataprogrammeringstjenester"
  },
  "industry2": null,
  "industry3": null,
  "employees": null,
  "website": null,
  "businessAddress": {
    "street": "Heistadtangen 28",
    "postalCode": "3941",
    "city": "PORSGRUNN",
    "municipality": "PORSGRUNN",
    "municipalityNumber": "4001",
    "country": "NO"
  },
  "postalAddress": null,
  "foundedDate": "2026-09-22",
  "registeredDate": "2026-10-26",
  "inBusinessRegister": true,
  "vatRegistered": false,
  "vatRegisteredDate": null,
  "partOfGroup": false,
  "shareCapital": {
    "amount": 30000,
    "currency": "NOK",
    "shares": 30000,
    "type": "Aksjekapital"
  },
  "lastAnnualAccountsYear": null,
  "sector": {
    "code": "2100",
    "description": "Private aksjeselskaper mv."
  },
  "purpose": "Utvikle, eie, lisensiere, markedsføre og selge programvare, digitale tjenester, data- og AI-baserte løsninger for idrett, organisasjoner og tilknyttet virksomhet, samt rådgivning og annen virksomhet som naturlig står ...",
  "bankrupt": false,
  "underLiquidation": false,
  "forcedDissolution": false,
  "deletedDate": null,
  "parentOrgNumber": null,
  "registryUrl": "https://virksomhet.brreg.no/nb/oppslag/enheter/838747752"
}
```

Also included: secondary industries, postal address, founding date, VAT registration date, group membership, share capital, last filed accounts year, sector, stated purpose, bankruptcy and liquidation flags and the parent org number.

### Output fields

| Field | What it holds |
|---|---|
| `orgNumber` | 9-digit organisation number (organisasjonsnummer). |
| `name` | Registered company name. |
| `organisationForm` | Form code: AS, ASA, NUF, ANS, DA and others. |
| `organisationFormName` | Form name in Norwegian. |
| `industry` | Main NACE (SN2007) code and description. |
| `industry2 / industry3` | Secondary industries, when registered. |
| `employees` | Employee count from the register (null when not reported). |
| `website` | Website, normalised to https://. |
| `businessAddress` | Street, postcode, city, municipality, municipality number, country. |
| `postalAddress` | Postal address, when different. |
| `foundedDate` | Date the company was founded. |
| `registeredDate` | Date it entered the Central Coordinating Register. |
| `inBusinessRegister` | True when it is in the Register of Business Enterprises. |
| `vatRegistered / vatRegisteredDate` | VAT (MVA) register status and date. |
| `partOfGroup` | True when part of a corporate group. |
| `shareCapital` | Amount, currency, share count and type. |
| `lastAnnualAccountsYear` | Last year with filed annual accounts. |
| `sector` | Institutional sector code and description. |
| `purpose` | Stated purpose of the company (trimmed). |
| `bankrupt / underLiquidation / forcedDissolution` | Status flags. |
| `deletedDate` | Deletion date for removed entities. |
| `parentOrgNumber` | Parent unit, when the row is a sub-unit or part of a group. |
| `registryUrl` | Link to the official Brreg page. |

### Filters

- `searchTerms`: company names (one per line). Brreg matches on the name.
- `industryCodes`: SN2007/NACE codes or prefixes. `62` = all IT services, `62.100` = programming, `70.2` = management consulting.
- `municipalityNumbers`: 4-digit codes, e.g. `0301` Oslo, `4601` Bergen, `5001` Trondheim, `1103` Stavanger.
- `organisationForms`: e.g. `AS`, `ASA`, `NUF` (foreign branch). Default: all company forms except sole proprietorships.
- `registeredWithinDays`: only companies registered in the last N days.
- `minEmployees` / `maxEmployees`: employee band from the register.
- `vatRegisteredOnly`, `excludeBankrupt` (on by default), `newestFirst` (on by default).
- `maxResultsPerSearch` and `maxResults`: caps.

Leave everything empty and the Actor runs the example search (IT companies registered in the last 30 days, up to 30) so a first click on Start always returns real rows.

### Export to CSV, Excel, JSON or Google Sheets

Every run saves its rows to an Apify dataset. Open the **Output** tab and pick a format:

- **CSV** or **Excel** for spreadsheets and CRM imports. Nested fields (arrays and objects) are flattened into columns such as `locations/0`.
- **JSON** or **JSONL** to keep the nested structure for code and databases.
- **Google Sheets**: add the Apify "Google Sheets export" integration to the Actor or schedule, and every finished run is appended to a sheet.

You can also copy the dataset link from the **Storage** tab. It is a stable API URL your own scripts can download at any time.

### Use it from Make, Zapier or n8n

The Actor has official Apify modules in all three tools:

- **Make**: add the *Apify → Run an Actor* module, choose `mrslm_data/norway-company-registry`, paste the JSON input, then add *Apify → Get Dataset Items* and map the fields into Google Sheets, HubSpot, Airtable or Slack.
- **Zapier**: use the *Apify* app with the trigger *Finished Actor Run* (set up a schedule in Apify) or the action *Run Actor*, then *Fetch Dataset Items*.
- **n8n**: use the *Apify* node (Run Actor + Get dataset items), or a plain HTTP Request node calling the run-sync endpoint shown below.

### Schedule it

In Apify Console open **Schedules → Create new**, choose this Actor and a cron such as `0 7 * * 1-5` (07:00 every working day). With `registeredWithinDays: 1` each daily run returns the companies registered since the day before. Pair the schedule with an integration (e-mail, Slack, Google Sheets or a webhook) so new rows reach you without opening Apify.

### Call it from the API (Python, JavaScript or curl)

The input below is the same JSON you would paste into the form.

**Python** (`pip install apify-client`):

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("mrslm_data/norway-company-registry").call(run_input={
  "industryCodes": [
    "62"
  ],
  "municipalityNumbers": [
    "0301"
  ],
  "registeredWithinDays": 7
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row)
```

**JavaScript / Node.js** (`npm install apify-client`):

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

const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('mrslm_data/norway-company-registry').call({"industryCodes": ["62"], "municipalityNumbers": ["0301"], "registeredWithinDays": 7});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.length, 'companys');
```

**curl** (runs the Actor and returns the rows in one call, for runs under 5 minutes):

```bash
curl -X POST "https://api.apify.com/v2/acts/mrslm_data~norway-company-registry/run-sync-get-dataset-items?token=<YOUR_APIFY_TOKEN>&format=csv" \
  -H "Content-Type: application/json" \
  -d '{"industryCodes": ["62"], "municipalityNumbers": ["0301"], "registeredWithinDays": 7}'
```

### Use it from AI agents and chat assistants (MCP)

Apify's MCP server (`https://mcp.apify.com`) exposes Store Actors as tools for Claude, ChatGPT, Cursor and other MCP clients. Add the server with your Apify token, enable `mrslm_data/norway-company-registry`, and ask in plain language, for example: *"List IT companies registered in Oslo in the last 7 days with their org number and address."* The assistant fills the input, runs the Actor and reads the rows back. You pay the same per-company price as a normal run.

### What it costs

- **Company: $1.00 per 1,000 saved** (Silver $0.90, Gold $0.80)
- Plus $0.00005 per run. You pay only for companies saved after your filters. Searches with no matches are free.

Worked example: a full list of IT companies (NACE 62) registered in Oslo in the last 90 days is a few hundred rows, about **$0.20-0.40** per run. A daily "new companies in Norway yesterday" feed across all industries is usually 150-400 rows a working day, well under $0.50.

### Tips

- **New-company feed:** `registeredWithinDays: 1`, an industry prefix, and a weekday schedule.
- **Bigger companies only:** `minEmployees: 10` drops shells and one-person companies.
- **Foreign companies in Norway:** `organisationForms: ["NUF"]` lists Norwegian branches of foreign companies.
- **Enrich a list:** put company names in `searchTerms` and set `maxResultsPerSearch: 1` to get the best match per name.

### Limits

- Employee counts come from the register and are often missing for small or brand-new companies (`null`).
- No people: board members, CEOs and owners (roller) are not read, and sole proprietorships are always excluded.
- No financial statements (revenue, profit). `lastAnnualAccountsYear` only tells you the last year accounts were filed.
- Sub-units (underenheter, local branches) are not returned; one row per main legal entity.

### FAQ

**Where does the data come from?** From the official Brønnøysund Register Centre open-data API (data.brreg.no), published under the Norwegian Licence for Open Government Data (NLOD).

**Is any personal data included?** Sole proprietorships (ENK) and other personal business forms are always excluded, so every row is a limited company or other legal entity. No people's names are output.

**How fresh is it?** Live. Brreg updates its register continuously.

**Can I get only new records each day?** Yes. Use the date window input and schedule the Actor; each run returns what is new in that window.

**What is NACE / SN2007?** Norway's industry classification (Standard for næringsgruppering 2007), which follows the EU NACE Rev. 2 codes.

**Can I use the organisation number to look up more?** Yes. `registryUrl` opens the official page, and the org number is the key in every Norwegian public register.

### Data source, freshness and licence

Source: the Brønnøysund Register Centre open-data API (data.brreg.no, Enhetsregisteret). Brreg updates the register continuously, and every run queries it live. Licence: Norwegian Licence for Open Government Data (NLOD 2.0); credit "Brønnøysundregistrene" when you republish.

### Is it legal?

This Actor only reads official open-data APIs that the publisher offers to everyone without a login or key. It obeys robots.txt, stays under the published rate limits, and never tries to get past logins, paywalls, captchas or bot checks. Sole proprietorships (ENK) and other personal business forms are always excluded, so every row is a limited company or other legal entity. No people's names are output. You are responsible for how you use the data: follow the source's licence and terms and the privacy and marketing laws that apply to you (GDPR, CAN-SPAM, PECR, etc.). This tool is independent and not affiliated with or endorsed by the data publisher.

# Actor input Schema

## `searchTerms` (type: `array`):

Search by company name. One per line.

## `industryCodes` (type: `array`):

Norwegian SN2007/NACE codes. Prefixes work: 62 = all IT services, 62.010 = software development.

## `municipalityNumbers` (type: `array`):

4-digit municipality numbers, e.g. 0301 (Oslo), 4601 (Bergen).

## `organisationForms` (type: `array`):

Codes such as AS, ASA, NUF, ANS, DA. Default: all company forms except sole proprietorships.

## `registeredWithinDays` (type: `integer`):

Only companies registered in the last N days. 0 = any date.

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

0 = no minimum.

## `maxEmployees` (type: `integer`):

0 = no maximum.

## `vatRegisteredOnly` (type: `boolean`):

Keep only companies in the VAT register.

## `excludeBankrupt` (type: `boolean`):

Skip companies that are bankrupt or being wound up.

## `newestFirst` (type: `boolean`):

Sort by registration date, newest first.

## `maxResultsPerSearch` (type: `integer`):

Cap per search term (or per source). 0 = no cap.

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

Safety cap on saved companies across the whole run. 0 = no cap. Your max cost per run is always respected.

## Actor input object example

```json
{
  "industryCodes": [
    "62"
  ],
  "registeredWithinDays": 30,
  "minEmployees": 0,
  "maxEmployees": 0,
  "vatRegisteredOnly": false,
  "excludeBankrupt": true,
  "newestFirst": true,
  "maxResultsPerSearch": 0,
  "maxResults": 30
}
```

# Actor output Schema

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

All companies as a dataset (JSON, CSV, Excel and more via the API or Console).

## `summary` (type: `string`):

Matches and saved rows per search, failures and the stop reason.

# 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 = {
    "industryCodes": [
        "62"
    ],
    "registeredWithinDays": 30,
    "maxResults": 30
};

// Run the Actor and wait for it to finish
const run = await client.actor("mrslm_data/norway-company-registry").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 = {
    "industryCodes": ["62"],
    "registeredWithinDays": 30,
    "maxResults": 30,
}

# Run the Actor and wait for it to finish
run = client.actor("mrslm_data/norway-company-registry").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 '{
  "industryCodes": [
    "62"
  ],
  "registeredWithinDays": 30,
  "maxResults": 30
}' |
apify call mrslm_data/norway-company-registry --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,mrslm_data/norway-company-registry"
        }
    }
}
```

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/WEgHDo6spbigPm2tf/builds/gc0BhF6RSCbr2JjA9/openapi.json
