Sreality.cz Real Estate Scraper avatar

Sreality.cz Real Estate Scraper

Pricing

Pay per event

Go to Apify Store
Sreality.cz Real Estate Scraper

Sreality.cz Real Estate Scraper

Scrape public Czech property listings from Sreality.cz search pages with prices, locations, images, agency data, and detail URLs.

Pricing

Pay per event

Rating

0.0

(0)

Developer

Stas Persiianenko

Stas Persiianenko

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Scrape public Czech property listings from Sreality.cz search pages.

Use this actor to collect sale and rental listing data for apartments, houses, land, commercial properties, or any other Sreality.cz search result page you can open in your browser.

What does Sreality.cz Real Estate Scraper do?

Sreality.cz Real Estate Scraper extracts structured listing data from public Sreality.cz search result pages.

It reads the listing data already embedded in the page and saves clean rows to an Apify dataset.

You can use it for market monitoring, lead generation, price analysis, and property inventory tracking.

Typical output includes:

  • 🏠 listing title and property type
  • 💰 price in CZK and price per square meter
  • 📍 city, district, region, street, and coordinates
  • 🖼️ listing images
  • 🔗 detail page URL
  • 🏢 agency or premise metadata
  • 🎥 video and Matterport flags

Who is it for?

This actor is useful for several real-estate workflows.

Property investors

Track asking prices by city, district, layout, or area.

Real-estate agents

Monitor competing listings and agency inventory on Sreality.cz.

Proptech teams

Build Czech market datasets for dashboards, valuation models, and alerting.

Market analysts

Collect repeatable snapshots of listings for trend analysis.

Lead generation teams

Find fresh properties and agencies from public search pages.

Why use this actor?

Sreality.cz is one of the most important property portals in the Czech Republic.

Manual copying from search pages is slow and inconsistent.

This actor turns public search result pages into structured JSON, CSV, Excel, or API-ready data.

It is HTTP based and does not open a browser, so runs are fast and cost efficient.

Data table

FieldDescription
listingIdSreality listing ID
titleListing title, including layout and area when present
categoryTypeSale or rent category
categoryMainMain property type, for example Apartments or Houses
categorySubLayout or subtype, for example 2+kk
priceCzkAsking price in Czech crowns
pricePerSqmCzkPrice per square meter in CZK
priceSummaryCzkSummary price value from Sreality
priceUnitPrice unit label
localityTextHuman-readable locality summary
cityCity
cityPartCity part or neighborhood
districtDistrict
regionRegion
streetStreet when present
countryCountry
latitudeLatitude when provided
longitudeLongitude when provided
areaSqmArea parsed from title
detailUrlSreality detail page URL
imageUrlsArray of image URLs
agencyIdAgency or premise ID
agencyNameAgency SEO name when present
agencyLogoUrlAgency logo URL
hasVideoWhether Sreality marks the listing as having video
hasMatterportWhether Sreality marks the listing as having Matterport
sourceUrlSearch page URL that produced the row
scrapedAtTimestamp of extraction

How much does it cost to scrape Sreality.cz listings?

The actor uses pay-per-event pricing.

You pay a small run-start event plus a per-listing event for every extracted result. The configured start event is $0.005 per run. The per-listing event is tiered by your Apify plan:

Apify plan tierPer listing
FREE$0.000077565
BRONZE$0.000067448
SILVER$0.000052609
GOLD$0.000040469
PLATINUM$0.000026979
DIAMOND$0.000018885

Example estimates before Apify platform usage costs:

Run sizeFREE estimateBRONZE estimate
10 listings$0.0058$0.0057
50 listings$0.0089$0.0084
100 listings$0.0128$0.0117
500 listings$0.0438$0.0387

On the FREE tier, a small monitoring run with the prefilled maxResults: 50 is about $0.0089 in actor charge events. Because the actor uses HTTP page parsing instead of browser automation, it is designed to be inexpensive for routine monitoring.

For a cheap first run, keep the prefilled maxResults value and scrape a single search URL.

How to use it

  1. Open Sreality.cz in your browser.
  2. Create the filters you need, such as sale apartments or rental flats.
  3. Copy the search result URL.
  4. Paste it into the Sreality search URLs input.
  5. Set Maximum listings.
  6. Start the actor.
  7. Export the dataset as JSON, CSV, Excel, XML, or HTML.

Input

The input is intentionally simple.

{
"startUrls": [
"https://www.sreality.cz/en/search/for-sale/apartments"
],
"maxResults": 50,
"maxRequestRetries": 3
}

Sreality search URLs

Paste one or more Sreality.cz search result URLs.

Examples:

  • https://www.sreality.cz/en/search/for-sale/apartments
  • https://www.sreality.cz/en/search/to-rent/apartments
  • https://www.sreality.cz/en/search/for-sale/houses

Maximum listings

Controls the maximum number of rows saved across all start URLs.

Use a low number for testing.

Increase it for full market snapshots.

Request retries

Controls retry attempts for temporary request failures.

The default works for most runs.

Output

Each dataset item is one property listing.

{
"listingId": 335327308,
"title": "For sale apartment 3+1 66 m²",
"categoryType": "Sale",
"categoryMain": "Apartments",
"categorySub": "3+1",
"priceCzk": 5490000,
"pricePerSqmCzk": 83182,
"localityText": "tř. Míru, Nová Ulice, Olomouc, Olomouc region",
"city": "Olomouc",
"district": "Olomouc",
"areaSqm": 66,
"detailUrl": "https://www.sreality.cz/en/detail/sale/flat/...",
"imageUrls": ["https://d18-a.sdn.cz/...jpeg"],
"hasVideo": false,
"hasMatterport": false,
"sourceUrl": "https://www.sreality.cz/en/search/for-sale/apartments",
"scrapedAt": "2026-05-17T08:09:00.530Z"
}

