
Congress Stock Trades Scraper
scrape.ly/store/querystone/congress-trades-scraperNewsBusiness
4 monthly users

Scrape Czech companies from Firmy.cz by keyword and city, or from search, category and profile URLs. Get name, every phone with its label, emails, website, address, GPS, ICO, data box, rating, opening hours and categories, plus optional ARES founding date.
Turn Firmy.cz, Seznam's Czech company directory, into a clean lead list. Search by what a company does and where it is (or paste Firmy.cz search, category and company URLs) and get the name, every phone number with its label, emails, website, address, GPS, ICO, data box, rating, opening hours and categories for each company. No login and no browser: it reads the site's own data feed, so 1,000 companies with full profiles took about 35 seconds in our tests.
logistika, restaurace, instalatér) and locations (e.g. Kladno, Praha 5, okres Kladno, Jihomoravský kraj). Leave locations empty for the whole Czech Republic.| Field | What it does |
|---|---|
searchQueries | What the companies do or are called, one per line. Each query is searched in every location. |
locations | Czech cities, districts or regions. Empty = whole country. |
startUrls | Firmy.cz search, category or company profile URLs. |
maxResultsPerQuery | Companies per query × location (or per URL). Default 20, 0 = all. |
includeDetails | Load the full profile (all phones, emails, data box, opening hours, socials). Default on. |
maxItems | Optional cap on companies across all searches. |
strictLocationMatch | Keep only companies whose address is inside the requested city or district. |
minRating, minReviews | Keep only companies with at least this rating (0–5) or number of reviews. |
onlyWithPhone, onlyWithEmail, onlyWithWebsite | Skip companies without that contact. |
enrichAres | Add ARES registry data (founding date, legal form, VAT ID, active status). |
proxyConfiguration | Datacenter proxy by default; the run moves to Czech residential exits by itself if the site refuses requests. |
{
"searchQueries": ["logistika", "autodoprava"],
"locations": ["Kladno", "Unhošť"],
"maxResultsPerQuery": 20,
"includeDetails": true,
"strictLocationMatch": true,
"enrichAres": true,
"proxyConfiguration": { "useScrapelyProxy": true, "scrapelyProxyGroups": ["DATACENTER"] }
}
One row per company. The main fields:
| Field | Description |
|---|---|
name | Company name as shown on Firmy.cz |
phone_primary, phones_all, phones | First phone, all phones as one line (Label: number | ...), and a list with label, number, is_primary |
email, emails | First email and every email on the profile |
web_url, websites | Main website and every website (tracking parameters removed) |
address, street, locality, postal_code, district | Address parts |
latitude, longitude | GPS position |
description, categories, main_category | What the company does |
ico, dic, data_box | Company ID, VAT ID and data box ID |
rating_value, rating_percent, rating_count, verbal_rating | Rating on a 0–5 scale, the site's percentage, number of reviews and the site's verdict |
opening_hours | One entry per weekday with the hours (08:00-16:00, closed) and any note |
social_networks, logo_url, photo_count | Social profiles, logo image and number of photos |
established_at, ares | ARES founding date (always looked up for companies with an ICO) and the full registry record (when ARES is on) |
search_query, location, matched_search_queries, matched_locations, location_match | Which searches found the company and whether its address is inside the requested place |
profile_url, source_url, scraped_at, details_loaded | Links and run metadata |
Example (one company, trimmed):
{
"search_query": "logistika",
"location": "Kladno",
"id": 2632820,
"name": "VCHD Cargo a.s.",
"phone_primary": "+420 312 245 107",
"phones_all": "Telefon: +420 312 245 107",
"phones": [{ "label": "Telefon", "number": "+420 312 245 107", "is_primary": true }],
"email": "info@vchd.cz",
"emails": ["info@vchd.cz"],
"web_url": "https://vchd.cz",
"address": "Železárenská 315, 272 01 Kladno",
"locality": "Kladno",
"postal_code": "27201",
"district": "Kladno",
"latitude": 50.1515450035,
"longitude": 14.1062330402,
"categories": ["Doprava a přeprava", "Mezistátní nákladní silniční dopravci", "Logistické služby"],
"ico": "27231551",
"dic": "CZ27231551",
"data_box": "msugy4m",
"rating_value": 4.5,
"rating_count": 2,
"opening_hours": [{ "day": "monday", "hours": "08:00-16:00" }, { "day": "saturday", "hours": "closed" }],
"social_networks": [{ "network": "facebook", "url": "https://www.facebook.com/vchd.cz/" }],
"profile_url": "https://www.firmy.cz/detail/2632820-vchd-cargo-a-s-kladno.html",
"established_at": "2005-04-28",
"ares": {
"matched": true,
"business_name": "VCHD Cargo a.s.",
"legal_form_name": "Akciová společnost",
"is_active": true,
"in_liquidation": false,
"vat_id": "CZ27231551"
},
"matched_search_queries": ["logistika"],
"matched_locations": ["Kladno"],
"location_match": { "is_match": true, "matched_target": "Kladno", "actual_locality": "Kladno", "mode": "municipality" }
}
You pay $0.40 per 1,000 companies saved ($0.0004 per company), plus the small platform usage of the run (compute and proxy traffic), which is billed separately. Full profiles and ARES data are included in that price.
Example: 1,000 companies with full profiles ≈ $0.40 for the results plus about $0.015 of platform usage (our 1,000-company test run took 34 seconds and 13 MB of datacenter proxy traffic: about $0.0014 of compute at the default 512 MB and $0.013 of proxy), so about $0.42 in total.
Is it legal to scrape Firmy.cz? The actor reads only public company listings that anyone can see without an account. You are responsible for how you use the data, in particular for personal data of sole traders under GDPR and for direct-marketing rules.
Do I need a login or my own proxy? No. No account, cookies or API key are needed, and the built-in datacenter proxy is enough.
How many companies can I get?
As many as Firmy.cz lists for your search: set maxResultsPerQuery to 0 to take everything. Broad searches such as restaurace return over 16,000 companies nationwide. For a whole category split by city, add several locations.
Why is a field empty?
The company did not fill it in on Firmy.cz (many small businesses list no email or website). Turn on onlyWithEmail / onlyWithPhone / onlyWithWebsite to skip them; skipped companies are not charged. With includeDetails off, emails, extra phones, data box and opening hours are not loaded.
Why do I get companies from neighbouring towns?
Firmy.cz ranks nearby companies into a city search. Turn on strictLocationMatch to keep only companies whose address is in the city or district you asked for.
Can I schedule it or use the API? Yes. Schedule runs to keep your lists fresh, and start runs and download results through the API in JSON, CSV or Excel.
Every field below can be set in the run form, passed through the API, or saved as a task. Unset fields fall back to the defaults shown.
searchQueriesarrayOptionalSearch queries
What the companies do or are called, one per line, e.g. logistika, restaurace, instalatér, účetní, autoservis. Each query is searched in every location. Czech characters are supported (and optional).
locationsarrayOptionalLocations
Czech cities, districts or regions, one per line, e.g. Praha, Brno, Kladno, okres Kladno, Jihomoravský kraj. Leave empty to search the whole Czech Republic. Firmy.cz also returns companies near the place; turn on Strict location match to keep only companies inside it.
startUrlsarrayOptionalFirmy.cz URLs
Optional. Firmy.cz search pages (https://www.firmy.cz/?q=pizza+brno), category pages (https://www.firmy.cz/Cestovni-sluzby/Doprava-a-preprava/Nakladni-silnicni-preprava/kraj-stredocesky/kladno) or company profiles (https://www.firmy.cz/detail/181564-logisteed-czechia-kladno-dubi.html). Each search or category URL counts as one search.
maxResultsPerQueryintegerOptionaldefault 20Max results per search
How many companies to save for each query and location pair (and for each search or category URL). Duplicates across searches are saved once. 0 means every company Firmy.cz lists for the search.
includeDetailsbooleanOptionaldefault trueInclude full company profile
Load each company's profile for all phone numbers with their labels, emails, every website, data box, opening hours, social networks, full category list and photo count. Turn off for a faster list with name, address, one phone, website, rating, ICO, GPS and description only.
maxItemsintegerOptionalMax results in total
Optional cap on the number of companies saved across all searches. Empty or 0 means no total cap.
strictLocationMatchbooleanOptionaldefault falseStrict location match
Keep only companies whose address is in the requested city (or district). Firmy.cz ranks nearby companies into a city search; with this on they are skipped and not charged.
minRatingstringOptionalMinimum rating
Keep only companies with at least this average rating on the 0-5 star scale, e.g. 4 or 4.5. Companies without reviews are skipped when this is set.
minReviewsintegerOptionalMinimum number of reviews
Keep only companies with at least this many Firmy.cz reviews.
onlyWithPhonebooleanOptionaldefault falseOnly companies with a phone
Skip companies that list no phone number.
onlyWithEmailbooleanOptionaldefault falseOnly companies with an email
Skip companies that list no email address (needs the full profile, which is then loaded).
onlyWithWebsitebooleanOptionaldefault falseOnly companies with a website
Skip companies that list no website.
enrichAresbooleanOptionaldefault falseAdd ARES registry data
Look up each company's ICO in ARES, the official Czech business register, and add the founding date (established_at), registered business name, legal form, VAT ID, registered address, NACE codes and whether the company is still active or in liquidation.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for Firmy.cz. The run switches to Czech residential proxies by itself if the site starts refusing requests.
Every run writes its results to a dataset. Preview it in the dashboard, then export it or read it through the API.
| Field | Type | Description |
|---|---|---|
| search_query | string | null | |
| location | string | null | |
| id | number | null | |
| name | string | null | |
| phone_primary | string | null | |
| phones_all | string | null | |
| phones | array | null | |
| string | null | ||
| emails | array | null | |
| web_url | string | null | |
| websites | array | null | |
| address | string | null | |
| street | string | null | |
| locality | string | null | |
| postal_code | string | null | |
| district | string | null | |
| latitude | number | null | |
| longitude | number | null | |
| description | string | null | |
| categories | array | null | |
| main_category | string | null | |
| ico | string | null | |
| dic | string | null | |
| data_box | string | null | |
| rating_value | number | null | |
| rating_percent | number | null | |
| rating_count | number | null | |
| verbal_rating | string | null | |
| opening_hours | array | null | |
| social_networks | array | null | |
| logo_url | string | null | |
| photo_count | number | null | |
| profile_url | string | null | |
| details_loaded | boolean | null | |
| established_at | string | null | |
| ares | object | null | |
| matched_search_queries | array | null | |
| matched_locations | array | null | |
| location_match | object | null | |
| source_url | string | null | |
| scraped_at | string | null |
You pay for the events the actor reports, such as each result or page it produces. Platform usage is included in the event prices.
| Event | Charged when | Price |
|---|---|---|
| Company | One company saved to the dataset, with its full profile (and ARES data when requested). | $0.0004 |
Run this actor from your own code. Swap in your API token and the examples work as-is.
import { ScrapelyClient } from 'scrapely-client'
const client = new ScrapelyClient({ token: process.env.SCRAPELY_TOKEN })
// Start the actor and wait for the run to finish.
const run = await client.actor('cornerledger/firmy-cz-scraper').call({
"searchQueries": [
"logistika"
],
"locations": [
"Kladno"
],
"maxResultsPerQuery": 20,
"proxyConfiguration": {
"useScrapelyProxy": true,
"scrapelyProxyGroups": [
"DATACENTER"
]
}
})
// Read the dataset the run produced.
const { items } = await client.dataset(run.defaultDatasetId).listItems()
console.log(items)Tokens live in your account settings. Keep them server-side: a token carries the full permissions of your account.
Connect the Scrape.ly MCP server once and your agent can run this actor as a tool. Pick your tool:
Fetch scrape.ly/agents.md and run cornerledger/firmy-cz-scraperPaste into Claude Code, Codex, Cursor or any AI agent. It signs you in once in the browser.
{
"mcpServers": {
"scrapely": {
"url": "https://api.scrape.ly/mcp?tools=actors,runs,storage,docs&actors=cornerledger/firmy-cz-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
No examples yet
The developer hasn't published example inputs for this actor.

Scrape Google Maps places for any search term and city, with no code or with one API call. A real run, its output, its log and its exact cost, plus the limits and the legal side.
Read the article
Paste an Amazon search or product URL into a ready-made Actor and get one row per product with price, ASIN, rating and review count. This guide covers the no-code steps, the API, ZIP code pricing, a real run and its cost.
Read the article
Scrape Google search results by query and country and get each results page as JSON: organic results with positions, People Also Ask and related searches. Run it without code or from Python, with a real run, the cost per page and Google's terms.
Read the articleScrape.ly gives you the infrastructure, the tooling, and the team to extract, process, and operationalize web data at any scale. Setup takes minutes. The advantage lasts forever.