Irish Company Website Scraper - CRO No, VAT & Contacts avatar

Irish Company Website Scraper - CRO No, VAT & Contacts

Pricing

$6.00 / 1,000 per company disclosure returneds

Go to Apify Store
Irish Company Website Scraper - CRO No, VAT & Contacts

Irish Company Website Scraper - CRO No, VAT & Contacts

Turn Irish company domains into registry-grade B2B leads from each site's statutory website disclosure (Companies Act 2014 s.151): registered name, CRO number, legal form, registered office, Eircode, county, mod-23-checked VAT number, charity and regulator IDs, email, phone. $0.006 per disclosure.

Pricing

$6.00 / 1,000 per company disclosure returneds

Rating

0.0

(0)

Developer

Scrapers Delight

Scrapers Delight

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Share

Irish Company Website Scraper — CRO Number, VAT, Registered Office & Contacts

Turn a list of Irish company domains into registry-grade B2B leads, read from the one thing every Irish company is legally obliged to publish on its own website: its Companies Act 2014 s.151 disclosure.

For each domain you get the registered name, legal form, CRO number, which CRO register that number is on, registered office (with Eircode and county), mod-23-checked VAT number, charity and regulator identifiers, email, phone and postal address — plus the URL of the page each fact came from.

$0.006 per disclosure returned. A domain that is dead, blocked, or publishes no disclosure is never delivered and never charged.


The statute this reads

Companies Act 2014, section 151 ("Particulars to be published") requires every Irish company to specify — on its websites — its name and legal form, the place of registration and the number with which it is registered, and the address of its registered office. s.151 implements what is now article 26 of Directive (EU) 2017/1132, the same European provision behind the German Impressum, the Belgian art. III.74 CDE disclosure and the UK's trading-disclosure regulations.

So every field below is a statement the company made about itself because the law told it to. That is what makes this corpus the cleanest Irish B2B source there is: it is not a directory with a member list, it is the whole Irish commercial web.

Ireland has no named legal-notice page. Unlike Germany's /impressum or France's /mentions-legales, s.151 says only that the particulars must be on the website. Measured on the platform across two independent 400-domain samples, the winning page was found by the homepage footer 30 and 55 times and by a ranked footer link 25 and 69 times, with guessed paths winning at most once — and 44% to 55% of billed rows were only complete once two pages were merged. This Actor reads the footer first and then follows the site's own legal links, rather than guessing a page name.


What you get — output fields

Every field below was seen populated in real captured bytes before it was advertised. Fill percentages are measured, not estimated, and the honest-limits section says which ones are sparse and why.

Identity

FieldWhat it is
registeredNameThe legal name as the disclosure states it ("Inkplus Limited", "Aran Sweater Market ULC")
tradingNameThe "trading as" / "T/A" name where the page gives one
companyNameBest available name — the registered name, else JSON-LD legalName, else og:site_name
legalFormThe Companies Act 2014 type: LTD, DAC, CLG, ULC, PLC, LLP, LP, ILP, SE, Co-operative society, Sole trader, Registered business name. Irish-language statutory forms (Teoranta, Teo, Cuideachta Phoiblí Theoranta) are recognised as the legal name endings they are

Register

FieldWhat it is
companyNumberThe CRO number, canonicalised to bare digits with leading zeros stripped, exactly as the CRO prints it
companyNumberRawExactly as the page printed it, before normalisation
companyNumberSourceWhich pattern found it: label-alt, jurisdiction, jurisdiction-label, label, bare
companyNumberFormatValidFormat + issued-range check. A CRO number carries no check digit, so this is honestly named — it is not a checksum
companyNumberSchemeIE-CRO
croRegistrationTypecompany or business-name — see "The CRO number trap" below
jurisdictionThe register the page names: Ireland, or England and Wales / Scotland / Northern Ireland when an Irish-facing site is run by a British company
countryThe register's country, never the corpus label
registeredOffice, registeredOfficePostcode, registeredOfficePostcodeValid, registeredOfficeCity, registeredOfficeCountyThe registered office, split
vatNumber, vatNumberValid, vatChecksumVariant, vatCountry, vatBranchVAT id, validated with the published Irish mod-23 check character
charityNumberThe Charities Regulator's RCN
charityTaxExemptionCHYRevenue's CHY charitable-tax-exemption number — a different register, so a different field
regulator, regulatorNumberCentral Bank of Ireland, PSRA, Law Society, Medical/Dental Councils, CORU, NMBI, HIQA, Charities Regulator, CRU, RGII, Safe Electric, the Private Security Authority, the Commission for Aviation Regulation, Fáilte Ireland, SEAI, Chartered Accountants Ireland, the Data Protection Commission — plus its licence or reference number where published

