apify-public-registries

作者: apify

查询来自11个国家/地区(捷克、斯洛伐克、波兰、德国、英国、荷兰、罗马尼亚、克罗地亚、瑞典 + 欧盟层面 + ESG)的欧洲公共登记处的官方公司数据。涵盖公司…

npx skills add https://github.com/apify/awesome-skills --skill apify-public-registries

Public Company Registries — 11 Countries

Look up official company data from European public registries via Python scripts (direct REST API) or Apify actor fallback (scraping when no API exists).

Prerequisites

  • Python 3 (scripts use stdlib — no pip dependencies for most countries)
  • Apify access (only for DE, UK, PL financials, CZ justice.cz, RO fallback) — preferred: 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.
  • NL: KVK_API_KEY env var (register at developers.kvk.nl — see REGISTRATION/NL.md)
  • PL GUS: GUS_API_KEY env var (email regon_bir@stat.gov.pl)
  • SE: Bolagsverket requires registration (see REGISTRATION/SE.md)
  • HR: Sudski registar requires OAuth registration (see REGISTRATION/HR.md)

${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.

Workflow checklist

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)

Quick Reference — Lookup by Country

All paths relative to ${CLAUDE_PLUGIN_ROOT}/skills/apify-public-registries/.

CountryCommandIdentifierAccess
CZpython3 reference/scripts/CZ/fetch_all.py lookup <IČO>IČO (8-digit)Free (ARES API)
SKpython3 reference/scripts/SK/fetch_all.py lookup <IČO>IČOFree (ORSR scraping)
PLpython3 reference/scripts/PL/fetch_all.py lookup <KRS>KRS (10-digit, zero-padded)Free (KRS API)
PLpython3 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)NIPGUS_API_KEY REQUIRED — without it, returns fake test data silently (see gotchas)
DEpython3 reference/scripts/DE/fetch_all.py keyword <name>Company nameApify (mcpc CLI)
UKpython3 reference/scripts/UK/fetch_all.py search <name>Company nameApify (mcpc CLI)
NLpython3 reference/scripts/NL/fetch_all.pyKVK number (configured)API key (KVK_API_KEY)
ROpython3 reference/scripts/RO/fetch_all.py lookup <CUI>CUI numberFree (ANAF — offline since 2026-03)
HRManual — see REGISTRATION/HR.mdOIB / MBSOAuth registration
SEManual — see REGISTRATION/SE.mdOrg.nrBolagsverket registration
EUpython3 reference/scripts/EU/fetch_all.py lookup <name>Company nameFree (GLEIF + ESMA + TED)
EUpython3 reference/scripts/EU/fetch_all.py lookup_lei <LEI>LEI (20-char)Free (GLEIF)
ESGpython3 reference/scripts/ESG/fetch_all.py lookup <country>Country name/ISO codeFree

By Data Type

NeedBest sourceCommand
Basic profile (name, address, legal form)CZ: ARES, SK: ORSR, PL: KRS, DE: Handelsregister, UK: Companies HouseSee country table above
Ownership / corporate treeEU GLEIFEU/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.skSK/fetch_all.py finstat
Financial filings (PL)eKRS via ApifyPL/fetch_all.py financials
Bonds & instrumentsESMA FIRDSEU/fetch_all.py lookup <name>
VAT / due diligence (CZ)DPH registerIncluded in CZ/fetch_all.py lookup
VAT / due diligence (PL)Biała ListaPL/fetch_all.py lookup_nip <NIP>
Bank regulatory dataEBA Transparency CSVs (100MB+)EU/fetch_all.py eba
ESG / emissionsClimate TRACE + EU ETSESG/fetch_all.py lookup <country>
Regulated entities (CZ)ČNB bank list + OAMCZ/fetch_all.py cnb_banks / cnb_oam
Public procurementTEDEU/fetch_all.py lookup <name>

Step 1: Identify country + identifier

  • Check ${CLAUDE_PLUGIN_ROOT}/data/companies.json -> identifiers.registry_ids for existing IDs.
  • If identifier unknown, start with EU GLEIF by name — returns LEI + registered-as numbers usable in country-specific lookups.

Identifier types by country:

  • CZ/SK: IČO (8-digit)
  • PL: KRS (10-digit zero-padded) or NIP (10-digit)
  • DE: Company name keyword
  • UK: Company name
  • NL: KVK number (8-digit)
  • RO: CUI (numeric)
  • HR: OIB (11-digit) or MBS
  • SE: Organisationsnummer (10-digit, e.g. 559124-6847)
  • EU: LEI (20-char alphanumeric) or company name

Step 2: Run lookup

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)

Step 3: Interpret results

Key fields vary by source:

SourceKey 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

Apify fallback

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:

