Sreality.cz Scraper - Czech Property Data avatar

Sreality.cz Scraper - Czech Property Data

Pricing

from $0.59 / 1,000 property listings

Go to Apify Store
Sreality.cz Scraper - Czech Property Data

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

ParseBird

Maintained by Community

Actor 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?

FieldDescription
estate_id, titleUnique Sreality listing ID and headline
offer_type, category_main, category_subSale/rental label and property category
locality_text, location_city/district/region/countryFull locality breakdown
location_latitude, location_longitudeGPS coordinates, when published
price_czk, price_czk_m2, price_summary, price_currencyPricing in Czech koruna
agency_id, agency_slugListing agency identifier and page slug
has_video, has_matterportMedia availability flags
primary_image_url, image_urls, images_countListing image gallery
poi_*_distance_mDistance in meters to nearby schools, shops, transit, and more

See Output example below for a full record.

Input parameters

ParameterTypeRequiredDefaultDescription
startUrlstringNohttps://www.sreality.cz/doporuceneSreality page used as the source reference
keywordstringNoText to search in Sreality listing descriptions
locationstringNoA Czech location name, such as Brno or Praha
offer_typeintegerNo1 for sale, 2 for rent
category_mainintegerNoSreality main category ID (1 Flats, 2 Houses, 3 Land, 4 Commercial, 5 Other)
price_from / price_tonumberNoPrice range, in CZK
sortstringNo-date, price_asc, price_desc, price_m2_asc, or price_m2_desc
results_wantedintegerNo20Maximum number of listings to save
max_pagesintegerNo10Maximum number of result pages to process
proxyConfigurationobjectNoOptional 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 ApifyClient
client = 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_slug across listings
  • 📊 Feed a BI dashboard or valuation model with structured Czech property data

How it works

  1. Sreality.cz Scraper reads Sreality's own public listings API — no login or key required.
  2. When location is 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.
  3. With no filters set, it falls back to Sreality's own "Doporučené" (recommended) feed.
  4. Results are paginated until results_wanted or max_pages is reached.
  5. price_m2_asc/price_m2_desc are applied to the scraped batch, since Sreality's public API does not sort by price-per-m2 server-side — increase max_pages for a more representative sort.
  6. 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.

EventFreeBronzeSilverGold
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.

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.

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.