
Global Sources Supplier Scraper
scrape.ly/store/cornerledger/globalsources-scraperLead generationE-commerce
2 monthly users

Scrape Sreality.cz, the largest Czech real estate portal: flats, houses, land and commercial property for sale or rent. Paste search URLs or use filters and get price, CZK/m², layout, area, address, GPS, photos and agency, plus optional full details with seller contacts.
Scrape Sreality.cz, the largest real estate portal in the Czech Republic. Paste any search URL (or pick filters) and get clean rows for flats, houses, land and commercial property, for sale or rent: price, price per m², layout, area, full address, GPS, photos and agency. Turn on full details to add the description, every listing parameter and the seller's contacts. No login, no browser, thousands of listings per minute.
/hledani/ URL with your filters (price, layout, area, locality, condition, ownership…) and every filter is kept. Or use the built-in filters without visiting the site.address_city, params_floorNumber…) by default, or nested JSON if you prefer.oldPriceCzk).https://www.sreality.cz/hledani/prodej/byty/praha. Paste one or more URLs into Sreality URLs. (Or leave it empty and use the Filters section.)| Field | What it does |
|---|---|
startUrls | Sreality search URLs (/hledani/..., also /en/search/...) or listing URLs (/detail/...). |
maxItems | Total listings to save across all URLs. Default 20; 0 = no limit. |
transactionType, propertyType | Filters used when no URL is given: sale/rent/auction/share and flat/house/land/commercial/other. |
regions, districts | Czech regions (kraje) and district names (okresy), e.g. Brno-město, Praha 5. |
dispositions | Flat layouts such as 2+kk, 3+1, 6+. |
priceMin, priceMax, areaMin, areaMax | Price in CZK and area in m². |
sortBy | newest, cheapest or mostExpensive. |
fetchDetails | Add description, all parameters, seller name/phone/email, agency, videos, listing date. |
includeNearbyPois | With details (on by default): nearby shops, schools, stops and doctors with distances. |
flatten | Flat CSV-friendly columns (default) or nested JSON. |
{
"startUrls": [
"https://www.sreality.cz/hledani/prodej/byty/praha?velikost=2%2Bkk,3%2Bkk&cena-do=8000000",
"https://www.sreality.cz/hledani/pronajem/domy/jihomoravsky-kraj"
],
"maxItems": 500,
"fetchDetails": true
}
Filters only:
{
"transactionType": "rent",
"propertyType": "flat",
"districts": ["Brno-město"],
"dispositions": ["2+kk", "2+1"],
"priceMax": 25000,
"sortBy": "newest",
"maxItems": 100
}
One row per listing.
| Field | Description |
|---|---|
id, url | Sreality listing id and page |
transactionType / transactionTypeCz | sale, rent, auction, share (+ Czech label) |
category / categoryCz | flat, house, land, commercial, other (+ Czech label) |
disposition | Layout or subtype (2+kk, 3+1, Rodinný…) |
name | Listing title |
priceCzk, pricePerSqmCzk, priceText | Price, price per m², price unit (za nemovitost, za měsíc…) |
oldPriceCzk, priceNote | Previous price after a drop, price note (details) |
surface | Area in m² |
address_* | street, streetNumber, houseNumber, cityPart, district, city, region, country |
latitude, longitude, geoHash | Location |
photos, photoCount | Photo URLs |
hasVideo, hasMatterport, isExclusive | Listing flags |
agency, agencyId, agencyLogo | Listing agency |
agencyName, agencyWebsite | Agency name and website (details) |
description | Full description (details) |
params_* | All parameters: floor, building type and condition, energy rating, ownership, furnishing, balcony, cellar, heating… (details) |
sellerName, sellerPhone, sellerPhones, sellerEmail | Broker contacts (details) |
matterportUrl, videoUrls | Virtual tour and videos (details) |
listedAt, updatedAt | Listing and last edit date (details) |
nearbyPois | Nearby places with distance and rating (details + nearby places) |
scrapedAt | Scrape time |
Example (with details, trimmed; contact data is fictional):
{
"portal": "sreality",
"id": "3374256204",
"url": "https://www.sreality.cz/detail/pronajem/byt/2+1/brno-trnita-skorepka/3374256204",
"transactionType": "rent",
"category": "flat",
"disposition": "2+1",
"name": "Pronájem bytu 2+1 74 m²",
"priceCzk": 25000,
"pricePerSqmCzk": 338,
"priceText": "za měsíc",
"priceNote": "+ energie dle spotřeby. + provize RK. Kauce.",
"surface": 74,
"address_street": "Skořepka",
"address_cityPart": "Trnitá",
"address_district": "Brno-město",
"address_city": "Brno",
"address_region": "Jihomoravský kraj",
"latitude": 49.19264,
"longitude": 16.61706,
"geoHash": "u2ezf5hpvt",
"photos": ["https://d18-a.sdn.cz/d_18/c_img_qG_A/nCR9NVflLBkdq1GADIBHs6e/04ab.jpeg"],
"photoCount": 15,
"isExclusive": true,
"agency": "example-reality",
"agencyName": "Example Reality s.r.o.",
"agencyWebsite": "https://www.example-reality.cz",
"listedAt": "2026-10-08",
"detailFetched": true,
"params_buildingCondition": "Po rekonstrukci",
"params_buildingType": "Cihlová",
"params_floorNumber": 2,
"params_ownership": "Osobní",
"params_usableArea": 74,
"sellerName": "Jan Novák",
"sellerPhone": "+420600000000",
"sellerEmail": "jan.novak@example-reality.cz",
"scrapedAt": "2026-10-14T21:30:12.000Z"
}
Pay per event, no subscription:
result-item, $0.0007 each).listing-details, $0.0005 each), only when Fetch full listing details is on and the details were found.Examples: 1,000 listings ≈ $0.70; 1,000 listings with full details ≈ $1.20. Platform usage (compute and datacenter proxy traffic) is billed separately and is tiny for this actor, typically well under $0.01 per 1,000 listings. The run's maximum total charge is respected: the scraper stops cleanly before going over it.
Is it legal? The scraper reads publicly available listing data, the same as any visitor sees. You are responsible for using it in line with Sreality's terms and data-protection law (GDPR), especially for seller contacts.
Do I need a login or my own proxy? No. No account is needed and the default datacenter proxy works.
How many listings can I get? Everything a search matches. Sreality returns at most 10,000 per search, so large searches without a region are split automatically. A search that is already narrowed to a single region and type and still has more than 10,000 results stops at 10,000 with a note in the status message.
Why is a field empty? Fields marked details need Fetch full listing details. Some listings simply don't publish a value (e.g. no street number, or price on request).
Can I scrape one listing? Yes, paste its /detail/... URL. Listing URLs always include full details and are billed as a listing plus details.
Can I schedule it or use the API? Yes. Schedule a daily run on a "newest first" search, or start runs and download datasets through the API.
Moving from another Sreality scraper? startUrls, maxItems, fetchDetails and flatten keep the same names and the output columns match.
?strana=3) is ignored; the scraper always starts from the first page.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.
startUrlsarrayOptionalSreality URLs
Sreality.cz search URLs (/hledani/...) or listing URLs (/detail/...). Run any search on sreality.cz with your filters and paste the address bar URL; every on-site filter is kept and all pages are read. Leave empty to use the filters below instead.
maxItemsintegerOptionaldefault 20Maximum listings
Stop after this many listings in total across all URLs. 0 means no limit.
Used only when no Sreality URLs are given above.
transactionTypeenumOptionaldefault "sale"Offer type
Sale, rent, auction or co-ownership share.
propertyTypeenumOptionaldefault "flat"Property type
Flats, houses, land, commercial or other property.
regionsarrayOptionalRegions
One or more Czech regions (kraje). Leave empty for the whole country.
districtsarrayOptionalDistricts
Czech district (okres) names, e.g. Brno-město, Praha 5, Kladno. Diacritics are optional.
dispositionsarrayOptionalFlat layouts
Flat layouts (dispozice). Applies to flats only.
priceMinintegerOptionalMinimum price (CZK)
Lowest price in Czech crowns (monthly rent for rentals).
priceMaxintegerOptionalMaximum price (CZK)
Highest price in Czech crowns (monthly rent for rentals).
areaMinintegerOptionalMinimum area (m²)
Smallest usable area (plot area for land).
areaMaxintegerOptionalMaximum area (m²)
Largest usable area (plot area for land).
sortByenumOptionaldefault "newest"Sort by
Order of the results.
fetchDetailsbooleanOptionaldefault falseFetch full listing details
Open each listing to add the full description, all parameters (floor, condition, energy rating, ownership, year built…), the seller's name, phone and email, the agency name and website, video and Matterport links and the listing date. Billed as an extra listing-details event per listing.
includeNearbyPoisbooleanOptionaldefault trueInclude nearby places
With full details on, also add the nearby points of interest shown on the listing page (shops, schools, transport stops, doctors…) with distance and rating. No extra event; turn off for slightly faster detail runs.
flattenbooleanOptionaldefault trueFlat, spreadsheet-friendly rows
On: nested fields become columns such as address_city and params_floorNumber. Off: keep address, params and nearbyPois as nested JSON.
maxConcurrencyintegerOptionaldefault 10Max parallel requests
How many requests run at the same time when fetching details.
proxyConfigurationobjectOptionaldefault {"useScrapelyProxy":true,"scrapelyProxyGroups":["DATACENTER…Proxy configuration
Datacenter proxies work well for Sreality and are the default.
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 |
|---|---|---|
| id | string | null | Sreality listing id |
| url | string | null | Listing page |
| transactionType | string | null | sale, rent, auction or share |
| category | string | null | flat, house, land, commercial or other |
| disposition | string | null | Layout or subtype, e.g. 2+kk or Rodinný |
| name | string | null | Listing title |
| priceCzk | number | null | Price in CZK |
| pricePerSqmCzk | number | null | Price per m² in CZK |
| priceText | string | null | Price unit, e.g. za nemovitost or za měsíc |
| surface | number | null | Area in m² |
| latitude | number | null | GPS latitude |
| longitude | number | null | GPS longitude |
| photoCount | integer | null | Number of photos |
| agency | string | null | Agency (seo name) |
| detailFetched | boolean | null | Full details were added |
| description | string | null | Full description (with details) |
| sellerName | string | null | Seller or broker name (with details) |
| sellerPhone | string | null | Seller phone (with details) |
| sellerEmail | string | null | Seller email (with details) |
| scrapedAt | string | null | When the row was scraped |
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 |
|---|---|---|
| Full listing details | Charged once for each saved listing that includes its full details (description, all parameters, seller contacts). | $0.0005 |
| Listing | Charged once for each property listing saved to the dataset. | $0.0007 |
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('roamandroof/sreality-scraper').call({
"startUrls": [
"https://www.sreality.cz/hledani/prodej/byty/praha"
],
"maxItems": 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 roamandroof/sreality-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=roamandroof/sreality-scraper"
}
}
}No key in the file: your client opens the browser to sign you in the first time it connects.
Inputs the developer prepared for common jobs. Open one to see its input, then copy it to your account to run it as-is or adjust it.
Newest flat listings from a Sreality search page.
Rental listings with full detail pages.
Rentals in one district under a price cap, no URL needed.
Scrape.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.