Contact

email · emails[] · emailConflict · phone (E.164) · phones[] · addressLine · postcode · postcodeValid · city · county · socialLinks[] · officerName · officerRole · termsUrl · privacyPolicyUrl

Provenance and accounting

domain · resolvedUrl · disclosureUrl · disclosureSource · discoveryChannel · pagesParsed · pagesChecked · fieldCount · stableId · status · missReason · elapsedMs · fetchedAt · optional fieldSources (the exact URL every single field came from)


The CRO number trap — and the field that fixes it

The CRO runs two registers on one numeric space. Verified against the register's own public search API, not assumed:

CRO number 368047 returns GOOGLE IRELAND LIMITED (LTD – Private Company Limited by Shares) and THE RETREAT BEAUTY SALON (Business name – Body Corporate).

So a bare CRO number on a website is ambiguous unless the page says which register it is on. Some pages do say — creative-it.ie publishes "Business Name Registered in Ireland · CRO No. 390462", which is a registered business name, i.e. a sole trader or partnership trading under a name that is not the owner's own. s.151 does not even bind a business name.

croRegistrationType reports what the page actually said — company, business-name, or null when the page does not say. It is never guessed. Turn on "Only numbers on the COMPANY register" to keep only the rows the page confirms are companies.

No other Actor in the store ships this distinction.


Accuracy — checked against the register itself

Field-fill percentages cannot tell you whether a number is the right number. So every CRO number this parser emitted from a real Irish corpus was looked up in the CRO's own public search API and compared with the registered name read off the same website:

offline, 73 captured domains: 41 of 41 CRO numbers are live register entries 100.0%
live platform run, 400 domains: 37 of 38 are live register entries 97.4%
the one exception was a HONG KONG company number printed on a global contact
page, and it is refused by the build that shipped
name agreement across both: 47 exact or partial, 0 resolving to an unrelated company

An earlier build scored 46 of 47 (97.9%) and the seven disagreements were each a different kind of wrong number. Every one is now refused:

What the page saidWhat it really wasHow it is refused now
EPA Registration Number: 72372-1-86703a US EPA pesticide registrationthe digits may not be followed by a hyphen and more digits
registration number 556231-7825a Swedish organisationsnummersame guard
registration number 0110-01-140960a Japanese corporate numbersame guard
Register of Architects in Ireland, registration no. 10179an architect's personal registrationprofessional-register window veto
Richemont UK Limited … London W1J 5QT … Company Registration Number: 348692a UK company numberforeign-postal-address window veto
Name of Hosting Company: … Company Number: IE312796the hotel's booking enginethird-party-disclosure window veto
registered in England and Wales under company number 472968an English companyforeign-register window veto

