From awesome-skills
Looks up official company data from European public registries across 11 countries (CZ, SK, PL, DE, UK, NL, RO, HR, SE + EU-level + ESG). Supports IČO, KRS, LEI, CRN, VAT, ownership, financial filings, and due diligence checks.
How this skill is triggered — by the user, by Claude, or both
Slash command
/awesome-skills:apify-public-registriesThe summary Claude sees in its skill listing — used to decide when to auto-load this skill
Look up official company data from European public registries via Python scripts (direct REST API)
REGISTRATION/HR.mdREGISTRATION/NL.mdREGISTRATION/SE.mddata/registries.jsonreference/european-company-data-institutions.mdreference/scripts/CZ/fetch_all.pyreference/scripts/CZ/lookup_targets.jsonreference/scripts/DE/fetch_all.pyreference/scripts/DE/lookup_targets.jsonreference/scripts/ESG/fetch_all.pyreference/scripts/ESG/lookup_targets.jsonreference/scripts/EU/fetch_all.pyreference/scripts/EU/lookup_targets.jsonreference/scripts/NL/fetch_all.pyreference/scripts/PL/fetch_all.pyreference/scripts/PL/lookup_targets.jsonreference/scripts/RO/fetch_all.pyreference/scripts/RO/lookup_targets.jsonreference/scripts/SK/fetch_all.pyreference/scripts/SK/lookup_targets.jsonLook up official company data from European public registries via Python scripts (direct REST API) or Apify actor fallback (scraping when no API exists).
apify CLI (npm install -g apify-cli && apify login); fallback: Apify MCP connector (call-actor tool). CLI is faster and preferred when both are available.KVK_API_KEY env var (register at developers.kvk.nl — see REGISTRATION/NL.md)GUS_API_KEY env var (email regon_bir@stat.gov.pl)${CLAUDE_PLUGIN_ROOT} is the plugin's root directory (where .claude-plugin/ lives). It is resolved automatically by Claude Code when the plugin is installed, or set to the --plugin-dir path during development.
Copy this and tick boxes as you progress:
Task Progress:
- [ ] Step 0: Verify prerequisites — run `python3 --version` (required); for Apify-dependent registries: try `apify --version && apify info`, or check for `call-actor` MCP tool; if neither, tell user to install apify CLI or Apify MCP connector
- [ ] Step 1: Identify country + identifier type (IČO/KRS/CUI/LEI/company name)
- [ ] Step 2: Run the lookup command per country table
- [ ] Step 3: Interpret results (key fields vary by source)
- [ ] Optional: Apify fallback for scraping-based registries
- [ ] Optional: Cross-reference with EU-level sources (GLEIF LEI, ESMA bonds, EBA)
All paths relative to ${CLAUDE_PLUGIN_ROOT}/skills/apify-public-registries/.
| Country | Command | Identifier | Access |
|---|---|---|---|
| CZ | python3 reference/scripts/CZ/fetch_all.py lookup <IČO> | IČO (8-digit) | Free (ARES API) |
| SK | python3 reference/scripts/SK/fetch_all.py lookup <IČO> | IČO | Free (ORSR scraping) |
| PL | python3 reference/scripts/PL/fetch_all.py lookup <KRS> | KRS (10-digit, zero-padded) | Free (KRS API) |
| PL | python3 reference/scripts/PL/fetch_all.py lookup_nip <NIP> | NIP (10-digit) | Free (Biała Lista, 100/day) |
| PL GUS | (included in batch fetch_all.py) | NIP | GUS_API_KEY REQUIRED — without it, returns fake test data silently (see gotchas) |
| DE | python3 reference/scripts/DE/fetch_all.py keyword <name> | Company name | Apify (mcpc CLI) |
| UK | python3 reference/scripts/UK/fetch_all.py search <name> | Company name | Apify (mcpc CLI) |
| NL | python3 reference/scripts/NL/fetch_all.py | KVK number (configured) | API key (KVK_API_KEY) |
| RO | python3 reference/scripts/RO/fetch_all.py lookup <CUI> | CUI number | Free (ANAF — offline since 2026-03) |
| HR | Manual — see REGISTRATION/HR.md | OIB / MBS | OAuth registration |
| SE | Manual — see REGISTRATION/SE.md | Org.nr | Bolagsverket registration |
| EU | python3 reference/scripts/EU/fetch_all.py lookup <name> | Company name | Free (GLEIF + ESMA + TED) |
| EU | python3 reference/scripts/EU/fetch_all.py lookup_lei <LEI> | LEI (20-char) | Free (GLEIF) |
| ESG | python3 reference/scripts/ESG/fetch_all.py lookup <country> | Country name/ISO code | Free |
| Need | Best source | Command |
|---|---|---|
| Basic profile (name, address, legal form) | CZ: ARES, SK: ORSR, PL: KRS, DE: Handelsregister, UK: Companies House | See country table above |
| Ownership / corporate tree | EU GLEIF | EU/fetch_all.py lookup_lei <LEI> |
| Financial filings (CZ) | Justice.cz sbírka listin (Apify fallback) | CZ/fetch_all.py justice |
| Financial filings (SK) | FinStat.sk | SK/fetch_all.py finstat |
| Financial filings (PL) | eKRS via Apify | PL/fetch_all.py financials |
| Bonds & instruments | ESMA FIRDS | EU/fetch_all.py lookup <name> |
| VAT / due diligence (CZ) | DPH register | Included in CZ/fetch_all.py lookup |
| VAT / due diligence (PL) | Biała Lista | PL/fetch_all.py lookup_nip <NIP> |
| Bank regulatory data | EBA Transparency CSVs (100MB+) | EU/fetch_all.py eba |
| ESG / emissions | Climate TRACE + EU ETS | ESG/fetch_all.py lookup <country> |
| Regulated entities (CZ) | ČNB bank list + OAM | CZ/fetch_all.py cnb_banks / cnb_oam |
| Public procurement | TED | EU/fetch_all.py lookup <name> |
${CLAUDE_PLUGIN_ROOT}/data/companies.json -> identifiers.registry_ids for existing IDs.Identifier types by country:
Execute the command from the country table. Scripts are at:
${CLAUDE_PLUGIN_ROOT}/skills/apify-public-registries/reference/scripts/<CC>/fetch_all.py
Example — look up a company in Czech ARES:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/apify-public-registries/reference/scripts/CZ/fetch_all.py lookup 25099345
Example — find ownership chain via GLEIF:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/apify-public-registries/reference/scripts/EU/fetch_all.py lookup_lei 31570048XH84U51GGT05
Example — look up InPost in KRS:
python3 ${CLAUDE_PLUGIN_ROOT}/skills/apify-public-registries/reference/scripts/PL/fetch_all.py lookup 0000536554
Batch fetch (all companies in a country):
python3 reference/scripts/CZ/fetch_all.py # all CZ sources (ares, dph, cnb_banks, cnb_oam, justice)
python3 reference/scripts/PL/fetch_all.py # all PL sources (krs, biala_lista, gus, financials)
python3 reference/scripts/EU/fetch_all.py # all EU sources except EBA (gleif, ted, esma, eurostat)
Key fields vary by source:
| Source | Key fields |
|---|---|
| ARES (CZ) | obchodniJmeno, dic, sidlo.textovaAdresa, czNace, datumVzniku, pravniForma |
| DPH (CZ) | nespolehlivyPlatce (unreliable payer flag), bank accounts |
| GLEIF (EU) | lei, legalName, jurisdiction, status, registeredAs, parent LEI + name |
| KRS (PL) | nazwa, nip, regon, kapital (share capital) |
| Biała Lista (PL) | statusVat, krs, regon, accountNumbers |
| ORSR (SK) | name, address, legal_form, share_capital, registration_date |
| FinStat (SK) | revenue, profit, employees, assets |
| Handelsregister (DE) | name, legal form, share capital, management, HRB number |
| Companies House (UK) | company number, SIC codes, directors, incorporation date |
| ESMA FIRDS (EU) | isin, lei, instrument name, cfi_code, status |
| TED (EU) | buyer-name, winner-name, total-value, procedure-type |
| ANAF (RO) | denumire, adresa, scpTVA (VAT payer flag), active status |
When no direct API exists, use Apify CLI with a specific actor or apify/website-content-crawler:
apify call apify/website-content-crawler \
--input '{"startUrls":[{"url":"https://or.justice.cz/ias/ui/rejstrik-$firma?ico=25099345"}],"maxCrawlPages":1}' \
--user-agent apify-awesome-skills/apify-public-registries
Apify-dependent registries:
| Country | Registry | Actor | Trigger |
|---|---|---|---|
| DE | Handelsregister | radeance/handelsregister-api | DE/fetch_all.py keyword <name> |
| UK | Companies House | dhrumil/company-house-scraper | UK/fetch_all.py search <name> |
| PL | eKRS Financials | minute_contest/poland-krs-financial-scraper | PL/fetch_all.py financials |
| CZ | Justice.cz filings | apify/website-content-crawler | Direct via apify CLI |
| RO | ListaFirme.ro | apify/website-content-crawler | RO/fetch_all.py listafirme |
| SE | Allabolag.se | apify/website-content-crawler | Manual (residential proxy needed) |
Note: DE, UK, and RO scripts use mcpc CLI internally (not apify CLI).
CZ (ares, dph, cnb_banks, cnb_oam, justice), SK (orsr, finstat), PL (krs, biala_lista, gus), EU (gleif, esma, ted, eurostat), ESG (ets, climate_trace), RO (anaf)
DE (handelsregister), UK (companies_house), PL (financials via eKRS), CZ (justice.cz sbírka listin via scraping), RO (listafirme.ro)
KVK_API_KEY — register at developers.kvk.nl (REGISTRATION/NL.md)GUS_API_KEY — email regon_bir@stat.gov.pl (test key abcde12345abcde12345 exists but has no real data)GUS_API_KEY is unset — test server returns plausible-looking records (ul. Test-Krucza, Kraków-Podgórze) for any valid NIP. Production key required: email regon_bir@stat.gov.pl. Always inspect first GUS record to confirm prod vs test.@apify session.EU/fetch_all.py eba separately, not as part of normal batch.fetch_all.py without arguments) reads lookup_targets.json from the script's directory — these are per-country ID→name mappings, NOT copies of data/companies.json. For single-company lookups, pass the identifier directly.npx claudepluginhub apify/awesome-skills --plugin apify-booking-host-leadsQueries 133+ Estonian official public sources including äriregister (business registry), kinnistusraamat (land registry), riigihanked (procurements), riigiteataja (laws), riigikogu (parliament), statistikaamet (stats), via curl/wget.
Tracks Turkish corporate entity records including MERSİS, trade registry, VERBİS, tax/SGK, and KEP/e-signature. Manages compliance with init, report, update, audit modes.
Generates and reviews Austrian Impressum/legal notice content for websites, covering ECG, UGB, GewO, MedienG, and company-form templates.