The Ultimate Property Scraper
Pricing
from $0.69 / 1,000 results
The Ultimate Property Scraper
Scrape clean, structured property listings from multiple real estate websites in one run. Built for scale with smart filtering (price, beds, baths, size, market, country), duplicate control, and output-ready records for database pipelines.
Pricing
from $0.69 / 1,000 results
Rating
0.0
(0)
Developer
Inus Grobler
Actor stats
1
Bookmarked
2
Total users
1
Monthly active users
a day ago
Last modified
Categories
Share
Ultimate Scraper Properties Actor
Export property listing data, real estate listings, rental listings, and house or apartment data from stored inventory already collected by The Scrape Lab.
This actor is built for people who need structured property data fast. It lets you filter by country, website, market, location, property type, price, bedrooms, bathrooms, parking, size, freshness, and history, then sends the matching rows to your Apify dataset.
This actor does not scrape websites during the run. It queries existing cleaned property data, which makes runs faster, cheaper, and easier to predict.
What This Actor Is Good For
- real estate lead generation
- property market research
- rental listing exports
- house and apartment listing exports
- historic property price tracking
- country-level or website-level property data pulls
- building property datasets for CRMs, BI tools, and internal analysis
Best Way To Use It
For most runs, start with only:
countriesorwebsitesmarketsareaQueryorpropertyTypeQueryestimateOnlylimit
If the estimate looks right, run the same input again with estimateOnly turned off.
Recommended Starting Inputs
The simplest working input looks like this:
{"countries": ["ZA"],"websites": ["property24"],"markets": ["for-sale"],"limit": 10}
For a more targeted property search:
{"countries": ["ZA"],"websites": ["property24"],"markets": ["for-sale"],"areaQuery": "Cape Town","propertyTypeQuery": "apartment","minBedrooms": 2,"maxBedrooms": 3,"limit": 50}
For rental data:
{"countries": ["ZA"],"websites": ["property24"],"markets": ["to-rent"],"areaQuery": "Cape Town","limit": 50}
For historical property listings:
{"countries": ["ZA"],"websites": ["property24"],"markets": ["for-sale"],"includeHistory": true,"seenSince": "2026-05-01T00:00:00Z","limit": 100}
Estimate Before Exporting
Use estimateOnly: true when you want to preview size before exporting data.
The actor will:
- return no dataset rows
- count how many rows match the filters
- show how many rows this exact run would return with the current
limitandoffset
Useful summary fields:
estimated_total_matchesestimated_rows_returned
This is the safest way to estimate export size and cost before running a larger property data job.
How Source Selection Works
- If you set
websites, the actor uses only those property websites. - If you set
countries, the actor searches websites stored for those countries. - If you set both, the actor keeps only websites that belong to the selected countries.
- If you set neither, the actor uses a lightweight default source.
Main Inputs
countriesThe easiest way to search property listings across multiple sources in one country.websitesBest when you want exact control over the property websites queried.marketsDefaults tofor-sale. Addto-rentwhen you want rental property listings too.areaQueryText match across suburb, city, location, address, and title.propertyTypeQueryExample values:apartment,house,villa,land,development.minPrice,maxPricePrice filters in the listing currency.minBedrooms,maxBedroomsminBathrooms,maxBathroomsminParkingSpaces,maxParkingSpacesminSizeM2,maxSizeM2currencyCodesUseful when searching across multiple countries.listingStatusExample values:active,sold,removed.seenSinceOnly return rows seen after a specific ISO timestamp.limitMaximum rows this run can export.offsetSkip matching rows for pagination.orderBySort by freshness or price.includeHistorySwitch from current listings to historical observations.
Current Vs History
includeHistory: false
- Returns the latest known row for each property listing.
- Best for live inventory exports, prospecting, market snapshots, and clean real estate datasets.
includeHistory: true
- Returns historical property listing observations.
- The same property can appear more than once across time.
- Best for price tracking, change analysis, monitoring, and backfills.
History rows also keep snapshot_json, while still promoting the main readable fields to the top level.
Output Fields
Typical current-mode fields:
source,source_sitecountry_code,country_name,currency_codelisting_id,url,titleproperty_type,marketlocation,suburb,city,addressprice,price_text,price_contextbedrooms,bathrooms,parking_spacesfloor_size_m2,erf_size_m2listing_status,last_seen_at
History mode also includes:
observed_atseen_countis_changechanged_fields_jsonsnapshot_json
Tips
If you get too many results:
- start with
estimateOnly: true - narrow with
countries,websites,markets,areaQuery, orpropertyTypeQuery - lower
limit - add price, size, bedroom, bathroom, or parking filters
- add
seenSince
If you get no results:
- try one website at a time
- remove the strictest filters first
- test with only
countries,markets, andlimit - remove
propertyTypeQueryand keep onlyareaQuery - check that your
marketmatches what you want