Table of Contents
- Data Sources
- Company Identifiers
- Search Capabilities
- Batch Cache
- Quirks & Gotchas
- Mappings
- Data Availability
- Example API Responses
Data Sources
All company data is sourced from the Companies Registration Office (CRO), Ireland’s central registry for companies, business names, and limited partnerships. The CRO was formally re-established under the Companies Act 2014, which consolidated Ireland’s 17 prior Companies Acts (1963-2013) into a single statute that took effect on 1 June 2015. Two distinct CRO interfaces are used:- CRO Public API (
services.cro.ie) — The official web services API providing basic company profile data (name, status, legal form, registered address, registration date) and company search. Used as the primary source for structured company data. Authenticated via API key. - CRO Core Portal (
core.cro.ie) — The CRO’s online filing and enquiry platform. Used for document listing and retrieval (historical filings, certificates, reports, and generated extracts). The portal sits behind Cloudflare protection; requests are handled automatically despite portal protection.
The CRO Public API provides only basic company profile data (name, status, legal form, address). It does not provide structured data for legal representatives, shareholders, activity codes, or UBOs. Legal representatives and shareholders are instead extracted from CRO documents using AI parsing (see sections below).
Data Source Priority & Routing
Ireland uses a single registry (CRO) with two access interfaces. Unlike France or Germany, there is no multi-source priority chain — all data comes from the CRO:- Company Profile — Live query to the CRO Public API (
services.cro.ie) - Legal Representatives & Other Key Persons — AI-extracted from the Company Printout document (purchased from CRO Core)
- Shareholders — AI-extracted from the most recent B1C Annual Return document (purchased from CRO Core)
- Documents — Listed and retrieved from CRO Core (
core.cro.ie)
Company Identifiers
Query Identifiers
| Identifier | Format | Example | Notes |
|---|---|---|---|
| Company Number | Numeric (variable length, typically 5-6 digits) | 12965 | Primary CRO registration number. No zero-padding. |
Identifiers in API Response
| Identifier Type | Format | Example | Notes |
|---|---|---|---|
companyNumber | Numeric string | "12965" | CRO registration number |
Search Capabilities
| Search Type | Pattern | Example | Match Type | Expected Results |
|---|---|---|---|---|
| By Company Number | Numeric string | 12965 | Exact | Single company (1 result) |
| By Company Name | Text string | "CRH Public Limited" | Contains | Multiple results |
Search uses both the CRO Public API and CRO Core. Name searches query the CRO Public API for matching companies. For each result, the system also resolves the CRO Core
entityId (an internal identifier distinct from the registration number) which is needed for document operations.Batch Cache
Ireland company data is batch-synced from the CRO Open Data CSV into a local cache (Meilisearch + PostgreSQL staging table).Search
Search queries hit the Meilisearch cache first for instant results, with automatic fallback to the live CRO API if the cache misses.Companies in Cache
The cache contains only active Irish entities from the CRO dataset. Companies are filtered by CRO status code:| Included Status | Code | Description |
|---|---|---|
| Normal | 1151 | Active company |
| ReInstated HCO | 1160 | Reinstated by High Court order |
| ReInstated | 1161 | Reinstated |
Onboarding Profile
The onboarding profile (onboardingProfile datapoint) reads directly from the staging table (ie.cro), not the live CRO API. This provides faster, cheaper responses with no AI enrichment overhead. Data freshness depends on the batch sync schedule.
Quirks & Gotchas
| Quirk | Details |
|---|---|
| No activity codes | The Irish CRO does not provide SIC, NACE, or any industry classification codes. Unlike the UK (which provides SIC codes via Companies House), activity classification is entirely absent from CRO data. |
| Legal reps from AI parsing | Directors and secretaries are extracted from the Company Printout PDF using AI, not from a structured API endpoint. The CRO Public API does not expose officer data. |
| Shareholders from B1C only | Shareholders are AI-extracted from the most recent B1C (Annual Return with Accounts) document. Companies without a recent B1C return empty shareholders. |
| B1C age limit | B1C documents must cover at most the current year minus 2. In 2026, only B1Cs covering 2024 or later are accepted. Older filings are rejected to avoid stale data. |
| Shareholders require active status | Shareholder extraction only runs for companies with Active, Under Insolvency Proceeding, or Unknown status. Closed companies return no shareholders. |
| No UBO data | Ireland’s Register of Beneficial Ownership (RBO) is not accessible through the CRO API. UBO data is not available. |
| entityId differs from company number | The CRO Core portal uses an internal entityId that is different from the public registration number (e.g., company 104547 maps to entityId 139795). This mapping is resolved automatically via search. |
| Company number format varies | Irish company numbers have no fixed length or zero-padding. Values like 12965, 104547, and 308943 are all valid. |
| PDF multi-column parsing | CRO Company Printout PDFs use multi-column layouts where sections may be interleaved. Page footers containing dates and “Company:” text must be distinguished from actual addresses. |
| Cloudflare Waiting Room | CRO Core (core.cro.ie) uses a Cloudflare Waiting Room (not standard Cloudflare challenge). Document operations handle this protection automatically. |
| Document retrieval is asynchronous | Document purchase and download involves a multi-step process (payment, download, save) that typically takes 1-2 minutes per document. |
| All documents are paid | Most CRO documents have a fee. Common prices: documents and certificates at EUR 4.50, reports at EUR 5.50. Some older filings for certain companies may be free. |
| CRO status text has trailing spaces | The company_status_desc from the CRO API may include trailing whitespace (e.g., "Normal " instead of "Normal"). The localName preserves this verbatim. |
Mappings
Company Status
Company status is determined deterministically from CRO numeric status codes — no AI inference is involved.| Code | CRO Status | Standardized Status | Closure Reason | Active? |
|---|---|---|---|---|
| 1151 | Normal | Active | - | Yes |
| 1153 | Normal (Receivership) | Active | - | Yes |
| 1160 | ReInstated HCO | Active | - | Yes |
| 1161 | ReInstated | Active | - | Yes |
| 1162 | Interim | Active | - | Yes |
| 1154 | Examinership | Under Insolvency Proceeding | - | Yes |
| 1152 | Liquidation | Under Insolvency Proceeding | Liquidation | No |
| 1155 | Liquidation (Receivership) | Under Insolvency Proceeding | Liquidation | No |
| 1156 | Strike Off Listed | Under Insolvency Proceeding | Administrative Dissolution | No |
| 1157 | Struck Off | Closed | Administrative Dissolution | No |
| 1158 | Dissolved | Closed | Voluntary Dissolution | No |
| 1159 | Dissolved-20 years | Closed | Voluntary Dissolution | No |
| 1163 | Ceased | Closed | Other | No |
| 1173 | Dissolved PostMerger | Closed | Merger | No |
Examinership is an Irish insolvency process (similar to US Chapter 11) where the company remains active while under court protection. The company is mapped as
active: true but with status UNDER_INSOLVENCY_PROCEEDING because it can still trade.Normal (Receivership) means the company is in receivership but not in liquidation — it remains active. A receiver manages specific assets while the company continues to operate.Legal Forms
Ireland’s company types are defined by the Companies Act 2014 and earlier legislation. The CRO assigns a numericcompany_type_code to each entity. The mapping to standardized forms is deterministic (hardcoded lookup table, not AI-inferred). ISO 20275 (ELF) codes will be populated in a future update.
Legal forms are classified from official registry data. For known codes, standardized classification is applied directly; for unrecognized codes, AI-based classification is used as fallback.
Limited Companies
| Local Name | English Translation | Standardized | ISO 20275 |
|---|---|---|---|
| Private limited by shares | Private Company Limited by Shares | Limited Liability Company | MNQ7 |
| LTD - Private Company Limited by Shares | Private Company Limited by Shares | Limited Liability Company | MNQ7 |
| Public limited company | Public Limited Company | Corporation | VYAX |
| PLC - Public Limited Company | Public Limited Company | Corporation | VYAX |
| Public limited company (closed ended) | Closed-Ended Public Limited Company | Corporation | VYAX |
| Single member private company limited by shares | Single Member Private Company Limited by Shares | Limited Liability Company | MNQ7 |
| Private, limited by shares, licence to omit ltd | Private Company Limited by Shares (Licence to Omit Ltd) | Limited Liability Company | MNQ7 |
Designated Activity Companies
| Local Name | English Translation | Standardized | ISO 20275 |
|---|---|---|---|
| DAC - Designated Activity Company (limited by shares) | Designated Activity Company (Limited by Shares) | Limited Liability Company | 5AX8 |
| DAC - Designated Activity Company (limited by shares) (Licenced Company) | Designated Activity Company (Limited by Shares, Licenced) | Limited Liability Company | 5AX8 |
| DAC - Designated Activity Company (limited by guarantee) | Designated Activity Company (Limited by Guarantee) | Limited Liability Company | 5AX8 |
| DAC - Designated Activity Company (limited by guarantee) (licenced company) | Designated Activity Company (Limited by Guarantee, Licenced) | Limited Liability Company | 5AX8 |
Unlimited Companies
| Local Name | English Translation | Standardized | ISO 20275 |
|---|---|---|---|
| Private unlimited with share capital | Private Unlimited Company with Share Capital | Limited Liability Company | KMFX |
| ULC - Private Unlimited Company | Private Unlimited Company | Limited Liability Company | KMFX |
| ULC - Private Unlimited Company (licenced company) | Private Unlimited Company (Licenced) | Limited Liability Company | KMFX |
| Public unlimited company with a share capital | Public Unlimited Company with Share Capital | Corporation | KMFX |
| PUC - Public Unlimited Company | Public Unlimited Company | Corporation | KMFX |
| Public unlimited company without share capital | Public Unlimited Company without Share Capital | Corporation | KMFX |
| PULC - Public Unlimited Company without share capital | Public Unlimited Company without Share Capital | Corporation | KMFX |
| PUC - Public Unlimited Company (licenced company) | Public Unlimited Company (Licenced) | Corporation | KMFX |
| PULC - Public Unlimited Company without share capital (licenced company) | Public Unlimited Company without Share Capital (Licenced) | Corporation | KMFX |
Guarantee Companies
| Local Name | English Translation | Standardized | ISO 20275 |
|---|---|---|---|
| Guarantee company without a share capital (public) | Public Guarantee Company without Share Capital | Limited Liability Company | C58S |
| Private guarantee with share capital | Private Company Limited by Guarantee with Share Capital | Limited Liability Company | C58S |
| CLG - Company Limited by Guarantee | Company Limited by Guarantee | Limited Liability Company | C58S |
| Guarantee licence company w/o sh/capital (public) | Public Guarantee Company (Licenced) | Limited Liability Company | C58S |
| Single member company ltd by g/tee with sh/cap | Single Member Company Limited by Guarantee with Share Capital | Limited Liability Company | LMIM |
| Private guarantee with shares, licence to omit ltd | Private Company Limited by Guarantee (Licence to Omit Ltd) | Limited Liability Company | C58S |
| CLG - Company Limited by Guarantee (licenced company) | Company Limited by Guarantee (Licenced) | Limited Liability Company | C58S |
Partnerships
| Local Name | English Translation | Standardized | ISO 20275 |
|---|---|---|---|
| Limited Partnership | Limited Partnership | Partnership | HNJK |
Investment Companies
| Local Name | English Translation | Standardized | ISO 20275 |
|---|---|---|---|
| Public limited company with variable capital | Investment Company with Variable Capital (Public) | Corporation | VYAX |
| Private company with variable capital | Investment Company with Variable Capital (Private) | Limited Liability Company | MNQ7 |
| Part XII Pub/Priv Investment Company | Investment Company (Part XII) | Corporation | MNQ7 |
| IC - Investment company - Part 24 Companies Act 2014 | Investment Company (Part 24, Companies Act 2014) | Corporation | 2GV9 |
| U.C.I.T | Undertaking for Collective Investment in Transferable Securities | Trust | - |
| UCITS - Undertaking for Collective Investment in Transferable Securities | Undertaking for Collective Investment in Transferable Securities | Trust | 2GV9 |
European Companies (Societas Europaea)
| Local Name | English Translation | Standardized | ISO 20275 |
|---|---|---|---|
| Societas Europaea - New Incorporation | Societas Europaea (New Incorporation) | Corporation | JXDX |
| Societas Europaea - Transfer into State | Societas Europaea (Transfer into State) | Corporation | JXDX |
| Societas Europaea - Formation of Subsidiary | Societas Europaea (Formation of Subsidiary) | Corporation | JXDX |
| Societas Europaea - PLC conversion | Societas Europaea (PLC Conversion) | Corporation | JXDX |
| PLC - Societas Europaea conversion | Societas Europaea (from PLC Conversion) | Corporation | JXDX |
Foreign / Branch / Other
| Local Name | English Translation | Standardized | ISO 20275 |
|---|---|---|---|
| Foreign Body Corporate making a local offer (B18a) | Foreign Branch (Local Offer) | Branch / Representative Office | - |
| Inward Migrating Company | Inward Migrating Company | Branch / Representative Office | - |
| Unknown | Unknown | Other | - |
Standardization rationale: Unlimited companies (ULC, PUC, PULC) are mapped to
Limited Liability Company or Corporation based on their private/public nature, despite having unlimited member liability. This prioritizes corporate structure over liability model for consistent classification. Guarantee companies (CLG, DAC guarantee) are similarly mapped to Limited Liability Company as they are corporate bodies with separate legal personality.Legal Representatives
Legal representatives are AI-extracted from the CRO Company Printout document (trade register extract). The CRO Public API does not provide structured officer data.| Role | Classification | Authority |
|---|---|---|
| Director | Legal Representative | Statutory authority to bind the company |
| Company Secretary | Other Key Person | Statutory officer but no legal representation authority |
| Electronic Filing Agent | Other Key Person | Agent for CRO filings, no legal authority |
The classification of roles is defined by explicit parsing instructions, not by AI inference. Directors are always legal representatives; secretaries and filing agents are always other key persons.Both individuals and companies can hold roles. Electronic Filing Agents are typically companies (e.g., accountancy firms), while directors and secretaries are typically individuals.
Other Key Persons
| Role | English Translation | Notes |
|---|---|---|
| Company Secretary | Secretary | Statutory officer required by Irish law |
| Electronic Filing Agent | Filing Agent | Authorized agent for electronic CRO submissions |
Shareholders
Shareholders are AI-extracted from the most recent Form B1C (Annual Return with Accounts) filed with the CRO. This is conceptually similar to the German approach of extracting shareholders from filed documents rather than structured registry data. Extraction process:- Fetch available documents and find the most recent B1C form
- Verify the B1C covers a recent period (within 2 years of the current year)
- Purchase and download the B1C document from CRO Core
- OCR the PDF using Mistral OCR
- Parse shareholders using AI (racing multiple models for speed)
| Field | Description | Example |
|---|---|---|
type | Individual or company | "company" |
sharePercentage | Ownership percentage (calculated) | 100 |
numberOfShares | Number of shares held | 2 |
nominalCapitalHeld | Capital value with currency | { "amount": 2.54, "currency": "EUR" } |
company.legalName or individual.name | Shareholder name | "Analysys Mason Limited" |
company.legalAddress or individual.residenceAddress | Parsed from B1C | Structured address object |
company.countryCode or address countryCode | Derived from address | "GB" |
| Limitation | Details |
|---|---|
| Single document source | Only the most recent B1C is used; historical ownership changes are not tracked |
| B1C age limit | Must cover at most current year minus 2 (e.g., 2024+ in 2026). Older filings return empty shareholders |
| Active companies only | Only companies with Active, Under Insolvency Proceeding, or Unknown status |
| AI extraction quality | Best-effort reconstruction from document text; complex multi-column layouts may affect accuracy |
| Paid document | The B1C is automatically purchased if not already available |
Activity Code Mapping
Ireland does not provide activity codes (SIC, NACE, or any industry classification) through the CRO API. Activity classification is not part of the CRO company profile data.Unlike the UK (which provides SIC codes via Companies House) or France (which provides NAF/APE codes), the Irish CRO does not include industry classification codes in its data. As a result, NACE and ISIC codes are not available for Irish companies.
Data Availability
Data Availability Matrix
| Data Type | Availability | Processing | Notes |
|---|---|---|---|
| Company Profile | Yes | Sync | Name, status, legal form, address, registration date from CRO Public API |
| Legal Representatives | Yes | Async | AI-extracted from Company Printout (trade register extract) |
| Other Key Persons | Yes | Async | Secretaries and filing agents from Company Printout |
| Shareholders | Yes | Async | AI-extracted from B1C Annual Return (paid document) |
| Ultimate Beneficial Owners | No | - | RBO not accessible through CRO |
| Establishments | No | - | CRO does not provide branch/establishment data |
| Activity Codes | No | - | CRO does not provide SIC/NACE codes |
| Documents | Yes | Async | Extensive historical filings from CRO Core |
Documents by Company Type
All documents are sourced from CRO Core (core.cro.ie) and organized into three categories: documents (filings), certificates, and reports.
| Document Type | API Category | Format | SKU | Description |
|---|---|---|---|---|
| Company Printout | tradeRegisterExtract | IRL_REPORTS | Current company details from registry (no financial accounts) | |
| Financial Statements | financialStatements[] | IRL_DOCUMENTS | Annual accounts, auditor reports, account details | |
| Company Constitution | articlesOfAssociation[] | IRL_DOCUMENTS | Constitutional documents defining governance rules | |
| B1C Annual Return | otherDocuments[] | IRL_DOCUMENTS | Annual return with accounts (shareholder data source) | |
| B1 Annual Return | otherDocuments[] | IRL_DOCUMENTS | Annual return without accounts | |
| B10 Director/Secretary Changes | otherDocuments[] | IRL_DOCUMENTS | Director or secretary appointment/resignation filings | |
| Charge Documents (C1, C2, C6, C17) | otherDocuments[] | IRL_DOCUMENTS | Mortgage/charge creation, satisfaction, and updates | |
| Share Capital (B5, B7) | otherDocuments[] | IRL_DOCUMENTS | Share allotments and capital structure changes | |
| Resolutions (G1, G2) | otherDocuments[] | IRL_DOCUMENTS | Special and ordinary shareholder resolutions | |
| A1 Incorporation | otherDocuments[] | IRL_DOCUMENTS | Original application to register as a new company | |
| Letter of Status | otherDocuments[] | IRL_REPORTS | Official letter confirming company current status | |
| Certificates | otherDocuments[] | IRL_CERTIFICATES | Charge certificates, name change certificates, etc. |
B1C priority sorting. When listing available documents, B1C (Annual Return with Accounts) forms are prioritized at the top of the document list, followed by other documents sorted by date descending. This ensures the most useful documents for due diligence appear first.
Example API Responses
All examples use placeholder data. Query:POST /company with { "id": "<id>", "countryCode": "IE", "dataPoints": ["companyProfile"] }
Active Private Limited Company (LTD)
Active Private Limited Company (LTD)
Active Public Limited Company (PLC)
Active Public Limited Company (PLC)
Closed Company (Struck Off)
Closed Company (Struck Off)
closureDate is populated from the CRO status date when the company’s status is CLOSED.Company Under Insolvency (Liquidation)
Company Under Insolvency (Liquidation)
Shareholders Response (from B1C Annual Return)
Shareholders Response (from B1C Annual Return)
Available Documents Response
Available Documents Response
Documents are returned when Note: Document names include the CRO submission reference in parentheses (e.g.,
"dataPoints": ["availableDocuments"] is requested.SR371822). Descriptions include filing and effective dates when available. Prices are in EUR.Onboarding Profile (Source: Batch Cache)
Onboarding Profile (Source: Batch Cache)
standardized or iso20275Code on legal form, no shareholders or UBOs, no activity codes.