# Company Registry Lookup: LEI and Norway (`iocodo/company-registry-lookup`) Actor

Look up companies by name, LEI code or Norwegian organisation number. Returns legal name, legal form, status, registered address, industry codes and LEI details from the Global LEI Index (every country) and the Norwegian business register, in one schema.

- **URL**: https://apify.com/iocodo/company-registry-lookup.md
- **Developed by:** [IOCODO LLC](https://apify.com/iocodo) (community)
- **Categories:** Business
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$3.00 / 1,000 company records

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

### What does Company Registry Lookup do?

Company Registry Lookup finds companies in public business registers and returns them in **one clean schema**. Give it a list of company names, `LEI` codes or Norwegian organisation numbers. You get back the legal name, legal form, status, registered address, company number, industry codes and LEI details.

Two registers today:

- the **Global LEI Index** from [GLEIF](https://www.gleif.org/en/lei-data/global-lei-index), with more than 3 million legal entities in every country
- the Norwegian Central Coordinating Register for Legal Entities ([Enhetsregisteret](https://data.brreg.no/enhetsregisteret/oppslag/enheter)), with Norwegian companies, associations and public bodies

It works as a simple company search API: no API key, no login, no browser.

### Why use it?

- **KYB and onboarding checks.** Confirm that a supplier or customer exists, is active and sits at the address it gave you.
- **Data enrichment.** Add legal form, LEI, company number and industry code to a CRM or spreadsheet.
- **Due diligence lists.** Run hundreds of names in one go and get one row per match.
- **One format for many registers.** The same field names whether the company comes from the LEI index or from Norway.

On Apify you can schedule runs, call the Actor through the API, and send results to Google Sheets, Zapier, Make or a webhook.

### What data does it return?

| Field | Example |
|---|---|
| `name` | EQUINOR ASA |
| `country` | NO |
| `registryId` | 923609016 |
| `lei` | OW6OFBNCKXC4US5C7523 |
| `legalForm` | Allmennaksjeselskap |
| `status` | active |
| `registeredAddress` | Forusbeen 50, 4035 Stavanger |
| `industryCodes` | 06.100 Extraction of crude petroleum |
| `employees` | 21231 (Norway only) |
| `foundedOn` | 1972-09-18 |
| `leiStatus`, `leiNextRenewal` | issued, 2027-11-09 |
| `recordUrl` | link to the record at the source |

Every record also carries `source`, `license`, `source_updated_at` and `retrieved_at`, so you always know where a row came from and how fresh it is.

**No personal data.** The output is a fixed list of fields about the legal entity, so names of directors, owners, shareholders and contact people never appear. Sole proprietorships are left out entirely. Their legal name is a person's name. Address lines that route mail to a person, such as `c/o`, are removed too.

### How to look up companies

1. Open the Actor and paste your list into **Companies to look up**, one per line.
2. Pick the registers. Both are selected by default.
3. Optionally limit name searches to some countries with two-letter codes such as `DE` or `FR`.
4. Click **Start** and download the results as JSON, CSV, Excel or HTML.

The Actor detects the kind of each line by itself:

- a 20-character code with valid check digits is an `LEI`
- nine digits with a valid check digit are a Norwegian organisation number
- anything else is a name

### How much does it cost?

You pay **$3 per 1,000 companies returned** ($0.003 each). Lookups that find nothing cost nothing. A run stops by itself when it reaches the maximum charge you set for it. The monthly credit of the free Apify plan is enough to try it.

### Input

See the input tab for every option. In short:

- `queries`: names, LEI codes or Norwegian organisation numbers
- `sources`: `lei`, `norway`, or both
- `countries`: optional filter for name searches
- `maxResultsPerQuery`: up to 100 matches per name and register (default 10)
- `includeInactive`: also return dissolved, merged or bankrupt companies

### Output

```json
{
    "query": "Equinor ASA",
    "matchedBy": "name",
    "name": "EQUINOR ASA",
    "country": "NO",
    "registryId": "923609016",
    "legalFormCode": "ASA",
    "legalForm": "Allmennaksjeselskap",
    "status": "active",
    "registeredAddress": { "lines": ["Forusbeen 50"], "postalCode": "4035", "city": "STAVANGER", "region": "STAVANGER", "country": "NO" },
    "industryCodes": [{ "code": "06.100", "description": "Utvinning av råolje", "scheme": "SN (Norwegian NACE)" }],
    "employees": 21231,
    "website": "https://www.equinor.com",
    "vatRegistered": true,
    "registeredOn": "1995-03-12",
    "recordUrl": "https://data.brreg.no/enhetsregisteret/oppslag/enheter/923609016",
    "source": { "name": "Brønnøysund Register Centre, Central Coordinating Register for Legal Entities (Enhetsregisteret)", "url": "https://data.brreg.no/enhetsregisteret/oppslag/enheter" },
    "license": { "name": "Norwegian Licence for Open Government Data (NLOD) 2.0", "url": "https://data.norge.no/nlod/en/2.0" }
}
```

A `SUMMARY` record in the key-value store lists, for each query, how many companies were found and whether a register failed to answer.

### Tips

- Searching by `LEI` or organisation number is exact and returns one company. Use it when you have the code.
- A name search matches current and previous names, so `Statoil` still finds Equinor in the LEI index.
- Keep `maxResultsPerQuery` low when you only need the best match. You pay per company returned.

### Data source and licence

- **Global LEI Index**, published by the Global Legal Entity Identifier Foundation (GLEIF): [gleif.org](https://www.gleif.org/en/lei-data/global-lei-index). Licence: [CC0 1.0](https://creativecommons.org/publicdomain/zero/1.0/).
- **Enhetsregisteret**, published by the Brønnøysund Register Centre: [data.brreg.no](https://data.brreg.no/enhetsregisteret/oppslag/enheter). Licence: [NLOD 2.0](https://data.norge.no/nlod/en/2.0). Contains data under the Norwegian licence for Open Government data (NLOD) distributed by the Brønnøysund Register Centre.

The Actor selects and renames fields. It does not change their values.

This Actor is independent and is not affiliated with, endorsed by or approved by GLEIF or the Brønnøysund Register Centre.

Registers can be late or wrong, so check the source record before any decision that depends on it.

### FAQ

#### Can I look up companies from other countries?

Yes, if they have an LEI. More national registers will follow.

#### Why is a company missing?

It may have no LEI, be a sole proprietorship, or be inactive while `includeInactive` is off.

#### Found a problem?

Open an issue in the Issues tab and describe the query that went wrong.

# Actor input Schema

## `queries` (type: `array`):

One per line: a company name, a 20-character LEI code, or a 9-digit Norwegian organisation number. The Actor detects which one it is.

## `sources` (type: `array`):

Which registers to search. LEI codes go to the Global LEI Index, Norwegian organisation numbers to the Norwegian register; names are searched in every register selected here.

## `countries` (type: `array`):

Optional. Two-letter ISO 3166-1 codes (for example DE, FR, US) that limit name searches to companies whose legal address is in those countries. Leave empty to search everywhere. The Norwegian register is searched only when this is empty or includes NO.

## `maxResultsPerQuery` (type: `integer`):

Upper limit of companies returned for each name, from each register. Lookups by LEI or organisation number return one company.

## `includeInactive` (type: `boolean`):

When on, name searches also return companies that are dissolved, merged, bankrupt or in liquidation. Lookups by code always return the company, whatever its status.

## Actor input object example

```json
{
  "queries": [
    "Equinor ASA",
    "506700GE1G29325QX363",
    "923609016"
  ],
  "sources": [
    "lei",
    "norway"
  ],
  "countries": [],
  "maxResultsPerQuery": 10,
  "includeInactive": false
}
```

# Actor output Schema

## `companies` (type: `string`):

No description

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

No description

# 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 = {
    "queries": [
        "Equinor ASA",
        "506700GE1G29325QX363",
        "923609016"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("iocodo/company-registry-lookup").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 = { "queries": [
        "Equinor ASA",
        "506700GE1G29325QX363",
        "923609016",
    ] }

# Run the Actor and wait for it to finish
run = client.actor("iocodo/company-registry-lookup").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 '{
  "queries": [
    "Equinor ASA",
    "506700GE1G29325QX363",
    "923609016"
  ]
}' |
apify call iocodo/company-registry-lookup --silent --output-dataset

```

## MCP server setup

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

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/LO3A46eXGkcYZCTIa/builds/21WbGifNR71Mt2uQ3/openapi.json