CountryRegistryActorTrigger
DEHandelsregisterradeance/handelsregister-apiDE/fetch_all.py keyword <name>
UKCompanies Housedhrumil/company-house-scraperUK/fetch_all.py search <name>
PLeKRS Financialsminute_contest/poland-krs-financial-scraperPL/fetch_all.py financials
CZJustice.cz filingsapify/website-content-crawlerDirect via apify CLI
ROListaFirme.roapify/website-content-crawlerRO/fetch_all.py listafirme
SEAllabolag.seapify/website-content-crawlerManual (residential proxy needed)

Note: DE, UK, and RO scripts use mcpc CLI internally (not apify CLI).

Dependencies

Python stdlib only (no pip)

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)

Requires Apify + APIFY_TOKEN

DE (handelsregister), UK (companies_house), PL (financials via eKRS), CZ (justice.cz sbírka listin via scraping), RO (listafirme.ro)

Requires API key registration

Critical gotchas

  • CZ ARES is the best single starting point for Czech companies — aggregates data from multiple source registers.
  • EU GLEIF is the best cross-country starting point — maps LEI to registered-as numbers usable in country lookups.
  • RO ANAF API is offline since March 2026 — lookup returns errors. Use listafirme.ro (Apify) as fallback.
  • SK ORSR uses HTML scraping with windows-1250 encoding and regex parsing — fragile, may break if page layout changes.
  • SK FinStat is also HTML scraping — may block automated access.
  • PL Biała Lista has a hard rate limit: 100 queries/day (search method) or 5,000/day (check method).
  • PL GUS silently returns fake data when 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.
  • DE + UK scripts use mcpc CLI (not apify CLI) — require authenticated @apify session.
  • UK Companies House has a free API at api.company-information.service.gov.uk, but the script uses Apify scraping instead.
  • CZ Justice.cz bulk datasets are 13GB+ XML/CSV. The CKAN API returns a dataset list, not per-company data.
  • CZ ČNB OAM is only relevant for emitents (listed companies, banks) — uses Oracle BI XML export.
  • ESG data is country-level, not company-level — useful only as contextual benchmark.
  • ESAP (centralized EU ESG/financial database with API) launches CSRD data January 2028.
  • EBA Transparency CSVs are 100MB+ each — run EU/fetch_all.py eba separately, not as part of normal batch.
  • TED has low value — most portfolio companies are private. Winner-name only in eForms notices (2024+).
  • Batch mode (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.

Reference

来自 apify 的更多技能

bug-triage
apify
对 apify/apify-mcp-server 上的开放 bug 问题进行分类。分析、草拟回复、获取批准、发布。
official
apify-influencer-brand-collabs
apify
通过串联Apify Actors发现Instagram品牌与创作者的合作关系。当用户询问某品牌与谁合作、某创作者曾与哪些品牌进行付费合作时使用…
official
dig
apify
用于在Apify MCP服务器上探索、规划和指定工作的灵活技能。请勿编辑源文件——此技能仅用于理解和规划。
official
apify-financial-news
apify
发现并提取追踪的投资组合公司在33个经过验证的一级来源(彭博社、路透社、金融时报、华尔街日报、IntelliNews、捷克通讯社、波兰通讯社、保加利亚通讯社……)中的财经新闻。
official
apify-actor-development
apify
创建、调试和部署用于网页抓取、自动化及数据处理的无服务器云程序。支持JavaScript、TypeScript和Python模板,集成Crawlee、Playwright和Cheerio库,用于HTTP和基于浏览器的爬取。包含通过apify run进行的本地测试(使用隔离存储)、输入/输出的模式验证,以及通过apify push部署到Apify平台。需要Apify CLI认证,并在.actor/actor.json中强制包含generatedBy元数据以用于AI...
official
apify-actorization
apify
将现有项目转换为无服务器Apify Actors,支持语言特定的SDK集成。支持JavaScript/TypeScript(使用Actor.init() / Actor.exit())、Python(异步上下文管理器)以及通过CLI包装器的任何语言。提供结构化工作流:使用apify init搭建脚手架,应用SDK封装,配置输入/输出模式,通过apify run进行本地测试,然后使用apify push进行部署。包含输入和输出模式验证、Docker容器化以及可选的按事件付费...
official
apify-generate-output-schema
apify
通过分析Apify Actor的源代码生成输出模式(dataset_schema.json、output_schema.json、key_value_store_schema.json)。在以下情况下使用…
official
apify-ultimate-scraper
apify
自动化网页抓取工具,为55多个平台(包括Instagram、TikTok、YouTube、Facebook、Google Maps等)选择最优Actor。涵盖8大主流平台的55多个预配置Actor,并提供针对特定用例的选择指导(潜在客户生成、网红发现、品牌监控、竞争对手分析、趋势研究)。支持三种输出格式:快速聊天显示、CSV导出或JSON导出,可自定义结果数量限制。包含多Actor工作流模式,适用于复杂...
official