# Company Registry Search API - Legal Entity and Officer Data (`nabeelbaghoor/company-registry-search-api`) Actor

Search official company registries across 140+ jurisdictions and export clean legal-entity records - registered name, company number, jurisdiction, incorporation date, status, type and registered address. Also search company officers. Pay per result. Bring your own API key.

- **URL**: https://apify.com/nabeelbaghoor/company-registry-search-api.md
- **Developed by:** [Nabeel Hassan](https://apify.com/nabeelbaghoor) (community)
- **Categories:** Business, Developer tools, Lead generation
- **Stats:** 2 total users, 1 monthly users, 0.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

$8.00 / 1,000 registry 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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).

# README

## Company Registry Search API - legal entities, officers and filings

**Company Registry Search API** turns official company registers from 140+ jurisdictions into a clean, structured export. Search companies or officers by name and filters, and export legal-entity records - registered name, company number, jurisdiction, incorporation date, status, type and registered address - as JSON, CSV or Excel.

Bring your own API token and pay only for the records you keep.

### Why use this actor?

- **Official registry data** - records sourced from government company registers, not scraped web pages.
- **140+ jurisdictions** - search a single country, a single jurisdiction (for example a US state), or across the whole world.
- **Companies and officers** - look up legal entities, or search directors, secretaries and agents by name and position.
- **Rich filters** - jurisdiction, country, company type, current status and incorporation-date range, all as proper fields.
- **Pay per result** - you are charged only for the records actually returned, up to 10,000 per run.
- **No proxies, no blocks** - data comes through a stable API, so runs are fast and reliable.

### Use cases

- **KYC and KYB** - verify legal entities and their officers against official registers.
- **Due diligence** - confirm incorporation date, status and jurisdiction before doing business.
- **Compliance and AML** - screen counterparties and beneficial owners at scale.
- **Lead and account research** - build company lists filtered by jurisdiction, type or status.
- **Data enrichment** - append official company numbers and registry links to your records.

### Input

Configure everything from the visual editor - every filter is a proper field, no code needed. Example JSON input:

```json
{
  "searchType": "companies",
  "query": "acme",
  "jurisdictionCode": "gb",
  "currentStatus": "Active",
  "incorporationDateFrom": "2015-01-01",
  "maxResults": 100,
  "apiKey": "YOUR_API_TOKEN"
}
```

Search officers instead:

```json
{
  "searchType": "officers",
  "query": "jane smith",
  "position": "director",
  "jurisdictionCode": "gb",
  "maxResults": 50,
  "apiKey": "YOUR_API_TOKEN"
}
```

### Output

One clean JSON object per company:

```json
{
  "name": "ACME TRADING LIMITED",
  "company_number": "01234567",
  "jurisdiction_code": "gb",
  "company_type": "Private Limited Company",
  "current_status": "Active",
  "incorporation_date": "2015-03-11",
  "dissolution_date": null,
  "registered_address_in_full": "1 Example Street, London, EC1A 1AA",
  "profile_url": "https://opencorporates.com/companies/gb/01234567",
  "registry_url": "https://find-and-update.company-information.service.gov.uk/company/01234567"
}
```

### Do I need an API key?

Yes. This actor calls a company-registry API on your behalf, which requires your own **API token**. Sign up self-serve for one of the provider's API plans to get a token, paste it into the input, and run. Your token is stored securely and never logged.

### Pay per result

You pay only for the records the actor actually returns - no subscriptions, no minimums. Set **Maximum results** to cap each run's spend exactly.

### FAQ

#### What is the Company Registry Search API?

It is a legal-entity data API built on official company registers from more than 140 jurisdictions worldwide. It lets you search companies and officers by name and filters and returns structured records - company number, jurisdiction, incorporation date, status, type and registered address. This actor runs that search and exports the matches as JSON, CSV or Excel.

#### Can I search company officers as well as companies?

