# Czech ARES Scraper: Company Register Data | $1/1K (`one_dollar_store/czech-ares-companies-scraper`) Actor

Czech companies and sole traders from the ARES business register: IČO, name, legal form, CZ-NACE activities, address, founding date and status. No key. $1 per 1,000 results, platform usage included.

- **URL**: https://apify.com/one_dollar_store/czech-ares-companies-scraper.md
- **Developed by:** [One Dollar Store](https://apify.com/one_dollar_store) (community)
- **Categories:** Business, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.00 / 1,000 results

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## Czech ARES Scraper: companies from the Czech business register by legal form, activity and city

**$1 per 1,000 companies. Platform usage included. No rental, no minimum.**

The four most used Czech ARES actors on Apify Store charge $2.50 to $3.50 per 1,000 results (Store prices checked 27 October 2026). This actor returns the same register data, with filters for legal form, activity code, city, region, status and founding date, for $1.

[Open it in Apify Console](https://console.apify.com/actors/vhzwzGdwPrSi6HNwu/input)

ARES is the Czech Ministry of Finance's register of economic subjects. It joins the base register of subjects with the commercial register, the statistical register, the trade licence register and the VAT register. One run builds a company list: choose the legal form (for example s.r.o. or a.s.), the activity codes, a city or region, and whether you want active or ceased subjects, and you get one clean row per company with the IČO, VAT ID, address, tax office, founding date and activities.

### How much does Czech ARES Scraper cost?

| Companies | This actor | Most used Czech ARES actors on the Store |
|---|---|---|
| 1,000 | $1.00 | $2.50 to $3.50 |
| 10,000 | $10.00 | $25 to $35 |
| 100,000 | $100.00 | $250 to $350 |

Plus $0.001 per run. A weekly run of 300 new companies from one city costs about $0.30 a week, or about $1.30 a month.

### Why people switch

- **One flat price.** Compute is included, so the bill follows the number of companies and nothing else.
- **Searches that go past 1,000.** ARES refuses any search that matches more than 1,000 subjects. This actor cuts a broad search into smaller ones by legal form, tax office and activity code, reads each part, and removes repeats, so a request for tens of thousands of companies works.
- **Filters ARES does not offer.** Region, status and founding date are applied to the rows, and activity codes bring the codes below them, which ARES matches only one level at a time.
- **Clean rows.** 37 fields: legal form in words and as a code, activity codes with Czech names, address parts, tax office, VAT payer flag and the registers a company is active in.

### How to use Czech ARES Scraper

1. Open the actor and press **Start**. The default input returns 50 active limited liability companies (s.r.o.) in Mladá Boleslav.
2. Or paste this input, which lists software companies in Brno that were founded since 2020:

```json
{ "legalForms": ["112", "121"], "cities": ["Brno"], "activityCodes": ["6210"], "foundedFrom": "2020-01-01", "maxItems": 500 }
```

3. Download the results as JSON, CSV or Excel, or read them through the API.

### Use it from code

```bash
curl -X POST "https://api.apify.com/v2/acts/one_dollar_store~czech-ares-companies-scraper/run-sync-get-dataset-items?token=YOUR_APIFY_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"legalForms": ["112"], "cities": ["Brno"], "maxItems": 100}'
```

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("one_dollar_store/czech-ares-companies-scraper").call(
    run_input={"legalForms": ["112"], "cities": ["Brno"], "maxItems": 100}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["ico"], item["name"], item.get("vatId"), item["municipality"])
```

### Use it from an AI assistant

Claude, ChatGPT, Cursor and other assistants can call this actor through Apify's MCP server. Add it with this server address:

```
https://mcp.apify.com?tools=one_dollar_store/czech-ares-companies-scraper
```

Then ask, for example: "List 100 active Czech joint-stock companies in the Moravian-Silesian region with their IČO and VAT ID."

### Switching from another ARES actor

Most ARES actors take an IČO or a name. Here the main inputs are `legalForms`, `activityCodes`, `cities`, `regions`, `nameWords`, `status`, `foundedFrom` and `maxItems`. The core output fields are `ico`, `name`, `vatId`, `legalForm`, `address`, `municipality`, `foundedDate` and `status`.

### Input

All filters are optional and combine with AND. For lists, one match is enough.

| Field | Type | Default | What it does |
|---|---|---|---|
| `legalForms` | list | all except sole traders | Legal form codes such as `112` (s.r.o.), `121` (a.s.), `111` (v.o.s.), `205` (družstvo), `706` (spolek). |
| `includeSoleTraders` | true or false | false | Include sole traders (podnikající fyzická osoba). Their records come with personal data removed. |
| `activityCodes` | list of text | none | CZ-NACE 2025 codes, 2 to 5 digits, such as `6210` for software or `4711` for retail. Codes below each one are added. |
| `includeSubCodes` | true or false | true | Add the codes below the ones you typed. Turn off to match only the exact codes. |
| `cities` | list of text | none | Cities, towns, city districts or parts of town, such as `Brno` or `Žabovřesky`. |
| `regions` | list | none | One or more of the 14 regions (kraj). |
| `nameWords` | text | none | Whole words that must all appear in the name. |
| `status` | text | `active` | `active`, `ceased` or `any`. |
| `foundedFrom`, `foundedTo` | text | none | Founding date range, as `2025-01-31`. |
| `splitByActivity` | true or false | true | Let the actor cut very broad searches by activity code as a last step. |
| `maxItems` | number | 100 | Total companies for the run. Minimum 10, maximum 100,000. |

Example:

```json
{
  "legalForms": ["112"],
  "regions": ["Jihomoravský kraj"],
  "activityCodes": ["4711", "4719"],
  "status": "active",
  "foundedFrom": "2023-01-01",
  "maxItems": 2000
}
```

### What data does Czech ARES Scraper return?

Each row has up to 37 fields. A field the register leaves empty is left out of that row (tests returned 32 to 35 per row).

| Fields | Meaning |
|---|---|
| `ico`, `name`, `status`, `registerStatus` | The IČO, the registered name, and whether the subject is active or ceased. |
| `legalFormCode`, `legalForm`, `soleTrader` | Legal form as a code and in Czech, and whether it is a sole trader. |
| `vatId`, `vatPayer`, `groupVatId` | Czech tax number (DIČ), whether the subject is a VAT payer, and its VAT group number. |
| `foundedDate`, `recordUpdatedDate` | Dates in ISO form. |
| `taxOfficeCode`, `taxOffice` | The tax office the subject reports to. |
| `primarySource`, `activeRegisters` | The main register ARES uses and the registers in which the subject is currently active (ROS, VR, RES, RZP, DPH and others). |
| `activityCodes`, `activityNames`, `activityCodes2008` | CZ-NACE 2025 codes with Czech names, and the same activities in the older 2008 coding. |
| `address`, `street`, `houseNumber`, `municipalityPart`, `postalCode` | Registered address. Left out for sole traders. |
| `municipality`, `municipalityCode`, `cityDistrict`, `district`, `districtCode`, `region`, `regionCode`, `countryCode`, `country`, `addressStandardized` | Place of the registered address with official codes. |
| `personalDataRemoved`, `sourceUrl`, `scrapedAt` | Marker for sole trader rows, a link to the record in the ARES API, and the time the row was read. |

The run summary (key `RUN_SUMMARY`) shows how many searches were made, how many matches were read, how many rows the filters removed, and a coverage note when a search had to be cut.

### Sample results

Real rows from a test run on 27 October 2026 (s.r.o. in Mladá Boleslav, active). Fields are shortened for this page.

```json
[
  {
    "ico": "61675938",
    "name": "ŠKO-ENERGO, s.r.o.",
    "status": "Active",
    "legalFormCode": "112",
    "legalForm": "Společnost s ručením omezeným",
    "vatId": "CZ61675938",
    "vatPayer": true,
    "foundedDate": "1995-06-30",
    "taxOffice": "Specializovaný finanční úřad",
    "activeRegisters": [
      "ROS",
      "VR",
      "RES",
      "RZP",
      "DPH",
      "RED"
    ],
    "activityCodes": [
      "4322",
      "36000",
      "46900"
    ],
    "activityNames": [
      "Instalace rozvodů vody, odpadu, topení a klimatizace",
      "Shromažďování, úprava a distribuce vody",
      "Nespecializovaný velkoobchod"
    ],
    "address": "tř. Václava Klementa 869, Mladá Boleslav II, 29301 Mladá Boleslav",
    "municipality": "Mladá Boleslav",
    "district": "Mladá Boleslav",
    "region": "Středočeský kraj",
    "postalCode": "29301"
  },
  {
    "ico": "02071754",
    "name": "Bluecumber s.r.o.",
    "status": "Active",
    "legalFormCode": "112",
    "legalForm": "Společnost s ručením omezeným",
    "vatId": "CZ02071754",
    "vatPayer": true,
    "foundedDate": "2013-09-05",
    "taxOffice": "Územní pracoviště v Mladé Boleslavi",
    "activeRegisters": [
      "ROS",
      "VR",
      "RES",
      "RZP",
      "DPH",
      "RED"
    ],
    "activityCodes": [
      "731",
      "6210",
      "00"
    ],
    "activityNames": [
      "Reklamní činnosti",
      "Počítačové programování",
      "Výroba, obchod a služby neuvedené v přílohách 1 až 3 živnostenského zákona"
    ],
    "address": "Českobratrské náměstí 285/5, Mladá Boleslav II, 29301 Mladá Boleslav",
    "municipality": "Mladá Boleslav",
    "district": "Mladá Boleslav",
    "region": "Středočeský kraj",
    "postalCode": "29301"
  },
  {
    "ico": "02329387",
    "name": "Sape Technology s.r.o.",
    "status": "Active",
    "legalFormCode": "112",
    "legalForm": "Společnost s ručením omezeným",
    "vatId": "CZ02329387",
    "vatPayer": true,
    "foundedDate": "2013-11-18",
    "taxOffice": "Územní pracoviště v Mladé Boleslavi",
    "activeRegisters": [
      "ROS",
      "VR",
      "RES",
      "RZP",
      "DPH"
    ],
    "activityCodes": [
      "46",
      "62200"
    ],
    "activityNames": [
      "Velkoobchod",
      "Poradenství v oblasti počítačů a správa počítačových systémů"
    ],
    "address": "Pražská brána 108, Mladá Boleslav III, 29301 Mladá Boleslav",
    "municipality": "Mladá Boleslav",
    "district": "Mladá Boleslav",
    "region": "Středočeský kraj",
    "postalCode": "29301"
  }
]
```

### Limits

- **ARES refuses searches over 1,000 matches.** The actor cuts a broad search by legal form, then by tax office, and as a last step by activity code, and reads each small part. If a part still holds more than 1,000 companies it is skipped, and the run summary says so in `coverageNote`. The last step can miss companies that list no activity code. Adding a city, a legal form or activity codes gives a complete list.
- **Region, status and founding date are checked on the rows.** ARES cannot search by them, so they do not make a run faster. The region filter reads the tax office areas of the region and then checks each address, so a few companies that report to an office in another region can be missed.
- **Name search is by whole words.** It ignores case and accents, and a part of a word does not match.
- **Activity codes are the 2025 edition.** Codes from the 2008 list, such as 62010, do not match. The old codes are returned in `activityCodes2008` for reference.
- **Status.** Active and ceased come from the base register (ROS). When a subject has no ROS entry, as many sole traders do, the other registers decide. A company in liquidation (v likvidaci) is still active until it is deleted.
- **What ARES does not hold.** The record has no phone, email, website, employee count or turnover. Names of activities and legal forms are in Czech.
- **Sole traders.** Their rows come without the tax number, street, house number, postal code and full address. The registered name of a sole trader is the person's own name.
- **Pace.** The actor sends at most 4 requests a second and stops a run after 4,000 requests. Runs stop cleanly before the run time limit with the rows delivered; raise Timeout under Run options for very large lists. A run returns up to 100,000 companies.

### FAQ

**What is the cheapest Czech ARES scraper on Apify?**
This actor costs $1 per 1,000 companies with platform usage included. The four most used Czech ARES actors on the Store charged $2.50 to $3.50 per 1,000 when we checked on 27 October 2026.

**How much does it cost to scrape 10,000 Czech companies?**
$10, plus $0.001 for each run.

**Do I pay for compute or proxy on top?**
No. The price covers platform usage, and the actor needs no proxy because it reads the official ARES API.

**Does it need an API key?**
No.

**Why do I get fewer companies than I expected?**
ARES will not return a search that matches more than 1,000 subjects. The actor cuts such searches into parts, but a part that is still too broad is skipped. Look at `coverageNote` in the run summary, and add a city, legal form or activity code.

**How do I find new companies?**
Set `foundedFrom` and add a city, region or legal form so the run reads only that part of the register. The founding date is checked on each row, so a search with no other filter reads many old companies first.

**Is it legal?**
ARES is public register data from the Czech Ministry of Finance. The ministry says anyone may use its services if they respect the operating conditions, that it may restrict users who send more than 500 queries a minute, and that the information is for information only. It states no licence for reuse. The actor reads the public API at no more than 4 requests a second, and the ministry's robots.txt only disallows /cms/, which the API is not under. Sole traders are in the register; the actor removes their tax number, which can be a personal number, and their street address, but the name of a sole trader is the person's own name. You are responsible for how you use the data, including GDPR and the rules on commercial messages.

**Is this an official ARES product?**
No. It is an independent tool and is not affiliated with or endorsed by the Czech Ministry of Finance.

**Do I need an Apify account?**
Yes. Actors run from an Apify account, and a free account is enough to start: it includes $5 of platform usage every month. You can [sign up here](https://www.apify.com?fpr=ymnoit). This is a referral link and it costs you nothing.

**Is there a limit on the free plan?**
Yes. A run started from a free plan account delivers the first 10 results, then ends with a message and a link to the plans. Any paid plan returns everything you ask for, up to your own limit. The price per result is the same on every plan.

### Feedback and support

Found a problem or want a field added? Open an issue on the Issues tab of this actor and it gets read. If the actor saved you time, an honest rating on the Reviews tab helps other people find it.

### More from The One Dollar Store

Every actor here costs $1 per 1,000 results, platform usage included. See the whole store: https://apify.com/one_dollar_store

**Company records**

- [Bundesanzeiger Scraper](https://apify.com/one_dollar_store/bundesanzeiger-filings-scraper): German company filings and notices.
- [US Business Registry Search](https://apify.com/one_dollar_store/us-business-registry-search): Company records from 6 US state registries.
- [France Company Search](https://apify.com/one_dollar_store/france-company-register-sirene): French companies from the official SIRENE register.
- [Sanctions List Search](https://apify.com/one_dollar_store/sanctions-list-search): Name search across four official sanctions lists.
- [SEC Company Financials](https://apify.com/one_dollar_store/sec-company-financials-xbrl): Reported financial figures for US listed companies.
- [Norway Company Search](https://apify.com/one_dollar_store/norway-company-register-brreg): Norwegian companies from the official Brreg register.
- [GLEIF LEI Lookup](https://apify.com/one_dollar_store/gleif-lei-lookup): Legal entity identifiers and ownership links.
- [SEC 13F Holdings](https://apify.com/one_dollar_store/sec-13f-institutional-holdings): What funds hold, from 13F filings.
- [SEC Form 4 Scraper](https://apify.com/one_dollar_store/sec-form-4-insider-trades): Insider buys and sells from Form 4.
- [EU VAT Validator](https://apify.com/one_dollar_store/eu-vat-number-validator): Check EU VAT numbers against VIES.

### Changelog

- 27 October 2026: clearer description and headings, field details for AI tools. Price and output unchanged.
- October 2026: first release.

# Actor input Schema

## `legalForms` (type: `array`):

Only subjects with these legal forms. Leave empty for all forms except sole traders. Choosing a sole trader form returns those records with personal data removed (no tax number, street or postal code).

## `includeSoleTraders` (type: `boolean`):

Sole traders are individuals who trade under their own name. They are left out unless you turn this on or choose a sole trader legal form. Their records never include a tax number, street address or postal code.

## `activityCodes` (type: `array`):

Only subjects that list one of these activity codes, one per line, for example 6210 for software or 4711 for retail. Use the 2025 codes: codes from the older 2008 list, such as 62010, do not match. Codes below the one you give are added unless you turn that off.

## `includeSubCodes` (type: `boolean`):

ARES matches the exact code a company lists. With this on, 62 also matches 621, 6210, 62101 and so on. Turn it off to match only the codes you typed.

## `cities` (type: `array`):

Only subjects whose registered address is in these places, one per line, for example Brno or Mladá Boleslav. A city district or part of town (Brno-střed, Žabovřesky) works too. Not case or accent sensitive.

## `regions` (type: `array`):

Only subjects in these regions (kraj). The actor reads the tax office areas of the region and then checks each address, so a few companies that report to an office in another region can be missed.

## `nameWords` (type: `string`):

Whole words that must all appear in the name, for example skoda or novak. Not case or accent sensitive. Part of a word does not match.

## `status` (type: `string`):

Active subjects are alive in the base register. Ceased ones are closed or historical. ARES returns both, so this is applied to the rows.

## `foundedFrom` (type: `string`):

Only subjects founded on or after this date, as 2025-01-31. ARES cannot search by date, so the actor checks the date on each row; combine it with a city, legal form or activity code for fast runs.

## `foundedTo` (type: `string`):

Only subjects founded on or before this date, as 2025-12-31.

## `splitByActivity` (type: `boolean`):

ARES refuses any search that matches more than 1,000 subjects. The actor cuts such searches by legal form and tax office, and, if that is not enough, by activity code. The last step can miss companies that list no activity code. Turn it off to skip it.

## `maxItems` (type: `integer`):

Stop after this many subjects. Minimum 10, maximum 100,000.

## Actor input object example

```json
{
  "legalForms": [
    "112"
  ],
  "includeSoleTraders": false,
  "activityCodes": [
    "6210"
  ],
  "includeSubCodes": true,
  "cities": [
    "Brno"
  ],
  "nameWords": "skoda",
  "status": "active",
  "foundedFrom": "2025-01-01",
  "foundedTo": "2025-12-31",
  "splitByActivity": true,
  "maxItems": 50
}
```

# Actor output Schema

## `results` (type: `string`):

No description

## `summary` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "legalForms": [
        "112"
    ],
    "cities": [
        "Mladá Boleslav"
    ],
    "status": "active",
    "maxItems": 50
};

// Run the Actor and wait for it to finish
const run = await client.actor("one_dollar_store/czech-ares-companies-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "legalForms": ["112"],
    "cities": ["Mladá Boleslav"],
    "status": "active",
    "maxItems": 50,
}

# Run the Actor and wait for it to finish
run = client.actor("one_dollar_store/czech-ares-companies-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "legalForms": [
    "112"
  ],
  "cities": [
    "Mladá Boleslav"
  ],
  "status": "active",
  "maxItems": 50
}' |
apify call one_dollar_store/czech-ares-companies-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,one_dollar_store/czech-ares-companies-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/vhzwzGdwPrSi6HNwu/builds/1e36CiUatRLNodpYK/openapi.json
