Guide · Ireland · Lookup, strike-off signal and monitoring
Ireland company data API: CRO number lookup and monitoring
A customer types a CRO number or the first letters of a name; your form fills in the legal name, company type, status and registered address from the Companies Registration Office (CRO), and you can watch the company for status changes. One key, and the same response shape as every other country the API covers.
Ireland at a glance
Register: Companies Registration Office (CRO)
Identifiers CRO number
- Company recordsYes
- OfficersNo
- Insolvency noticesNo
- Corporate eventsRegister changes
- MonitoringYes
- Financial statementsNo
- VAT numberNo
- NACE classYes
- UpdatedDaily
The guide below states the limits of every row. Financial statements are on the Scale plan and above; the other plans and the free trial get 10 calls a month.
Price From EUR 9.99 a month (Starter plan)
Sign upTry Ireland live
Look up a company in Ireland with the shared demo key. No sign-up.
The demo key is shared and capped per page view; your own key has the limits of your plan.
Is there an official Irish company registry API?
As at 5 Nov 2026, the Companies Registration Office (CRO) runs an open data portal at opendata.cro.ie, built on CKAN, with a Companies theme. One API across the live countries adds a company record in the same response shape as every other country, with register-change events and monitoring. Scope limits for Ireland: no officers, no gazette events (register-change events only, from 14 Oct 2026), no insolvency notices, no beneficial owners, no share capital and no financial statements.
What you get, and what you do not
Ireland is company-level: the CRO company record, the CRO strike-off list as a registry-compliance signal, monitoring alerts and public-procurement awards from TED. It has no officers, register-change events only, from 14 Oct 2026, no insolvency notices (Ireland is not one of the sixteen insolvency markets) and no beneficial owners.
| Feature | For Ireland | Where |
|---|---|---|
| Company record | Yes, keyed on the CRO number. | GET /companies/search, GET /companies/{id} |
| Registry-compliance signal | Yes: the CRO strike-off list (strike_off_listed), the state of a company that has not filed its annual return. | risk_flag_type=registry_compliance, include=risk_flags |
| Monitoring | Yes. Monitoring covers every live country except France and Chile. For Ireland it alerts on status changes, dissolution and sanctions matches. | POST /monitor with country=IE, GET /monitor |
| Public procurement | Yes: TED, above the EU thresholds only. Awards carry the supplier identifier as published and are not linked to company records. | GET /procurement/awards?country=IE |
| Officers | No. | — |
| Corporate events | register-change events only (name, status, legal form, registered address), none before 14 Oct 2026; no gazette. | — |
| Insolvency notices | No. Ireland is not one of the sixteen insolvency markets (FR, DE, GB, AT, CH, NO, FI, US, NL, DK, HR, SE, ES, LV, EE, SG). | — |
| Beneficial owners | No. Irish access to the register of beneficial ownership is legally restricted. | — |
That is the record of an Irish company as an onboarding form, a counterparty check or a CRM row needs it, plus two signals that change over time. If you want to know what the register itself is, start with What is the CRO?
What the Irish record gives your product
- Exact match on the CRO number.
company_number=104547withcountry=IE. A CRO number is a plain sequential integer, typically five to seven digits, with no letter prefix and no check digit. The free CRO number lookup runs the same call. - Autocomplete by name.
?name=is a normalised, partial match ranked by a match score. Each call is one request. - The register's own state. For Ireland
local_status: "dissolved"means the company no longer exists (status: "deregistered"), and a company on the strike-off list readsstrike_off_listed. - A new-company feed.
founded_after=2026-09-01withcountry=IElists companies by incorporation date, newest first, paged withnext_cursor. - One schema for every country. The same response shape whichever
countryyou pass, so a multi-country flow needs one integration.
| Field | What it holds for Ireland |
|---|---|
company_number | The CRO number, a plain integer: 104547. |
company_name | The registered name in capitals. |
legal_form, local_legal_form, local_legal_form_name | The standard abbreviation, and the company type as the CRO records it, such as LTD, DAC, PLC or CLG. The CRO truncates its fields past 40 characters for a few long forms; legal_form reads the text it has. |
local_status, status, stage | The CRO status in local_status, including strike_off_listed, with the standard status and stage beside it where the value is recognised. |
address, postal_code, province | The registered address and county. postal_code is the Eircode where the register holds one; many older companies have none. |
activity_code | The activity code, where the register publishes one. There is no activity description. |
founding_date, dissolution_date | The incorporation date and, for a dissolved company, the dissolution date. |
Check the shape, then look it up
A CRO number has no check digit, so no arithmetic can tell a real number from a plausible one. That is the difference from a Spanish NIF or a French SIREN, and it means the lookup is the only real validation. What you can do offline is reject input that cannot be a CRO number at all, such as a stray letter or a pasted VAT number. The identifier validator does the same in the browser; this is the version to paste into a form handler:
// Irish CRO number: a plain integer, typically 5 to 7 digits. No check digit exists.
export function checkCroNumber(input) {
const v = String(input).replace(/[\s.]/g, '')
return /^\d{1,7}$/.test(v) ? v : null
}
checkCroNumber('104547') // '104547' (Ryanair DAC)
checkCroNumber('12965') // '12965' (CRH plc)
checkCroNumber('IE6388047V') // null: that is a VAT number, not a CRO numberA passing check says the input is shaped like a CRO number, never that the company exists or is still registered. That is what the lookup is for. For an Irish VAT number, see VAT number validation against VIES.
Four calls
# 1. By CRO number curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?company_number=104547&country=IE" # 2. By name, for a type-ahead field curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?name=ryanair&country=IE&limit=5" # 3. The full record by the id the search returned, with its risk flags curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/$COMPANY_ID?country=IE&include=risk_flags" # 4. Companies incorporated since a date, newest first curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?founded_after=2026-09-01&country=IE&limit=100"
To resolve a list, POST /companies/lookup takes up to 100 items in one call, each one counted as one request:
curl -X POST "https://api.prometiam.com/functions/v1/risk-api/companies/lookup" \
-H "Authorization: Bearer $PROMETIAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"items":[{"country":"IE","company_number":"104547"},{"country":"IE","company_number":"12965"},{"country":"IE","name":"Aer Lingus"}]}'Beyond the record: the strike-off signal, monitoring and procurement
The registry-compliance signal
# Companies on the CRO strike-off list curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/companies/search?risk_flag_type=registry_compliance&country=IE&limit=20"
On a single company, include=risk_flags returns the signal (strike_off_listed, dated in as_of). The CRO strike-off list marks a company that has not filed its annual return. It is a compliance signal, not an insolvency or a dissolution: the company is still on the register but has stopped meeting its filing duties, the state that precedes a forced strike-off.
Monitoring
# COMPANY_ID is the id from /companies/search?country=IE
curl -X POST "https://api.prometiam.com/functions/v1/risk-api/monitor" \
-H "Authorization: Bearer $PROMETIAM_API_KEY" \
-H "Content-Type: application/json" \
-d '{"company_id": '"$COMPANY_ID"', "country": "IE", "label": "customer-42", "webhook_url": "https://yourapp.com/hooks/prometiam", "events": ["status_change", "dissolution", "sanctions_match"]}'Monitoring covers every live country except France and Chile. The alerts are status changes, dissolution, sanctions matches and register-change events (none before 14 Oct 2026), and sanctions_match relies on sanctions screening, which is beta. Alerts go to your webhook, signed with HMAC-SHA256 in X-Prometiam-Signature, and are always pollable through GET /monitor. How many companies a key can monitor scales with the plan.
Public procurement
# Awards published under a CRO number curl -H "Authorization: Bearer $PROMETIAM_API_KEY" \ "https://api.prometiam.com/functions/v1/risk-api/procurement/awards?country=IE&nif=104547&limit=20"
Irish awards come from TED, above the EU thresholds only, so contracts below the thresholds do not appear. The rows carry the supplier identifier as published, without a link to a company record; the award is returned either way. One row is one award to one supplier, and awards to natural persons are never returned.
An autocomplete endpoint in Node
Your server keeps the key and proxies the search; the form calls your server. Input that looks like a CRO number goes to the exact filter, anything else is a name, and input that cannot be a CRO number is never sent as one:
// server: /api/ie-company?q=... (keep the key out of the browser)
app.get('/api/ie-company', async (req, res) => {
const q = String(req.query.q || '').trim()
const cro = checkCroNumber(q) // digits only, up to seven; otherwise treat the input as a name
const params = new URLSearchParams({ country: 'IE', limit: '6', ...(cro ? { company_number: cro } : { name: q }) })
const r = await fetch('https://api.prometiam.com/functions/v1/risk-api/companies/search?' + params,
{ headers: { Authorization: 'Bearer ' + process.env.PROMETIAM_API_KEY } })
if (!r.ok) return res.status(502).json({ error: 'Lookup failed' })
const { data } = await r.json()
res.json(data.map(c => ({ id: c.id, name: c.company_name, cro: c.company_number, form: c.local_legal_form_name || c.legal_form,
status: c.status, county: c.province, eircode: c.postal_code, address: c.address })))
})What Ireland does not carry
- Officers. The Irish record is company-level.
GET /people/searchreturns no people for Ireland. - A gazette event stream. Ireland has register-change events only, none before 14 Oct 2026.
- Insolvency notices. Ireland is not one of the sixteen insolvency markets (FR, DE, GB, AT, CH, NO, FI, US, NL, DK, HR, SE, ES, LV, EE, SG). The strike-off signal is not an insolvency.
- Beneficial owners. Irish access to the register of beneficial ownership is legally restricted, so the API does not carry it.
- Share capital and credit scores. Not served.
- Financial statements. Not available for Ireland: the filings are PDF images.
Working across the Irish Sea? See the UK company data API for officers and PSC on the other side, and UK and Ireland under one key.
Pricing
Ireland is included in every tier at no upcharge. Starter begins with a 14-day trial: 500 credits in total, 10 requests/minute, card required, nothing charged for 14 days. Subscribing keeps the same key working. Then Starter at €9.99/month (1,000 credits, 60 requests/minute), Professional at €29.99/month (10,000 credits, 120 requests/minute) and Scale at €99.99/month (50,000 credits, 300 requests/minute), monthly or annual; annual is ten months' price for twelve. A company record costs 1 credit, an autocomplete keystroke costs 1 credit, and error responses cost nothing.
FAQ
How do I look up an Irish company by CRO number from an API?
Call GET /companies/search?company_number=104547&country=IE. A CRO number is a plain integer with no check digit, so a well-formed number can still belong to no company; only the lookup says whether it exists.
Can I validate a CRO number offline?
Only its shape. CRO numbers carry no check digit and no letter prefix, so there is no arithmetic that separates a real number from a plausible one.
Does the Irish record include directors?
No. Ireland is company-level: no officers, register-change events only, from 14 Oct 2026 and no beneficial owners. Irish access to the register of beneficial ownership is legally restricted.
Can I monitor Irish companies?
Yes. Monitoring covers every live country except France and Chile. For Ireland it alerts on status changes, dissolution and sanctions matches (sanctions screening is beta), through a signed webhook or GET /monitor.
What is the strike-off signal?
The CRO strike-off list marks a company that has not filed its annual return. It is a registry-compliance signal, not an insolvency or a dissolution: the company is still on the register.
Does it include Irish public procurement?
Yes, from TED, above the EU thresholds only. Awards carry the supplier identifier as published and are not linked to company records.
How much does the Ireland company data API cost?
Ireland is included in every tier at no upcharge. Free is a 14-day trial with 500 credits in total and card required, nothing charged for 14 days; subscribing keeps the same key working. Paid tiers run from EUR 9.99 to EUR 99.99 a month, monthly or annual.
Can I call the API from the browser?
You can, but a key in the browser is public. Proxy the search through your server, as in the sample above. Rate limits are per key.
Everything about Ireland
Guides
Free tools
Comparisons
More countries: Western Europe
SpainFranceUnited KingdomBelgiumSwitzerlandGermanyNetherlandsAll data by country and type
Contains public sector information licensed under CC BY 4.0. Source: Companies Registration Office (CRO), Ireland.