Sreality.cz Scraper: Real Estate Listings & Price Monitor avatar

Sreality.cz Scraper: Real Estate Listings & Price Monitor

Pricing

from $0.85 / 1,000 listings

Go to Apify Store
Sreality.cz Scraper: Real Estate Listings & Price Monitor

Sreality.cz Scraper: Real Estate Listings & Price Monitor

Scrape Sreality.cz real estate: flats, houses, land, rentals and auctions by URL, location, region, district or ID. Price, price per m², GPS, agency, 100+ parameters, distances to transport. Monitoring of new, changed and removed listings. Unofficial.

Pricing

from $0.85 / 1,000 listings

Rating

0.0

(0)

Developer

Tomáš Buchta

Tomáš Buchta

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

5 days ago

Last modified

Categories

Share

Scrape real estate listings from Sreality.cz, the largest Czech property portal (over 100 000 listings): flats, houses, land, commercial property, garages, for sale, rent, auction or shares. Start from a search URL copied from the website (all its filters are kept), from locations in words ("Brno", "Praha 6", "Smíchov") with an optional radius, from whole regions or districts, or from listing URLs and IDs. A search of any size works: the website's limit of 10 000 listings per search is split automatically, so you can download a whole category, or all of Sreality, without missing a listing.

For each listing you get the title, type, layout, price, price per m², price unit (per month for rentals), usable and plot area, the full address with GPS, the agency or private seller flag, photos, video and 3D tour flags, and the distances to public transport, metro, train, supermarket, school, kindergarten, doctor and more. With Add listing details you also get the description, listed and updated date, number of views, floor, condition, building type, ownership, furnishing, energy class, balcony, terrace, cellar, garage, parking, elevator, heating and utilities, the original price before a discount, auction date and deposit, and the agency's name, IČO and website.

Built for monitoring: schedule it and get, and pay for, only new listings and price changes, plus the listings that were removed (checked on Sreality.cz: deleted, or no longer matching your search) and the ones that came back.

Why use this Sreality.cz scraper?

  • 🔎 More ways to search than any other Sreality scraper: website URLs with all their filters, API URLs, locations in words with a radius, regions, districts, listing IDs, and 50+ input fields: transaction, property types, layouts, price, area, plot area, floor, listing age, condition, building type, ownership, furnishing, energy class, 11 "must have" features (balcony, terrace, garage, elevator, 3D tour…) and full-text search.
  • 📍 Location filters no one else has: the maximum distance to public transport, metro, train, supermarket, school, kindergarten, doctor, playground or restaurant, from the website's own data. "2+kk in Prague within 300 m of the metro" is one input.
  • 💰 Investor filters: min/max price per m², only discounted, only with a price, agencies only or private sellers only, only or except given agencies, exclude keywords ("podíl", "rezervováno").
  • 🗺️ Whole categories and the whole country: searches over 10 000 listings are split by layout, region (plus the listings abroad) and district, then read completely. Measured on Apify: all 23 685 flats for sale in Czechia in 100 seconds.
  • 🔔 Real monitoring: new and changed listings with previousPrice, priceChange and priceChangePercent, filters for price changes only and minimum price drop, removed listings with a reason (deleted or noLongerMatches, each checked on the website) and reappeared listings.
  • ⚡ Fast (faster than the speeds other Sreality scrapers publish): the website's JSON API, 200 listings per request, pages downloaded in parallel, 8 Czech residential IPs with kept-alive connections, no browser. 1 000 listings with full details in ~5 minutes (~200 a minute), or ~3 minutes in fast mode (~340 a minute). The prefilled input finishes in seconds.
  • 💸 Priced below the most used Sreality scraper, with and without details, and no per-run fee to speak of: see the pricing below.
  • 🧾 Clean output: flat camelCase fields that work in CSV and Excel, numbers as numbers, ISO dates, null for missing values, stable id for joining runs.
  • 🔒 No personal data: brokers' names, phones, e-mails and photos are never returned; phone numbers and e-mails are removed from descriptions.

What data can you get?

