OpenCorporates Italy alternative
Italy's commercial register is the Registro delle Imprese, run by the InfoCamere consortium of Camere di Commercio. The bad news: InfoCamere's own per-query API requires a signed commercial contract, registroimprese.it is F5-WAF-blocked to non-browser clients, and the SPID-gated impresa.italia.it Cassetto Digitale only opens to a company's own legal representative. The good news: under EU Directive 2017/1132, the same minimum mandatory dataset is exposed at the EU's BRIS gateway. Real-time, free, no auth. OpenRegistry uses BRIS directly.
OpenRegistry on Italy
search_companies(IT, ...): by name or by 11-digit Codice Fiscale (auto-detected from the query string).get_company_profile(IT, ...): by 11-digit CF (EUID formatITRI.{CF}). Legal name, registered office, legal form, capital, EUID.- 1-10 digit CF inputs are zero-padded to 11. REA numbers like
MI-1234567are detected and rejected with a CF conversion hint.
Out of scope for now
The richer Italian dataset (filings, officers, shareholders, charges,
document bodies, beneficial owners) is paid (Visura €5, Bilancio €2.50)
or SPID-gated. Those routes return a structured 501 with the
registroimprese.it or titolareffettivo.registroimprese.it
alternative_url. The titolare-effettivo register itself
is currently CJEU-frozen, after the Consiglio di Stato's 2024-10
referral of C-37/20 plus C-601/20.
status always comes back "unknown" because
BRIS does not publish the Italian active / cessata / in-liquidazione
field; that lives in the paid Visura. We do not fabricate it.
What OpenCorporates has for Italy
OpenCorporates includes Italian company records in its catalogue, mostly at identifier-and-name level. That is roughly the same minimum surface as BRIS, but as a periodic crawl rather than a live call. For a workflow that needs a live CF lookup against the EU's own gateway, OpenRegistry hits BRIS directly.
Why direct BRIS matters
- Sub-second latency. BRIS is async-poll over Cloudflare Workers anycast. The response is the EU gateway's actual current record.
- No API key. No InfoCamere contract negotiation, no SPID, no F5 WAF bypass. The EU mandates this surface be free under the Directive.
- EUID round-trip.
ITRI.{CF}is the EU-canonical identifier. It round-trips back to e-justice.europa.eu and any other EU BRIS consumer.
Worked example
// MCP — find ENI (oil major) by name, then look up by CF search_companies({ jurisdiction: "IT", query: "ENI" }) // → CF 00484960588 get_company_profile({ jurisdiction: "IT", company_id: "00484960588" }) // → legal name "ENI SPA", legal form "Società per azioni", // registered office, capital, EUID "ITRI.00484960588"
Note that list_filings, get_officers,
get_shareholders,
get_persons_with_significant_control, and
get_charges on Italy return a 501 with paid-portal
pointers. The BRIS minimum mandatory dataset does not include those
fields.