Honest limits

  • Enrichment, not discovery. It does not find Irish companies; it enriches the domain list you supply.
  • No CRO deep link. The UK sibling emits a one-click register URL; Ireland cannot. Verified against the register's own API: core.cro.ie keys its company route on an internal entityId (401323 for CRO number 368047), not on the published number, so a link built from the number would open the wrong company or nothing. Shipping one would be a fabricated fact, so the field is cut.
  • No entityKind. A UK Companies House prefix encodes LLP / society / CIO; a bare Irish CRO number encodes nothing at all.
  • No data-protection registration number. Ireland's DPC registration scheme was abolished when GDPR applied in May 2018, so there is no Irish equivalent of the UK ICO number to publish.
  • CRO numbers carry no check digit. companyNumberFormatValid is a format and issued-range check and is named accordingly. The VAT number is genuinely checksum-validated (mod-23, both the 8-character and the 9-character published forms).
  • A UK company number in the 1–7 digit range is indistinguishable from a CRO number when the page names no register at all. Measured: one row in the accuracy check (samaritans.ie) was exactly this and is now refused by the foreign-address guard — but the general case has no clean signal. Use "Only companies registered in Ireland" when that matters.
  • A CRO number in the 1900–2099 band is rejected. A copyright year is the most common false positive on an Irish footer. Roughly 200 of the ~780,000 issued numbers fall in that band and are lost; that trade was deliberate.
  • officerName and regulatorNumber are very sparse. officerName was 0.0% on the high-street frame and 3.2% on the larger-sites frame — bigger companies name a director more often. regulatorNumber was 0.0% on both live frames, though it is populated on 4 of 73 offline domains (michaelbarryauctioneers.ie publishes PSRA LICENCE NO: 004097, smartmoveproperty.ie PSRA LICENSE NO: 003964). Both are kept rather than cut because the bytes prove they populate — expect them at a few percent at best. Unlike a German Impressum, s.151 does not require naming a director at all.
  • Eircode fill is low — 21.4% and 19.8% of billed rows across the two frames. Eircode only arrived in 2015 and a large share of Irish business footers still print an address without one. The address itself is still returned; postcodeValid tells you whether a published code uses the official Eircode character set (one sampled site publishes R95 C2HO — the letter O is not in the Eircode alphabet, so it cannot be a real code, and it is reported rather than silently "corrected").
  • registeredOffice is frequently an accountant's address — that is what was filed.
  • Yield is UK-shaped, not Belgian, and it is a property of your list. s.151 binds companies. Like UK reg. 25 and unlike Belgium's art. III.74 CDE, it does not bind sole traders or partnerships trading under the owner's own name — they have no CRO number to publish. Measured 18.8% and 40.3% of reachable on two independent frames; see the table below before planning a job around either figure.

Which lists convert — measured on TWO independent samples

One corpus measures a parser, not a population. So the coverage numbers below come from two unrelated sampling frames, each 400 Irish domains run on the platform, because a single frame cannot tell you which of its numbers are facts about Ireland and which are facts about the list:

Frame 1 — OpenStreetMapFrame 2 — Tranco .ie
selected ona mapped business with a website taga domain with measurable traffic rank
skews tohigh-street retail and hospitalitylarger, online-first businesses
billed rows56 of 400126 of 400
of all attempted14.0%31.5%
of reachable18.8%40.3%
host did not resolve19.3%8.3%
refused / challenged6.3%13.5%
published no disclosure60.0%44.8%
needed a second page55.4% of rows44.4% of rows

Your hit rate will land between about 1 in 5 and 2 in 5 of the domains that answer, and which end depends on your list, not on this Actor.

Frame 1's 18.8% is the floor, and it is a composition figure rather than a limit of the parser. That frame is 55% retail and 26% hotels and attractions — 81% of it is exactly the part of the Irish economy that s.151 does not reach, because a shop or a guesthouse run by a sole trader has no CRO number to publish at all. Only 15% of it is office, and that subset returned 37.8% of reachable, against tourism at 7.9%. The same five-fold spread is visible inside one frame, and frame 2 reaching 40.3% on a traffic-ranked list confirms it from the other direction.

So: a mapped-high-street list sits at the bottom of that range, a list of Irish companies with real web traffic or a B2B-filtered list sits at the top, and the number to plan around is the one for the list you actually have.

Two things worth knowing before you plan a job around this:

  • OpenStreetMap website tags rot. Frame 1 lost 19.3% of its hosts to DNS failures and refused connections, against 8.3% on Tranco. If your list came from a mapping or directory export, budget for a fifth of it being stale — those domains are attempted and never charged.
  • Bigger sites block more. Frame 2 was refused on 13.5% against frame 1's 6.3%, and needed 170 residential escalations against 56. Also never charged.

What is frame-independent, and what is not

Field-level fill — how often a field is populated on a row we deliver — held steady across both frames, within about five points on almost every field:

frame 1 frame 2
registeredName 73.2% 75.4%
legalForm 75.0% 76.2%
companyNumber 62.5% 67.5%
jurisdiction 73.2% 78.6%
registeredOfficeEircode 21.4% 19.8%
vatNumber 42.9% 38.1%
email 94.6% 89.7%
county 60.7% 54.8%
Irish VAT mod-23 pass 95.2% 100.0%

Two fields moved more, and both are composition rather than parsing:

  • registeredOffice 51.8% → 69.0%. Larger companies publish a registered office; a high-street shop often publishes only a trading address.
  • phone 82.1% → 65.9%. The reverse — a shop puts its phone in the footer, a software company puts a contact form there.

So treat the field percentages as reliable and the coverage percentages as a range.

Where each field actually lives

Measured with includeFieldSources on, counting which page each field was read from:

registeredOffice / its Eircode, city and county sub-page 8 of 8 homepage 0
companyNumber and everything derived from it sub-page 6 homepage 4
registeredName sub-page 6 homepage 2
addressLine / city / county sub-page 7 homepage 3
email sub-page 5 homepage 5
phone sub-page 1 homepage 8

The registered office was never once in the homepage footer. That is why the Actor merges across pages field by field instead of stopping at the first page that mentions a company number — a homepage-only run would return the number and the phone and lose the statutory address entirely.

Billing — you pay for rows, not for attempts

One event, disclosure-scraped, $0.006, charged through Actor.pushData(record, event) so delivery and billing are atomic. There is no start fee and both Apify auto-events are removed.

Never charged:

  • a host that does not resolve or refuses the connection
  • a host that answers with a Cloudflare / challenge page (an HTTP 200 carrying a block page is treated as a transport failure, never as "this company publishes nothing")
  • a domain that genuinely publishes no s.151 disclosure
  • a duplicate (collapsed on the CRO number, else the registrable domain, before anything is pushed)
  • a row your own quality filters removed
  • an unbilled coverage row
  • a domain abandoned at the per-domain deadline

RUN_SUMMARY in the key-value store itemises the three kinds of nothing separately — unreachable host, blocked host, publishes no disclosure — so you can tell a transport problem from an empty market.


How it works

Two to four hops per domain, plain HTTP (got-scraping + cheerio, no browser), Apify DATACENTER proxy by default with a residential escalation that fires only on a real refusal.

  1. Homepage → footer. The s.151 particulars sit in the site-wide footer as often as anywhere.
  2. Ranked legal links off that footer (terms > legal > company information > privacy > about/contact), then the XML sitemap, the WordPress page index and finally guessed paths.
  3. Field-by-field merge across the pages read — Irish sites routinely split the disclosure between a terms page and a contact page — recording which URL each field came from.

Every statutory field is read inside a statement window anchored on a disclosure phrase, never by a page-wide scan. That matters far more in Ireland than in the UK: a CRO number is bare digits, so a page-wide numeric grab would return an order number, a price or a phone fragment far more often than a company number. There is deliberately no bare-digit fallback of any kind — every pattern requires an explicit label (company number, registration no, CRO) or an explicit Irish jurisdiction clause (registered in Ireland).


Inputs worth knowing about

  • Four ways to supply the list — paste domains, startUrls (so Make / Zapier / Clay can hand a URL list over natively), a CSV/TXT/JSON file URL, or the dataset ID of a previous Actor run.
  • Two suppression inputs — skipDomains, and previousDatasetId, which loads an earlier run of this Actor as a do-not-redeliver list so a monthly refresh never re-charges you for a company you already bought.
  • Quality filters that run before billing — require a registry ID, require a checksum-valid VAT, require a contact, require the COMPANY register, Irish-registered only, a minimum populated-field count, a jurisdiction filter, and a role-email policy. A filtered-out row is never charged.
  • includeMissRows turns on full coverage accounting: one unbilled row per attempted domain with its status and missReason.
  • ANY TLD is accepted. Measured on 6,686 real Irish business domains from OpenStreetMap: 59.2% .ie, 37.9% .com. Filtering to .ie would silently discard a third of the corpus. The TLD filter is an opt-in input, never a built-in assumption.

Source and legality

The pages read are the company's own public website: its footer, its terms page, its legal or company-information page. These are pages published because a statute requires them to be published, and they exist to be read and indexed.

robots.txt is not fetched by default (it costs an extra request per domain and these pages are meant to be indexed); a "Respect robots.txt" switch is provided for buyers whose own compliance policy asks for it.

You are responsible for complying with each site's Terms of Service. Statutory disclosures are public by law, but any personal data in the output — a named director, a personal email address — is yours to handle lawfully under the GDPR and the Data Protection Act 2018. Ireland's supervisory authority is the Data Protection Commission.


Not what you are looking for?

  • The CRO register itself (search by name, filings, officers) — several Actors in the store do that. This one reads company websites, which is where the contact details are.
  • Emails and phones only, from any website — scrapersdelight/website-contact-scraper does that for a fraction of the price.
  • Another jurisdiction — the same product exists for the DACH Impressum, the Dutch KvK disclosure, the Italian note legali, the UK trading disclosure, the Spanish aviso legal, the French mentions légales and the Belgian ondernemingsnummer.