Czech Company Registry (ARES) API → Clean JSON avatar

Czech Company Registry (ARES) API → Clean JSON

Pricing

from $2.10 / 1,000 company profiles

Go to Apify Store
Czech Company Registry (ARES) API → Clean JSON

Czech Company Registry (ARES) API → Clean JSON

Czech company data from the official ARES registry as clean, normalised JSON: profile by IČO (100 per request) or name, legal form, status, address, NACE, VAT ID, court registration, officers (opt-in), daily change feed. Pay per company returned.

Pricing

from $2.10 / 1,000 company profiles

Rating

0.0

(0)

Developer

Quietpine Labs

Quietpine Labs

Maintained by Community

Actor stats

0

Bookmarked

1

Total users

1

Monthly active users

8 hours ago

Last modified

Categories

Share

Czech company data from ARES as clean JSON — by IČO, name or daily change feed

Look up Czech companies in ARES (Administrativní registr ekonomických subjektů, the Ministry of Finance's master business register) and get one normalised JSON record per company: legal form, status, registered address, NACE codes, VAT ID, court registration and, on request, officers, share capital and trade licences. The actor calls only the official ARES REST API (no scraping, no proxies, no API key), batches 100 IČO per request and removes natural-person data by default. Incremental mode reads ARES's daily change batches, so you only pay for companies that actually changed.

Who uses it

  • KYC/AML and credit analysts — verify a counterparty's IČO, legal form, VAT registration and insolvency flag before onboarding.
  • Procurement, sales and finance ops — enrich supplier or CRM lists and keep them fresh with the change feed; works from Make, Zapier or n8n without code.
  • Data journalists and researchers — pull every company matching a name or region into a spreadsheet.

Use cases

1. Enrich a list of IČO (100 per ARES request, up to 5,000 per run):

{ "icos": ["45274649", "00006947", "26863154"] }

One profile per IČO found; unknown or invalid IČO are listed in the STATS record and cost nothing.

2. Find companies by name in a region, with the court-register extract:

{ "name": "Prazdroj", "region": "Plzeň", "includeRegisters": ["vr", "res"], "maxRecords": 200 }

Legal persons whose business name contains "Prazdroj" and whose seat is in a kraj, okres or obec matching "Plzeň", with court registration, share capital, previous names and prevailing NACE.

3. Watch a portfolio for changes (schedule daily):

{ "icos": ["45274649", "00006947"], "mode": "incremental", "includeRegisters": ["vr"] }

The first run returns the current profiles as a baseline; later runs return only the companies that appear in ARES's change batches since the previous run.

Input

FieldTypeDefaultMeaning
icosstring[]["45274649","00006947"]IČO to look up (1–8 digits, zero-padded, checksum-validated). Up to 5,000 per run.
namestring–Business-name full-text search (obchodniJmeno). Legal persons only. ARES rejects searches matching more than 1,000 entities.
regionstring–Name-search filter: diacritics-insensitive substring of the kraj, okres or obec of the seat ("Praha" also matches okres Praha-východ; use "Hlavní město Praha" for the capital only).
dateFrom, dateTodate–Name search: establishedOn range. Incremental: release-date range of change batches (dateFrom also bootstraps a run without a cursor).
includeRegistersstring[][]Opt-in extracts, one extra request per register and company: vr (court register: registration, share capital, previous names, officers), rzp (active trade licences), res (prevailing NACE), ros (data-box ID), ceu (insolvent-debtor cases).
includeOfficersbooleantrueWith vr and an IČO you supplied: current statutory-body members as name, role and dates.
modefull / incrementalfullSee Incremental mode.
maxRecordsinteger1000Stop after this many profiles.

Both icos and name may be given; IČO lookups run first, then the name search fills up to maxRecords.

Output

One CompanyProfile per company. Real record from the default input (local run on 2026-10-18; NACE and registration lists shortened):

{
"country": "CZ", "id": "45274649", "idType": "ico",
"name": "ČEZ, a. s.", "kind": "legal-person",
"legalForm": { "code": "121", "label": "Akciová společnost" },
"status": "active",
"registeredAddress": { "street": "Duhová", "houseNumber": "1444/2", "city": "Praha", "cityPart": "Michle", "postalCode": "14000", "region": "Hlavní město Praha", "country": "CZ", "formatted": "Duhová 1444/2, 14000 Praha, CZ" },
"nace": { "other": [
{ "code": "35.11", "label": "Production of electricity", "section": "D", "raw": "35110" },
{ "code": "35.14", "label": "Trade of electricity", "section": "D", "raw": "35140" }
// … 24 more codes
] },
"vatId": "CZ45274649", "otherIds": { "dic": "CZ45274649", "icoId": "45274649" },
"establishedOn": "1992-05-06",
"registrations": [
{ "register": "Veřejný rejstřík", "registerCode": "vr", "number": "B 1581", "court": "Městský soud v Praze" },
{ "register": "Registr plátců DPH", "registerCode": "dph" }
// … ROS, RES, RŽP, RED
],
"previousNames": [],
"provenance": {
"source": "ares",
"sourceName": "ARES – Administrativní registr ekonomických subjektů, Ministerstvo financí ČR",
"sourceUrl": "https://ares.gov.cz/ekonomicke-subjekty?ico=45274649",
"licence": "Zdroj: ARES, Ministerstvo financí ČR (https://ares.gov.cz). Public-sector open data; …",
"retrievedAt": "2026-10-18T01:57:26.657Z", "sourceUpdatedAt": "2026-10-08"
}
}

Other fields: kind is legal-person, public-body, natural-person-entrepreneur or unknown; status is active, in-liquidation, in-insolvency (derived from ARES register-state codes — confirm in ISIR before acting on it), dissolved or unknown; dissolvedOn; nace.main (with res); officers[] { name, role, roleCode, from, to?, representation? }, shareCapital { amount, currency } and previousNames[] { name, from, to } (with vr); otherIds.dataBoxId (with ros). Not-found IČO, invalid checksums, dropped records and request counts are written to the key-value store record STATS.

Pricing in plain words

You pay $3 per 1,000 company profiles returned, plus $0.00005 per run start. Empty results are free: not-found IČO, invalid checksums, filtered-out records and unchanged companies in incremental mode are never charged. On the free plan ($5 monthly credit) that is about 1,600 profiles a month. Bronze, Silver and Gold volume discounts are configured on the store page. The run stops gracefully when it reaches maxRecords or your maximum total charge.

Limits & fair use

  • ARES's operating terms allow the Ministry to restrict users who send more than 500 requests per minute, many simultaneous queries or queries from many IP addresses. This actor sends at most 4 requests per second with 2 in flight, batches 100 IČO per request and uses a single egress without proxies. HTTP 429/403 fails the run immediately with a clear message (no retry storm); 5xx and network errors are retried 4 times with exponential back-off.
  • Name searches matching more than 1,000 entities are rejected by ARES; the run fails with a message asking for a more specific name or a region.
  • Up to 5,000 IČO per run; each register in includeRegisters adds one request per company. Reaching maxRecords or your budget stops the run and keeps everything already pushed.

Incremental mode

ARES publishes daily notification batches per source (VR always; RES and RŽP when selected). The cursor is kept in the run's default key-value store under CURSOR and mirrored to the named key-value store ares-company-profile-cursor (override with the cursorStore input, one per watch-list), so it survives across runs and tasks. Format: { "value": { "lastBatch": { "vr": 748, "res": 1234 } }, "updatedAt": "…" } — the last batch number fully processed per source . First run with icos: current profiles as a baseline, cursor set to the newest batches. First run without icos: only the cursor is stored and nothing is charged, unless dateFrom is given. Later runs read every newer batch oldest-first, intersect the changed IČO with icos when given and return full profiles. A batch interrupted by maxRecords or the budget is not marked done and is re-read next time (STATS.skippedBatchPartial), so keep maxRecords above your expected daily change volume.

Data protection

ARES is a statutory public register (Act No. 304/2013 Coll. § 7; Government Regulation No. 425/2016 Coll.) whose open-data record is declared to contain personal data. This actor minimises it by default:

  • Natural-person entrepreneurs (fyzické osoby podnikající) are returned only when their own IČO is in icos, with the address reduced to municipality, region and country. Name searches and change feeds return legal persons and public bodies only.
  • Officers appear only for companies you looked up by IČO with vr selected, as name, role and dates. Birth dates (datumNarozeni), residential addresses (bydliste) and nationality are never output, and a key deny-list removes them again as a last line of defence. RŽP responsible representatives and ROS statutory bodies are not output at all.
  • Rodné číslo is never requested or output.
  • The developer stores no personal data: datasets live in your Apify storage; only cursors and counters are kept.

Lawful basis for the processing inside a run is Art. 6(1)(f) GDPR — legitimate interest in making a statutorily public register machine-readable for due diligence, KYC/AML, procurement and journalism. You are the controller of what you download. Corrections or removals of register content must be requested from ARES or the primary register listed in registrations; each record's provenance.sourceUrl opens the entity in ARES. This section describes the actor's behaviour and is not legal advice.

FAQ

An IČO I know exists is reported as not found. ARES lists only entities with a valid IČO checksum; typos appear as invalidIcos, genuinely missing ones as notFoundIcos in STATS. Neither is charged.

Why are there no officers in my output? Officers need three things: includeRegisters contains vr, includeOfficers is true, and the company's IČO was in icos. Name-search hits never include officers.

The status says in-insolvency but the company looks fine. The flag is derived from ARES register-state codes (CEÚ/ISIR sources, VR insolvency entries). Confirm in the insolvency register — the companion ISIR actor returns the proceeding itself.

How fresh is the data? The ARES API dataset is updated daily; provenance.sourceUpdatedAt carries the latest datumAktualizace across the fetched sources.

Why does a name search return fewer companies than the ARES website? Sole traders are dropped on name search by design, and region, dateFrom and dateTo filter after the search (STATS.droppedByFilter).

Who invoices me? Apify. Usage is billed to your Apify account and appears on your Apify invoice; the developer never sees your data or payment details.

Source & licence

Zdroj: ARES, Ministerstvo financí ČR (https://ares.gov.cz). Public-sector open data; informative character only ("pouze informativní charakter"). Reused under the ARES operating terms.

Operating terms: https://mf.gov.cz/cs/ministerstvo/informacni-systemy/ares. ARES data "mají pouze informativní charakter a nemohou být použity jako průkazný podklad pro soudní řízení." Each record carries the attribution in provenance.licence. Not affiliated with the Ministry of Finance of the Czech Republic.

Changelog / support

  • 0.1 — first public release: IČO batch lookup, name search, VR/RŽP/RES/ROS/CEÚ extracts, incremental change feed.

Questions, bugs and feature requests: use the Issues tab of this actor.

Documentation drafted with AI assistance and reviewed by the publisher before publication.