Share of listings with a value, measured on 23 582 flats for sale (all of Sreality, listing data) and on 150 listing pages with details (flats for sale in Prague, houses for sale, flats for rent), 2026-10-19. Fields marked details need Add listing details.

FieldExampleFilled
Title, type, subtype / layoutProdej bytu 3+1 72 m², sale, flat, 3+1100 %
Price, price unit, price per m²9 499 000 CZK, za nemovitost, 131 931 CZK/m²96 % (the rest: price on request, priceOnRequest: true)
Usable area, plot area72 m²; houses 90 m², plot 932 m²100 % (plot: houses and land)
Region, district, city, city partHlavní město Praha, Praha 10, Praha, Záběhlice100 %
Street, house numberŠvehlova, 2887/2679 %, 51 % (as precise as the listing)
GPS, location precision50.05567, 14.51457, address100 %
Agency ID / private seller71342 / isPrivateSeller95 % agencies, 5 % private sellers
Photos (URL, count), video, 3D tour43 photos100 % photos
Distance to public transport, school, supermarket120 m, 420 m, 300 m88 %, 88 %, 79 %
Distance to metro640 m26 % (Prague)
Description (details)full text, contacts removed100 %
Listed, updated, views (details)2026-08-24, 2026-10-19, 6 547100 %
Condition, building type (details)Velmi dobrý, Panelová100 %
Energy class (details)G85 %
Floor, ownership (details)8 of 13, Osobní67 % (flats)
Furnished, elevator (details)Částečně, yes56 %, 50 %
Agency name, IČO, website (details)Häusl&Home Reality, 2184107198 %
Original price before a discount (details)9 990 000 CZK (−4.9 %)18 % (discounted listings)
ZIP code (details)1060091 %
Auction date, place, kind, deposit (details)2026-12-08T11:00:00, exdrazby.cz, Exekutorská dražba, 40 000 CZKauctions

See the Output tab for all 121 fields.

How to scrape Sreality.cz

  1. Open Sreality.cz, search as usual (e.g. flats for sale in Prague, 2+kk, up to 8 million), and paste the URL from the address bar into Sreality.cz search or listing URLs. Or leave the URL out and fill in Transaction, Property types, Subtypes / layouts and Locations, Regions or Districts.
  2. Optionally add Website filters (price, area, floor, condition…) and Filters (price per m², distance to the metro, seller…), set Max listings and turn on Add listing details.
  3. Click Start and download the results as JSON, CSV or Excel, or use the API.

Tip: the filters of the input are added to the URL's filters; for ranges (price, area) the narrower one wins.

Use cases

Copy an input into the JSON tab of the input and adjust it.

2+kk and 3+kk for sale in Prague up to 9 million, within 500 m of the metro, newest first:

{
"transactionType": "sale",
"propertyTypes": ["flat"],
"subtypes": ["2+kk", "3+kk"],
"regions": ["10"],
"maxPrice": 9000000,
"maxDistanceToMetro": 500,
"maxItems": 500
}

Daily watchdog: new rentals in Brno and its surroundings (10 km) and price drops, with details:

{
"transactionType": "rent",
"propertyTypes": ["flat", "house"],
"locations": ["Brno"],
"radiusKm": 10,
"includeDetails": true,
"onlyNewOrChanged": true,
"includeRemovedListings": true,
"monitoringKey": "brno-rent",
"maxItems": 0
}

Investor screening: flats in the Central Bohemian region under 70 000 CZK per m², private sellers only:

{
"transactionType": "sale",
"propertyTypes": ["flat"],
"regions": ["11"],
"maxPricePerSqm": 70000,
"sellerType": "private",
"includeDetails": true,
"maxItems": 0
}

Family houses with a garden near a school and a kindergarten, energy class A–C:

{
"transactionType": "sale",
"propertyTypes": ["house"],
"subtypes": ["Rodinný"],
"districts": ["Praha-západ", "Praha-východ"],
"features": ["garden"],
"energyClasses": ["A", "B", "C"],
"maxDistanceToSchool": 1000,
"maxDistanceToKindergarten": 1000,
"includeDetails": true,
"maxItems": 0
}

