Sreality Scraper - Czech Real Estate Data & Listings
Pricing
from $2.10 / 1,000 results
Sreality Scraper - Czech Real Estate Data & Listings
Scrape sreality.cz without an API key. Sreality API alternative that exports Czech real estate listings to CSV, JSON or Excel.
Pricing
from $2.10 / 1,000 results
Rating
0.0
(0)
Developer
Logiover
Maintained by CommunityActor stats
1
Bookmarked
63
Total users
10
Monthly active users
8 days ago
Last modified
Categories
Security
Limited permissionsShare
Sreality.cz Scraper — Czech Real Estate Data, Prices & Listings (No API)
Scrape Czech real estate listings (nemovitosti) from Sreality.cz, the Czech Republic's #1 property portal — apartments, houses, land and commercial property, for sale, rent or auction — straight from Sreality's public JSON API. Get price, CZK/m², GPS coordinates, locality, agency details and full image galleries in clean flat JSON. Fast, no browser, no HTML parsing, no API key, no login.
🏆 Why this Sreality scraper?
40+ fields per listing · hundreds to thousands of listings per run · direct JSON API (no browser) · sale / rent / auction support · CZK/m² computed for you · residential-proxy ready · export to JSON / CSV / Excel. The unofficial Sreality.cz API alternative for Czech real-estate market research, investment screening and lead generation.
✨ What this Actor does / Key features
- 🏠 All property types — apartments (byty), houses (domy), land (pozemky), commercial and other, for sale, rent or auction.
- 📍 Region targeting — scrape any of the 14 Czech regions (kraje) by Region ID; each ID becomes its own task (Prague =
10). - 💰 Powerful filters — CZK price range, usable-area range (m²), land-area range, category, transaction type and subtype codes.
- 🔀 Flexible sorting — newest, price and area orderings for targeted scans.
- 🗺️ Full location & GPS — locality, region, district, city plus latitude/longitude and the SEO locality slug for every listing.
- 🏢 Agency lead data — agent ID, agency name, logo and profile URL, plus exclusivity/new/auction/topped flags.
- 🖼️ Image galleries — main image URL plus the full list of image URLs and count, with floor-plan / video / 3D-tour flags.
- 🧮 CZK/m² computed —
pricePerSqmis derived whenever both price and usable area are available. - ⚡ Direct JSON API extraction — reads Sreality's public JSON endpoint; no browser, no DOM walking, no HTML parsing.
- 🛡️ Proxy support — Apify Proxy integration; residential + country=CZ recommended for sustained scraping.
🚀 Quick start (3 steps)
- Configure — add one or more Region IDs (e.g.
10for Prague) and pick atransaction(sale/rent/auction) andcategory. Add price/area filters if you want. - Run — click Start. The Actor paginates the Sreality JSON API per region and streams listings into your dataset.
- Get your data — open the Output tab and export to JSON, CSV, Excel or XML, or pull it via the Apify API.
📥 Input
Give the Actor at least one regionIds value. Everything else is optional.
Example — apartments for sale in Prague (CZK 3M–8M)
{"regionIds": ["10"],"transaction": "sale","category": "apartment","subtypeCodes": ["4", "5", "6", "7"],"priceMin": 3000000,"priceMax": 8000000,"usableAreaMin": 40,"usableAreaMax": 120,"sort": "newest","maxListings": 500,"proxyConfiguration": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "CZ" }}
Example — rentals across two regions (price tracking)
{"regionIds": ["10", "11"],"transaction": "rent","category": "apartment","sort": "newest","maxListings": 1000}
Example — land plots by area (auction & scouting)
{"regionIds": ["1"],"transaction": "auction","category": "land","estateAreaMin": 500,"maxListings": 300}
| Field | Type | Description |
|---|---|---|
regionIds | array | Sreality locality_region_id values. Each ID becomes its own task (Prague = 10). Required. |
transaction | string | sale, rent or auction. |
category | string | apartment, house, land, commercial or other. |
subtypeCodes | array | Numeric category_sub_cb codes (e.g. apartment 4=2+kk, house 35=villa). |
priceMin / priceMax | integer | Price range in CZK. 0 = no bound. |
usableAreaMin / usableAreaMax | integer | Usable-area range in m². 0 = no bound. |
estateAreaMin / estateAreaMax | integer | Land/plot-area range in m². 0 = no bound. |
sort | string | newest, price and area orderings. |
perPage | integer | Listings per API page (up to 100). |
maxListings | integer | Total cap across all region tasks. 0 = unlimited. |
maxPagesPerTask | integer | Pagination depth per region (Sreality caps around page 100). |
proxyConfiguration | object | Apify Proxy settings. Residential + country=CZ recommended for sustained runs. |
Common Czech region IDs (locality_region_id)
| Region | ID | Region | ID |
|---|---|---|---|
| Hlavní město Praha | 10 | Kraj Vysočina | 14 |
| Středočeský kraj | 11 | Jihomoravský kraj | 1 |
| Jihočeský kraj | 13 | Olomoucký kraj | 12 |
| Plzeňský kraj | 5 | Zlínský kraj | 15 |
| Karlovarský kraj | 2 | Moravskoslezský kraj | 7 |
| Ústecký kraj | 9 | Liberecký kraj | 4 |
| Královéhradecký kraj | 3 | Pardubický kraj | 6 |
Additional input fields
These optional fields are also available in the input form and API:
| Field | Type | Default | Description |
|---|---|---|---|
requestDelay | integer | 600 | Delay between sequential page requests. |
maxRetries | integer | 3 | Retries per request on HTTP errors (rotates proxy IP). |
📤 Output
One flat row per listing — 40+ fields, exportable to JSON, CSV, Excel or XML. Here is a trimmed sample record:
{"adId": "1234567890","detailUrl": "https://www.sreality.cz/detail/prodej/byt/2+kk/praha-vinohrady/1234567890","title": "Prodej bytu 2+kk 50 m²","category": "apartment","transactionType": "sale","subtype": "2+kk","price": 6490000,"priceText": "6 490 000 Kč","priceUnit": "Kč","currency": "CZK","pricePerSqm": 129800,"usableArea": 50,"estateArea": null,"locality": "Praha 2 - Vinohrady","region": "Hlavní město Praha","district": "Praha 2","city": "Praha","latitude": 50.0755,"longitude": 14.4378,"mainImageUrl": "https://d18-a.sdn.cz/d_18/.../main.jpg","imageUrls": ["https://…/1.jpg", "https://…/2.jpg", "…"],"imageCount": 15,"has3dTour": false,"agentId": "39215","agentName": "RE/MAX Alfa","isExclusive": true,"isNew": true,"seoLocality": "praha-vinohrady","searchRegionId": "10","scrapedAt": "2026-07-06T12:00:00Z"}
Additional output fields
These fields are also present in the dataset:
| Field | Type | Description |
|---|---|---|
subtypeName | string | Czech subtype label. |
regionId | number | Numeric region id. |
districtId | number | Numeric district id. |
cityPart | string | City quarter / part. |
street | string | Street name. |
zip | string | Postal code. |
agentSeoName | string | Agency SEO slug. |
userId | number | Advertiser user id. |
poiSchoolDistance | number | Distance to nearest school. |
poiKindergartenDistance | number | Distance to nearest kindergarten. |
poiMetroDistance | number | Distance to nearest metro. |
poiTrainDistance | number | Distance to nearest train station. |
poiBusDistance | number | Distance to nearest public transport stop. |
poiShopDistance | number | Distance to nearest shop. |
poiRestaurantDistance | number | Distance to nearest restaurant. |
💡 Use cases
- Market research — build CZK/m² heatmaps by region, district and property subtype.
- Investment screening — combine sale and rent data to estimate rental yields and spot undervalued inventory.
- Real-estate lead generation — discover and cluster active agencies via
agentIdandagentName. - Price tracking — re-run periodically and diff datasets to detect price changes and reductions.
- Auction monitoring — set
transaction: auctionto track foreclosure and auction inventory. - Land scouting — use
category: landwithestateAreaMin/estateAreaMaxfor targeted plot searches.
👥 Who uses it
Real-estate agencies & proptech teams · property investors & flippers · mortgage and valuation analysts · market researchers & data journalists · auction hunters · lead-gen agencies building agency contact lists.
💰 Pricing
This Actor runs on a simple pay-per-result model — you pay for the listings you extract, with no separate Apify platform fees to calculate. Try it on the free tier first, then scale up. See the Pricing tab on this page for the current rate.
❓ Frequently Asked Questions
Do I need an API key or login? No. The Actor calls Sreality's public JSON API directly — no API key, no account and no login. You only need an Apify account.
Is scraping Sreality.cz legal? The Actor only requests publicly available listing data that any visitor can see on sreality.cz. Use the data responsibly and in compliance with applicable laws and Sreality's terms in your jurisdiction.
How much data can I get per run?
Hundreds to thousands of listings. Sreality's API loops at roughly 100 pages on broad filters, so narrow with priceMin/priceMax or area ranges to reach deeper inventory in saturated regions. Set maxListings to 0 for unlimited.
Do I need a proxy?
Sreality's API does not deploy heavy bot defense, so datacenter Apify Proxy works at low volume. For sustained scraping, RESIDENTIAL proxies with country=CZ are recommended.
Is this a Sreality unofficial API or API alternative?
Effectively yes. Sreality has no official public data API, so this Actor acts as a Sreality unofficial API — it reads the same public JSON endpoint the website uses and returns clean, structured listings.
How do I export Sreality data to CSV or JSON?
Run the Actor, then download the dataset in CSV, JSON, Excel (XLSX) or XML from the run, or pull it via the Apify API. This makes it a one-click Sreality data export and Czech real estate listings export tool.
Can I scrape Sreality.cz without an API key or login?
Yes. There is no API key, account or login required on the Sreality side — the Actor scrapes sreality.cz directly. You only need an Apify account to run it.
How do I scrape apartments for sale in Prague from Sreality?
Set regionIds to 10 (Prague), transaction to sale and category to apartment, and the scraper pulls every listing with price, CZK/m², GPS and images.
🔗 More real estate scrapers by logiover
Building a cross-country property dataset? Pair Sreality with the rest of the European real-estate suite:
| Country | Actor |
|---|---|
| 🇵🇱 Poland | Otodom.pl Scraper |
| 🇩🇪 Germany | ImmobilienScout24 Scraper · WG-Gesucht Scraper |
| 🇦🇹 Austria | Willhaben Scraper |
| 🇫🇷 France | Bien'ici Scraper |
| 🇮🇹 Italy | Casa.it Scraper · Subito Scraper |
| 🇪🇸 Spain | Habitaclia Scraper · Pisos.com Scraper |
| 🇵🇹 Portugal | Imovirtual Scraper |
| 🇬🇷 Greece | Spitogatos Scraper |
| 🇷🇴 Romania | Storia.ro Scraper |
| 🇮🇪 Ireland | MyHome.ie Scraper |
| 🇩🇰 Denmark | Boliga Scraper |
| 🇧🇬 Bulgaria | Imot.bg Scraper |
👉 Browse all logiover scrapers on Apify Store — 180+ actors across real estate, jobs, crypto, social media & B2B data.
⏰ Scheduling & integration
Schedule the Actor to monitor the Czech property market — for example a daily "newest listings" run with sort: newest. Export to CSV, JSON or Excel, push to Google Sheets, or feed Sreality data into dashboards, valuation models and CRMs via the Apify API and webhooks. Connect it to Make, n8n or Zapier for automated real-estate pipelines.
⭐ Support & feedback
Found a bug or need an extra field? Open an issue on the Issues tab — response is usually fast. If this Actor saves you time, a ★★★★★ review on the Store page genuinely helps and is hugely appreciated. 🙏
⚖️ Legal
This Actor extracts only publicly available data and is intended for legitimate research, analytics and lead-generation use. You are responsible for complying with Sreality's terms of service, GDPR and any applicable local laws.
This Actor is an independent tool. It is not affiliated with, endorsed by, or sponsored by Sreality; Sreality and all other trademarks mentioned here are the property of their respective owners.
Sreality scraping — frequently asked questions
Do I need a Sreality API key, account or login?
No. This Actor reads publicly available pages and feeds, so there is nothing to register for and no credentials to manage.
How do I export Sreality data to CSV, Excel, JSON or Google Sheets?
Open the Storage tab after a run and pick the format you want — CSV, Excel, JSON, XML or an HTML table. For Google Sheets, Airtable or a database, use the dataset URL or the Apify API so the sheet refreshes itself on every run.
Can I schedule this Sreality scraper to run daily or hourly?
Yes. Use the Schedules tab and pick a cadence. Daily is enough for most tracking work; pick hourly only if the listings you care about really do change that fast.
How many listings can I get, and what does it cost?
See the volume section above for a measured figure. Billing is per result, so you pay for the rows you actually receive and a run that finds nothing costs nothing.
Is scraping Sreality legal?
This Actor collects only information that Sreality publishes publicly. It does not log in, does not defeat access controls and does not touch private data. You remain responsible for how you use the output, including under GDPR and similar rules where personal data is involved.
What happens if Sreality blocks the run or changes its layout?
A refused exit IP is swapped for a fresh one within a quarter of a second and retried, and rate limiting is waited out rather than fought. If nothing gets through, the run fails with the reason instead of reporting success with zero rows — so an empty result always means "no matches", never "the source would not answer".
Can I use this with an AI agent, LangChain or an MCP client?
Yes. The Actor is callable over the Apify API and through Apify's MCP server, so an agent can run it and read the dataset back as a tool call.
📝 Changelog
2026-11-01
- Monthly health check (2026-11-01): a live run on the current build completed successfully and returned data. Input options, output fields and pricing are unchanged.
- README refreshed: 1 link to retired Actors removed; independence disclaimer added; documented 2 additional input fields; documented 15 additional output fields.
2026-10-15
- Every request now has a hard time limit, so a proxy connection that stalls can no longer hold up the run or push it past its timeout.
- A run that reaches its maximum cost per run now stops cleanly with its results saved and a status message, instead of ending as aborted.
- A proxy group your account cannot use no longer stops the run at start-up; it falls back to the default Apify Proxy.
- Runs with a short timeout (API and AI-agent calls) now finish inside it with what they collected, instead of being cut off.
- Memory is managed within the run's own limit, which removes a rare out-of-memory crash on large pages.
- The default used when the field is left out for
maxListingsis now 6,666 (was 200). - The default used when the field is left out for
maxPagesPerTaskis now 60 (was 10).
2026-09-23
- Fleet-wide quality audit. Verified end to end against live data and re-checked the input schema, the output columns and the run configuration.
- Output verified on a live run: 50 columns returned, 94.1% of cells populated.
- Run reliability reviewed: 100.0% of public runs succeeded in the last 30 days.
- Input schema, output schema and pricing configuration reviewed.
- Noted that 2 column(s) came back empty in this sample (
zip,searchSubtypes); these are under review.
2026-09-01
- Fleet-wide health check. Verified against this Actor's real run history: 30-day success rate, output row counts, per-field fill rates, and peak memory against the configured memory limit.
- Reviewed for the failure patterns that have cost this fleet runs — unguarded proxy setup, retry loops that can outlast the run's own time budget, and full-page HTML parsing that can exhaust a small container.
- No change to input, output fields or scraping logic.
2026-08-11
- Maintenance release: refreshed the build and dependencies.
- Re-verified live execution, non-empty structured output and dataset field/type integrity.
- Reviewed reliability (retries, pagination) and output quality as part of a full-fleet QA pass.
2026-08-01
- Completed the August 2026 full health check: verified empty/programmatic default, Console UI default, and two source-informed alternative inputs on Apify.
- Confirmed successful live execution, non-empty structured output, dataset-field/type integrity, and logical sample quality within the 5-minute quality window.
2026-07-06
- ✨ README overhaul: shields badge row, green highlight callout, richer trimmed output sample, collapsible full field reference, extra ready-to-run examples, cross-country real-estate suite links and clearer quick-start.
2026-07-01
- Maintenance pass: re-verified end-to-end on live data and confirmed successful runs within the 5-minute quality window on the default input.
- Sharpened Store metadata (SEO title & description) and expanded the FAQ with high-intent, long-tail questions for easier discovery in Google and Apify Store search.
- Added ready-to-run example tasks that cover common real-world use cases.
2026-06-15
- Reliability pass: re-verified end-to-end on live data with real-world inputs. Routine maintenance build.
2026-06-07
- Docs: added coverage for using the actor as a Sreality unofficial API / API alternative, exporting Czech real estate data to CSV/JSON, and scraping sreality.cz without an API key.
2026-06-05
- Reliability fix: results are no longer dropped by strict output validation — runs complete cleanly at high volume.
- Stability & performance hardening; fresh rebuild.
2026-06-04
- Verified live & refreshed build — reliability/maintenance pass.
2026-06-01
- Maintenance & reliability pass: rebuilt the actor on the current base image; build verified.
*Maintained: last verified 2026-11-01 — checked end-to-end against live run history (reliability, output fields and types, and time/memory budgets).