Realestate.com.au Scraper - Buy, Sold & Rent avatar

Realestate.com.au Scraper - Buy, Sold & Rent

Pricing

from $0.69 / 1,000 property listings

Go to Apify Store
Realestate.com.au Scraper - Buy, Sold & Rent

Realestate.com.au Scraper - Buy, Sold & Rent

Scrape realestate.com.au property listings for sale, for rent, or recently sold by suburb or search URL. Extract price, beds, baths, address, agent and more. JSON, CSV, Excel.

Pricing

from $0.69 / 1,000 property listings

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

a day ago

Last modified

Categories

Share

Realestate.com.au Scraper - Buy, Sold & Rent

Scrape realestate.com.au property listings for sale, for rent, or recently sold — search by suburb, state, postcode, or a pasted search URL. Get price, beds, baths, full address with coordinates, agent and agency details, photos and more.

Search any Australian suburb across Buy, Rent, or Sold listings, filter by price/beds/baths/property type, and get structured property data ready for analysis or integration.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

Apify Actor: parsebird/realestate-au-scraper — scrapes realestate.com.au property listings from the search page's own server-rendered GraphQL data (camoufox browser session, no per-listing page fetch needed). Call: ApifyClient("TOKEN").actor("parsebird/realestate-au-scraper").call(run_input={"mode": "location", "locations": [{"suburb": "Sydney", "state": "NSW"}], "listingType": "buy", "maxListings": 20, "maxPages": 3, "proxyConfiguration": {"useApifyProxy": true, "apifyProxyGroups": ["UNBLOCKER"]}}). Inputs: mode ("location" or "url"), locations (array of {suburb, state, postcode} — location mode), listingType ("buy"/"rent"/"sold"), urls (array of realestate.com.au search URLs — url mode, filters below ignored), sortBy, propertyTypes, priceMin/priceMax, bedroomsMin/bedroomsMax, bathroomsMin, includeSurrounding, maxListings (default 20), maxPages (default 3), proxyConfiguration (default UNBLOCKER — required, the site uses Kasada bot detection that plain residential proxies do not pass). Output: dataset of listings with propertyId, url, listingType, propertyType, address {street, suburb, state, postcode, full}, coordinates {latitude, longitude}, price {display}, features {bedrooms, bathrooms, parkingSpaces, hasStudy, hasBalcony, hasPool, hasGarage}, description, propertyFeatures[], media {imageCount, images[], floorplanUrl}, agent, agents[], agency, inspectionTimes, auction, tier, scrapedAt. API docs: https://docs.apify.com/api/v2 Token: https://console.apify.com/settings/integrations

What does Realestate.com.au Scraper do?

