Property24 Scraper
Pricing
from $3.00 / 1,000 results
Property24 Scraper
Scrape Property24.com - South Africa's largest property portal. Search for-sale and to-rent listings by province, property type, price, and bedrooms/bathrooms, or fetch full listing detail pages: description, agent/agency, exact address, coordinates, levies/rates, and room-by-room features.
Pricing
from $3.00 / 1,000 results
Rating
0.0
(0)
Developer
Crawler Bros
Maintained by CommunityActor stats
0
Bookmarked
2
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Scrape South Africa's largest property portal, Property24 — for-sale and to-rent listings across every province, property type (house, apartment, townhouse, vacant land, farm, commercial, industrial), price range, and bedroom/bathroom count. Fetch search results in bulk, or pull full listing detail pages: description, agent/agency contact, exact address, coordinates, levies/rates, and room-by-room features. No login, no cookies, no paid API key.
What this actor does
- Two modes:
search(browse/filter listings) andbyUrls(exact lookup by listing URL) - All 9 South African provinces — Gauteng, Western Cape, KwaZulu-Natal, Eastern Cape, Free State, Limpopo, Mpumalanga, North West, Northern Cape
- 8 property types — house, apartment/flat, townhouse, vacant land/plot, farm, commercial, industrial, or any
- For sale or to rent
- Bank-assisted sales & repossessions — search Property24's dedicated Repossessions category instead of the regular market
- Filters: price range, minimum bedrooms, minimum bathrooms
- Optional deep data: full description, agent & agency contact, exact street address, GPS coordinates, levies/rates/price-per-m², and every room-by-room feature (bedrooms, bathrooms, kitchen, external features, building info, security)
- Empty fields are omitted — you only ever see fields with real data
Output per listing
Always present (search mode):
listingId,areaIdtransactionType,propertyTypesuburb,city,provincetitleText,price(orpriceOnApplication/pricePerSqmfor commercial listings quoted per m² instead of a total)bedrooms,bathrooms,parkingSpaces,floorSizeSqmimageUrl,listingUrlisBankRepossession(only whenbankRepossessionsOnly: true)recordType: "propertyListing",scrapedAt
With includeFullDetails: true or mode: byUrls, additionally:
title,description,datePosted,currencyagentName,agentProfileUrl,agencyName,agencyUrl,agencyLogoUrlstreetAddress,latitude,longitude,countryoverview— listing number, type of property, listing date, floor size, price/m², levies, rates & taxes, transfer duty, pets allowed, floor number (fields vary by property type)rooms— bedroom/bathroom/kitchen/lounge details as described by the agentexternalFeatures— parking detailsbuilding— number of floors, building-level infootherFeatures— security, special features, internet access, generator, wheelchair accessimages[]— full gallery of listing photoslistingNumber
Input
| Field | Type | Default | Description |
|---|---|---|---|
mode | string | search | search / byUrls |
transactionType | string | forSale | forSale / toRent |
propertyType | string | any | any / house / apartment / townhouse / vacantLand / farm / commercial / industrial |
province | string | gauteng | Any of the 9 SA provinces |
priceMin / priceMax | int | – | Price range in ZAR |
bedroomsMin / bathroomsMin | int | – | Minimum room counts |
bankRepossessionsOnly | bool | false | Search Property24's Repossessions category instead of the regular market (forces transactionType to forSale) |
sortBy | string | default | default / priceLowToHigh / priceHighToLow / mostBedrooms |
listingUrls | array | – | Property24 listing URLs (mode=byUrls) |
includeFullDetails | bool | false | Fetch full detail page per listing (1 extra request each) |
maxItems | int | 20 | Hard cap (1–500) |
Example: 3+ bedroom houses for sale in Western Cape under R3.5M
{"mode": "search","transactionType": "forSale","propertyType": "house","province": "westernCape","priceMax": 3500000,"bedroomsMin": 3,"includeFullDetails": true,"maxItems": 50}
Example: apartments to rent in Gauteng, cheapest first
{"mode": "search","transactionType": "toRent","propertyType": "apartment","province": "gauteng","sortBy": "priceLowToHigh","maxItems": 30}
Example: full details for specific listings
{"mode": "byUrls","listingUrls": ["https://www.property24.com/for-sale/blyde-riverwalk-estate/pretoria/gauteng/33014/116170024"]}
Example: bank-repossessed apartments in Gauteng
{"mode": "search","bankRepossessionsOnly": true,"propertyType": "apartment","province": "gauteng","maxItems": 30}
Limitations
- Price/bedroom/bathroom filters are applied by the actor after fetching listings (not sent as query parameters to Property24) — this proved more reliable than Property24's own filtered-search URLs, which intermittently reject automated traffic even when the plain category page succeeds. The actor automatically retries with backoff, escalates through Apify Proxy, and falls back to a TLS-impersonating client, so a temporary block on one page usually just means that batch of results arrives on the next attempt rather than failing outright.
- Property24's servers occasionally return a transient error on a specific page of results even after all retry tiers. When this happens the actor keeps whatever it already gathered and stops early rather than hanging or returning broken data — you may see slightly fewer than
maxItemsrecords on an unlucky run. Re-running (or increasingmaxItems) recovers the rest. imageUrlvalues are served by images.prop24.com, which returns a500error forHEADrequests but200 image/jpegfor normalGETrequests (the same way a browser or<img>tag loads them) — this is a CDN quirk, not a broken link.
Use cases
- Real estate market research — track average prices, price/m², and inventory by province and property type
- Investment analysis — filter for yield-friendly price/bedroom combinations
- Relocation / home search — build a shortlist of matching listings with full contact info
- Lead generation — collect agent and agency contact details from active listings
- Portfolio monitoring — re-run
byUrlson saved listings to track price changes over time
FAQ
Is this official Property24 data? Yes — it's parsed directly from Property24's own listing and search-result pages, including their structured RealEstateListing schema.org markup.
Do I need an account or API key? No. The actor requires no login, cookies, or user-supplied credentials.
Why do some listings show priceOnApplication instead of a price? Some sellers/agents list "Price on Application" instead of a fixed price — the actor reports this instead of guessing a number.
Why do some commercial listings show pricePerSqm instead of price? Some commercial (retail/office/industrial) listings on Property24 quote a rate per square metre (e.g. "R452 per m²") instead of a single total price — often because the listing covers multiple units of different sizes. The actor reports this as pricePerSqm rather than mislabeling the per-m² rate as the total price.
Why do overview/rooms/externalFeatures fields vary between listings? Property24 lets agents fill in different fields per property type (e.g. "Erf Size" for houses, "Levies" for apartments). The actor passes through whatever the agent actually filled in — no invented values.
What's the difference between search and byUrls? search browses/filters by province, property type, and price/bedrooms. byUrls does an exact lookup for listing URLs you already have (e.g. from a previous search run, or shared by a colleague) and always includes full details.
What is bankRepossessionsOnly? Property24 runs a dedicated "Repossessions" category for properties banks are selling after repossession — typically priced below market. Setting bankRepossessionsOnly: true searches that category instead of the regular market (note: unlike the regular province/type category pages, /repossessions is a single nationwide feed, so province/property-type filters are applied client-side rather than via a scoped URL); listings themselves are otherwise normal for-sale properties (same detail pages, same fields), just tagged isBankRepossession: true.
How often does this data change? Property24 listings, prices, and availability are live — the actor always fetches current data, no caching.