Private Property Scraper - South Africa Real Estate Listings avatar

Private Property Scraper - South Africa Real Estate Listings

Pricing

from $0.70 / 1,000 results

Go to Apify Store
Private Property Scraper - South Africa Real Estate Listings

Private Property Scraper - South Africa Real Estate Listings

Scrape privateproperty.co.za for South African real estate homes, rentals, farms, commercial listings, and developments with prices, rooms, sizes, amenities, security, photos, links, and advertiser details. Export JSON, CSV, or Excel datasets and connect property research to API or MCP workflows

Pricing

from $0.70 / 1,000 results

Rating

0.0

(0)

Developer

Iñigo Garcia Olaizola

Iñigo Garcia Olaizola

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Private Property Scraper — South Africa Listings

Find and organize property listings from Private Property for sale and rent. Collect prices, locations, property details, photos, listing links, features, status information, and contact-ready advertiser details—including available phone numbers—for market research, lead generation, investment analysis, and property monitoring.

🤖 What does Private Property Scraper do?

Private Property Scraper helps you discover South African real estate listings in a clean, export-ready dataset. Search by city, suburb, or area and narrow results by price, rooms, property type, size, amenities, security, and listing status.

  • For-sale listings — homes, apartments, townhouses, land, farms, commercial properties, and developments.
  • Rental listings — residential, commercial, and farm properties with rental price-period options.
  • Property research data — prices, addresses, floor and land areas, photos, descriptions, listing status, and advertiser information.
  • Contact-ready details — enable detailed results to capture available advertiser mobile, work, and home numbers alongside the matching contact.
  • Flexible exports — download JSON, CSV, or Excel files, or connect your results to an API or MCP workflow.

Great for: property market research, real-estate lead generation, investment shortlists, agency prospecting, and price monitoring.

SEO keywords: Private Property scraper, privateproperty.co.za scraper, South Africa real estate data, property listing scraper, rental listings scraper, real estate API alternative, Apify actor.

💡 Why use Private Property Scraper?

  • 📈 Track local markets — compare asking prices and property supply across cities and suburbs.
  • 🎯 Build prospect lists — find relevant listings with contact names and available phone numbers for agency and broker workflows.
  • 🏠 Find investment opportunities — combine budgets, room counts, property types, and area requirements.
  • 🔎 Monitor changes — identify new, featured, exclusive, on-show, or price-reduced listings.
  • 📊 Create reusable datasets — send structured property data to spreadsheets, dashboards, CRMs, and research tools.

🚀 How to use

  1. Open Private Property Scraper in Apify Store and click Try for free.
  2. Keep the prefilled Cape Town location or enter a city, suburb, or area.
  3. Choose For sale or For rent, then add the filters you need.
  4. Set maxItems and click Start.
  5. Review listings in the Dataset tab and download them as JSON, CSV, or Excel.

The default location is Cape Town, so the first run starts with a realistic local search. Use maxItems: 0 when you want all available matching listings.

💳 Pricing

Apify's Free plan includes monthly credits for testing and small collections. For larger market research projects, recurring monitoring, and high-volume exports, choose the Apify plan that fits your usage.

📝 Input parameters

All inputs are optional. The default search is for residential properties for sale in Cape Town.

