Czech Company Data — ARES Registry, VAT & Directors
Pricing
from $3.00 / 1,000 results
Czech Company Data — ARES Registry, VAT & Directors
Search 3M+ Czech companies from the official ARES registry (ares.gov.cz) — identity, IČO, VAT (DIČ), legal form, NACE, registered address and founding date, plus optional directors/board (names, roles) and share capital. Open data, no key.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Berkan Kaplan
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
0
Monthly active users
4 days ago
Last modified
Categories
Share
Czech Company Data — ARES Registry, VAT & Directors
Look up or discover any Czech company — verified identity, VAT number, what it does, who runs it and how much capital it holds. This Actor reads the Czech Ministry of Finance's official ARES registry (Administrativní registr ekonomických subjektů) and returns clean, structured records: legal name, IČO, VAT (DIČ), legal form, NACE activity codes, registered address and founding date — plus, on demand, the board of directors and share capital from the public register.
Built on the official ARES REST API — open data, no API key, no login, no scraping. Two ways in: look up companies you know (by name or IČO), or discover new ones by industry (NACE) + city + legal form — a ready-made lead list, each company fully enriched.
- 🇨🇿 3M+ Czech entities — the whole ARES registry
- 🧭 Discovery mode — browse by industry (NACE) + city + legal form without knowing names (auto-splits busy queries past ARES's 1,000-result cap)
- 🆔 Identity + VAT (DIČ) + legal form + NACE codes + address
- 👔 Directors & capital (opt-in) — the board currently in office (names, roles, tenure), supervisory board and registered share capital — history and duplicate filings removed
- ✅ Active filter — exclude dissolved entities
- 🆓 Open data — reuse and redistribute, no key
Quick start (API)
Look up two companies by IČO with directors and capital:
curl -X POST "https://api.apify.com/v2/acts/foxlabs~czech-company-data/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{ "icoList": ["00177041", "27082440"], "includeDirectors": true }'
Prefer no code? Open the Input tab, enter a name or IČO numbers, and click Start — then download the results.
What you get
One clean, flat record per company:
| Field | Type | Description |
|---|---|---|
name | string | Registered legal name |
ico | string | 8-digit company ID (IČO) |
vat | string | VAT number (DIČ), if VAT-registered |
legalForm / legalFormCode | string | Legal form in English + the ARES code |
address / city / region / postalCode | string | Registered seat |
nace / primaryNace | array / string | CZ-NACE activity codes |
foundingDate | string | Date of establishment |
isActive / activeRegisters | bool / array | Whether it's active, and in which registers |
directors (opt-in) | array | Statutory body / board — people currently in office, { name, role, from, type, citizenship }. One row per person-and-role |
directorsCount (opt-in) | number | Distinct people in directors[] (lower than the row count when someone holds two roles) |
directorsTruncated (opt-in) | bool | true if the board was longer than the 30-row cap — never silently cut |
supervisoryBoard (opt-in) | array | Supervisory board members currently in office (same shape) |
supervisoryBoardCount / supervisoryBoardTruncated (opt-in) | number / bool | Same two guarantees for the supervisory board |
capital (opt-in) | object | Registered share capital { amount, currency } |
source / license / aresUrl | string | Provenance — ARES, open data, and the ARES page |
Missing values come back as null, never a guess.
Sample output
Real record for Škoda Auto a.s. (icoList: ["00177041"], directors on) — board abbreviated:
{"name": "Škoda Auto a.s.","ico": "00177041","vat": "CZ00177041","legalForm": "Joint-stock company (a.s.)","legalFormCode": "121","address": "tř. Václava Klementa 869, Mladá Boleslav II, 29301 Mladá Boleslav","city": "Mladá Boleslav","nace": ["70200", "471", "77110"],"primaryNace": "70200","foundingDate": "1990-11-20","isActive": true,"directors": [{ "name": "MICHAEL KERSCHENSTEINER", "role": "Prokura", "type": "person", "from": null, "citizenship": "DE" },{ "name": "MAREN GRÄF", "role": "člen představenstva", "type": "person", "from": "2024-03-01", "citizenship": "DE" },{ "name": "KLAUS ZELLMER", "role": "předseda představenstva", "type": "person", "from": "2022-07-01", "citizenship": "DE" }],"directorsCount": 7,"directorsTruncated": false,"capital": { "amount": 16708850000, "currency": "CZK" },"source": "ARES — Administrative Register of Economic Entities (Czech Republic)","license": "Open data — Ministry of Finance of the Czech Republic","aresUrl": "https://ares.gov.cz/ekonomicke-subjekty?ico=00177041"}
Example inputs (copy & paste)
// 1) DISCOVER — IT companies (NACE 62) in Olomouc, limited-liability (s.r.o.){ "naceActivity": "62", "city": "Olomouc", "legalForm": "112", "maxResults": 100 }// 2) DISCOVER — accounting/legal firms (NACE 69) in Brno, with directors{ "naceActivity": "69", "city": "Brno", "includeDirectors": true, "maxResults": 200 }// 3) Exact lookup by IČO, with directors & capital{ "icoList": ["00177041", "27082440"], "includeDirectors": true }// 4) Name search{ "searchQuery": "Kaufland", "maxResults": 100 }// 5) Name + address, active only, with the board{ "searchQuery": "logistika", "addressQuery": "Praha", "onlyActive": true, "includeDirectors": true }
Input & filters
- Industry / sector (
naceActivity) — DISCOVER by CZ-NACE code prefix, e.g.62(IT),41(construction),47(retail). No name needed. - City (
city) — DISCOVER or filter by registered city, e.g.Praha,Brno,Olomouc. Pair with a sector or legal form. - Legal form (
legalForm) — s.r.o., a.s., cooperative… also a standalone discovery criterion. - Company name contains (
searchQuery) — substring match on the name. - IČO numbers (
icoList) — exact lookup; overrides the search. - Address contains (
addressQuery) — extra client-side filter (street / district). - Only active (
onlyActive) — exclude dissolved entities. - Include directors & capital (
includeDirectors) — attach the board, supervisory board and share capital. - Max results (
maxResults) — 1 to 100,000.
ARES's 1,000-result cap: one query returns at most 1,000 companies. For busy combinations (e.g. Praha + a broad sector) the Actor auto-splits by legal form to pull more; the very densest slices (Praha s.r.o. in a broad sector) still hit the cap — narrow with a City or a more specific sector. The Actor warns, it never crashes.
Use cases
- B2B prospecting & enrichment. Match your CRM on IČO or name and top up VAT, legal form, NACE and address.
- KYC / KYB & due diligence. Verify a Czech counterparty, its directors and its share capital in one call.
- Board / director mapping. Attach the statutory body to see who runs a company.
- Market & competitor research. Search a name or sector and size the field.
Performance & throughput
The Actor calls the live ARES API (search returns full records in pages of 100; directors/capital add one public-register lookup per company, 5 in parallel). No proxies, no keys. A single search is bounded to ARES's 1,000-result cap; use IČO lists or narrower filters for large pulls.
Integrations
Works with JavaScript / Python apify-client, Make / n8n / Zapier, scheduled runs, webhooks, and the Apify MCP server.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('foxlabs/czech-company-data').call({ icoList: ['00177041'], includeDirectors: true });const { items } = await client.dataset(run.defaultDatasetId).listItems();
Data quality (honest)
- Identity, legal form, NACE, address and founding date are complete for essentially every entity — core ARES fields.
- VAT (DIČ) is present only for VAT-registered subjects; associations and non-registered entities return
null. - Directors are the board in office today. The public register (Veřejný rejstřík) keeps every past version of every appointment; each superseded one is struck with a deletion date, and the Actor keeps only the rows that carry none — verified across 75 companies / 3,223 appointment rows, that flag is set on every ended appointment. Škoda Auto returns its 7 current officers, ČEZ its 7, matching the member counts the register itself declares. Results are most-recently-appointed first;
directorsCountcounts distinct people anddirectorsTruncatedtells you if the 30-row cap was reached. - A board can legitimately be empty. If every appointment has been struck and no successor filed,
directorsis[]— that is the register's own state, not a gap, and it's a signal worth reading. - Roles and tenure dates are as filed. Some appointments (typically prokurists and liquidators) carry no start date in the register, so
fromisnull— the person is still returned. - Capital is the latest registered share capital.
- Nothing is fabricated — a missing value is
null.
Pricing
Pay per result — billed per company returned; directors and capital are included when enabled. Apify free tier to evaluate. No proxies, no third-party API costs — ARES is a free public API.
FAQ
Where does the data come from? The Czech Ministry of Finance's official ARES registry (ares.gov.cz).
Can I use it commercially / resell it? Yes — ARES is open public data.
Do I get director names? Yes, with Include directors & capital on — the statutory body and supervisory board as they stand today, with roles and tenure. Appointments the register has struck are excluded, so you don't read a former chairman as the current one.
How does industry + city discovery work? Pick a sector (naceActivity, a CZ-NACE prefix like 62) and/or a city and legalForm — the Actor queries ARES server-side and enriches every match. For busy combinations it auto-splits by legal form to beat ARES's 1,000-result cap.
Why does a broad search return nothing with a warning? ARES rejects any single query returning more than 1,000 companies — narrow it (a City, a legal form, a more specific sector, or exact IČO numbers).
Do I need an API key? No. No key, no login, no scraping.
Troubleshooting
- "Search matches too many companies" → narrow the name, add
addressQuery, or useicoList. - No
vat→ the company isn't VAT-registered (normal for associations and small entities). - Empty
directorson an active company → every appointment on file has been struck and no successor filed yet. Real register state, not a miss. - The same person twice in
directors→ they hold two roles (e.g. board member and liquidator).directorsCountcounts them once.
Support
Questions, a field you'd like added, or a custom build? Open the Issues tab, or email info@foxlabs.com.tr. We reply fast.
If this Actor saves you time, a ⭐ review really helps.
Changelog
0.1.2 — 2026-07-28
directors[]andsupervisoryBoard[]are now the board actually in office. The previous filter only dropped appointments that carried an explicit end date, which ARES leaves blank on most historical rows — so people who had left years ago were returned as current: Škoda Auto came back with 16 rows / 14 names including a chairman who left in 2004, ČEZ with 30 rows (cap full) covering 9 people, MARTIN NOVÁK repeated 5×. ARES actually strikes each superseded appointment with a deletion date, and that is what the Actor now filters on. Škoda: 16 → 7 rows / 7 people; ČEZ: 30 → 7 / 7 — both matching the member counts ARES itself declares. Across a 75-company check: 384 → 174 director rows, 301 → 142 supervisory rows, no company left without a board it should have had.- Liquidators and prokurists are no longer dropped. The old code required a start date, which the register doesn't record for those roles — 5 of 75 sample companies had their entire statutory body silently omitted. They are returned now, with
from: null. - New
directorsCount/supervisoryBoardCount— distinct people, not row count, so a person holding two roles is counted once. - New
directorsTruncated/supervisoryBoardTruncated— the 30-row cap can no longer cut a board silently. (With history removed the largest board seen in the 75-company check was 10, so the cap is no longer reached in practice.)
0.1.1 — 2026-07-28
- Include directors & capital is now prefilled ON — the very first run on the prefilled IČO numbers (Škoda Auto, ČEZ) returns the statutory body, supervisory board and registered share capital, not identity + VAT only. The API
defaultis unchanged (false), so programmatic users still opt in. - Documented limitation:
directors[]/supervisoryBoard[]include historical and duplicate entries because ARES's public register often omits an appointment's end date (ČEZ: 30 rows covering 9 distinct people). Read the list as "everyone ARES shows without a recorded end date", not as today's board. A dedupe fix is planned.
2026-07 — Out-of-the-box example ✅
- Two example IČO numbers (Škoda Auto, ČEZ) are prefilled, so the very first run returns full company records without any setup.
2026-07 — Discovery mode 🧭
- Added discovery: browse companies by industry (NACE) + city + legal form without knowing names/IČO. Server-side ARES filters; auto-splits by legal form to pull past ARES's 1,000-result cap on busy city+sector combinations.
0.1 — 2026-07-09
- Initial release. Czech companies from the official ARES registry: identity, IČO, VAT (DIČ), legal form, NACE, address and founding date, with opt-in directors/board, supervisory board and share capital. Open data, no key.
Part of the foXLabs data platform — official public-data company, contact, ownership, charity, procurement, location & AI-search intelligence scrapers. Browse the full suite at data.foxlabs.com.tr.