Tips for best results

  • ✅ Use Sreality.cz search URLs, not the homepage.
  • ✅ Test with 20 listings before large jobs.
  • ✅ Create separate runs for different cities or property categories.
  • ✅ Keep the original search URL in your workflow so results are reproducible.
  • ✅ Export as CSV for spreadsheet analysis.

Common use cases

Monitor Prague apartment prices

Run the actor daily on a filtered apartment search URL.

Compare prices and price per square meter over time.

Track new rental listings

Run a rental apartment URL every hour or day.

Deduplicate listings by listingId in your own system.

Build regional inventory dashboards

Run several URLs for different regions.

Join the output into a BI dashboard using city, district, region, price, and area fields.

Analyze agency inventory

Use agencyId and agencyName to group listings by agency or premise.

Integrations

You can connect the actor with common Apify workflows.

  • Google Sheets: export CSV or use an integration tool.
  • Make or Zapier: trigger workflows after each run.
  • Webhooks: notify your system when new data is ready.
  • Apify API: start runs and download datasets programmatically.
  • Apify datasets: store historical snapshots and compare runs.

API usage

Node.js

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor('automation-lab/sreality-cz-real-estate-scraper').call({
startUrls: ['https://www.sreality.cz/en/search/for-sale/apartments'],
maxResults: 50,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Python

from apify_client import ApifyClient
import os
client = ApifyClient(os.environ['APIFY_TOKEN'])
run = client.actor('automation-lab/sreality-cz-real-estate-scraper').call(run_input={
'startUrls': ['https://www.sreality.cz/en/search/for-sale/apartments'],
'maxResults': 50,
})
items = client.dataset(run['defaultDatasetId']).list_items().items
print(items)

cURL

curl -X POST 'https://api.apify.com/v2/acts/automation-lab~sreality-cz-real-estate-scraper/runs?token=YOUR_APIFY_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"startUrls":["https://www.sreality.cz/en/search/for-sale/apartments"],"maxResults":50}'

MCP usage

Use the actor through Apify MCP with Claude tools.

MCP URL:

https://mcp.apify.com/?tools=automation-lab/sreality-cz-real-estate-scraper

Add it to Claude Code with:

$claude mcp add --transport http apify-sreality "https://mcp.apify.com/?tools=automation-lab/sreality-cz-real-estate-scraper"

Claude Desktop MCP JSON configuration:

{
"mcpServers": {
"apify-sreality": {
"url": "https://mcp.apify.com/?tools=automation-lab/sreality-cz-real-estate-scraper"
}
}
}

Example prompts:

  • "Scrape 50 Sreality.cz sale apartment listings and summarize median price per square meter."
  • "Run the Sreality actor for this rental search URL and list the cheapest 10 apartments."
  • "Compare listings from two Sreality.cz region URLs and group them by district."

Pagination behavior

The actor paginates search results automatically.

It starts with the URL you provide and then requests ?page=2, ?page=3, and so on.

Pagination stops when one of these happens:

  • the requested maximum listing count is reached
  • Sreality returns no more listings
  • the source pagination total is exhausted

Performance

The actor reads data from server-rendered page JSON.

It does not open listing detail pages for every result.

This keeps runtime and network usage low.

A small run usually finishes quickly.

Large runs depend on the number of pages required.

Data quality notes

Sreality listings may omit some fields.

For example, some listings may hide the exact street or coordinates.

The actor saves fields when they are present in public search-page data.

If Sreality changes its page structure, the actor may need an update.

Limitations

This actor does not log in to Sreality.cz.

It does not bypass private data restrictions.

It does not scrape user accounts, saved searches, or private contact data.

It focuses on public listing data visible in search results.

Troubleshooting

I got fewer listings than requested

The source search may have fewer available listings than your limit, or Sreality may return fewer listings on the final page.

Try a broader search URL or lower the max listing count.

The actor returned no listings

Check that your URL is a Sreality.cz search results page.

Open it in a browser and confirm that listings are visible.

Some fields are empty

Sreality does not expose every field on every listing.

For example, agency names, streets, or coordinates can be missing.

Legality

This actor extracts publicly available property listing data.

You are responsible for using the output in compliance with applicable laws, platform terms, and privacy rules.

Do not use scraped data for unlawful spam, harassment, discrimination, or other prohibited activity.

Other Apify actors from automation-lab may pair well with real-estate workflows:

FAQ

Can I scrape any Sreality.cz category?

Yes. Paste the public search result URL for the category or filter combination you need.

Does it support Czech and English URLs?

The actor is designed around public Sreality.cz search URLs and has been tested with English paths.

Czech URLs with the same server-rendered listing data should also work if they expose the same search data.

Does it scrape detail pages?

No. The current version focuses on search result pages to keep runs fast and inexpensive.

Can I schedule it?

Yes. Use Apify schedules to run the actor hourly, daily, or weekly.

Can I deduplicate listings?

Yes. Use listingId as the stable key for deduplication.

Does it need a proxy?

The tested MVP works with normal HTTP requests and does not require a proxy.

Can I export to Excel?

Yes. Apify datasets can be exported as Excel, CSV, JSON, XML, RSS, or HTML.

Changelog

0.1

Initial version with HTTP extraction from Sreality.cz search result pages.