Sreality.cz Scraper - Czech Property Data
Pricing
from $0.59 / 1,000 property listings
Sreality.cz Scraper - Czech Property Data
Scrape property listings from Sreality.cz, the largest Czech real estate portal. Search by keyword, location, price range, and offer type. Get prices, locations, POI distances, agency info, and images.
Pricing
from $0.59 / 1,000 property listings
Rating
0.0
(0)
Developer
ParseBird
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Sreality.cz Scraper
Sreality.cz Scraper extracts property listings from Sreality.cz, the largest Czech real estate portal. It's a Sreality.cz API alternative for pulling structured listing data — prices, locations, POI distances, agency info, and images — without manually browsing the site.
| Search by keyword, Czech location, price range, offer type, and property category, and get every listing's price, GPS coordinates, distances to nearby amenities, agency details, and image gallery. |
Copy to your AI assistant
Use the Apify actor "parsebird/sreality-cz-scraper" (call it via the apify-client SDK, e.g. `ApifyClient(token).actor("parsebird/sreality-cz-scraper").call(run_input={...})`) to scrape property listings from Sreality.cz, the largest Czech real estate portal. Key inputs: startUrl (default "https://www.sreality.cz/doporucene", used as the source reference and as a fallback filter source), keyword (free text searched in listing descriptions), location (a Czech place name like "Brno" or "Praha", resolved to Sreality's own location automatically), sort (-date, price_asc, price_desc, price_m2_asc, or price_m2_desc), offer_type (1 for sale, 2 for rent), category_main (1 Flats, 2 Houses, 3 Land, 4 Commercial, 5 Other), price_from/price_to (CZK), results_wanted (default 20), and max_pages (default 10). Output is one JSON object per listing with estate_id, title, offer_type, category_main/category_sub, locality_text plus location_city/district/region/country/latitude/longitude, price_czk, price_czk_m2, price_summary, price_currency, agency_id, agency_slug, has_video, has_matterport, primary_image_url, image_urls, images_count, poi_*_distance_m fields (school, shop, bus, train, atm, and more), source_url, and scraped_at. Full API reference: https://apify.com/parsebird/sreality-cz-scraper/api. Get an API token at https://console.apify.com/account/integrations.
What does Sreality.cz Scraper do?
Sreality.cz Scraper turns Sreality.cz listings into structured, ready-to-use data. It works two ways:
- 🎯 Recommended listings — leave every filter blank and it collects Sreality's own "Doporučené" (recommended) feed
- 🔍 Filtered search — set any combination of keyword, location, offer type, category, and price range to search like a real user would
Every listing includes GPS coordinates, distance in meters to the nearest school, shop, bus stop, train station, ATM, restaurant, kindergarten, playground, post office, vet, and metro (when Sreality publishes them), plus the listing agency's ID and page slug, video/Matterport availability, and the full image gallery.
Runs can be triggered on a schedule, called via the Apify API, or wired into Zapier, Make, or n8n integrations, so you can monitor new listings in a city or price band over time. Results export as JSON, CSV, or Excel.
What data can you extract from Sreality.cz?
| Field | Description |
|---|---|
estate_id, title | Unique Sreality listing ID and headline |
offer_type, category_main, category_sub | Sale/rental label and property category |
locality_text, location_city/district/region/country | Full locality breakdown |
location_latitude, location_longitude | GPS coordinates, when published |
price_czk, price_czk_m2, price_summary, price_currency | Pricing in Czech koruna |
agency_id, agency_slug | Listing agency identifier and page slug |
has_video, has_matterport | Media availability flags |
primary_image_url, image_urls, images_count | Listing image gallery |
poi_*_distance_m | Distance in meters to nearby schools, shops, transit, and more |
See Output example below for a full record.
Input parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
| startUrl | string | No | https://www.sreality.cz/doporucene | Sreality page used as the source reference |
| keyword | string | No | — | Text to search in Sreality listing descriptions |
| location | string | No | — | A Czech location name, such as Brno or Praha |
| offer_type | integer | No | — | 1 for sale, 2 for rent |
| category_main | integer | No | — | Sreality main category ID (1 Flats, 2 Houses, 3 Land, 4 Commercial, 5 Other) |
| price_from / price_to | number | No | — | Price range, in CZK |
| sort | string | No | — | -date, price_asc, price_desc, price_m2_asc, or price_m2_desc |
| results_wanted | integer | No | 20 | Maximum number of listings to save |
| max_pages | integer | No | 10 | Maximum number of result pages to process |
| proxyConfiguration | object | No | — | Optional Apify Proxy configuration for blocked cloud egress |
Output example
{"estate_id": 3843384140,"title": "Prodej rodinného domu 153 m², pozemek 475 m²","offer_type": "Prodej","offer_type_id": 1,"category_main": "Domy","category_sub": "Rodinný","locality_text": "Lipová, Prostějov, Olomoucký kraj, Česká republika","location_city": "Lipová","location_district": "Prostějov","location_region": "Olomoucký kraj","location_country": "Česká republika","location_latitude": 49.520441,"location_longitude": 16.86507,"price_czk": 7777250,"price_czk_m2": 50832,"price_currency": "Kč","price_unit": "za nemovitost","has_video": true,"has_matterport": false,"agency_id": 34573,"agency_slug": "ostrov-realit","primary_image_url": "https://d18-a.sdn.cz/d_18/c_img_p9_A/kcHp2YdDtDgLT0unF8i3ga/98f6.jpeg","images_count": 3,"poi_school_distance_m": 36,"source_url": "https://www.sreality.cz/doporucene","scraped_at": "2026-09-19T06:45:00.000Z"}
Download results as JSON, CSV, or Excel from the Apify Console, or pull them programmatically via the dataset API.
Python
from apify_client import ApifyClientclient = ApifyClient("<YOUR_API_TOKEN>")run = client.actor("parsebird/sreality-cz-scraper").call(run_input={"keyword": "rodinny dum","location": "Brno","results_wanted": 50,"max_pages": 5,})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item["title"], item["price_czk"])
JavaScript
import { ApifyClient } from "apify-client";const client = new ApifyClient({ token: "<YOUR_API_TOKEN>" });const run = await client.actor("parsebird/sreality-cz-scraper").call({keyword: "rodinny dum",location: "Brno",results_wanted: 50,max_pages: 5,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Use cases
- 🏡 Build a property comparison dataset for a city or price band
- 📈 Monitor a location for new listings on a schedule
- 🗺️ Map listings by GPS coordinates and proximity to schools or transit
- 🏢 Research agency inventory by tracking
agency_id/agency_slugacross listings - 📊 Feed a BI dashboard or valuation model with structured Czech property data
How it works
- Sreality.cz Scraper reads Sreality's own public listings API — no login or key required.
- When
locationis set, it first resolves the place name to Sreality's own location ID via the site's autocomplete API, then applies it as a filter. - With no filters set, it falls back to Sreality's own "Doporučené" (recommended) feed.
- Results are paginated until
results_wantedormax_pagesis reached. price_m2_asc/price_m2_descare applied to the scraped batch, since Sreality's public API does not sort by price-per-m2 server-side — increasemax_pagesfor a more representative sort.- Every listing is pushed to the dataset as soon as it's fetched, and billed via pay-per-result — you never pay for empty runs.
How much does it cost to scrape Sreality.cz?
Sreality.cz Scraper uses pay-per-result pricing — you only pay for listings actually returned, never for compute time or failed runs.
| Event | Free | Bronze | Silver | Gold |
|---|---|---|---|---|
listing-scraped (per listing) | $0.89 / 1,000 | $0.79 / 1,000 | $0.69 / 1,000 | $0.59 / 1,000 |
Scraping 1,000 listings on a Gold plan costs about $0.59. Apify's monthly platform usage credits apply on top of your plan, so most light usage is covered without any extra charge.
Input & output
Open the Input tab to see every field with examples. Every run's results are available as a dataset — export as JSON, CSV, or Excel, or read them with the Apify API and client libraries for Python and JavaScript.
Is it legal to scrape Sreality.cz?
Scraping publicly available data — the kind shown on Sreality's public listing pages without logging in — is generally considered legal, including under rulings like hiQ Labs v. LinkedIn. That said, you're responsible for how you use the data: respect Sreality's Terms of Service, and consult a lawyer if you plan to redistribute the data commercially. Read more in Apify's guide to web scraping and the law.
Related Actors
Looking for other real estate data sources? Check out ParseBird's Apify Store profile for more scrapers covering property listings, marketplace, and business data.
FAQ
Does this need a Sreality account or API key? No. Sreality.cz Scraper reads Sreality's own public listings API — no login or key required.
Can I search in English?
Location names work best in Czech (e.g. Praha, not Prague), since they're matched against Sreality's own place names. Keyword search matches whatever language the listing descriptions are written in (almost always Czech).
Do I need to worry about Czech diacritics in my keyword or location?
No — Sreality's search matches with or without diacritics (e.g. dum and dům return the same results).
What's the difference between price_asc/price_desc and price_m2_asc/price_m2_desc?
price_asc/price_desc/-date are sorted by Sreality itself across its full inventory. price_m2_asc/price_m2_desc are sorted locally over the batch this run scraped, since Sreality's public API doesn't support server-side price-per-m2 sorting — use a higher max_pages for a more representative result.
Can I run this on a schedule? Yes — use Apify's Scheduler to run daily or weekly and catch new listings matching your filters.
Something looks wrong or missing — where do I report it? Open an issue on the Actor's Issues tab in Apify Console, or reach out via Apify's support. Feedback on data accuracy is always welcome.