Realestate.com.au Scraper - Australia Property avatar

Realestate.com.au Scraper - Australia Property

Pricing

from $1.65 / 1,000 listing scrapeds

Go to Apify Store
Realestate.com.au Scraper - Australia Property

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

Scrape Sage

Maintained by Community

Actor stats

0

Bookmarked

3

Total users

2

Monthly active users

a day ago

Last modified

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

FieldTypeMeaning
id / urlstringListing id and canonical realestate.com.au/property-... link
channelstringbuy, rent or sold - matches the search you pasted
title / fullAddressstringFull street address, e.g. "3403/38 York Street, Sydney, NSW 2000"
priceTextstringThe price exactly as the agent published it: "$1,100,000 - $1,125,000", "$750 per week", "Auction", "Contact Agent"
price, priceFrom, priceTonumberParsed numerics whenever the agent publishes numbers (ranges split for you)
pricePeriodstringweek / month on rentals, null on sales
propertyTypestringApartment, House, Townhouse, Unit... as typed by the source
bedrooms, bathrooms, parkingSpaces, studiesnumberReal numeric feature counts (a true 0 stays 0)
landSize / buildingSize (+ units)numberLand and building sizes where the listing publishes them
suburb, state, postcode, shortAddressstringAddress components for clean grouping and joins
descriptionstringThe listing description, HTML stripped
agencyName, agencyId, agencyUrl, agencyLogostringThe listing agency, with its canonical agency page
agencyAvgRating, agencyTotalReviewsnumberThe agency's own review score and volume on the portal
agents / agentNamearray / stringEvery listed agent with job title, plus the lead agent
listingTierstringREA's paid placement tier (premiere, feature...) - premium listings identified
badgestringCard badge when shown
auctionDatestringAuction time on auction listings
nextInspection / inspectionCountstring / numberNext scheduled inspection and how many are booked
dateSoldstringSold date on sold-channel rows
images / image / imageCount-Up to 10 photo URLs (800x600)
hasFloorplan, hasVideo, has3DTourbooleanMedia flags
matchTypestringexact 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 typeURL patternStatus
For salerealestate.com.au/buy/in-<suburb>,+<state>/list-1Validated
For rentrealestate.com.au/rent/in-<suburb>,+<state>/list-1Same embedded data model
Sold pricesrealestate.com.au/sold/in-<suburb>,+<state>/list-1Same embedded data model
Any filtered search.../buy/property-house-in-... and query filtersCarried 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 sold channel gives dated sale records for price benchmarking.
  • Rental yield analysis - scrape the same suburb on buy and rent and 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 - auctionDate and nextInspection straight 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 price exists only when the agent publishes a number. Many AU sale listings say "Auction" or "Contact Agent" by design - priceText always 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, dateSold and badge are 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:

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:

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.