realestate.com.au Scraper — AU Sold Comps, Postcode & Monitor
Pricing
from $0.99 / 1,000 listings
realestate.com.au Scraper — AU Sold Comps, Postcode & Monitor
Scrape realestate.com.au sold comps, for-sale, and rental listings by postcode or suburb. Get sold price, sold date, beds, land m², optional sale history, GPS, photos, and agent phone. Monitor new sales. realestate.com.au API alternative for Python, Node.js, and MCP.
Pricing
from $0.99 / 1,000 listings
Rating
0.0
(0)
Developer
Andrej Kiva
Maintained by CommunityActor stats
0
Bookmarked
10
Total users
5
Monthly active users
14 hours ago
Last modified
Categories
Share
Disclaimer: Unofficial tool — not affiliated with, sponsored by, or endorsed by realestate.com.au / REA Group or its affiliates. Data is read from publicly accessible pages only. No login. You are responsible for complying with applicable law (including GDPR where personal data appears) and the site’s terms. No warranty on accuracy or availability. Provided for informational and research use.
Contact-data controls: Phone/WhatsApp/fax fields are omitted from the dataset by default. Enable
includePhonesonly for numbers already published on public pages and only when you have a lawful basis. Any phone-field examples below assume that explicit opt-in.
realestate.com.au scraper for AU sold comps, for-sale, and for-rent listings — export sold price, sold date, beds, baths, land m², $/m², postcode, GPS, photos, sale history, and listing-agent phone into JSON/CSV. Use it as a realestate.com.au API alternative from Python, Node.js, cURL, or Apify MCP / AI assistants: paste postcodes, a suburb, or any search / /property- URL.
Best for: postcode-farm sold comps, CMA worksheets, sale-history timelines, new-sale monitors, and AU coverage next to the EU/UK/US portal Actors — not another buy-inventory dump.
| Actor | Role |
|---|---|
| realestate.com.au Scraper ◄── you are here | AU sold comps, postcode, for-sale & rent |
| Subito Real Estate Scraper | Italy property: sale, rent, private vs agency |
| Rightmove Scraper | UK Rightmove listings (sale & rent) |
| ImmobilienScout24 Scraper | Germany rent and buy |
| Yad2 Scraper | Israel Yad2 listings |
| Airbnb Occupancy Scraper | STR calendars vs long-term comps |
When to use this Actor
- Sold comps by postcode — Drop
2026,3000, or a farm list. Default status is sold, sorted by sold date, last 30 days. - CMA windows past six months — Set Sold within (days) to 90, 180, or 365. Search is date-sorted; the Actor stops once listings fall outside the window.
- Exact suburb, not neighbours — Surrounding suburbs are off by default (REA otherwise blends in listings from across the water).
- For-sale or rental pull — Switch listing status, or paste a
/buy/or/rent/search URL with type / beds / price already in the path. - Scheduled monitoring — Re-run the same postcodes and emit only new or status/price-changed rows (new sold this week).
- One listing — Paste a
/sold/property-house-nsw-bondi-151817252URL to fetch that property. - Sale history — Turn on Include price history for prior sold / listed / leased / withdrawn events on the public address page.
When not to use this Actor
- Nationwide agent directories, email enrichment, or Domain.com.au — This version is listing comps on realestate.com.au only.
- Authenticated REA feeds — No login, saved searches, or contact-unlock walls.
Key features
- HTTP first, then a direct browser — Tries curl_cffi on the first request only; later pages skip it. Patched Chromium then runs with no proxy. Default memory is 2048 MB: the browser runs 2–3× faster than at 1024 MB for about the same cost.
- Postcode-first builder —
postcodes[]is the primary input; suburbs and Start URLs are optional. - Sold recency you control — 1–730 days via sold date, default 30, sort sold-date desc.
- Search + listing URLs — Path filters (
property-house,with-3-bedrooms,between-min-max) are kept. - Price-band split — Buy and rent searches split on page 1 when a query hits the ~2,000-result / 80-page window. Sold searches with a date window page the date-sorted results first, and split only if that window is still open on the last page.
- Monitor mode — Seen listing IDs plus status, price, and sold date are stored in the named key-value store
realestate-com-au-monitor(override withmonitorStoreName), so a scheduled run remembers the previous one. SetresetMonitorStateto drop that search's baseline and start over. - AU residential only if blocked — The actor tries a direct connection first and switches to AU residential automatically if the browser is blocked, then stays on that proxy. Turn off Try without proxy first to use the proxy from the start. Set
useApifyProxyto false to stay direct. Browser warmup only runs after HTTP is blocked.
Input
| Field | What it does |
|---|---|
| Postcodes | Primary builder. One search per 4-digit AU postcode with the filters below. |
| Suburbs / locations | Bondi, NSW 2026 style fallback when you do not have postcodes. |
| Start URLs | Search (/sold/, /buy/, /rent/) or listing (/property-) links. |
| Listing status | sold (default), for_sale, or for_rent. Builder only. |
| Sold within (days) | Recency window for sold searches (1–730). Default 30. |
| Property types / price / beds / baths / land | Optional filters. Price is sold price, or list/weekly rent. |
| Include surrounding suburbs | Off by default. Surrounding rows are flagged isSurrounding. |
| Max listings | Cap per run across all postcodes and URLs. |
| Scrape full details | Off by default. Adds agent/agency phone and GPS. When the listing page is fetched and merged, full details are billed as a separate "Listing details" event. |
| Include price history | Off by default. Attaches prior sold/listed/leased events from the address page. |
| Monitor mode | Save only new or changed listings on scheduled re-runs. State lives in monitorStoreName (default realestate-com-au-monitor); resetMonitorState clears this search. |
| Try without proxy first | On by default. The browser starts with no proxy and switches to AU residential if blocked. |
| Proxy | AU residential fallback. Not required up front. Set useApifyProxy to false to stay direct. |
Full details and price history are free until 15 December 2026.
{"postcodes": ["2026"],"listingStatus": "sold","soldWithinDays": 30,"maxItems": 50,"includeDetails": false,"includePriceHistory": false,"monitorMode": false}
Output
One dataset row per property.
| Field | Meaning |
|---|---|
id / listingId | realestate.com.au listing id |
url | Canonical listing URL |
status | sold, for_sale, or for_rent |
soldPrice / soldDate | Numeric AUD close price and ISO date when sold |
listPrice / priceDisplay | List or weekly rent, plus the portal display string |
pricePerSqm | AUD per land or building m² |
beds / baths / parking / landSqm / buildingSqm | Size |
address / suburb / state / postcode / latitude / longitude | Location (GPS on detail fetch) |
agentName / agentPhone / agencyName / agencyPhone | Agent as shown publicly (phones on detail fetch) |
priceHistory | Prior sold / listed / leased / withdrawn events (when history is on) |
photos / floorplans / description | Media and copy |
isSurrounding | True when REA blended a neighbouring suburb |
scrapedAt | UTC timestamp |
{"id": "151817252","url": "https://www.realestate.com.au/sold/property-house-nsw-bondi-151817252","status": "sold","soldPrice": 2750000,"soldDate": "2026-08-25","priceDisplay": "$2,750,000","propertyType": "house","beds": 3,"baths": 2,"parking": 1,"postcode": "2026","suburb": "Bondi","state": "NSW","agentName": "James Dunn","agencyName": "Sydney Sotheby's International Realty - Double Bay"}
Use cases
- Postcode CMA — Pull 30- or 90-day solds for a farm, then chart $/m² by beds.
- New-sale alerts — Schedule daily with monitor mode; only newly sold rows land in the dataset.
- Investor screens — For-sale list in the same postcode next to recent solds for spread vs comps.
- AU vs UK pipeline — Same field style as Rightmove / Idealista / ImmobilienScout24 for a multi-country warehouse.
Integration examples
Replace YOUR_TOKEN with your Apify API token. Actor name: crawloop/realestate-com-au-scraper.
Node.js
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_TOKEN' });const run = await client.actor('crawloop/realestate-com-au-scraper').call({postcodes: ['2026'],listingStatus: 'sold',soldWithinDays: 30,maxItems: 25,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items.slice(0, 5));
Python
from apify_client import ApifyClientclient = ApifyClient("YOUR_TOKEN")run = client.actor("crawloop/realestate-com-au-scraper").call(run_input={"postcodes": ["2026"],"listingStatus": "sold","soldWithinDays": 30,"maxItems": 25,})items = client.dataset(run["defaultDatasetId"]).list_items().itemsprint(items[:5])
cURL
curl -X POST "https://api.apify.com/v2/acts/crawloop~realestate-com-au-scraper/runs?token=$APIFY_TOKEN" \-H "Content-Type: application/json" \-d '{"postcodes": ["2026"],"listingStatus": "sold","soldWithinDays": 30,"maxItems": 25}'
MCP and AI assistants
Use this Actor from AI tools via Apify MCP.
Connect your Apify account, then call this Actor by its Store ID / name (crawloop/realestate-com-au-scraper).
Example prompts:
- "Run realestate.com.au Scraper for postcode 2026 sold last 30 days with price history, max 10, and return address, soldPrice, soldDate, priceHistory as JSON"
- "Scrape realestate.com.au 3000 for-sale houses and summarize median list price vs beds"
- "Pull Bondi NSW 2026 sold comps with realestate.com.au Scraper, then compare the field set with Rightmove Scraper for an AU vs UK pipeline"
Suite next step
After AU sold comps, add UK sale/rent coverage with Rightmove Scraper, or Germany rent and buy with ImmobilienScout24 Scraper.
FAQ
Is this an official realestate.com.au API?
No. It is an unofficial realestate.com.au scraper / API alternative that reads the public listing search payload. It is not affiliated with REA Group. You can call it from Python, Node.js, cURL, or MCP.
How do I scrape realestate.com.au sold listings by postcode with Python or Node.js?
Pass postcodes plus listingStatus: "sold" (the default). Use the snippets above. Add soldWithinDays for the CMA window and monitorMode on a schedule for new closed sales.
How far back do sold comps go?
Public sold search is date-sorted and often spans years, but REA caps a single query at about 80 pages (~2,000 rows). Sold date windows are read from that date-sorted list first; the Actor splits by price band only if the window is still open on the last page. Buy and rent split as soon as page 1 hits the cap. Coverage still depends on what the portal exposes for that postcode.
Why is agent phone empty on some rows?
Sold search cards show agent name and agency, not the mobile. Turn on Scrape full property details for agentPhone, agencyPhone, and GPS.
Are full listing details billed separately?
Yes. With Scrape full property details on, each saved row whose listing page was fetched and merged is billed as a separate "Listing details" event in addition to the listing. There is no "Listing details" charge when details are off or the detail fetch fails. Full details and price history are free until 15 December 2026.
How do I get prior sale prices for the same address?
Turn on Include price history. The Actor fetches the public /property/ address page and attaches sold, listed, leased, and withdrawn events. History is omitted when the page has no timeline. Full details and price history are free until 15 December 2026.
Do I need a proxy?
No. The actor tries a direct connection first and switches to AU RESIDENTIAL automatically if the browser is blocked, then keeps that proxy for the rest of the run. Leave the default proxy in place so the fallback can run. Set useApifyProxy to false to stay direct, or turn off Try without proxy first to use the proxy from the start. Default memory is 2048 MB.
Related Actors
| Actor | Role |
|---|---|
| Subito Real Estate Scraper | Italy property: sale, rent, private vs agency |
| Rightmove Scraper | UK sale and rent listings |
| ImmobilienScout24 Scraper | Germany rent and buy |
| Yad2 Scraper | Israel classifieds |
| Airbnb Occupancy Scraper | STR occupancy calendars |