ParameterTypeRequiredDescription
maxItemsIntegerNoMaximum listings to save. Use 0 for all available matching listings. Default: 100.
locationTextNoCity, suburb, or area name, such as Cape Town, Sandton, or Durban. Default: Cape Town.
listingTypesale · rentNoChoose For sale or For rent. Default: sale.
categoryresidential · commercial · farm · developmentNoBroad property category. development is available for sale searches. Default: residential.
minPriceInteger in ZARNoMinimum asking price. Use 0 for any price.
maxPriceInteger in ZARNoMaximum asking price. Use 0 for any price.
bedroomsIntegerNoMinimum bedrooms. Applies to residential and farm searches.
bathroomsIntegerNoMinimum bathrooms. Applies to residential and farm searches.
garagesIntegerNoMinimum garages. Applies to residential searches.
parkingsIntegerNoMinimum parking spaces. Applies to residential searches.
minFloorSizeInteger in m²NoMinimum indoor floor area.
maxFloorSizeInteger in m²NoMaximum indoor floor area.
minLandSizeInteger in m²NoMinimum land area.
maxLandSizeInteger in m²NoMaximum land area.
propertyTypesList of text valuesNoChoose from house, townhouse, apartment, vacant_land, garden_cottage, commercial, industrial, retail, office, hospitality, farm, smallholding, farm_with_house, farmland, agricultural_holding, commercial_farm, or game_farm.
amenitiesList of text valuesNoChoose from garden, patio_or_balcony, pets_allowed, pool, furnished, sea_view, staff_quarters, borehole, flatlet, or scenic_view.
securityFeaturesList of text valuesNoChoose from alarm, access_gate, electric_fencing, security_post, or intercom.
specialFeaturesList of text valuesNoFor sale: on_show or bank_sale. For rent: electricity_included or water_included.
sortByrelevance · newest · price · size · available_fromNoPrimary result ordering. available_from is for rental searches. Default: relevance.
sortOrderascending · descendingNoDirection of the selected ordering. Default: descending.
rentalPricePeriodmonthly · weekly · daily · per_square_metreNoPrice period for rental searches.
fetchDetailsBooleanNoAdd extra detail information under _details, including available advertiser phone numbers matched to their contacts. This takes longer and uses more resources. Default: false.

Example inputs

1️⃣ Residential homes for sale

{
"location": "Cape Town",
"listingType": "sale",
"category": "residential",
"maxItems": 50,
"minPrice": 1000000,
"maxPrice": 3500000,
"bedrooms": 3,
"amenities": ["garden", "pool"],
"securityFeatures": ["access_gate", "electric_fencing"],
"sortBy": "newest"
}

2️⃣ Furnished Johannesburg rentals

{
"location": "Johannesburg",
"listingType": "rent",
"category": "residential",
"maxItems": 100,
"maxPrice": 18000,
"bedrooms": 2,
"propertyTypes": ["apartment"],
"amenities": ["furnished", "pets_allowed"],
"specialFeatures": ["water_included"],
"rentalPricePeriod": "monthly",
"sortBy": "price",
"sortOrder": "ascending"
}

3️⃣ Commercial property research

{
"location": "Durban",
"listingType": "sale",
"category": "commercial",
"propertyTypes": ["office", "retail"],
"minFloorSize": 250,
"maxItems": 25,
"fetchDetails": true
}

📊 Output and results

Each dataset item is a property listing. The actor preserves the listing information available for that result and adds _details when fetchDetails is enabled and additional information is available.

Field reference

  • listingId (number) — Private Property listing identifier.
  • portalRef (text) — Listing reference shown by the advertiser.
  • propertyTitle (text) — Listing headline.
  • propertyTypeDescription (text) — Human-readable property type.
  • listingPrice (object) — Asking price and price-status information.
  • propertyAttributes (object) — Bedrooms, bathrooms, garages, floor area, and land area.
  • propertyAddress (text) — Property address when provided.
  • propertySuburbName (text) — Suburb or local area.
  • shareUrl (link) — Link to the listing.
  • mediaImageUrls (list) — Listing photo links.
  • propertyDescription (text) — Advertiser's property description.
  • listingAdvertiser (object) — Agency, office, and contact information when provided. With fetchDetails enabled, _details.listingAdvertiser.contacts includes available mobile, work, and home numbers matched to each contact.
  • listingStatuses (object) — New, on-show, and price-reduced status flags.
  • isFeaturedListing (boolean) — Whether the listing is featured.
  • isExclusiveListing (boolean) — Whether the listing is exclusive.
  • _details (object, optional) — Additional detail data when fetchDetails is enabled.

Example result