Upcoming property auctions in the whole country with dates and deposits:

{
"transactionType": "auction",
"propertyTypes": ["flat", "house", "land", "commercial", "other"],
"includeDetails": true,
"maxItems": 0
}

Market data: all flats for rent in Czechia (for price maps and statistics):

{
"transactionType": "rent",
"propertyTypes": ["flat"],
"maxItems": 0
}

Your own URL, or a list of listings:

{
"startUrls": [
{ "url": "https://www.sreality.cz/hledani/pronajem/byty/brno?velikost=2%2Bkk,3%2Bkk&cena-do=25000" },
{ "url": "https://www.sreality.cz/detail/prodej/byt/3+1/praha-zabehlice-svehlova/352436300" }
],
"estateIds": ["2179338316"],
"includeDetails": true
}

An agency's listings, or the market without the big agencies: run once, take agencyId from the results, then use Only these agencies or Exclude agencies.

Website filters (applied by Sreality.cz)

Price, usable area, plot area, floor, listed in the last N days, building condition, building type, ownership, furnishing, energy class, the "must have" features and full-text search in descriptions are sent to the website's search, so only matching listings are downloaded.

Filters (you don't pay for filtered-out listings)

Seller (agencies or private), price per m², distances to public transport, metro, train, supermarket, school, kindergarten, doctor, playground and restaurant, only discounted, only with a price, GPS or photos, exclude keywords, only or except given agencies. They use the listing data, so they cost no extra requests (except "Exclude keywords" in descriptions, which needs details).

Monitoring mode explained

Turn on Monitoring: only new or changed listings and schedule the actor (e.g. every morning). The first run returns everything and remembers it under the Monitoring key. Every next run returns only listings that are new (changeType: "new") or whose price or title changed ("updated", with previousPrice, priceChange, priceChangePercent). With include removed listings, listings that are no longer in your search are checked on Sreality.cz and returned once as "removed" with removedReason "deleted" (gone from the website) or "noLongerMatches" (still listed, but e.g. its price moved out of your range); a removed listing that comes back is "reappeared". Use one monitoring key per watched search.

Fast mode (optional, small extra charge)

Normal speed: 8 requests at a time and 240 per minute, spread over 8 Czech IP addresses (about 30 per minute each). Fast mode: 16 at a time and 480 per minute, automatically back to the normal speed when the website slows down or rejects a request. It matters for listing details (one request per listing); listing data alone is fast either way (200 listings per request).

How much does it cost to scrape Sreality.cz?

You pay per saved listing, and a little more for the listings saved with their details. Platform usage is included. Filtered-out and unchanged listings (in monitoring mode) are free.

PlanPer 1 000 listings+ with details (Add listing details)+ Fast mode
FREE$0.95+$0.75+$0.01
BRONZE$0.93+$0.73+$0.01
SILVER$0.90+$0.70+$0.01
GOLD and higher$0.85+$0.65+$0.01

So 1 000 listings cost $0.95, or $1.70 with all the details (FREE plan). A removed-listing row in monitoring mode is a row like any other (without details). There is also a tiny start fee of $0.00005 per run.

Typical runs (measured on Apify with the default settings, 2026-10-19):

ScenarioRequestsTimePrice (FREE plan)
20 listings from a search URL (the prefilled input)2a few seconds$0.02
1 000 listings~6~10–20 s$0.95
1 000 listings with details~1 006~5 min (fast mode ~3 min)$1.70
All 23 685 flats for sale in Czechia~125100 s$22.50
Daily monitoring of a search with 2 000 listings, ~50 new or changed~11~10 s~$0.05

Input example

{
"startUrls": [{ "url": "https://www.sreality.cz/hledani/prodej/byty/praha" }],
"maxItems": 20
}

Output example

{
"id": "sreality:352436300",
"estateId": 352436300,
"source": "sreality.cz",
"url": "https://www.sreality.cz/detail/prodej/byt/3+1/praha-zabehlice-svehlova/352436300",
"name": "Prodej bytu 3+1 72 m²",
"transactionType": "sale",
"propertyType": "flat",
"subtype": "3+1",
"price": 9499000,
"priceCurrency": "CZK",
"priceUnit": "za nemovitost",
"priceTotal": 9499000,
"pricePerSqm": 131931,
"priceOnRequest": false,
"originalPrice": 9990000,
"discountPercent": 4.9,
"usableArea": 72,
"region": "Hlavní město Praha",
"district": "Praha 10",
"city": "Praha",
"cityPart": "Záběhlice",
"street": "Švehlova",
"houseNumber": "2887/26",
"zip": "10600",
"latitude": 50.05567,
"longitude": 14.5145686,
"locationPrecision": "address",
"agencyId": 71342,
"agencyName": "Häusl&Home Reality",
"agencyIco": "21841071",
"agencyWebsite": "https://hauslahome.cz",
"isPrivateSeller": false,
"imageUrl": "https://d18-a.sdn.cz/d_18/c_img_qE_D/nPYADvcUkmDj2BMDyZHlDyXO/b226.jpeg?fl=res,1200,1200,1|shr,,20|jpg,80",
"imageCount": 43,
"hasVideo": true,
"hasVirtualTour": false,
"distanceToPublicTransport": 120,
"distanceToShop": 300,
"distanceToSchool": 420,
"description": "Nabízím k prodeji prostorný a velmi dobře dispozičně řešený byt 3+1 o užitné ploše 72 m²…",
"listedAt": "2026-08-24",
"updatedAt": "2026-10-19",
"views": 6547,
"floor": 8,
"floors": 13,
"condition": "Velmi dobrý",
"buildingType": "Panelová",
"ownership": "Osobní",
"furnished": "Částečně",
"elevator": true,
"loggia": true,
"loggiaArea": 3,
"cellar": true,
"cellarArea": 2,
"reconstructionYear": 2015,
"detailScraped": true,
"scrapedAt": "2026-10-19T13:30:00Z"
}

(Shortened; every row has all fields, missing values are null.)

Limitations

  • The website's limit: Sreality.cz returns at most 10 000 listings per search. Bigger searches are split by layout, region (plus listings abroad) and district and read completely; only a single layout in a single district or town with more than 10 000 listings would be cut (it doesn't happen today). Results of a split search come part by part, each part in your sort order.
  • Area without details comes from the title (it is the area the website shows); with details from the listing's parameters.
  • Address precision is what the listing gives (locationPrecision): some listings have the exact address, others only the street or the town.
  • Distances are the website's own (in metres, to the nearest place of each kind); null means there is none nearby.
  • Contacts: brokers' names, phones, e-mails and photos are never returned, and phone numbers and e-mails are removed from descriptions. Names written in a description stay there.
  • Photos are returned as URLs; they are copyrighted, so check the rights before you republish them.
  • Price changes in monitoring mode compare the price with the previous run of the same monitoring key; originalPrice (with details) is the website's own "before discount" price.
  • Proxy: Sreality.cz rejects requests from Apify's servers without a proxy, so a Czech residential Apify Proxy is on by default (included in the price). A datacenter proxy works too, but is several times slower.
  • If the site rejects a request, it is asked once more after 30 seconds from the same IP address and session (never from another IP). If it rejects a few requests in a row even so, the run stops and says so. Listings whose page couldn't be read are returned with the search data (detailScraped: false).

