Firmy.cz Scraper
Pricing
from $2.49 / 1,000 firmy.cz businesses
Firmy.cz Scraper
Scrape Firmy.cz, the Czech business directory: names, addresses, GPS, phones, emails, websites, IČO, ratings, opening hours, and amenities. Search by keyword, city, or category, or paste URLs. Export JSON, CSV, Excel.
Pricing
from $2.49 / 1,000 firmy.cz businesses
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Firmy.cz Scraper
Firmy.cz Scraper extracts business listings from Firmy.cz, the Czech business directory run by Seznam.cz: names, addresses, GPS coordinates, phone numbers, websites, IČO, ratings, weekly opening hours, and amenities, plus emails, data box IDs, and social links when you turn on business details.
| Search any Czech keyword, limit it to a city, city district, okres, or kraj, browse one of the 12 main Firmy.cz categories with all of its subcategories, or paste Firmy.cz URLs, and get 40+ fields per business, ready for lead lists, CRM imports, and market research. |
Copy to your AI assistant
Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.
Use Apify Actor parsebird/firmy-cz-scraper to scrape Czech business listings from Firmy.cz. Example with ApifyClient: client.actor("parsebird/firmy-cz-scraper").call(run_input={"searchQuery":"zubař","location":"Praha","includeDetails":true,"maxResults":200}). Inputs: searchQuery string (Czech keyword, e.g. "restaurace", "autoservis"); location string optional (Czech city, city district, okres, or kraj, e.g. "Brno", "Praha 5", "Jihomoravský kraj"; empty = whole Czech Republic); category string default "all" (one of all, restauracni-sluzby, auto-moto, elektro-mobily-pocitace, obchody, sluzby-a-remesla, dum-byt-zahrada, zdravotnictvi, banky-finance, cestovni-sluzby, instituce-urady, vse-pro-firmy, velkoobchod-vyroba; browses the category and all its subcategories; ignored when searchQuery is set); searchUrls array of strings optional (firmy.cz search, category, or business detail URLs; overrides the other search fields); includeDetails boolean default false (adds emails, all phones, DIČ, data box ID, social links, verbal rating, full categories, photo gallery); maxResults integer default 200, 0 = all (max 50,000 per run). Output: one dataset row per unique business with premiseId, name, legalName, mainCategory, categories, description, address, streetAddress, locality, district, postalCode, latitude, longitude, telephone, phones, email, emails, webUrl, socialLinks, bookingUrl, ratingValue (0-5), ratingPercent, reviewCount, ratingText, openingToday, openingHours {monday..sunday}, openingNote, logoUrl, photoUrl, photos, photoCount, ico, dic, dataBoxId, amenities, tags, priceRange, priceLevel, detailPageUrl, mapyUrl, searchQuery, searchUrl, scrapedAt. Price: $3.99 per 1,000 businesses on the Free plan, details included. API docs: https://docs.apify.com/api/client/python/ and https://docs.apify.com/api/client/js/. Token: https://console.apify.com/account/integrations.
What is Firmy.cz Scraper?
Firmy.cz Scraper is a Firmy.cz data extraction tool and Firmy.cz API alternative for the largest Czech company directory. It collects the same public business profiles you see on firmy.cz, from restaurants and dentists to car repair shops and wholesalers, and saves them as structured data. You don't need a Seznam account or API key.
The easiest way to try it is to open the actor, keep the prefilled input (restaurace in Brno, 50 results), and click Start. The run takes a few seconds.
What can Firmy.cz Scraper do?
- 🔎 Search by keyword across the whole Czech Republic, exactly like the firmy.cz search box. Czech keywords with or without diacritics work.
- 📍 Limit results to a place: a city (
Brno), a Prague district (Praha 5), an okres, or a kraj (Jihomoravský kraj). Place names are matched with the firmy.cz location search, and the log tells you which place was picked. - 🗂️ Browse a whole category: pick one of the 12 main Firmy.cz categories, and the actor collects businesses from the category and every one of its subcategories, optionally in one location.
- 🔗 Paste Firmy.cz URLs for search results, category pages (including subcategories and region pages such as
/kraj-praha), or single business profiles to reproduce exactly what the site shows. - 📇 Rich contact data: phone, website, IČO, address, postal code, and GPS for every business. Turn on Include business details for emails, all phone numbers, DIČ, datová schránka (data box) ID, and Facebook, Instagram, YouTube, TikTok, or LinkedIn links.
- 🕒 Opening hours and ratings: a weekly schedule keyed by day, today's hours, the star rating, review count, and the verbal rating ("Výborné", "Fantastické").
- 🧮 No duplicates: each business is saved once per run, even when it matches several searches or category chunks.
- ⏰ Run on a schedule with Apify schedules, call it from the Apify API, connect it with integrations such as Make, Zapier, Google Sheets, or webhooks, and export to JSON, CSV, Excel, XML, or HTML.
What data can you extract from Firmy.cz?
| Field | Description |
|---|---|
premiseId | Firmy.cz business ID, stable across runs, good for deduplication |
name / legalName | Display name and registered company name (for example KFC / AmRest, s.r.o.) |
mainCategory / categories | Main category and all assigned Firmy.cz categories (Czech) |
description | Business description from the profile (Czech) |
address / streetAddress / locality / district / postalCode | Full address and its parts |
latitude / longitude | GPS coordinates |
telephone / phones | Main phone in +420 123 456 789 format, plus every listed number in detail mode |
email / emails | Business emails (detail mode) |
webUrl / socialLinks / bookingUrl | Website, social profiles (detail mode), and online booking link when published |
ratingValue / ratingPercent / reviewCount / ratingText | Star rating (0–5, as shown on firmy.cz), rating in percent, number of reviews, verbal rating (detail mode) |
openingHours / openingToday / openingNote | Weekly hours by day (monday–sunday, closed days left out), today's hours, and the owner's note |
ico / dic / dataBoxId | IČO, DIČ (detail mode), and datová schránka ID (detail mode) |
amenities | Amenity labels such as Wi-Fi, Platba kartou, Parkoviště, Bezbariérové |
tags / priceRange / priceLevel | top-firma-<year> badge, and price level for restaurants and hotels when published |
logoUrl / photoUrl / photos / photoCount | Logo, main photo, gallery photos (detail mode), and total gallery size |
detailPageUrl / mapyUrl / searchUrl | Firmy.cz profile, Mapy.com route link, and the firmy.cz URL the row came from |
How to scrape Firmy.cz
- Open Firmy.cz Scraper and click Try for free to sign in to Apify.
- Type a Search keyword such as
autoservis, or leave it empty and pick a Category. - Optionally enter a Location such as
OstravaorStředočeský kraj. - Or paste firmy.cz links into Firmy.cz URLs to copy filters you already set up on the website.
- Turn on Include business details if you need emails, data box IDs, or social links.
- Set Maximum businesses (use
0for everything) and click Start. - When the run finishes, open the Output tab and download your Firmy.cz data as CSV, Excel, or JSON.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
searchQuery | string | No* | — | Czech keyword, as you'd type it on firmy.cz |
location | string | No | — | Czech city, city district, okres, or kraj. Empty = whole country |
category | string | No* | all | One of the 12 main categories, including all subcategories. Ignored when searchQuery is set |
searchUrls | array of strings | No* | — | Firmy.cz search, category, or business detail URLs. Override the three fields above |
includeDetails | boolean | No | false | Open each profile for emails, phones, DIČ, data box ID, social links, gallery |
maxResults | integer | No | 200 | Businesses to save. 0 = all, up to 50,000 per run |
* Use a keyword, a category, or URLs. Category values: restauracni-sluzby (Restaurants & hospitality), auto-moto, elektro-mobily-pocitace (Electronics, phones & computers), obchody (Shops & retail), sluzby-a-remesla (Services & trades), dum-byt-zahrada (Home, apartment & garden), zdravotnictvi (First aid & healthcare), banky-finance, cestovni-sluzby (Travel), instituce-urady (Institutions & offices), vse-pro-firmy (Business services), velkoobchod-vyroba (Wholesale & manufacturing).
Example inputs:
{ "searchQuery": "zubař", "location": "Praha", "includeDetails": true, "maxResults": 200 }
{ "category": "zdravotnictvi", "location": "Brno", "maxResults": 0 }
{"searchUrls": ["https://www.firmy.cz/?q=lekárna&x=17.250879&y=49.594540&rt=mesto","https://www.firmy.cz/Auto-moto/Auto-moto-sluzby/Autoservisy/Pneuservisy?x=16.6068&y=49.1951&rt=mesto"],"maxResults": 0}
You can also fill everything in on the Input tab.
Output example
One row per business. Download the dataset as JSON, CSV, Excel, XML, or HTML. This row comes from a run with Include business details turned on:
{"premiseId": "300466","name": "Stomatologické centrum Bakon","legalName": "BAKON, s.r.o.","mainCategory": "Stomatologické ordinace a pracoviště","categories": ["Stomatologické ordinace a pracoviště", "Dentální hygiena", "Stomatologické laboratoře"],"description": "Stomatologické ordinace, implantologie, dentální hygiena, laboratoře, provádíme veškeré protetické práce. Bezkovová keramika CAD/CAM systém.","address": "Mukařovská 3116/24, 100 00 Praha, Strašnice","streetAddress": "Mukařovská 3116/24","locality": "Praha, Strašnice","district": "Praha 10","postalCode": "100 00","latitude": 50.0641327,"longitude": 14.5074186,"telephone": "+420 284 819 831","phones": ["+420 284 819 831"],"email": "info@stomatologicke-centrum.cz","emails": ["info@stomatologicke-centrum.cz"],"webUrl": "https://bakon.cz","socialLinks": [],"bookingUrl": null,"ratingValue": 4.3,"ratingPercent": 86.3,"reviewCount": 24,"ratingText": "Výborné","openingToday": null,"openingHours": {"monday": "08:00-15:30","tuesday": "08:00-15:30","wednesday": "08:00-15:30","thursday": "08:00-15:30","friday": "08:00-11:30"},"openingNote": null,"logoUrl": "https://d48-a.sdn.cz/d_48/c_img_H_B/tn4GcS.png","photoUrl": "https://d48-a.sdn.cz/d_48/c_img_QN_BC/TGcGDw.jpeg","photos": ["https://d48-a.sdn.cz/d_48/c_img_QN_BC/TGcGDw.jpeg"],"photoCount": 1,"ico": "48036455","dic": null,"dataBoxId": "qnzqgkp","amenities": ["Parkoviště", "Bezbariérové"],"tags": ["top-firma-2025"],"priceRange": null,"priceLevel": null,"detailPageUrl": "https://www.firmy.cz/detail/300466-stomatologicke-centrum-bakon-praha-strasnice.html","mapyUrl": "https://www.mapy.com/zakladni?planovani-trasy&x=14.507419&y=50.064133&z=17&rc=9hChxxXvtO9hN.i1wd&rs=coor&rs=firm&ri=&ri=300466&mrp=%7B%22c%22%3A%20111%7D&rt=&rt=","searchQuery": "zubař","searchUrl": "https://www.firmy.cz/?q=zuba%C5%99&rt=mesto&x=14.434141&y=50.083549","scrapedAt": "2026-10-18T07:44:17Z"}
Without details, email, emails, socialLinks, ratingText, photos, dic, and dataBoxId are empty, and phones holds the main number only. Every other field is filled from the search results.
Python API example
from apify_client import ApifyClientclient = ApifyClient("YOUR_APIFY_TOKEN")run = client.actor("parsebird/firmy-cz-scraper").call(run_input={"searchQuery": "autoservis","location": "Ostrava","includeDetails": True,"maxResults": 100,})for firm in client.dataset(run["defaultDatasetId"]).iterate_items():print(firm["name"], firm["ico"], firm["telephone"], firm["email"])
JavaScript API example
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });const run = await client.actor('parsebird/firmy-cz-scraper').call({category: 'restauracni-sluzby',location: 'Olomouc',maxResults: 0,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.map((f) => `${f.name} | ${f.address} | ${f.ratingValue}`));
See Apify's Python client and JavaScript client docs for more options.
Use cases
- B2B lead generation in Czechia. Build call and email lists of dentists, car services, accountants, or any other trade in a city or kraj.
- CRM enrichment. Match companies by IČO and add phones, websites, data box IDs, and GPS.
- Local market research. Count competitors per city, compare ratings and review counts, and map them with GPS coordinates.
- Location planning. Find areas with few businesses of a type before opening a new branch.
- Directory and app data. Feed opening hours, amenities, and photos into a local search app or map.
- Monitoring. Schedule weekly runs and compare
premiseIdlists to spot new and closed businesses.
How it works
- The actor reads your keyword, category, location, or URLs. Locations are matched with the same place search the firmy.cz location box uses.
- It requests search results from the public data service behind firmy.cz, 100 businesses per request, page after page until it reaches your limit or the last result.
- For category browsing it searches the category and all of its subcategories. Large categories are split into several requests and merged without duplicates.
- For pasted URLs, it opens each page and reuses that page's exact search, so filters, categories, and regions match the website.
- With Include business details, it also loads each business profile for emails, data box IDs, and the rest of the detail fields.
- Each unique business is saved once. The run stops at Maximum businesses, the last result, or your spending limit.
How much does it cost to scrape Firmy.cz?
What is the price per Firmy.cz business?
| Plan | Price per business | Price per 1,000 businesses |
|---|---|---|
| Free | $0.00399 | $3.99 |
| Bronze | $0.00349 | $3.49 |
| Silver | $0.00299 | $2.99 |
| Gold | $0.00249 | $2.49 |
You pay one business-scraped event per business saved to the dataset, with or without business details. Compute and proxy usage are included in the event price. For example, the prefilled run (50 restaurants in Brno) costs $0.20 on the Free plan, and 1,000 businesses with full details cost $3.99 on Free or $2.49 on Gold. Apify's free plan includes monthly platform credits you can use on this actor. Set Maximum businesses or a spending limit on the run to stay within budget.
Is it legal to scrape Firmy.cz?
Is scraping Firmy.cz legal?
Firmy.cz Scraper only collects business information that Firmy.cz shows publicly to every visitor without logging in. It doesn't access accounts or private data. Scraping publicly available data is generally allowed in many jurisdictions, but business listings can include personal data, such as the names and contacts of sole traders (OSVČ), which is covered by the GDPR. Make sure you have a legitimate purpose, follow Czech and EU rules on direct marketing, and review the Firmy.cz terms. For more background, read Apify's guide: Is web scraping legal?
Other Czech and business directory scrapers / Related Actors
| Actor | Best for |
|---|---|
| Sreality.cz Scraper | Czech property listings from Sreality.cz by location, price, and offer type |
| Europages Company Scraper | European B2B suppliers with phones, websites, and VAT IDs |
| Apple Maps Scraper | Places worldwide with phones, websites, ratings, and opening hours |
| YellowPages USA Lead Generator | US business leads from YellowPages.com |
| Zefix.ch Scraper | Swiss commercial register companies with UID and legal form |
| KvK Handelsregister Scraper | Dutch companies by name, keyword, or KvK number |
| GoodFirms Company Scraper | IT and agency companies with ratings, hourly rates, and team size |
FAQ
Do I need a Seznam account or API key?
No. The actor uses the public data that firmy.cz loads for logged-out visitors.
What's the difference between a keyword and a category?
A keyword works exactly like the firmy.cz search box. A category returns every business filed under that category or any of its subcategories, which suits "all businesses of this type in this city". If you set both, the keyword is used and the log says the category was skipped. For one specific subcategory, paste its firmy.cz URL, for example https://www.firmy.cz/Auto-moto/Auto-moto-sluzby/Autoservisy.
Why are a few results outside my location?
The actor returns what firmy.cz returns for that place. For an okres or kraj, firmy.cz also mixes in some businesses from neighbouring areas, and for any place a few businesses registered elsewhere can appear, so some rows can have a different town. Filter on locality, district, or postalCode if you need a strict boundary.
How many businesses can I get?
Everything firmy.cz returns for your search, up to 50,000 per run. In our tests, the keyword restaurace returned all 16,498 matching businesses nationwide in one run of about 9.5 minutes. For larger exports, split the work by location or category across runs.
Why is email empty for some businesses?
Emails are only loaded with Include business details, and not every business publishes one. In our tests with details on, 252 of 300 Prague dentists and 989 of 1,000 Brno service businesses had an email.
Is the rating the same as on firmy.cz?
Yes. ratingValue is the 0–5 star value firmy.cz shows (the percentage divided by 20, one decimal), and ratingPercent is the underlying percentage. Both are empty for businesses without reviews.
Can I use it with Make, Zapier, or my own app?
Yes. See the API tab for code, or connect the actor through Apify integrations and webhooks.
Something doesn't work. Where do I report it?
Open an issue in the Issues tab with your run ID and input.