# Ireland CRO Company Search Scraper (`crawlerbros/ireland-cro-company-search-scraper`) Actor

Search Ireland's Companies Registration Office (CRO) register. Find companies by name, status, type, county or reg/dissolution date, or look up exact companies by CRO company number. Full company data: status, type, dates, address, Eircode, NACE code.

- **URL**: https://apify.com/crawlerbros/ireland-cro-company-search-scraper.md
- **Developed by:** [Crawler Bros](https://apify.com/crawlerbros) (community)
- **Categories:** Lead generation, Developer tools, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $3.00 / 1,000 results

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

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

## Ireland CRO Company Search Scraper

Search Ireland's **Companies Registration Office (CRO)** company register. Find companies by name, legal status, company type, county, or registration/dissolution date — or look up exact companies by their CRO company number. Every registered and historical (dissolved/struck-off) Irish company is covered, sourced from CRO's own official daily-updated Open Data feed.

### What this actor does

- **Two modes:** `search` (company name + filters) and `byCompanyNumber` (exact lookup)
- **Filters:** company status, company type, county, NACE industry code (division or exact class), registration date range, dissolution date range
- **Sorting:** by name, registration date, dissolution date, or status date
- **Full company profile:** legal status, company type, registration date, next/last annual return dates, last accounts date, dissolution date, registered address, Eircode, NACE industry code
- **Optional financial filing history:** `includeFinancialFilings` enriches each company with its `financialStatementFilings[]` array — submission dates for accounts filed with CRO in 2022, 2023, and 2024, sourced from CRO's official Financial Statements open-data feed
- **Empty fields are omitted** — every field in a record is real, populated data

### Output per company

- `companyNumber` — CRO company registration number
- `companyName`
- `companyStatus`, `companyStatusCode`
- `companyType`, `companyTypeCode`
- `registrationDate`
- `lastAnnualReturnDate`, `nextAnnualReturnDate`, `lastAccountsDate`
- `dissolvedDate`, `statusDate` (if applicable)
- `companyNameEffectiveDate`, `companyTypeEffectiveDate`
- `addressLines[]`, `fullAddress`
- `county` — best-effort Irish county detected from the registered address
- `eircode` — Irish postal code (where on record)
- `naceCode` — NACE Rev. 2 industry classification code, `DD.GG` form (e.g. `45.20`)
- `principalObjectCode`
- `financialStatementFilings[]` — *(only when `includeFinancialFilings: true`)* one entry per accounts filing found for 2022–2024: `filingYear`, `submissionNumber`, `submissionReceivedDate`, `submissionEffectiveDate`, `submissionRegisteredDate`, `accountsToDate`, `fileName`
- `sourceUrl` — canonical CRO Open Data API link for this exact company
- `recordType: "company"`, `scrapedAt`

### Input

| Field | Type | Default | Description |
|---|---|---|---|
| `mode` | string | `search` | `search` / `byCompanyNumber` |
| `searchQuery` | string | `guinness` | Company name contains (mode=search) |
| `companyNumbers` | array | – | Exact CRO company numbers (mode=byCompanyNumber) |
| `companyStatus` | select | – | Filter to an exact status (Normal, Dissolved, Struck Off, Liquidation, ...) |
| `companyType` | select | – | Filter to an exact legal type (LTD, DAC, PLC, CLG, ULC, ...) |
| `county` | select | – | Filter to a registered-address county (26 counties) |
| `naceCode` | string | – | Filter to a NACE Rev. 2 industry code: 2-digit division (e.g. `45`) matches the whole division, 4-digit/`DD.GG` (e.g. `45.20`) matches the exact class |
| `registrationDateFrom` / `registrationDateTo` | string | – | `YYYY-MM-DD` |
| `dissolvedDateFrom` / `dissolvedDateTo` | string | – | `YYYY-MM-DD` |
| `sortBy` | select | – | Company name / registration date / dissolved date / status date |
| `maxItems` | integer | `50` | Hard cap on emitted records (1-2000) |
| `includeFinancialFilings` | boolean | `false` | Enrich each company with `financialStatementFilings[]` (2022-2024 accounts filing dates) |

### Example input

```json
{
  "mode": "search",
  "searchQuery": "technology",
  "companyStatus": "Normal",
  "county": "Dublin",
  "maxItems": 50
}
```

```json
{
  "mode": "byCompanyNumber",
  "companyNumbers": ["3124", "279457", "655645"]
}
```

### Use cases

- **Due diligence / KYC** — verify an Irish company's registration status, type, and registered address before doing business.
- **Sales & lead generation** — build lists of newly registered companies in a given county or industry.
- **Company monitoring** — track dissolutions, strike-offs, and liquidations by date range.
- **Market research** — analyze company formation trends by county, legal type, or time period.

### Data source

This actor uses the CRO's own official **Open Data** feed (`opendata.cro.ie`), a public, no-authentication, daily-updated snapshot of the full CRO company register, published under a CC BY 4.0 licence. This is the same underlying CRO register data as the `core.cro.ie` search portal — the Open Data API is CRO's sanctioned machine-readable channel for exactly this data, avoiding an unreliable browser-challenge-protected search UI.

### FAQ

**How current is the data?** CRO publishes a new snapshot daily. Companies registered or dissolved earlier the same day may not yet appear.

**Can I search by director or beneficial owner name?** No — director and beneficial-ownership data requires an authenticated CRO/RBO account and is out of scope for this public dataset.

**Does `county` cover Northern Ireland?** No — CRO is the registrar for the Republic of Ireland only (26 counties). Northern Ireland companies are registered separately with UK Companies House.

**Why is `eircode` sometimes missing?** Eircode (Ireland's postal code system) was introduced in 2015. Companies registered before then, or that haven't updated their address since, may not have an Eircode on file.

**Does `financialStatementFilings` include the actual financial figures (turnover, profit, balance sheet)?** No — CRO's Financial Statements open-data feed publishes filing *metadata* only (submission dates, filing reference numbers), not the structured figures inside the accounts. The underlying PDF documents require a paid CORE/CRO account to download and are out of scope for this public dataset. Coverage is 2022-2024 (the years CRO has published so far).

**I set a high `maxItems` for a broad query but got fewer companies back — why?** CRO's Open Data API applies its own rate limiting / response-size caps to large multi-page requests, independent of any filter you set. The actor's status message will tell you when it stopped short of `maxItems`. Narrowing the query with an extra filter (`county`, `naceCode`, a tighter date range) or simply re-running the actor typically returns more.

# Actor input Schema

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

What to fetch.

## `searchQuery` (type: `string`):

Free-text company name search (mode=search). Case-insensitive substring match. Leave empty to browse by filters only.

## `companyNumbers` (type: `array`):

Exact CRO company registration numbers, e.g. `3124`, `279457`.

## `companyStatus` (type: `string`):

Filter to an exact company status.

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

Filter to an exact company legal type.

## `county` (type: `string`):

Filter to companies whose registered address mentions this Irish county.

## `naceCode` (type: `string`):

Filter to companies with this NACE Rev. 2 principal activity code. Give the full 4-digit class code (`45.20` or `4520`) for an exact match, or just the 2-digit division (`45`) to match every class within that division. Leave empty for no filter.

## `registrationDateFrom` (type: `string`):

Only include companies registered on or after this date.

## `registrationDateTo` (type: `string`):

Only include companies registered on or before this date.

## `dissolvedDateFrom` (type: `string`):

Only include companies dissolved on or after this date.

## `dissolvedDateTo` (type: `string`):

Only include companies dissolved on or before this date.

## `sortBy` (type: `string`):

Sort order for results (mode=search).

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

Hard cap on emitted records.

## `includeFinancialFilings` (type: `boolean`):

Enrich each company with its `financialStatementFilings` array (submission dates for accounts filed with CRO in 2022, 2023, and 2024) from CRO's official Financial Statements open-data feed. Adds extra API calls, so it's off by default.

## Actor input object example

```json
{
  "mode": "search",
  "searchQuery": "guinness",
  "companyNumbers": [],
  "companyStatus": "",
  "companyType": "",
  "county": "",
  "naceCode": "",
  "sortBy": "",
  "maxItems": 50,
  "includeFinancialFilings": false
}
```

# Actor output Schema

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

Dataset containing all scraped CRO Ireland companies.

# 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",
    "searchQuery": "guinness",
    "companyNumbers": [],
    "companyStatus": "",
    "companyType": "",
    "county": "",
    "naceCode": "",
    "sortBy": "",
    "maxItems": 50,
    "includeFinancialFilings": false
};

// Run the Actor and wait for it to finish
const run = await client.actor("crawlerbros/ireland-cro-company-search-scraper").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",
    "searchQuery": "guinness",
    "companyNumbers": [],
    "companyStatus": "",
    "companyType": "",
    "county": "",
    "naceCode": "",
    "sortBy": "",
    "maxItems": 50,
    "includeFinancialFilings": False,
}

# Run the Actor and wait for it to finish
run = client.actor("crawlerbros/ireland-cro-company-search-scraper").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 '{
  "mode": "search",
  "searchQuery": "guinness",
  "companyNumbers": [],
  "companyStatus": "",
  "companyType": "",
  "county": "",
  "naceCode": "",
  "sortBy": "",
  "maxItems": 50,
  "includeFinancialFilings": false
}' |
apify call crawlerbros/ireland-cro-company-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/kVduJJn9mEFE7d9Yp/builds/VVWjNoPR83jNXgrfA/openapi.json
