Property24 Real Estate Scraper (South Africa) avatar

Property24 Real Estate Scraper (South Africa)

Pricing

from $0.84 / 1,000 results

Go to Apify Store
Property24 Real Estate Scraper (South Africa)

Property24 Real Estate Scraper (South Africa)

Scrapes property listings from Property24 — South Africa's #1 property portal. Returns price, location, bedrooms, bathrooms, parking, floor size, erf size, rates and levies, agent contact, GPS coordinates and full descriptions for any search you paste in.

Pricing

from $0.84 / 1,000 results

Rating

0.0

(0)

Developer

Ibnu Adzim

Ibnu Adzim

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

8 hours ago

Last modified

Share

Scrapes property listings from Property24 — South Africa's #1 property portal.

Public data only. No login, no cookies, no browser. No bot challenge of any kind — 5 of 5 TLS profiles returned clean 200s on search, detail, and even a bogus area path (which answers a clean 404, not a challenge).

The one thing you need to know before using this

You paste a search URL — you don't build one. Property24 search URLs end in an opaque numeric area id (/for-sale/cape-town/western-cape/432) that Property24 assigns per suburb/city. A wrong guess does not error — it can silently resolve to a completely different place with a healthy HTTP 200 (a guessed id for "durban" landed on Himeville, ~150 km away, with no error of any kind). So this actor takes full search-result URLs, not place names: browse to any search on property24.com (city, suburb, price range, bedrooms — whatever filters you want) and paste the resulting URL in.

What you get

Three record types share one dataset, told apart by recordType.

PROPERTY — one row per listing

List rows carry price, currency, suburb, street address, bedrooms, bathrooms, parking spaces, floor size, a description excerpt and the main image — parsed from Property24's own Schema.org microdata on the search page.

With Fetch full property details on (the default), each row also gets: propertyDetails (Property24's Schema.org RealEstateListing JSON-LD, verbatim — full description, exact GPS coordinates, listing agent and agency), plus erfSize, ratesAndTaxes, levies and listingDate — four fields that exist only as plain HTML on the detail page, in neither the list tile nor the JSON-LD block.

SEARCH_SUMMARY — one row per search URL

How many pages were fetched and how many properties came back.

ERROR — one row per input that could not be processed

Every input maps to at least one row, so nothing disappears silently.

Input

FieldWhat it does
Search URLsfull property24.com/for-sale/... URLs, copied from the site — one crawl each
Max properties per search URL0 = unlimited (pagination here is honest — see below)
Fetch full property detailsJSON-LD + erf size/rates/levies/date via one extra request per property
Min interval between requeststhe speed control — 0.4s default

Example

{
"searchUrls": [
"https://www.property24.com/for-sale/cape-town/western-cape/432",
"https://www.property24.com/for-sale/johannesburg/gauteng/9"
],
"maxItems": 200,
"includePropertyDetails": true
}

Notes on reliability

  • No WAF. All surfaces answered 200 on chrome124, chrome120, safari17_0, chrome99_android and firefox133chrome99_android was checked specifically for the mobile-document trap seen on other targets in this portfolio and does not trigger it here (identical markup).
  • Pagination is honest — unusually so for this portfolio. Page 1 and page 2 share zero listing ids (genuinely different results), and past the real last page Property24 answers HTTP 200 with a normal document but zero tiles. It does not clamp back to page 1 the way some other portals in this portfolio do, so maxItems: 0 (unlimited) safely walks every page a search has.
  • Speed is controlled by request rate, not concurrency, same design as the other actors in this portfolio — maxConcurrency absorbs latency variance, minRequestInterval is the actual throttle.
  • Residential proxy pinned to South Africa is the cloud default.

Known limits

  • For-sale only. A to-let (rental) path was tried at the same area id and returned a clean 404 — rentals appear to use a separate, equally opaque id space that was not mapped in this recon pass.
  • No standalone geocoding of area ids. There is no public directory of every suburb's numeric id, so this actor cannot accept "Sandton" and find its id itself — see "the one thing you need to know" above.