For AI agents and API users

  • Minimal input: {"startUrls": [{"url": "https://www.sreality.cz/hledani/prodej/byty/praha"}], "maxItems": 20}, or {"locations": ["Brno"], "transactionType": "rent", "maxItems": 50}, or {"estateIds": ["352436300"]}.
  • One row = one listing = one charge (+ the details event for rows with detailScraped: true, + the fast-mode event when fast mode is on).
  • maxItems counts saved listings (0 = no limit), maxItemsPerSearch limits each URL, location and search.
  • Prices are in CZK; priceUnit says whether it is the whole property or per month. transactionType is sale, rent, auction or share; propertyType is flat, house, land, commercial or other.
  • Regions are given by their Sreality IDs (10 Praha, 11 Středočeský, 14 Jihomoravský…, see the input); districts by name.
  • Monitoring state is kept per monitoringKey between runs of the same user.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("tsutseisoftware/sreality-scraper").call(run_input={
"transactionType": "rent",
"propertyTypes": ["flat"],
"locations": ["Praha 6"],
"maxPrice": 30000,
"maxItems": 100,
})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["name"], listing["price"], listing["cityPart"], listing["url"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('tsutseisoftware/sreality-scraper').call({
startUrls: [{ url: 'https://www.sreality.cz/hledani/prodej/domy/brno-venkov' }],
includeDetails: true,
maxItems: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items.map((l) => `${l.name}: ${l.price} CZK (${l.pricePerSqm} CZK/m²)`));

cURL

curl -X POST "https://api.apify.com/v2/acts/tsutseisoftware~sreality-scraper/run-sync-get-dataset-items?token=<YOUR_API_TOKEN>" \
-H "Content-Type: application/json" \
-d '{"estateIds": ["352436300"], "includeDetails": true}'

You can also connect the actor to Make, Zapier, n8n, Google Sheets, Slack or webhooks and schedule it in Apify Console.

Troubleshooting

Status messageWhat to do
Skipping unsupported URLUse a Sreality.cz search page (/hledani/…), an API search URL or a listing URL (/detail/…).
Ignored URL parameters … (log)Tracking parameters (utm_…) are removed; the search is the same.
Location not foundType the place as the website's search box suggests it (a town, a city part, a district).
Unknown subtype / district / region …Use one of the values listed in the message.
no listings: …The search is empty (with these filters).
not found: …The listing ID doesn't exist (anymore).
… large searches were read in partsNormal for searches over 10 000 listings.
Sreality.cz is rejecting requestsKeep Apify Proxy on in Proxy configuration (the default); try again later.
stopped at your maximum cost per runRaise the maximum cost per run in the run options.

FAQ

The actor collects publicly available listing data that anyone sees on the website without logging in. It reads the same data the website itself loads, does not log in, makes at most 240 requests per minute by default, spread over several IP addresses (480 in fast mode, with automatic slow-down) and never solves captchas or other challenges. It returns no personal data of brokers or private sellers (no names, phones, e-mails or photos) and removes phone numbers and e-mails from descriptions. How you use the data is your responsibility: use it for analysis, monitoring and market research, and don't republish the listings, texts or photos as your own. If unsure, consult a lawyer. Objections and data protection requests: the Issues tab of this actor.

Do I need a proxy?

Yes, but you don't have to do anything: a Czech residential Apify Proxy is on by default and is included in the price. Sreality.cz rejects Apify's servers without a proxy; a datacenter proxy works, but answers are several times slower.

How do I get all listings of a category or of the whole country?

Set Max listings to 0 and choose only the transaction and the property types (no location). The actor splits the search below the website's limit of 10 000 per search and reads it completely.

Why are some prices empty?

The listing has its price on request ("Cena na vyžádání"); priceOnRequest is true. Use Only with a price to skip them.

What does "noLongerMatches" mean?

In monitoring mode, a listing that is not in your search anymore is checked on Sreality.cz. If it still exists (e.g. its price changed out of your range, or it was moved to another category), it is noLongerMatches; if it is gone, deleted.

Can I get the broker's phone or e-mail?

No. The actor never returns personal contacts. You get the agency's name, IČO and website with Add listing details.

Can I use it through the API?

Yes. See the Python, JavaScript and cURL examples above, or the API tab.

Something doesn't work

Open an issue in the Issues tab with the link to the run.

This actor is not affiliated with Sreality.cz or Seznam.cz. It is also known as a Sreality API, Sreality.cz scraper, Czech real estate scraper or "hlídač realit Sreality" (hlídač nových inzerátů a cen nemovitostí).