Private Property Scraper 🏡
Pricing
Pay per usage
Private Property Scraper 🏡
Automate South African property data extraction. Collect real estate listings with prices, descriptions, agent info & images. Perfect for market analysis, investment research & lead generation. Structured JSON/CSV output for seamless integration.
Pricing
Pay per usage
Rating
0.0
(0)
Developer

Shahid Irfan
Actor stats
0
Bookmarked
2
Total users
1
Monthly active users
5 days ago
Last modified
Categories
Share
Private Property Listings Scraper
Extract rich property listings data from PrivateProperty.co.za with pagination support and clean dataset output.
This actor is built for teams that need high-quality listing data for market analysis, monitoring, lead workflows, and reporting.
Features
- Rich listing output - Collect pricing, specs, sizes, rates, levies, media, and listing metadata.
- Search + detail enrichment - Capture broad search coverage and detailed per-listing fields.
- Pagination support - Crawl multiple search pages in one run.
- Clean dataset items - Empty, null, and placeholder values are omitted from output.
- Flexible inputs - Use one or many start URLs in a single run.
Use Cases
Market Monitoring
Track supply, pricing movement, and listing composition across regions and property types.
Investment Research
Compare bedroom counts, floor sizes, land sizes, levies, and rates to identify value opportunities.
Lead and CRM Enrichment
Build structured listing datasets with location, media, and contact-related information.
Portfolio Intelligence
Run on a schedule and analyze new inventory trends over time.
Input Parameters
| Parameter | Type | Required | Default | Description |
|---|---|---|---|---|
startUrls | Array | No | Prefilled | PrivateProperty search URLs to scrape |
results_wanted | Integer | No | 20 | Maximum number of listings to save |
max_pages | Integer | No | 10 | Maximum search pages to process per start URL |
collectDetails | Boolean | No | true | Enrich listings with detailed listing-page fields |
proxyConfiguration | Object | No | Apify Proxy enabled | Proxy settings for run reliability |
Output Data
Each dataset item includes available fields only (no null/empty placeholders):
| Field | Type | Description |
|---|---|---|
listing_id | String | Listing reference ID |
listing_number | String | Listing number from listing details |
listing_numeric_id | Number | Numeric listing ID when available |
title | String | Listing title |
property_type | String | Normalized property type |
price | Number | Numeric listing price |
price_display | String | Human-readable listing price |
currency | String | Currency code |
bedrooms | Number | Bedroom count |
bathrooms | Number | Bathroom count |
parking_spaces | Number | Parking spaces count |
garages | Number | Garage count |
location | String | Listing location |
address | String | Street address when available |
description_headline | String | Description headline |
description | String | Full property description |
main_features | Object | Main features map |
property_details | Object | Property details map |
property_features | Object | Property features map |
floor_size_display | String | Display floor size |
floor_size_sqm | Number | Floor size in sqm |
land_size_display | String | Display land size |
land_size_sqm | Number | Land size in sqm |
erf_size_display | String | Display erf size |
erf_size_sqm | Number | Erf size in sqm |
levies_display | String | Display levies value |
levies | Number | Numeric levies |
rates_taxes_display | String | Display rates/taxes value |
rates_taxes | Number | Numeric rates/taxes |
main_image | String | Primary listing image URL |
gallery_images | Array | Listing gallery image URLs |
floor_plans | Array | Floor plan URLs |
map_coordinates | Object | Latitude and longitude |
video_tour_url | String | Video tour URL |
virtual_tour_url | String | Virtual tour URL |
contacts | Array | Listing contact records |
agency | Object | Agency details |
calculator | Object | Mortgage calculator metadata |
quality_score_info | Object | Listing quality score payload |
back_link_url | String | Source back link URL when available |
source_search_page | Number | Source search page number |
source_search_url | String | Source search URL |
url | String | Listing URL |
fetched_via | String | Extraction mode label |
Usage Examples
Basic Run
{"startUrls": [{ "url": "https://www.privateproperty.co.za/for-sale/south-africa/1" }],"results_wanted": 20,"max_pages": 3,"collectDetails": true}
Higher Volume Run
{"startUrls": [{ "url": "https://www.privateproperty.co.za/for-sale/south-africa/1" }],"results_wanted": 100,"max_pages": 10,"collectDetails": true}
Multiple Search URLs
{"startUrls": [{ "url": "https://www.privateproperty.co.za/for-sale/south-africa/1" },{ "url": "https://www.privateproperty.co.za/for-sale/gauteng/1" }],"results_wanted": 200,"max_pages": 10,"proxyConfiguration": {"useApifyProxy": true,"apifyProxyGroups": ["RESIDENTIAL"]}}
Sample Output
{"listing_id": "T5398104","listing_number": "T5398104","listing_numeric_id": 11685844,"title": "3 Bedroom House in Mooinooi","property_type": "House","price": 1200000,"price_display": "R 1 200 000","currency": "ZAR","bedrooms": 3,"bathrooms": 2,"parking_spaces": 3,"location": "Mooinooi, Hartbeespoort, North West","description": "Exquisite Corner Family Home with Exceptional Features...","floor_size_sqm": 184,"levies_display": "R 490","main_image": "https://images.pp.co.za/listing/11685844/UUBw9fVazRLOTHQWsoyIY7/1600/1066/contain/jpegorpng","gallery_images": ["https://images.pp.co.za/listing/11685844/UUBw9fVazRLOTHQWsoyIY7/1600/1066/contain/jpegorpng"],"url": "https://www.privateproperty.co.za/for-sale/north-west/north-west-eastern-bojanala/hartbeespoort/mooinooi/T5398104","source_search_page": 1,"source_search_url": "https://www.privateproperty.co.za/for-sale/south-africa/1","fetched_via": "server_variables_bundle_params+html_fallback"}
Tips for Best Results
Start With Focused URLs
- Use location- or category-specific search URLs for better targeting.
- Validate URL output with a 20-result run before scaling.
Scale Gradually
- Start with
results_wanted: 20. - Increase to 100+ after validating data quality in your target region.
Use Proxy Configuration
- Keep Apify Proxy enabled for stronger run stability.
- For larger runs, use residential proxy groups.
Integrations
Connect your dataset with:
- Google Sheets - Reporting and trend tracking
- Airtable - Searchable listing databases
- Make - Automated workflows
- Zapier - Trigger downstream automations
- Webhooks - Push data into your own systems
Export Formats
- JSON - API and engineering workflows
- CSV - Spreadsheet workflows
- Excel - Business reporting
Frequently Asked Questions
Can I scrape multiple pages?
Yes. Use max_pages to control how many search result pages are processed.
Can I collect only specific categories or areas?
Yes. Add the exact search URLs you want in startUrls.
Why is a field missing on some records?
Some listings do not publish every detail. The actor omits unavailable values rather than returning null or empty placeholders.
Can I run this actor on a schedule?
Yes. Schedule recurring runs in Apify and process the output dataset automatically.
Is this output suitable for BI tools?
Yes. The dataset is structured and exportable to JSON, CSV, and Excel formats.
Support
For issues or feature requests, use the actor issue tracker in your project workspace.
Legal Notice
Use this actor responsibly and ensure your use complies with website terms and applicable laws.