Realestate.com.au Scraper - Australia Property
Pricing
from $1.65 / 1,000 listing scrapeds
Realestate.com.au Scraper - Australia Property
Scrape Australia property listings from realestate.com.au search URLs: price, bedrooms, bathrooms, parking, land size, full address, agency and agents, inspections, auctions and images. Buy, rent and sold channels. Bypasses anti-bot protection. Paste search URLs or import a file.
Pricing
from $1.65 / 1,000 listing scrapeds
Rating
0.0
(0)
Developer
Scrape Sage
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
a day ago
Last modified
Categories
Share
Realestate.com.au Scraper - Australia Property Listings
Disclaimer: This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by REA Group Ltd or any of its subsidiaries. All trademarks mentioned are the property of their respective owners. "realestate.com.au" is referenced only to describe the publicly available website this Actor collects data from.
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by realestate.com.au or REA Group. All trademarks mentioned are the property of their respective owners.
Scrape property listings from realestate.com.au, Australia's #1 property portal, straight into JSON, CSV or Excel. Paste any realestate.com.au search URL - buy, rent or sold, any suburb, region or filter set
- and get clean rows with price, bedrooms, bathrooms, parking, land size, full address, agency and agents, inspection and auction times, and photos.
realestate.com.au sits behind enterprise anti-bot protection that blocks ordinary HTTP scrapers and ordinary headless browsers. This actor handles that for you: no proxy setup, no browser fingerprinting, no captcha service, and no API key on your side. You paste a search URL and get rows.
What you get per listing
| Field | Type | Meaning |
|---|---|---|
id / url | string | Listing id and canonical realestate.com.au/property-... link |
channel | string | buy, rent or sold - matches the search you pasted |
title / fullAddress | string | Full street address, e.g. "3403/38 York Street, Sydney, NSW 2000" |
priceText | string | The price exactly as the agent published it: "$1,100,000 - $1,125,000", "$750 per week", "Auction", "Contact Agent" |
price, priceFrom, priceTo | number | Parsed numerics whenever the agent publishes numbers (ranges split for you) |
pricePeriod | string | week / month on rentals, null on sales |
propertyType | string | Apartment, House, Townhouse, Unit... as typed by the source |
bedrooms, bathrooms, parkingSpaces, studies | number | Real numeric feature counts (a true 0 stays 0) |
landSize / buildingSize (+ units) | number | Land and building sizes where the listing publishes them |
suburb, state, postcode, shortAddress | string | Address components for clean grouping and joins |
description | string | The listing description, HTML stripped |
agencyName, agencyId, agencyUrl, agencyLogo | string | The listing agency, with its canonical agency page |
agencyAvgRating, agencyTotalReviews | number | The agency's own review score and volume on the portal |
agents / agentName | array / string | Every listed agent with job title, plus the lead agent |
listingTier | string | REA's paid placement tier (premiere, feature...) - premium listings identified |
badge | string | Card badge when shown |
auctionDate | string | Auction time on auction listings |
nextInspection / inspectionCount | string / number | Next scheduled inspection and how many are booked |
dateSold | string | Sold date on sold-channel rows |
images / image / imageCount | - | Up to 10 photo URLs (800x600) |
hasFloorplan, hasVideo, has3DTour | boolean | Media flags |
matchType | string | exact for in-area results; surrounding rows (nearby-area suggestions) are labelled so you can filter them |
type, sourceUrl, scrapedAt | - | Record type (listing), originating search URL, fetch timestamp |
Field coverage, measured on a real unlocked Sydney buy page (25 listings): url, channel, priceText,
propertyType, bedrooms, bathrooms, parkingSpaces, suburb, state, postcode, description,
agencyName, agencyUrl, agencyAvgRating, agencyTotalReviews, agents, listingTier, images were
present on 25 of 25; fullAddress on 24 of 25 (one address-suppressed listing). Numeric price parsed
on 48% - the rest are "Contact Agent" / auction listings where the agent publishes no number (priceText
still tells you exactly what the card says). landSize fills mainly on houses (CBD apartments carry none), and
auctionDate / nextInspection / dateSold fill only on listings that actually have an auction, a booked
inspection, or a sale - that is the source's behaviour, not an extraction gap.
Example output
One real row, exactly as written to the dataset (truncated to the highlights):
{"type": "listing","id": "150113016","url": "https://www.realestate.com.au/property-apartment-nsw-sydney-150113016","channel": "buy","matchType": "exact","title": "3403/38 York Street, Sydney, NSW 2000","priceText": "$1,100,000 - $1,125,000","price": 1100000,"priceFrom": 1100000,"priceTo": 1125000,"propertyType": "Apartment","bedrooms": 1,"bathrooms": 1,"parkingSpaces": 0,"suburb": "Sydney","state": "NSW","postcode": "2000","agencyName": "Sydney Cove Property - The Rocks","agencyUrl": "https://www.realestate.com.au/agency/sydney-cove-property-the-rocks-PUHSYD","agencyAvgRating": 5,"agencyTotalReviews": 185,"agentName": "Monique Lavers","agents": [{ "name": "Monique Lavers", "jobTitle": "Executive Sales" }, { "name": "Bryn Fowler", "jobTitle": "Executive Sales" }],"listingTier": "premiere","image": "https://i2.au.reastatic.net/800x600/d1d664db.../image.jpg","imageCount": 10,"hasFloorplan": true,"sourceUrl": "https://www.realestate.com.au/buy/in-sydney,+nsw/list-1","scrapedAt": "2026-08-26T18:04:21.007Z"}
Input
{"startUrls": ["https://www.realestate.com.au/buy/in-sydney,+nsw/list-1"],"maxPagesPerUrl": 5,"maxItems": 1000}
- realestate.com.au search URLs - build the search you want on realestate.com.au (suburb, price, beds, property type, any filter), then paste the URL from the address bar. One per line, as many as you want. Every filter is carried through, because the actor scrapes exactly the URL you gave it.
- Import URLs from a file - paste a whole list, or give a single link to a public
.txt/.csv, a Google Sheet or Drive link, or an Apify key-value-store record. Blank lines and#comments are ignored. A file that cannot be read tells you so and charges nothing. - Max pages per URL - 25 listings per page (default 10 pages; the site itself serves at most ~24 pages per search - see Honest limits).
- Max listings - overall cap across all URLs.
- Output fields - tick only the columns you want and every record is trimmed to exactly those, which keeps CSV and Google Sheets exports lean.
Leave everything empty and the run scrapes a small one-page sample search, so you can see the output shape before committing to a real job.
Which realestate.com.au URLs work
| Search type | URL pattern | Status |
|---|---|---|
| For sale | realestate.com.au/buy/in-<suburb>,+<state>/list-1 | Validated |
| For rent | realestate.com.au/rent/in-<suburb>,+<state>/list-1 | Same embedded data model |
| Sold prices | realestate.com.au/sold/in-<suburb>,+<state>/list-1 | Same embedded data model |
| Any filtered search | .../buy/property-house-in-... and query filters | Carried through verbatim |
Pagination is automatic (/list-2, /list-3, ...) up to your page limit, and the actor stops early on its own
when the search's own result count - or the site's own page cap - is reached, so you never pay for a page of
repeats. Rows are de-duplicated by listing URL across every start URL in the run.
Reliability
realestate.com.au is protected by enterprise anti-bot - plain scrapers and plain headless browsers get blocked. This actor routes every request through a premium unblocking layer that clears the challenge and returns the real page, then parses the site's own embedded GraphQL result cache (typed JSON, not brittle CSS selectors).
On top of that:
- Short-render detection. The unlocking layer occasionally returns a page whose listing data did not finish rendering. The actor reads each page's own result count and pagination block, refetches any page that falls short of what the search says it should hold (keeping the best of up to 3 fetches), and never mistakes a bad render for the end of the search. A page that stays short even after refetching is disclosed in the run's status message instead of being passed off as complete.
- Burst pacing. Requests are deliberately paced and backed off, because the unblocking layer rate-limits bursts on this domain - the actor treats that as a retryable condition, never as page content.
- Wall-clock budget. Long runs stop cleanly before the platform timeout, save everything collected up to that point, and say so in the run status instead of dying as TIMED-OUT.
- Every ending explains itself. A run that finds nothing tells you why - bad search URL, unreadable import file, or a fetch that failed - and bills $0.
What people use it for
- Comparables and appraisals - pull a suburb's full for-sale stock with beds/baths/parking already numeric.
- Sold-price research - the
soldchannel gives dated sale records for price benchmarking. - Rental yield analysis - scrape the same suburb on
buyandrentand divide. - Market monitoring - schedule a daily run per suburb and track new supply, price movements and days on market.
- Agency and agent intelligence - every row carries the agency, its portal rating and review volume, and the named agents with job titles: who lists what, where, at what volume.
- Auction and inspection planning -
auctionDateandnextInspectionstraight from the source. - Feeding AI agents and data pipelines - see the MCP section below.
Honest limits
- realestate.com.au itself serves at most ~24 pages (~600 listings) per search. The site enforces this cap on everyone, browsers included. For full coverage of a big market, split the search by suburb or price band - the run's status message reminds you when a search hits the cap.
- Numeric
priceexists only when the agent publishes a number. Many AU sale listings say "Auction" or "Contact Agent" by design -priceTextalways carries exactly what the card says, and rentals almost always parse. Measured: 48% numeric on a Sydney CBD buy page. - Agent phone numbers are not on the results cards. realestate.com.au keeps them behind its enquiry flow, so this actor does not claim them. You still get the agency, its rating, and every agent's name and job title.
landSize,auctionDate,nextInspection,dateSoldandbadgeare conditional fields - they fill when the listing actually has them (houses, auctions, booked inspections, sold records).- A page can rarely still come back short. The actor detects short renders against the search's own count and refetches automatically; if a page stays short after all refetches, the run's status message says so - and you are only billed for rows actually delivered.
- Runs are a little slower than an unprotected site, because every page goes through the unblocking layer with deliberate pacing.
Pricing
Pay per listing - you are charged only for listings actually written to the dataset. A run that finds nothing, or that cannot read your import file, costs $0. The rate covers the premium anti-bot unblocking that makes realestate.com.au scrapable at all, and it drops automatically on higher Apify plans (tiered pay-per-event pricing).
Output views
- Listings - a table of address, price, beds, baths, property type, suburb and the listing URL, ready to eyeball or export to CSV, Excel, JSON or Google Sheets. The full record with every field is always in the dataset behind it.
Use with AI assistants (MCP)
Available through the Apify MCP server, so an assistant or agent can pull live Australian property listings past realestate.com.au's anti-bot in a single call - compare suburbs, watch a market for new supply, or check sold prices without anyone touching a browser.
Agent-ready: autonomous payments (x402 & Skyfire)
This actor is agent-ready — AI agents can discover it, run it, and pay for it autonomously, with no Apify account and no human in the loop. It uses pay-per-event pricing and limited permissions, so it qualifies for Apify's agentic-payment standards:
- x402 — an open, HTTP-native payment protocol. Agents pay per run in USDC on the Base network directly through the Apify MCP server — no account, no API key.
- Skyfire — agent-to-service payments for fully autonomous AI-agent workflows.
Building an AI agent, MCP tool, or autonomous data pipeline? This scraper is ready to plug in and pay as it goes.
Automate & schedule
Run this Actor on autopilot and pull results into your own stack:
- Apify API - start runs, fetch datasets and manage schedules over REST.
- apify-client for JavaScript and apify-client for Python - official SDKs.
- Schedules - run it hourly, daily or weekly and keep your dataset current.
- Webhooks - trigger downstream actions (CRM import, Slack alert, email sequence) the moment a run finishes.
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'MY_APIFY_TOKEN' });const run = await client.actor('scrapesage/realestate-com-au-scraper').call({"startUrls": ["https://www.realestate.com.au/buy/in-sydney,+nsw/list-1"],"maxPagesPerUrl": 1});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Got ${items.length} records`);
Integrate with any app
Connect the dataset to thousands of apps - no code required:
- Make - multi-step automation scenarios.
- Zapier - push new records straight into your CRM or spreadsheet.
- Slack - get notified when a scheduled run finds something new.
- Google Drive / Sheets - auto-export every run to a spreadsheet.
- Airbyte - pipe results into your data warehouse.
- GitHub - trigger runs from commits or releases.
More scrapers from scrapesage
Related Actors in the same category:
- Real Estate Scraper for Redfin - Listings, Sold Comps & Leads
- BizBuySell Scraper - Businesses For Sale & Broker Leads
- VivaReal & ZAP Imóveis Scraper - Brazil Real Estate
- PropertyGuru Scraper - Singapore Property & Agent Leads
- Airbnb Scraper & Market Monitor
FAQ
Do I need a realestate.com.au account, API key or proxies? No. Everything needed to reach realestate.com.au is built in.
Can I scrape rentals and sold prices as well as sales?
Yes. rent and sold search URLs work exactly like buy ones - channel on each row tells you which it came
from, and sold rows carry dateSold.
How many listings will I get per search URL? Up to 25 per page, and the site serves at most ~24 pages per search (~600 listings). For more, add more searches
- one per suburb or price band - in the same run. You only ever pay for the rows you actually receive, and duplicates across overlapping searches are dropped before billing.
Can I run it on a schedule? Yes - schedule the actor or any saved task in Apify and the results land in a dataset each time, ready for the API, a webhook, or an export to Sheets, S3 or your warehouse.
Does it open every listing's detail page? No. It reads the search results' own embedded data model, which already carries everything in the field table above - that is what keeps it fast and cheap across thousands of listings.
Disclaimer
This Actor is an independent tool and is not affiliated with, endorsed by, or sponsored by realestate.com.au or REA Group. All trademarks mentioned are the property of their respective owners. It collects only publicly available listing information and is intended for lawful research, market analysis and comparable-pricing use. You are responsible for how you use the data, including compliance with applicable law.
Need help?
Open an issue on the Actor's Issues tab, or visit the Apify help center. Feature requests are welcome - this Actor is actively maintained.