{
"listingId": 11998043,
"portalRef": "T5580025",
"propertyTitle": "13 Bedroom House",
"propertyTypeDescription": "House",
"listingPrice": {
"price": 8500000,
"isPoa": false,
"isOnAuction": false
},
"propertyAttributes": {
"beds": 13,
"baths": 10,
"garages": 3,
"floorArea": "735 m²",
"landArea": "1200 m²"
},
"propertySuburbName": "Baysville",
"mediaImageUrls": [
"https://images.pp.co.za/listing/11998043/example/600/450/contain/jpegorpng"
],
"shareUrl": "https://www.privateproperty.co.za/ld/T5580025",
"propertyDescription": "Spacious family home close to schools and local amenities.",
"listingAdvertiser": {
"contact": { "name": "Violet Omwansa" },
"office": { "officeName": "Chas Everitt East London" }
},
"listingStatuses": {
"isNew": true,
"isOnShow": false,
"isPriceReduced": false
},
"isFeaturedListing": true,
"isExclusiveListing": false,
"_details": {
"listingAdvertiser": {
"contacts": [
{
"id": 1812854,
"name": "Violet Omwansa",
"mobile": "082 555 0147",
"workNumber": "021 555 0198",
"homeNumber": ""
}
]
}
}
}

🧭 Tips and common recipes

  • Focused suburb search: use a suburb such as Sandton or Sea Point in location.
  • Broad city search: use a city such as Cape Town or Johannesburg for more coverage.
  • Investor shortlist: combine minPrice, maxPrice, bedrooms, bathrooms, and size limits.
  • New listing monitoring: set sortBy to newest and run the actor on a schedule.
  • Rental comparison: set listingType to rent, choose rentalPricePeriod, and add rental inclusions.
  • Contact-ready records: enable fetchDetails to include available advertiser phone numbers beside the matching contact.
  • More complete records: enable fetchDetails when the extra information is worth the additional time.

⚙️ Best practices

  • Start with a small maxItems value while checking that your location and filters return the right inventory.
  • Use maxItems: 0 for an unlimited collection, subject to any account or usage limits that apply to your run.
  • Keep price and area ranges realistic for the selected location to avoid unnecessarily broad collections.
  • Some filters apply only to particular property categories or sale/rent searches; incompatible choices are skipped.
  • Treat advertiser contact information as business data and store it securely.
  • Respect Private Property's terms, policies, and any applicable access restrictions.
  • Use listing and advertiser information responsibly and only for lawful purposes.
  • Follow privacy requirements such as GDPR or POPIA when handling contact information.
  • Avoid unsolicited communications, misleading outreach, or republishing information in a way that harms people or businesses.
  • Use reasonable collection volumes and retain exported data only as long as needed.

This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by Private Property. Private Property and related trademarks belong to their respective owners.

❓ FAQ

Can I collect both sale and rental listings?

Yes. Set listingType to sale or rent. Rental searches can also use a rental price period and rental-specific inclusions.

What happens when I leave location empty?

A location is required for a useful search. The Store input is prefilled with Cape Town; enter a city, suburb, or area before starting a run if you remove that value.

Does maxItems: 0 return everything?

It requests all available matching listings, subject to the inventory returned and any account or usage limits that apply to the run.

Why did a filter not change my results?

Some choices are specific to sale, rent, or a property category. Check that the filter matches the selected listingType and category, and test with a small result limit first.

When should I use fetchDetails?

Use it when you need additional listing information beyond the search result. It adds extra work for each listing, so it is best for targeted collections.

Does detailed output include advertiser phone numbers?

Yes. When available, mobile, work, and home numbers appear beside the matching advertiser contact in _details.listingAdvertiser.contacts. Listings without disclosed numbers simply keep their available contact details.

Can I export the results for another tool?

Yes. Download JSON, CSV, or Excel from the Dataset tab, or connect the dataset through your preferred API or MCP workflow.

🛟 Support

Need a custom field or export workflow? Open an issue or contact igolaizola.com/#contact.