Sreality Czech Property Listings Scraper
Pricing
from $2.28 / 1,000 item extracteds
Sreality Czech Property Listings Scraper
Export public Sreality.cz sale and rental searches with stable listing IDs, CZK prices, layouts, locations, images, URLs, and available agency metadata.
Pricing
from $2.28 / 1,000 item extracteds
Rating
0.0
(0)
Developer
Stas Persiianenko
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
4 days ago
Last modified
Categories
Share
Export Sreality Czech property listings from public sale and rental search pages into clean, structured dataset rows.
Use the same transaction, property type, location, and other filters available on Sreality.cz. The Actor preserves stable listing IDs so recurring runs can power inventory snapshots, price comparisons, and change detection.
What does this Sreality scraper do?
The Actor reads one or more public Sreality.cz search-result URLs and exports the listings visible through those searches.
Each result can include:
- stable Sreality listing ID;
- title, transaction, property type, and layout;
- CZK price and CZK price per square metre when available;
- locality, city, district, region, street, and coordinates;
- listing URL and all images exposed in the search result;
- agency identity and logo when available;
- video and Matterport availability;
- search URL and extraction timestamp for provenance.
It paginates search results, applies a global output limit, and deduplicates overlapping searches by listing ID.
Who is it for?
This Actor is useful for:
- real-estate analysts comparing Czech asking prices;
- agencies monitoring competing inventory;
- investors screening sale listings by area and location;
- rental operators tracking available apartments;
- data teams maintaining recurring market snapshots;
- researchers exporting Czech property data to spreadsheets or BI tools.
The Actor exports current public listing snapshots. It does not create historical price changes by itself; schedule runs and compare records by listingId in your own dataset or workflow.
Why use this Actor?
Sreality search pages are designed for browsing, not repeatable data export.
This Actor provides:
- deterministic IDs for joining results over time;
- typed JSON, CSV, Excel, XML, RSS, and API dataset exports through Apify;
- support for any public filters encoded in a Sreality search URL;
- sale and rental searches in one run;
- bounded pagination and retries;
- lightweight HTTP extraction at 256 MB with a datacenter proxy, without downloading images or opening detail pages.
Unlike deep-detail products, this Actor focuses on efficient search-result monitoring. It does not claim seller phone numbers, full descriptions, or hidden detail-page fields.
Getting started
- Open Sreality.cz and configure the transaction, property type, location, and other filters you need.
- Copy the resulting search URL.
- Add it to Sreality search URLs in the Actor input.
- Set Maximum listings to the number of unique records required.
- Click Start.
- Open the default dataset and export the
overviewview. - For monitoring, schedule the Task and compare records by
listingId.
The prefilled Prague apartment-sale search works without a login; the default Apify datacenter proxy provides stable cloud delivery.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | array | Prague apartments for sale | Public sreality.cz search-result URLs. Strings and request-list objects are supported. |
maxItems | integer | 50 | Maximum unique listings across all searches; range 1–10,000. |
maxRequestRetries | integer | 3 | Attempts for temporary HTTP 429 or 5xx responses; range 1–5. |
proxyConfiguration | object | Apify datacenter proxy | Proxy configuration for stable cloud delivery. No residential fallback is automatic. |
Only Sreality.cz URLs whose path contains /search/ are accepted. Unsupported domains fail before any source request.
Example input: Prague apartments for sale
{"startUrls": [{ "url": "https://www.sreality.cz/en/search/for-sale/apartments/praha" }],"maxItems": 20}
Example input: compare sales and rentals
{"startUrls": [{ "url": "https://www.sreality.cz/en/search/for-sale/apartments/praha" },{ "url": "https://www.sreality.cz/en/search/to-rent/apartments/praha" }],"maxItems": 40}
Output fields
| Field | Meaning |
|---|---|
listingId | Stable numeric Sreality listing identifier. |
title | Public listing headline, often including layout and area. |
transaction | Sale or lease transaction label. |
propertyType | Apartments, houses, land, or another source category. |
layout | Source layout such as 2+kk or 3+kt. |
priceCzk | Advertised CZK price when numeric. |
pricePerSqmCzk | Advertised CZK/m² when provided. |
priceSummaryCzk | Source summary price when provided. |
priceUnit | Source price unit, such as per property or per month. |
locality | Human-readable locality assembled from source fields. |
city, cityPart, district, region, street, country | Available structured location components. |
latitude, longitude | Public listing coordinates when available. |
areaSqm | Area parsed from the listing title when present. |
url | Canonical public listing detail URL. |
imageUrls | Public image URLs exposed in the search result; images are not downloaded. |
agencyId, agencyName, agencyLogoUrl | Available agency metadata. |
hasVideo, hasMatterport | Source flags for rich media availability. |
sourceUrl | Exact paginated search URL that produced the record. |
scrapedAt | UTC ISO timestamp for the snapshot. |
Optional fields are omitted when Sreality does not expose them for a listing.
Example output
A current Prague sale run produces records shaped like this:
{"listingId": 342675532,"title": "For sale apartment 3+kt 66 m²","transaction": "Sale","propertyType": "Apartments","layout": "3+kt","priceCzk": 12900000,"pricePerSqmCzk": 195455,"priceUnit": "per property","locality": "U Sluncové, Karlín, Praha, Praha 8, Prague","city": "Praha","district": "Praha 8","areaSqm": 66,"url": "https://www.sreality.cz/en/detail/sale/flat/3+kt/praha-karlin-u-sluncove/342675532","imageUrls": ["https://d18-a.sdn.cz/example.jpeg"],"hasVideo": false,"hasMatterport": false,"sourceUrl": "https://www.sreality.cz/en/search/for-sale/apartments/praha","scrapedAt": "2026-09-08T20:31:57.395Z"}
Values and availability change with the live source. The shortened image URL above illustrates the field shape.
How much does it cost to scrape Sreality property listings?
Pay-per-event billing has two parts:
- $0.005 when a run starts;
- one
itemevent for each unique property listing saved.
Per-listing prices depend on your Apify tier:
| Tier | Price per listing |
|---|---|
| FREE | $0.00437 |
| BRONZE | $0.00380 |
| SILVER | $0.002964 |
| GOLD | $0.00228 |
| PLATINUM | $0.00228 |
| DIAMOND | $0.00228 |
At BRONZE rates, 20 listings cost about $0.081 including the start event; 100 listings cost about $0.385. Apify platform usage is included under PPE pricing. Failed, duplicate, or rejected records are not charged as items.
Scheduled market monitoring
Create an Apify Task with the filters you want to follow, then schedule it daily or weekly.
A downstream workflow can:
- use
listingIdas the stable key; - compare the newest
priceCzkwith the previous snapshot; - flag IDs not seen before as new inventory;
- flag missing IDs as potentially removed inventory;
- send changes to Google Sheets, a webhook, database, or dashboard.
Source listings can be edited or removed between runs. Keep timestamps and source URLs with every snapshot.
Export and integrations
The default Apify dataset supports JSON, CSV, Excel, XML, RSS, and API retrieval.
Common integrations include:
- Google Sheets for small recurring inventories;
- Make or Zapier for alerts and routing;
- webhooks for run-completion notifications;
- BigQuery, Snowflake, or PostgreSQL for long-term snapshots;
- Python or JavaScript for custom deduplication and analysis.
The overview dataset view puts IDs, prices, locations, URLs, images, agencies, and timestamps first.
Run through the Apify API
Replace <APIFY_TOKEN> with your token.
cURL
curl -X POST \"https://api.apify.com/v2/acts/automation-lab~sreality-cz-property-listings-scraper/runs?token=<APIFY_TOKEN>" \-H "Content-Type: application/json" \-d '{"startUrls":[{"url":"https://www.sreality.cz/en/search/for-sale/apartments/praha"}],"maxItems":20}'
JavaScript
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: process.env.APIFY_TOKEN });const run = await client.actor('automation-lab/sreality-cz-property-listings-scraper').call({startUrls: [{ url: 'https://www.sreality.cz/en/search/to-rent/apartments/praha' }],maxItems: 20,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
Python
from apify_client import ApifyClientclient = ApifyClient("<APIFY_TOKEN>")run = client.actor("automation-lab/sreality-cz-property-listings-scraper").call(run_input={"startUrls": [{"url": "https://www.sreality.cz/en/search/for-sale/apartments/praha"}],"maxItems": 20,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items)
Use with MCP and AI assistants
Add the Actor to Claude Code through Apify MCP:
claude mcp add --transport http apify \"https://mcp.apify.com?tools=automation-lab/sreality-cz-property-listings-scraper"
Claude Desktop, Cursor, and VS Code setup
Desktop and editor clients such as Claude Desktop, Cursor, and VS Code can use:
{"mcpServers": {"apify": {"url": "https://mcp.apify.com?tools=automation-lab/sreality-cz-property-listings-scraper"}}}
Example prompts:
- “Export 20 Prague rental apartments from this Sreality search URL.”
- “Run my saved Sreality sale and rental searches and summarize median asking price per square metre.”
- “Compare these results with yesterday’s dataset by listingId.”
The AI assistant can run the Actor; comparison quality still depends on the datasets and analysis instructions you provide.
Reliability and retries
The Actor reads structured state embedded in Sreality's server-rendered HTML.
It retries only temporary rate limits and server errors with bounded exponential backoff. Invalid inputs, permanent 4xx responses, and source-format changes fail clearly instead of silently returning an empty successful dataset.
HTTP through Apify's datacenter proxy is the stable cloud default. You may disable it for direct local requests. The Actor never turns on an unmeasured residential proxy automatically.
Limits
- Only public Sreality search-result URLs are supported.
- Output reflects the source at run time and is not guaranteed complete if Sreality changes or removes listings.
- Search pages do not expose every detail-page field.
- Seller contact details, full descriptions, nearby points of interest, and historical changes are not extracted.
- Area is parsed from the title and can be absent when the title does not include m².
- Location precision follows the public source and may be approximate.
- Very large runs take longer and are more exposed to source changes or rate limits.
Troubleshooting
The Actor rejects my URL.
Use a public https://www.sreality.cz/.../search/... result page, not a listing detail URL, another domain, or a redirect service.
The run returns fewer rows than maxItems.
The search may contain fewer available results, overlapping search URLs may produce duplicates, or the last page may be exhausted.
The run fails with a source-format error.
Sreality may have changed its embedded page data. Retry once later; repeated failures should be reported with the run ID and input URL.
Should I enable a proxy?
The default datacenter proxy is recommended for cloud runs because direct cloud delivery can intermittently return HTTP 404. Residential proxy traffic is not required or enabled automatically.
Legality and responsible use
Scrape only public data that you are entitled to process.
Review Sreality's terms, applicable database rights, copyright rules, and Czech/EU privacy law for your use case. Avoid republishing images or personal data without a lawful basis. Respect reasonable run frequency and do not use the Actor to harass advertisers or evade access controls.
This Actor is an independent automation tool and is not affiliated with Sreality.cz or Seznam.cz.
FAQ
Does the Actor support sale and rental listings?
Yes. Supply the corresponding public Sreality search URL.
Can I filter by region, district, layout, or property type?
Yes. Configure those filters on Sreality and paste the resulting search URL. The Actor preserves the URL's public filter state.
Can I monitor price changes?
Yes, by scheduling recurring runs and comparing priceCzk for the same listingId. The Actor exports snapshots; it does not maintain history internally.
Does it download images?
No. It exports image URLs, which keeps runs lightweight and avoids media-transfer cost.
Does it scrape listing detail pages?
No. The product intentionally exports fields available from search results for efficient inventory monitoring.
Are empty results charged?
The one-time start event applies, but only unique saved records generate item events.
Related Automation Lab Actors
For broader property workflows, see:
- ImmoScout24 Property Listings Scraper for German property listings;
- Fotocasa Property Listings Scraper for Spanish listings;
- RE/MAX Spain Property Listings Scraper for RE/MAX Spain inventory.
Choose this Actor when your source is Sreality.cz and your job is efficient Czech sale/rental search-result monitoring.