# Corporate Registry — Search, Data & Filings ✅ 35 Countries (`neuralverge/neuralverge-corporate-registry-search`) Actor

Search companies by name and get full company data and filings from the official registers of 35 countries — UK Companies House, France RNE, Netherlands KVK, Poland KRS and more. Status, address, officers, activity codes, filings.

- **URL**: https://apify.com/neuralverge/neuralverge-corporate-registry-search.md
- **Developed by:** [NeuralVerge](https://apify.com/neuralverge) (community)
- **Categories:** Automation, Lead generation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $2.00 / 1,000 search results

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

### Corporate Registry — Company Search, Data & Filings in 35 Countries ✅ Official Data

One Actor for the **official company registers of 35 countries** — UK Companies House, France
RNE, Netherlands KVK, Poland KRS, Spain Registro Mercantil, Brazil CNPJ, Australia ASIC/ABN,
South Korea DART and more — in two modes:

- 🔎 **Search companies** — find companies by name: registration number, legal name, status,
  address and register link.
- 🏛 **Company data + filings** — the full register record of a company by registration
  number: type, dates, activity codes, officers, previous names, accounts deadlines — plus its
  **filings / documents list** where the register publishes one.

Powered by the Neuralverge API. **No accounts, API keys or registry subscriptions required.**

Ideal for KYB / KYC onboarding, supplier and counterparty checks, due diligence and periodic
re-verification of a customer base.

### ✨ Why this Actor

- 🌍 **35 registers, one input** — switch country with one dropdown; every row has the same
  core columns whatever the register.
- 🏛 **Official sources** — data is read live from the government register, not a stale copy.
- 🔁 **Search → check in one place** — search by name, then feed the `registrationNumber` back
  in Company mode for the full record and filings.
- 📋 **Batch input** — lists of names or numbers; every row says which query it answers, and a
  query that finds nothing is flagged instead of silently dropped.
- 💳 **Simple pricing** — **$2 per 1,000 results** in search, **$10 per 1,000
  results** for company data, **$2 per 1,000 results** for filings. A run that *fails* is never charged.

### Supported countries

35 official company registers. **Filings** — the register publishes a filings / documents list, returned with `includeFilings` in Company mode.

| Country | Code | Register | Filings |
|---|---|---|---|
| Argentina | `AR` | IGJ | — |
| Australia | `AU` | ASIC/ABN | — |
| Austria | `AT` | Firmenbuch | — |
| Belgium | `BE` | KBO/BCE | — |
| Brazil | `BR` | CNPJ | — |
| Bulgaria | `BG` | Commercial Register | ✅ |
| Canada | `CA` | Corporations Canada | ✅ |
| Colombia | `CO` | RUES | — |
| Croatia | `HR` | Sudski registar | ✅ |
| Cyprus | `CY` | DRCOR | ✅ |
| Czech Republic | `CZ` | Justice.cz | ✅ |
| Denmark | `DK` | CVR | ✅ |
| Ecuador | `EC` | Superintendencia de Compañías | — |
| Estonia | `EE` | e-Business Register | ✅ |
| Finland | `FI` | PRH/YTJ | — |
| France | `FR` | RNE | — |
| Georgia | `GE` | NAPR | — |
| Israel | `IL` | Corporations Authority | — |
| Latvia | `LV` | Register of Enterprises | ✅ |
| Luxembourg | `LU` | RCS/LBR | ✅ |
| Mexico | `MX` | PSM | ✅ |
| Netherlands | `NL` | KVK | — |
| New Zealand | `NZ` | Companies Register | ✅ |
| Norway | `NO` | Enhetsregisteret | ✅ |
| Panama | `PA` | Registro Público | — |
| Poland | `PL` | KRS | ✅ |
| Portugal | `PT` | Registo Comercial | ✅ |
| Romania | `RO` | ONRC | — |
| Slovakia | `SK` | Obchodný register | ✅ |
| Slovenia | `SI` | AJPES/PRS | — |
| South Korea | `KR` | DART | ✅ |
| Spain | `ES` | Registro Mercantil | — |
| Sweden | `SE` | Bolagsverket | ✅ |
| Taiwan | `TW` | MOEA | — |
| United Kingdom | `GB` | Companies House | ✅ |

### 🔧 How it works

1. **Pick the mode and the country** — e.g. `search` + `GB`.
2. **Search mode:** enter company names (`tesco`). **Company mode:** enter registration numbers
   (`00445790`) or register URLs, and switch on `includeFilings` for the filings list.
3. **Run the Actor.** You get **one dataset row per company**. Export to CSV, JSON or Excel, or
   pull it over the Apify API.

### Input

| Field | Mode | Notes |
|---|---|---|
| `mode` | both | `search` (Search companies by name) or `company` (Company data + filings). Default `search`. |
| `country` | both | ISO code of the register, e.g. `GB`, `FR`, `NL`. Default `GB`. |
| `companyNames` | search | Company names or fragments. |
| `status` | search | `active` or `inactive` (dissolved). Empty = any. |
| `maxItems` | search | Companies per name, 1–250. Default `25`. |
| `startPage` | search | Page of the register's result list. Default `1`. |
| `companies` | company | Registration numbers or register URLs. |
| `includeFilings` | company | Add the filings list (BG, CA, CY, CZ, DK, EE, GB, HR, KR, LU, LV, MX, NO, NZ, PL, PT, SE, SK). Default `false`. |
| `maxFilings` | company | Filings per company, 1–250, newest first. Default `25`. |

```json
{ "mode": "search", "country": "GB", "companyNames": ["tesco"], "maxItems": 25 }
```

```json
{ "mode": "company", "country": "GB", "companies": ["00445790"], "includeFilings": true, "maxFilings": 25 }
```

### What you'll receive

Every row starts with `mode`, `country`, `registry` and `query`.

- **Search mode** — `registrationNumber`, `name`, `status`, `address`, `url` (the register page)
  and what the register shows on its results page, e.g. `incorporationDate`, `previousNameMatch` (UK).
- **Company mode** — `found`, `registrationNumber`, `name`, `status`, `companyType`, `address`,
  `url`, `incorporationDate`, `dissolutionDate`, `activity` and the register extras, e.g.
  `sicCodes`, `previousNames`, `officers`, accounts dates (UK). With `includeFilings`:
  `filingsSupported`, `filingsCount` and `filings` (date, type, description, document URL, pages).

> **Nulls are normal.** Registers publish different data; a field the register does not show
> is `null` or absent.

#### Example output — search (real run)

```json
{
  "mode": "search",
  "country": "GB",
  "registry": "United Kingdom — Companies House",
  "query": "tesco",
  "registrationNumber": "00445790",
  "name": "TESCO PLC",
  "status": "Active",
  "address": "Tesco House, Shire Park, Kestrel Way, Welwyn Garden City, United Kingdom, AL7 1GA",
  "url": "https://find-and-update.company-information.service.gov.uk/company/00445790",
  "companyType": null,
  "incorporationDate": "1947-11-27",
  "previousNameMatch": "TESCO STORES (HOLDINGS) PUBLIC LIMITED COMPANY"
}
```

#### Example output — company data + filings (real run, shortened)

```json
{
  "mode": "company",
  "country": "GB",
  "registry": "United Kingdom — Companies House",
  "query": "00445790",
  "found": true,
  "registrationNumber": "00445790",
  "name": "TESCO PLC",
  "status": "Active",
  "companyType": "Public limited Company",
  "incorporationDate": "1947-11-27",
  "activity": "47110 - Retail sale in non-specialised stores with food, beverages or tobacco predominating",
  "officersSummary": "74 officers / 63 resignations",
  "officers": [{ "name": "TAYLOR, Christopher Jon", "role": "Secretary", "status": "Active", "appointed_on": "2025-04-14" }],
  "filingsSupported": true,
  "filingsCount": 1,
  "filings": [
    {
      "id": "MzU0MzY3ODg5MGFkaXF6a2N4",
      "date": "2026-09-16",
      "type": "SH03",
      "description": "Purchase of own shares.",
      "documentUrl": "https://find-and-update.company-information.service.gov.uk/company/00445790/filing-history/MzU0MzY3ODg5MGFkaXF6a2N4/document?format=pdf&download=0",
      "pages": 4
    }
  ]
}
```

#### When nothing is found

A name or number that finds nothing still returns a row, so a batch never silently loses an input:
`mode`, `country`, `registry`, `query`, `found: false` and a `message`. Filter these out with
`found != false`. It is billed as one result of its mode — see Pricing.

### Pricing — pay per event

This Actor uses Apify **Pay-Per-Event**:

| Event | Price | Charged |
|---|---|---|
| Actor start | **free** | never |
| Search result (one company found) | **$2 per 1,000 results** ($0.002 each) | every search row, including a `no result` row |
| Company data result (one company record) | **$10 per 1,000 results** ($0.01 each) | every company row, including a `no result` row |
| Filing result (one filing) | **$2 per 1,000 results** ($0.002 each) | every filing delivered with `includeFilings` |

Searching 25 companies costs **$0.05**; checking 100 companies with 25 filings each costs
**100 × $0.01 + 2,500 × $0.002 = $6.00**.

A run that *fails* (missing input, bad key, the register being unreachable) is not charged for the
query it could not complete. A filings list that failed to load is not charged.

#### Rate limit

There is a ceiling on how fast one Apify account can pull from the Neuralverge backend: **5
requests per second** across the Neuralverge Actors. One name or company is one request, so this is
about how many runs you start at once, not about the size of a single run.

Above the ceiling the backend answers **HTTP 429**. The Actor waits out the `Retry-After` it asks
for and retries a few times before giving up; a query that still cannot get through is **not charged**.

#### Free plan limits

Users on any **paid Apify plan** are not affected by anything in this section.

On the **Apify Free plan** this Actor may be started **3 times per calendar month per user**. A run
that finds nothing still counts, because the lookup is performed either way. Every Neuralverge Actor
carries its own allowance — running one never uses up another's.

In addition, on the Free plan a run returns at most **25 companies** and at most **25 filings per company**.

When a limit is reached the Actor stops gracefully with a status message naming it; everything resets
on the 1st of every month, and **any paid Apify plan removes all of it**.

Pricing is on top of your Apify platform usage.

### Integrations & API

Results are stored in a standard Apify dataset — export as CSV, JSON, XML or Excel,
or fetch on demand through the [Apify API](https://docs.apify.com/api). The Actor
also plugs into Apify's integrations (Make, Zapier, n8n, webhooks) and can be called
from any [MCP](https://mcp.apify.com/) client.

### FAQ

**Do I need an account with the register?** No. Everything runs on the Neuralverge backend.

**I only have the company name.** Run Search mode, then put the `registrationNumber` into
`companies` in Company mode.

**Why are some fields empty for my country?** Each register publishes different data; this
Actor returns what the register shows.

### 🔗 Other Neuralverge Actors

- [Companies House Officers](https://apify.com/neuralverge/neuralverge-companies-house-officers) — directors and secretaries of a UK company.
- [Leads Finder](https://apify.com/neuralverge/neuralverge-leads-finder) — people at the companies you found, with title and seniority filters.
- **More Neuralverge Actors** — the full catalogue (LinkedIn, contact data, company registers, reviews): [apify.com/neuralverge](https://apify.com/neuralverge).

***

**Disclaimer:** This Actor is an independent tool and is not affiliated with, endorsed
by, or sponsored by any government company register. All trademarks are property of their
respective owners.

# Actor input Schema

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

"Search companies" finds companies by name ($2 per 1,000 results). "Company data + filings" returns the full register record of a company by registration number or register URL ($10 per 1,000 results, filings $2 per 1,000 results). Apify Free plan: this Actor can be started 3 times per calendar month per user (a run that finds nothing counts too; every Neuralverge Actor has its own allowance), each run returns at most 25 companies and at most 25 filings per company. Any paid Apify plan removes all of these.

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

The official company register — 35 countries.

## `companyNames` (type: `array`):

One or more company names (or name fragments), e.g. "tesco". Each name is searched separately.

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

Return only active or only inactive / dissolved companies. Leave empty for any.

## `maxItems` (type: `integer`):

How many companies to return per searched name. Each company is one dataset row.

## `startPage` (type: `integer`):

Which page of the register's result list to start from.

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

One or more companies — the registration number (e.g. 00445790 for Companies House) or the company's page URL in the register. Each company is one dataset row.

## `includeFilings` (type: `boolean`):

Add the company's filings / documents list to its row. Published by: BG, CA, CY, CZ, DK, EE, GB, HR, KR, LU, LV, MX, NO, NZ, PL, PT, SE, SK. Filings are billed $2 per 1,000 results.

## `maxFilings` (type: `integer`):

Newest first.

## Actor input object example

```json
{
  "mode": "search",
  "country": "GB",
  "companyNames": [
    "tesco",
    "revolut"
  ],
  "maxItems": 25,
  "startPage": 1,
  "companies": [
    "00445790"
  ],
  "includeFilings": false,
  "maxFilings": 25
}
```

# Actor output Schema

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

Structured company rows (registration number, name, status, address, register link; in Company mode also type, dates, officers and filings), 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 = {
    "mode": "search",
    "country": "GB",
    "companyNames": [
        "tesco"
    ],
    "maxItems": 25
};

// Run the Actor and wait for it to finish
const run = await client.actor("neuralverge/neuralverge-corporate-registry-search").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": "search",
    "country": "GB",
    "companyNames": ["tesco"],
    "maxItems": 25,
}

# Run the Actor and wait for it to finish
run = client.actor("neuralverge/neuralverge-corporate-registry-search").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": "search",
  "country": "GB",
  "companyNames": [
    "tesco"
  ],
  "maxItems": 25
}' |
apify call neuralverge/neuralverge-corporate-registry-search --silent --output-dataset

```

## MCP server setup

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

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/1X9LLQjAWCjebd1MK/builds/hnYOxEdYRRmsyUpdO/openapi.json