Yes. Set **Search type** to `officers` to search directors, secretaries and agents by name, and optionally filter by position and jurisdiction. Set it to `companies` for legal-entity search.

#### What filters can I use?

For companies: a search term, jurisdiction code, country code, company type, current status, an incorporation-date range and an active/inactive filter. For officers: a search term, position and jurisdiction. Sort by relevance, incorporation date or when records were added or updated.

#### How many results can I get per run?

Up to 10,000 records per run, paged automatically at 100 per page (the registry allows up to 100 pages per query). For larger sets, split the search by jurisdiction, status or incorporation-date range across multiple runs.

#### How much does it cost?

Pricing is pay-per-result: a small fixed amount per record returned, plus standard Apify platform usage, plus your own API usage against your token. A run that returns nothing costs almost nothing.

#### Can I run this on a schedule?

Yes. Use Apify Schedules to run it daily or weekly and connect the dataset to Zapier, Make, n8n, webhooks or the API to push new or updated records into your CRM, KYC pipeline or data warehouse.

#### Is this legal?

The actor returns official company-registry data retrieved through a licensed API using your own credentials. It focuses on company-level and officer registration data published by government registers.

### Keyword map

company registry api, company registration data api, company search api, business registry api, legal entity api, kyb api, kyc company data, company number lookup, officer search api, director search api, company house api alternative, incorporation data api, jurisdiction company data.

### Support and feedback

Found an issue or missing a filter? Open an issue in the **Issues** tab - it is monitored daily.

# Actor input Schema

## `searchType` (type: `string`):

Search official registries for companies or for officers (directors, secretaries, agents).

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

Text to search for, e.g. a company or officer name. Matches all words in any order. Use `*` for prefix matching, e.g. `acme*`.

## `jurisdictionCode` (type: `string`):

Restrict to a registry jurisdiction, e.g. `gb` (United Kingdom), `us_de` (Delaware), `fr` (France). Leave blank to search all jurisdictions.

## `countryCode` (type: `string`):

Restrict to a country by ISO 3166-1 alpha-2 code, e.g. `gb`, `us`, `de`. Broader than a single jurisdiction.

## `companyType` (type: `string`):

Filter companies by type as named by the register, e.g. `Private Limited Company`, `LLC`. Companies search only.

## `currentStatus` (type: `string`):

Filter by current status as named by the register, e.g. `Active`, `Dissolved`. Companies search only.

## `incorporationDateFrom` (type: `string`):

Only companies incorporated on or after this date (YYYY-MM-DD). Companies search only.

## `incorporationDateTo` (type: `string`):

Only companies incorporated on or before this date (YYYY-MM-DD). Companies search only.

## `inactive` (type: `string`):

Restrict by activity: any, only active, or only inactive companies.

## `position` (type: `string`):

For officer search: filter by position, e.g. `director`, `secretary`, `agent`. Officers search only.

## `order` (type: `string`):

How to sort results. `score` is best-match relevance; the date options sort newest first.

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

1-based page to start from (max 100). Increase to skip earlier results.

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

Stop after this many records (1-10,000). Paged automatically at 100 per page. You are charged per result returned.

## `apiKey` (type: `string`):

Your company-registry API token. Required. Sign up self-serve for an API plan with the provider to get a token. Stored securely and never logged.

## Actor input object example

```json
{
  "searchType": "companies",
  "inactive": "any",
  "order": "score",
  "startPage": 1,
  "maxResults": 100
}
```

# 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 = {
    "maxResults": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("nabeelbaghoor/company-registry-search-api").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 = { "maxResults": 100 }

# Run the Actor and wait for it to finish
run = client.actor("nabeelbaghoor/company-registry-search-api").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "maxResults": 100
}' |
apify call nabeelbaghoor/company-registry-search-api --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=nabeelbaghoor/company-registry-search-api",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/acts/Bf6putCAvxGE6iPlR/builds/7krRLdEV4RLZc3Gnz/openapi.json
