# EU Company Registers API (FR, NO, FI, CZ, IE, PL) (`yourevenings/eu-company-registers`) Actor

European company registry API for six official registers: Ireland, Norway, Finland, France, Czechia and Poland. Lookup, search and new companies. No API key.

- **URL**: https://apify.com/yourevenings/eu-company-registers.md
- **Developed by:** [Your Evenings](https://apify.com/yourevenings) (community)
- **Categories:** Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $2.40 / 1,000 company record returneds

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

## EU Company Registers API (FR, NO, FI, CZ, IE, PL)

**EU Company Registers API** returns company records from six official national business registers as clean JSON rows in **one schema**, with **no API key needed**. Each row has the register ID, legal name, legal form, status (active, inactive, in liquidation or bankrupt), registration and closure dates, registered address, main activity code, website and VAT number where the register publishes them, plus the licence and a link to the source record. Use it as a company register API for KYB and company verification checks, bulk lookups of European company data and new company registrations. Three modes:

- **Look up companies**: up to 500 companies by country and register ID, for example `FR:552032534` or `NO:923609016`.
- **Search by name**: in France, Norway, Finland, Czechia and Ireland.
- **Newly registered**: companies registered in a date range in Norway, Finland and Ireland.

Turn on **monitor mode** and schedule the Actor to get only companies that are new or have changed since the last run, with the fields that changed and their previous values.

One **European company registry** API in place of six: the **Irish company register** (CRO), the **Norway company register** (Brønnøysund), the **Finland company register** (PRH / YTJ), the **Polish company register** (KRS), France's Sirene / RNE data and Czechia's ARES, with rows you can export as CSV, JSON or Excel.

| Country | Register | ID | Look up | Search | Newly registered |
|---|---|---|---|---|---|
| FR | Recherche d'entreprises API (Sirene / RNE data) | SIREN (9 digits) | yes | yes | no |
| NO | Enhetsregisteret, Brønnøysund Register Centre | Organisation number (9 digits) | yes | yes | yes |
| FI | Trade Register / YTJ open data, Finnish Patent and Registration Office | Business ID (1234567-8) | yes | yes | yes |
| CZ | ARES, Ministry of Finance | IČO (8 digits) | yes | yes | no |
| IE | Companies Registration Office open data | CRO number | yes | yes | yes |
| PL | KRS open API, Ministry of Justice | KRS number (10 digits) | yes | no | no |

> **Not affiliated with any register.** This Actor is independent and is not affiliated with, endorsed by or sponsored by any of the registers or government bodies above. It reads their official public APIs and open-data feeds. Each row carries the source's licence and attribution (see *Data sources, licences and attribution*).

### Why this one

- **Official sources only.** Every row comes from a register's own public API or open-data feed, not from scraped web pages, so a website redesign doesn't break it.
- **One schema for six countries.** The same field names, status values and address shape for every country, with the register's own wording kept in `statusDetail` and `legalFormCode`.
- **Clear answers when nothing is found.** An ID that isn't in the register gets a free `not_found` row, a badly formed ID gets `invalid_id`, and a search too broad for the register gets `too_many_results` with the match count, so an empty result is never silent.
- **You choose how much comes back.** `maxResults` caps the whole run and `maxResultsPerCountry` caps each country, and the Actor stops before your run's maximum cost.
- **One country's outage doesn't fail the run.** Requests are retried after rate-limit or server errors; if a register is still down, that country gets a free `source_error` row and the others carry on.
- **Company-level data only.** Sole traders and natural persons are skipped and never charged. Officers, phone numbers and email addresses are never put in rows.
- **Polite to the sources.** Requests to each register are paced and identify the Actor.

### Quick start

Press **Start** with the prefilled input, or paste this into the **JSON** view of the Input tab. It looks up one company in each country.

```json
{
  "mode": "lookup",
  "companies": ["FR:552032534", "NO:923609016", "FI:0112038-9", "CZ:00177041", "IE:104547", "PL:0000028860"]
}
```

In our test run on 30 October 2026 it returned 6 rows: DANONE (FR), EQUINOR ASA (NO), Nokia Oyj (FI), Škoda Auto a.s. (CZ), RYANAIR DESIGNATED ACTIVITY COMPANY (IE) and ORLEN SPÓŁKA AKCYJNA (PL), all active.

Companies named "ryanair" in Ireland and France, active only:

```json
{
  "mode": "search",
  "name": "ryanair",
  "countries": ["IE", "FR"],
  "activeOnly": true,
  "maxResultsPerCountry": 10
}
```

Companies registered in the last 7 days in Norway, Finland and Ireland:

```json
{
  "mode": "newCompanies",
  "countries": ["NO", "FI", "IE"],
  "registeredWithinDays": 7,
  "maxResultsPerCountry": 100,
  "maxResults": 300
}
```

### Who it's for

- **KYC, onboarding and credit teams** checking that a European counterparty exists, is active and is registered at the address it gave.
- **Data and CRM teams** enriching company lists with legal names, legal forms, activity codes and VAT numbers from the official source.
- **B2B sales and market researchers** following newly registered companies in a country.

### Use cases

1. **Counterparty check.** Look up a list of register IDs and get status, legal form, address and VAT number in one table.
2. **Change watch.** Monitor a watch list daily and get a row only when a company's name, status, address, activity or website changes, for example when it enters liquidation.
3. **New companies.** Companies registered in Norway, Finland or Ireland in the last N days, with their activity codes.
4. **Name check.** Find registered companies matching a name across five countries at once.

### Output sample

The rows from the Quick start input (run on 30 October 2026), shortened:

| Country | Register ID | Name | Legal form | Status | Registered | City | Activity code |
|---|---|---|---|---|---|---|---|
| FR | 552032534 | DANONE | SA (board of directors) | active | 1955-01-01 | PARIS | 70.10Z |
| NO | 923609016 | EQUINOR ASA | Allmennaksjeselskap | active | 1995-03-12 | STAVANGER | 06.100 |
| FI | 0112038-9 | Nokia Oyj | Public limited company | active | 1896-12-19 | ESPOO | 70100 |
| CZ | 00177041 | Škoda Auto a.s. | Akciová společnost (a.s.) | active | 1990-11-20 | Mladá Boleslav | |
| IE | 104547 | RYANAIR DESIGNATED ACTIVITY COMPANY | DAC - Designated Activity Company (limited by shares) | active | 1984-11-28 | SWORDS | 62.10 |
| PL | 0000028860 | ORLEN SPÓŁKA AKCYJNA | SPÓŁKA AKCYJNA | active | 2001-07-19 | PŁOCK | 19.20.Z |

One row as JSON, from a run on 30 October 2026 (build 0.1.3). Some fields are left out to keep it short; the full list is under Output.

```json
{
  "rowType": "company",
  "country": "NO",
  "registerName": "Enhetsregisteret (Brønnøysund Register Centre)",
  "idType": "organisasjonsnummer",
  "registerId": "923609016",
  "name": "EQUINOR ASA",
  "legalForm": "Allmennaksjeselskap",
  "legalFormCode": "ASA",
  "status": "active",
  "registeredDate": "1995-03-12",
  "address": {
    "street": "Forusbeen 50",
    "postalCode": "4035",
    "city": "STAVANGER",
    "region": "STAVANGER",
    "country": "Norge",
    "full": "Forusbeen 50, 4035 STAVANGER, Norge"
  },
  "activityCode": "06.100",
  "activityDescription": "Utvinning av råolje",
  "activityScheme": "SN (Norwegian NACE)",
  "website": "www.equinor.com",
  "vatId": "NO923609016MVA",
  "extra": {
    "employees": 21231,
    "foundedDate": "1972-09-18",
    "inBusinessRegister": true,
    "lastAnnualAccountsYear": "2025"
  },
  "recordUrl": "https://virksomhet.brreg.no/nb/oppslag/enheter/923609016",
  "sourceUrl": "https://data.brreg.no/enhetsregisteret/api/enheter/923609016",
  "licence": "Norwegian Licence for Open Government Data (NLOD) 2.0",
  "licenceUrl": "https://data.norge.no/nlod/en/2.0",
  "attribution": "Contains data under the Norwegian licence for Open Government data (NLOD) made available by the Brønnøysund Register Centre"
}
```

### Input examples

Paste any of these into the **JSON** view of the Input tab. Each one is the input of a ready-made example task.

#### Look up one company in each of the six registers

```json
{
  "mode": "lookup",
  "companies": ["FR:552032534", "NO:923609016", "FI:0112038-9", "CZ:00177041", "IE:104547", "PL:0000028860"],
  "maxResults": 50,
  "maxResultsPerCountry": 25
}
```

#### New companies in Norway, Finland and Ireland (last 7 days)

```json
{
  "mode": "newCompanies",
  "countries": ["NO", "FI", "IE"],
  "registeredWithinDays": 7,
  "maxResults": 75,
  "maxResultsPerCountry": 25
}
```

#### Company name search in five registers

```json
{
  "mode": "search",
  "name": "aurora",
  "countries": ["FR", "NO", "FI", "CZ", "IE"],
  "activeOnly": true,
  "maxResults": 50,
  "maxResultsPerCountry": 10
}
```

### Input

| Field | Used by | What it does |
|---|---|---|
| `mode` | all | `lookup` (default), `search` or `newCompanies`. |
| `companies` | lookup | Up to 500 entries like `FR:552032534`, `NO 923609016` or `FI-0112038-9`. |
| `defaultCountry` | lookup | Country for entries without a prefix. |
| `name` | search | Company name, at least 2 characters. Each register applies its own name matching. |
| `countries` | search, newCompanies | Countries to query. Defaults to every country that supports the mode. |
| `activeOnly` | search, newCompanies | Leave out closed, dissolved or struck-off companies. |
| `registeredWithinDays`, `registeredSince`, `registeredUntil` | newCompanies | Last N days (default 7, up to 366), or a `YYYY-MM-DD` range. |
| `maxResults` | all | Most company rows per run. Default 50; 0 means no limit. |
| `maxResultsPerCountry` | search, newCompanies | Most company rows per country. Default 25; 0 means no limit. |
| `monitorMode`, `emitBaselineOnFirstRun`, `stateStoreName` | all | See *Monitor mode* below. |

### Output

Every row has `rowType`. A **company** row (`company`) has `country`, `registerName`, `idType`, `registerId`, `name`, `legalForm`, `legalFormCode`, `status`, `statusDetail`, `registeredDate`, `closedDate`, `address` (`street`, `postalCode`, `city`, `region`, `country`, `full`), `activityCode`, `activityDescription`, `activityScheme`, `website`, `vatId`, `otherIds`, `extra` (country-specific fields such as employee counts or share capital), `sourceUpdatedAt`, `recordUrl`, `sourceUrl`, `licence`, `licenceUrl`, `attribution` and `retrievedAt`. Fields a register doesn't publish are `null`. Values shortened:

```json
{
  "rowType": "company",
  "country": "NO",
  "registerName": "Enhetsregisteret (Brønnøysund Register Centre)",
  "idType": "organisasjonsnummer",
  "registerId": "923609016",
  "name": "EQUINOR ASA",
  "legalForm": "Allmennaksjeselskap",
  "legalFormCode": "ASA",
  "status": "active",
  "registeredDate": "1995-03-12",
  "address": { "street": "Forusbeen 50", "postalCode": "4035", "city": "STAVANGER", "country": "Norge" },
  "activityCode": "06.100",
  "activityScheme": "SN (Norwegian NACE)",
  "website": "www.equinor.com",
  "vatId": "NO923609016MVA",
  "licence": "Norwegian Licence for Open Government Data (NLOD) 2.0"
}
```

**Status** rows (`status`, free): `invalid_input`, `invalid_id`, `not_found`, `removed`, `not_supported`, `too_many_results`, `no_matches`, `scan_limit`, `skipped_individual`, `skipped_other_form`, `skipped_restricted`, `skipped_inactive`, `source_error` or `budget_reached`, each with a plain-English `message`.

The **SUMMARY** record in the default key-value store lists the input, rows per country, skipped records, status counts, request counts and each source's licence. The dataset has views for Overview, Changes and Status rows.

### Monitor mode: only new or changed companies

Set `monitorMode` to `true` and schedule a saved task. The Actor remembers each company's name, legal form, status, closure date, address, activity code, website and VAT number in the named key-value store `stateStoreName`, and returns only companies it hasn't returned before (`changeType: "new"`) or where one of those fields changed (`changeType: "updated"`, with `changedFields` and `previousValues`).

- `emitBaselineOnFirstRun` (default `true`) returns current matches on the first run. Set it to `false` to remember them silently, without charge, and get only later changes.
- Use a different `stateStoreName` for each separate watch list.

### Pricing

Pay per event:

| Event | Price |
|---|---|
| Company record returned | $0.003 |
| Alert run with new or updated companies (monitor mode only, once per run that returns at least one) | $0.01 |
| Actor start | $0.00005 |

Higher Apify plans get lower prices (shown on the Pricing tab). Status rows, skipped records, the SUMMARY record and monitor runs with nothing new are free of record and alert charges. Set **Maximum cost per run** in the run options: the Actor stops before going over it and adds a free `budget_reached` row.

### Data sources, licences and attribution

Every company row carries its source's `licence`, `licenceUrl` and `attribution`, so you can keep the attribution when you reuse the data. Rows are normalised by this Actor (field names, status values and address shape), so they are modified from the original records.

| Country | Source register | Licence or terms | Attribution line (in every row's `attribution`) |
|---|---|---|---|
| FR | Sirene (INSEE) and RNE (INPI), via recherche-entreprises.api.gouv.fr (DINUM) | [Licence Ouverte / Open Licence 2.0](https://www.etalab.gouv.fr/licence-ouverte-open-licence/): name the source and the date of last update | Source: INSEE (Sirene) and INPI (RNE) via DINUM API Recherche d'entreprises; date of last update in sourceUpdatedAt |
| NO | Enhetsregisteret, Brønnøysund Register Centre (data.brreg.no) | [NLOD 2.0](https://data.norge.no/nlod/en/2.0): use the licence's attribution wording | Contains data under the Norwegian licence for Open Government data (NLOD) made available by the Brønnøysund Register Centre |
| FI | YTJ open data, Finnish Patent and Registration Office (avoindata.prh.fi) | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/), [PRH terms](https://avoindata.prh.fi/en): credit the source, link the licence, say the data was changed | Source: Finnish Patent and Registration Office (PRH), YTJ open data |
| CZ | ARES, Ministry of Finance of the Czech Republic (ares.gov.cz) | [ARES conditions of use](https://data.mf.gov.cz/topics/ares.html): free reuse; say when data has been modified. The Ministry is not the creator of the data and accepts no liability for it | Source: ARES, Ministry of Finance of the Czech Republic |
| IE | Companies Registration Office open data (opendata.cro.ie) | [CC BY 4.0](https://creativecommons.org/licenses/by/4.0/): credit the source, link the licence, say the data was changed | Source: Companies Registration Office Ireland, open data (CC BY 4.0) |
| PL | Krajowy Rejestr Sądowy (KRS) open API, Ministry of Justice (api-krs.ms.gov.pl) | [KRS open API](https://www.gov.pl/web/sprawiedliwosc/uruchomienie-otwartego-api-krajowego-rejestru-sadowego), public sector information for free reuse: name the source; `retrievedAt` gives the retrieval time | Source: Krajowy Rejestr Sądowy, Ministry of Justice of the Republic of Poland |

French records whose owner has opted out of commercial prospecting have `extra.optedOutOfCommercialProspecting: true`; respect it if you use the data for marketing.

### Company-level data only

This Actor returns company-level data only. Sole traders and natural persons are skipped and never charged. Directors, officers, owners, board members, phone numbers and email addresses are never put in rows: the French officer data is never requested, the Norwegian roles endpoint is not used, and the Polish board sections and email addresses are never copied.

### Limits

- **Look up:** up to 500 companies per run.
- **Search:** Poland has no name search (the KRS API looks up by KRS number only). Each register applies its own name matching and its own paging limit: ARES (CZ) returns at most 1,000 matches, and France, Norway and Ireland page to at most 10,000. A search that is too broad gets a free `too_many_results` or `scan_limit` row.
- **Newly registered:** Norway, Finland and Ireland only; `registeredWithinDays` goes up to 366.
- **Records read per country:** outside monitor mode, at most 500 records beyond your per-country limit are read to fill it (skipped records count towards this); in monitor mode, at most 5,000 records per country per run.
- **Pacing:** requests to each register are spaced out (at most 4 a second for France, about 3 a second for Czechia and 1 to 2.5 a second for the others), so large runs take time.
- **Freshness:** each run reads the registers at that moment, but Ireland's open dataset is refreshed on the register's own schedule, so recent changes can appear later than on its website.

### Use it from code, spreadsheets or an AI agent

Run it with the Apify API or client libraries, schedule it, or connect it to Make, Zapier, Google Sheets or webhooks through Apify integrations. AI agents can call it through Apify's MCP server.

### FAQ

**Why are some companies missing from a search?** Sole traders and natural persons are skipped and not charged, and the run says how many. French records with restricted publication are skipped too. Each register also applies its own name matching and its own limit on how deep a search can page; narrow the name if you get `too_many_results` or `scan_limit`.

**Why is there no name search for Poland?** The official KRS API looks up one company by KRS number only.

**Why are directors and owners not included?** This Actor returns company-level data only.

**How current is the data?** Each run reads the registers at that moment. Ireland's rows come from the register's open dataset, which the register refreshes on its own schedule, so the newest changes can appear there later than on its website.

**Can I search the Irish company register?** Yes. Look up by CRO number (`IE:104547`), search by name, or list companies newly registered in a date range. Rows come from the Companies Registration Office's open data.

**How do I look up a company in the Polish company register?** Use its 10-digit KRS number, for example `PL:0000028860`. Rows come from the official KRS open API.

### Feedback

Found a problem or need a country? Open an issue on the Issues tab.

# Changelog

This Actor's version history is a separate document: https://apify.com/yourevenings/eu-company-registers/changelog.md

# Actor input Schema

## `mode` (type: `string`):

<b>Look up</b> returns the companies you list by country and register ID. <b>Search</b> finds companies by name in each country's register (FR, NO, FI, CZ, IE). <b>Newly registered</b> lists companies registered in a date range (NO, FI, IE).

## `companies` (type: `array`):

For <b>Look up</b>: up to 500 entries as COUNTRY:ID. FR = SIREN (9 digits, or a 14-digit SIRET), NO = organisasjonsnummer (9 digits), FI = Business ID (1234567-8), CZ = IČO (8 digits), IE = CRO company number, PL = KRS number (up to 10 digits). Unknown or invalid IDs get a free status row.

## `defaultCountry` (type: `string`):

For <b>Look up</b>: country to use for entries with no COUNTRY: prefix.

## `name` (type: `string`):

For <b>Search</b>: the company name or part of it (at least 2 characters).

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

For <b>Search</b> and <b>Newly registered</b>: which registers to query. Empty = every register that supports the mode. A country that doesn't support the mode gets a free not_supported row.

## `activeOnly` (type: `boolean`):

For <b>Search</b> and <b>Newly registered</b>: leave out closed, dissolved or struck-off companies. FR, NO and IE filter at the register; for every country, rows whose status is inactive are dropped before charging and counted in a free <code>skipped_inactive</code> row. Companies in liquidation or bankruptcy are kept.

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

For <b>Newly registered</b>: date range ending today. Ignored when 'Registered since' is set.

## `registeredSince` (type: `string`):

For <b>Newly registered</b>: start date, YYYY-MM-DD.

## `registeredUntil` (type: `string`):

For <b>Newly registered</b>: end date, YYYY-MM-DD. Default today.

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

Stop after this many company records across all countries. 0 means no limit. You are charged per company record returned.

## `maxResultsPerCountry` (type: `integer`):

Stop each country after this many company records. 0 means no limit.

## `monitorMode` (type: `boolean`):

Remember a fingerprint of each company (name, legal form, status, address, activity, website, VAT ID) and, on later runs, return only companies that are new or changed, with the changed fields and their old values. Schedule it to watch a list of companies or new registrations.

## `emitBaselineOnFirstRun` (type: `boolean`):

Off: the first monitor run only records what exists (no rows, no charges).

## `stateStoreName` (type: `string`):

Named key-value store for monitor state. Use a different name per watch list.

## Actor input object example

```json
{
  "mode": "lookup",
  "companies": [
    "FR:552032534",
    "NO:923609016",
    "FI:0112038-9",
    "CZ:00177041",
    "IE:104547",
    "PL:0000028860"
  ],
  "activeOnly": false,
  "registeredWithinDays": 7,
  "maxResults": 50,
  "maxResultsPerCountry": 25,
  "monitorMode": false,
  "emitBaselineOnFirstRun": true,
  "stateStoreName": "eu-company-registers-monitor"
}
```

# Actor output Schema

## `overview` (type: `string`):

Overview view of the dataset.

## `changes` (type: `string`):

Monitor changes view of the dataset.

## `status` (type: `string`):

Status rows (free) view of the dataset.

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

SUMMARY record: input, counts per country, skipped sole traders, request counts and timings.

# 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 = {
    "mode": "lookup",
    "companies": [
        "FR:552032534",
        "NO:923609016",
        "FI:0112038-9",
        "CZ:00177041",
        "IE:104547",
        "PL:0000028860"
    ],
    "maxResults": 50,
    "maxResultsPerCountry": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("yourevenings/eu-company-registers").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 = {
    "mode": "lookup",
    "companies": [
        "FR:552032534",
        "NO:923609016",
        "FI:0112038-9",
        "CZ:00177041",
        "IE:104547",
        "PL:0000028860",
    ],
    "maxResults": 50,
    "maxResultsPerCountry": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("yourevenings/eu-company-registers").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 '{
  "mode": "lookup",
  "companies": [
    "FR:552032534",
    "NO:923609016",
    "FI:0112038-9",
    "CZ:00177041",
    "IE:104547",
    "PL:0000028860"
  ],
  "maxResults": 50,
  "maxResultsPerCountry": 25
}' |
apify call yourevenings/eu-company-registers --silent --output-dataset

```

## MCP server setup

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

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/cqP02g5hwshNyr8dR/builds/XtfuH2thJrxmyNeBL/openapi.json
