Back to Blog
Intelligence March 18, 2026 | 11 min read

Czech Business Registry Integration: ARES, Justice, and Beyond

Connecting to Czech government data sources for comprehensive business intelligence

Prismatic Engineering

Prismatic Platform

Czech Government Data Landscape


The Czech Republic maintains several publicly accessible registries that

provide rich data for business intelligence and due diligence. These

registries are operated by different government agencies, each with its

own API format, authentication requirements, and rate limits. Integrating

them into a unified intelligence pipeline requires careful attention to

data normalization, error handling, and compliance with terms of service.


ARES: Administrative Registry of Economic Subjects


ARES (Administrativni registr ekonomickych subjektu) is the primary Czech

business registry, operated by the Ministry of Finance. It aggregates data

from multiple source registries and provides a unified search interface.


The ARES API accepts queries by company name, ICO (identification number),

or address and returns XML responses containing company details, legal form,

registered address, NACE activity codes, and registration dates.



defmodule PrismaticOsintSources.Adapters.CzechAres do

@ares_base_url "https://ares.gov.cz/ekonomicke-subjekty-v-be/rest"


def search(query, _opts) do

url = "#{@ares_base_url}/ekonomicke-subjekty/vyhledat"


params = %{

obchodniJmeno: query,

start: 0,

pocet: 25

}


case HTTPClient.get(url, params: params) do

{:ok, %{status: 200, body: body}} ->

{:ok, parse_ares_response(body)}


{:ok, %{status: 429}} ->

{:error, :rate_limited}


{:error, reason} ->

{:error, {:ares_unavailable, reason}}

end

end

end


ARES rate limits are generous for individual queries but restrict bulk

downloads. The adapter implements exponential backoff with jitter for

rate-limited responses and caches successful results in ETS with a

configurable TTL (default 24 hours for company data that changes

infrequently).


Justice.cz: Commercial Register


The Justice.cz portal (operated by the Ministry of Justice) provides access

to the full commercial register (obchodni rejstrik), including company

constitutive documents, shareholder information, board member details,

and historical changes.


Unlike ARES which provides summary data, Justice.cz contains the full

legal record: articles of incorporation, annual reports, ownership

transfer documents, and liquidation proceedings. This makes it essential

for deep due diligence but harder to parse.


The Justice.cz data is structured by courts (krajske soudy) and file

numbers (spisova znacka). A company registered at the Municipal Court

in Prague has a file reference like "C 12345 vedena u MestskΓ©ho soudu

v Praze". The adapter normalizes these references into a canonical

format for cross-referencing.


Data PointSourceUpdate Frequency

|-----------|--------|-----------------|

Company name, ICO, addressARESDaily Shareholders, board membersJustice.czOn filing Beneficial ownershipEvidence skutecnych majiteluOn change Insolvency statusISIRReal-time Property recordsCUZK CadastralOn transaction

ISIR: Insolvency Registry


The ISIR (Insolvenni rejstrik) provides real-time data on insolvency

proceedings in the Czech Republic. For due diligence, this is a critical

data source as it reveals financial distress that may not yet appear in

financial statements.


The ISIR API supports both pull-based queries (search by name or ICO)

and push-based notifications (WebSocket events for new filings). The

adapter subscribes to relevant WebSocket channels for monitored entities,

enabling real-time alerts when a watched company enters insolvency

proceedings.


Czech Sanctions Lists


The Czech National Bank maintains a national sanctions list that

supplements EU and UN sanctions. The adapter fetches this list in CSV

format, parses it into entity records, and makes it searchable through

the standard search/2 interface.


Sanctions matching requires special handling of Czech names with

diacritics. The adapter normalizes names by removing diacritics,

expanding common abbreviations, and generating multiple name variants

for comparison. A match against "Novak" also checks "NovΓ‘k" and

vice versa.


Data Normalization


Each Czech data source returns data in a different format: ARES uses

JSON (recently migrated from XML), Justice.cz provides HTML pages

requiring scraping, ISIR offers a REST API with JSON responses, and

the cadastral office provides XML. The normalization layer transforms

all of these into a unified entity schema.


Address normalization is particularly challenging for Czech addresses.

The system handles street names with Czech-specific conventions

(descriptive numbers vs. orientation numbers), municipality parts

(mistni casti), and postal districts. Addresses are geocoded and

stored with both raw and normalized forms to support both exact

matching and proximity searches.


Rate Limiting and Resilience


Czech government APIs have varying availability and rate limits. The

integration layer implements a circuit breaker pattern per data source:

after 3 consecutive failures, the circuit opens and requests are served

from cache (if available) or return a degraded response indicating the

source is temporarily unavailable.


This resilience pattern is critical for production use where DD reports

must be generated on demand regardless of individual source availability.

The report clearly indicates which sources were consulted, which returned

cached data, and which were unavailable at the time of generation.


Tags

czech ares justice isir business-registry osint