Give it a suburb (or a search URL you've already refined on the site) and it walks the search results page by page, returning a structured record per listing pulled straight from the page's own search data — no per-listing detail-page fetch needed, which keeps runs fast and cheap:

  • 🏠 Property basicspropertyType, description, propertyFeatures, url
  • 📍 Address & locationaddress (street, suburb, state, postcode, full), coordinates (lat/lng)
  • 💲 Priceprice.display, exactly as shown on the listing
  • 🛏️ Featuresbedrooms, bathrooms, parkingSpaces, plus hasStudy/hasBalcony/hasPool/hasGarage flags
  • 🖼️ Mediaimages[], imageCount, floorplanUrl
  • 👤 Agent & agencyagent, agents[], agency (name, phone, ratings)
  • 🔎 Search or URL mode — build a search from suburb + filters, or paste any realestate.com.au search URL directly for full control

Use it as a realestate.com.au API alternative for market research, lead generation, or feeding a property database — all with Apify's scheduling, API access, and JSON/CSV/Excel export.

Input parameters

ParameterTypeRequiredDefaultDescription
modestringYeslocationlocation (suburb + filters) or url (paste a search URL).
locationsarrayNoSydney, NSW[{suburb, state, postcode}] — location mode only.
listingTypestringNobuybuy, rent, or sold. Location mode only.
sortBystringNolist-daterelevance, list-date, list-date-asc, price-asc, price-desc.
propertyTypesarrayNoallhouse, apartment, townhouse, villa, land, rural, commercial.
priceMin / priceMaxintegerNoPrice range in AUD.
bedroomsMin / bedroomsMaxintegerNoBedroom count range.
bathroomsMinintegerNoMinimum bathrooms.
includeSurroundingbooleanNotrueInclude properties from surrounding suburbs.
urlsarrayNoSearch result URLs to scrape — URL mode only. Filters above are ignored.
maxListingsintegerNo20Stop after this many listings. 0 = unlimited.
maxPagesintegerNo3Max result pages per location. 0 = unlimited.
proxyConfigurationobjectNoUNBLOCKERRequired — realestate.com.au is protected by Kasada bot detection, which plain residential proxies don't pass.

Output example

{
"propertyId": "143160680",
"url": "https://www.realestate.com.au/property-house-vic-tarneit-143160680",
"listingType": "buy",
"propertyType": "House",
"address": {
"street": "28 Chantelle Parade",
"suburb": "Tarneit",
"state": "Vic",
"postcode": "3029",
"full": "28 Chantelle Parade, Tarneit, Vic 3029"
},
"coordinates": { "latitude": -37.85273078, "longitude": 144.66332821 },
"price": { "display": "$650,000 - $700,000" },
"features": {
"bedrooms": 4,
"bathrooms": 2,
"parkingSpaces": 2,
"hasStudy": false,
"hasBalcony": false,
"hasPool": false,
"hasGarage": true
},
"description": "Renowned Real Estate proudly presents this sensational opportunity...",
"propertyFeatures": ["Built-in wardrobes", "Dishwasher", "Ducted heating", "Ensuites"],
"media": {
"imageCount": 12,
"images": ["https://i2.au.reastatic.net/{size}/.../image.jpg"],
"floorplanUrl": null
},
"agent": { "name": "Himraj", "phoneNumber": { "display": "0452060566" } },
"agency": { "name": "Renowned Real Estate" },
"isBuy": true,
"isRent": false,
"isSold": false,
"scrapedAt": "2026-09-14T13:00:00.000Z"
}

Not every field is published for every listing — realestate.com.au omits fields like price.display (e.g. "Contact Agent" listings) or propertyFeatures when the agent didn't provide them. Download results in JSON, CSV, or Excel from the Console, or pull them via the Apify API.

Use cases

  • Market research — compare prices, sizes, and features across suburbs
  • Lead generation — active listings with agent and agency contact details
  • Investor sourcing — filter by price, bedrooms, and property type
  • Data pipelines — clean JSON of listings, coordinates, and photos for your own database or map
  • Rent vs. buy analysis — run the same suburb through buy and rent modes

How to scrape realestate.com.au

  1. Pick Location mode and enter a suburb + state (e.g. Sydney, NSW), or open realestate.com.au in your browser, apply your filters, and copy the resulting URL into URL mode.
  2. Set listingType (Buy, Rent, or Sold) and any filters you want.
  3. Set maxListings and maxPages to control run size and cost.
  4. Click Start and download the dataset as JSON, CSV, or Excel — or fetch it via the Apify API or integrations (Zapier, Make, Google Sheets, and more).

Under the hood, the actor drives a stealth browser session (to pass the site's Kasada bot protection) and reads listings straight out of the search page's own embedded GraphQL data — no separate per-listing page fetch, which keeps runs fast and cheap.

How much does it cost to scrape realestate.com.au?

Realestate.com.au Scraper uses pay-per-result pricing — you only pay for listings actually returned.

EventPrice per eventPrice per 1,000
listing$0.00069 – $0.00099$0.69 – $0.99

Pricing depends on your Apify plan (Free, Bronze, Silver, Gold — lower on higher plans). Scraping 1,000 listings costs between $0.69 and $0.99.

FAQ

Do I need a proxy? Yes. realestate.com.au uses Kasada bot detection, which blocks even a plain page load — and plain residential proxies don't pass it. The default (Apify Proxy, UNBLOCKER group) is required and set for you.

What's the difference between Location mode and URL mode? Location mode builds a search from a suburb/state/postcode plus the filter fields. URL mode scrapes a URL you've already refined in your browser — useful for complex filter combinations — and ignores the filter fields above.

Which filters are applied directly on the site vs. after fetching? propertyTypes, priceMin/priceMax, bedroomsMin/bedroomsMax, bathroomsMin, and sortBy (price-asc/price-desc) are applied to the listings the actor collects. This means the actor may fetch slightly more pages than a filtered on-site search would to find enough matching results.

Can I scrape rentals or sold listings? Yes — set listingType to rent or sold, or paste a /rent/... or /sold/... URL in URL mode.

Does it fetch individual property pages? No — all data comes from the search results page itself, which keeps runs fast and the cost low.

Can I schedule it? Yes. Use Apify Schedules to re-run periodically and track new listings in an area.

Is there an API? Yes — every Apify Actor is callable via the Apify API and the official Python and JavaScript clients.

Scraping publicly available data, like the property listings this actor collects, is generally permitted, but you are responsible for how you use the data. Comply with realestate.com.au's Terms of Service, avoid collecting personal data beyond what's publicly listed, and consult a lawyer if you plan to use scraped data commercially. Read more in Apify's blog post on the legality of web scraping.

Using the API

Python

from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("parsebird/realestate-au-scraper").call(run_input={
"mode": "location",
"locations": [{"suburb": "Sydney", "state": "NSW"}],
"listingType": "buy",
"maxListings": 20,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["address"]["full"], item["price"]["display"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('parsebird/realestate-au-scraper').call({
mode: 'location',
locations: [{ suburb: 'Sydney', state: 'NSW' }],
listingType: 'buy',
maxListings: 20,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Issues & feedback

Found a bug or have a feature request? Open an issue on the Actor's Issues tab in Apify Console — feedback helps keep this realestate.com.au scraper reliable as the site evolves.