realestate.com.au Scraper | AU Sale Rent Sold API avatar

realestate.com.au Scraper | AU Sale Rent Sold API

Pricing

from $2.20 / 1,000 results

Go to Apify Store
realestate.com.au Scraper | AU Sale Rent Sold API

realestate.com.au Scraper | AU Sale Rent Sold API

Scrape realestate.com.au Australian sale, rent, and sold listings by suburb/city. Extract prices, beds, baths, land size, agencies, photos & URLs — realestate.com.au API alternative.

Pricing

from $2.20 / 1,000 results

Rating

0.0

(0)

Developer

kane liu

kane liu

Maintained by Community

Actor stats

1

Bookmarked

3

Total users

3

Monthly active users

8 days ago

Last modified

Share

realestate.com.au Scraper — AU Sale, Rent & Sold Listings

Scrape realestate.com.au for-sale, rental, and sold property listings by Australian suburb or city — then download structured data as Excel, CSV, or JSON.

This Actor is a practical realestate.com.au API alternative for market research, investor comps, rental screening, agency monitoring, and lead lists. Enter a location such as Melbourne, VIC, choose sale, rent, sold, both, or all, and get listing rows with prices, beds, baths, land size, agency, photos, and direct listing URLs.

Thin Actor + Cloud Run worker. Worker URL is config (WORKER_BASE_URL), not hardcoded-only — migrate the worker by updating Actor env without a code change. Set WORKER_PROVIDES_PROXY=1 when the worker supplies its own PROXY_URL.

  • Pull Australian homes for sale, rentals, and sold results from realestate.com.au
  • Filter by property type (house, unit, apartment, land, rural, retirement, and more), beds, and price
  • Optionally enrich listings from detail pages, or scrape specific property URLs
  • Export to Excel / CSV / JSON, or connect Make, n8n, Zapier, Python, or Apify MCP / API
  • Pay per event — Actor start + each Dataset listing; platform compute is included (you do not pay separate Apify usage)

Need a dedicated scraper for one website?

This Actor is the general tool for protected public pages. If you already have one specific site and a field list, a dedicated scraper is faster and more stable: listing + detail, your export format, delivered to your Apify account or as a standalone runnable client.

I confirm the tier before you pay. The clock starts after that confirmation.

Start here: Submit a custom scraper request

Starter $50Dedicated $100Hard target $200–999
Site1 simple anti-bot public site1 medium anti-bot public siteCloudflare / aggressive anti-bot / custom parser
ScopeFull listing + detail fieldsListing + detail + pagination, your field listAgreed fields, repeatable runs
DeliveryCSV/JSON · Apify Actor or standalone runnable client (script/CLI)Same, plus a sample run and short instructionsFeasibility first, then build
Time24 hours after we confirm the URL is in scope48 hours after confirmationQuoted after feasibility
Fixes30 days for small public-layout changes30 daysScoped in the quote

Hard-target sites are not a 100% uptime promise. You get a dedicated parser that can be re-run on the agreed fields. If the URL is not feasible, you get a refund or pay an assessment fee only — you will know before the build starts.

Not in Starter/Dedicated: login-walled data, native APK / Windows installer / full web apps, or two-year maintenance. Those are a separate quote.


What does the realestate.com.au Scraper do?

It turns a realestate.com.au search (or detail URLs) into a clean Apify Dataset of Australian residential listings.

Under the hood, the Actor:

  1. Validates your input (location, listing type, filters, optional detail URLs)
  2. Calls a managed Cloud Run worker that unlocks realestate.com.au pages (Kasada-aware)
  3. Collects search-result and/or detail listing data across sale / rent / sold channels
  4. Normalizes records into Dataset rows with preview fields (name, type, status, country, authority)
  5. Writes RUN_SUMMARY (and ERROR_SUMMARY on failure) to the key-value store

You run the Actor like any other Apify Actor — schedule it, call it from the API, or plug it into automations. No local browser or proxy setup is required.


What data can you extract from realestate.com.au?

Data pointSaleRentSold
Address / listing name
Listing ID & property type
Price / rent display
Beds / baths / parking
Land / building size (when shown)
Suburb, state, postcode
Agency / authority
Listing URL & main image
Description & inspections (when present)
Lead / contact (phones, structured address, person, org, …)✅ on LDP✅ on LDP未验证 on sold LDP

Every Dataset row includes source = realestate.com.au and country = Australia. A RUN_SUMMARY record reports counts, provider, and warnings. When enrichDetails is on (the default), sale/rent detail rows also carry the lead & contact fields below.


What you can do with it

1. Scrape Australian homes for sale

Enter a suburb/city like Melbourne, VIC, set listingType to sale, and get structured rows with price, beds, baths, agency, and a direct listing URL — ready for comps or investor shortlists.

2. Scrape Australian rentals

Set listingType to rent. Rows include weekly rent display, beds/baths, parking, and agency when present.

3. Scrape sold property results

Set listingType to sold to pull recently sold listings for pricing analysis and comparable sales.

4. Cover multiple channels or locations in one run

Use listingType = both or all, add extra suburbs in locations, and optionally filter by propertyTypes, beds, and price.

5. Scrape specific property detail pages

Paste one or more realestate.com.au property URLs into detailUrls to skip search and fetch those listings directly.

6. Feed AU property data into automations

Schedule the Actor and send the Dataset to Sheets, Slack, CRM, Make, n8n, Zapier, or an AI agent via Apify MCP / API.


More Actors like this

Looking for another property portal, or a scraper outside real estate? Use a specialized Actor when one exists — structured fields, better coverage, usually lower cost. Use this Actor for realestate.com.au sale / rent / sold search and detail pages.

Similar real estate Actors

Prefer another specialized scraper?

Jobs & Freelance

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ See the full catalog in Related Actors below, or browse apify.com/lentic_clockss.


How to scrape realestate.com.au (no code required)

  1. Click Try for free on this Actor page
  2. Enter a location (Melbourne, VIC or Sydney, NSW)
  3. Choose sale, rent, sold, both, or all
  4. Optionally set property types, beds/price filters, and max results
  5. Click Start — open the Dataset tab when the run finishes

Start with maxResults: 5–10 to verify the market, then scale up.


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

This Actor uses pay-per-event pricing. You are charged for:

EventPrice
Actor Start (apify-actor-start)$0.005 per start
Result (apify-default-dataset-item)$3.00 / 1,000 listings ($0.003 each)

Platform usage costs are included — you do not pay separate Apify compute/proxy usage for this Actor on top of the event prices above.

Example cost estimates

Listings collectedApprox. event cost*
100~$0.31
1,000~$3.01
10,000~$30.01

*Assumes one Actor start at default memory billing for start events, plus $0.003 per Dataset item. Exact start billing can scale with allocated memory (one start event per GB, minimum one).

Free Apify trial credit can cover a small test run — try maxResults: 5 first.

Free Apify plan limits (set by this Actor's developer)

LimitFree Apify planPaid Apify plan
Runs of this Actor10 totalUnlimited
Listings per run200Up to schema max (500)

These caps are enforced in Actor code (not by Apify). Upgrade to a paid Apify plan for unlimited runs.


Input

Open the Input tab for the full form. Common fields:

FieldDescription
locationAustralian suburb/city + state, e.g. Melbourne, VIC
locationsExtra locations in the same run
listingTypesale / rent / sold / both / all
propertyTypesOptional: house, unit, apartment, land, rural, retire, …
minBeds / maxBedsBedroom filters
minPrice / maxPricePrice filters (AUD)
maxResultsCap on listings (1–500; free plan also capped at 200/run)
maxPagesCap on search pages per location/channel (1–80)
enrichDetailsOpen detail pages for phones, 门牌, agent, and agency (default true)
detailUrlsSkip search; scrape these property URLs
failoverAllow worker provider failover (default true)
workerBaseUrlOptional https override (allowlisted hosts only)

proxyConfiguration may appear in the form for compatibility but is ignored — unlock/proxy traffic is handled by the managed worker.

Free Apify plan: up to 10 runs of this Actor and 200 listings per run. Upgrade to a paid Apify plan for unlimited runs. (Limits set by the Actor developer.)

Example input

{
"location": "Melbourne, VIC",
"listingType": "sale",
"propertyTypes": ["apartment"],
"minBeds": 2,
"maxResults": 20,
"maxPages": 2,
"enrichDetails": true,
"failover": true
}

Output example

You can download the Dataset as JSON, CSV, Excel, or HTML.

{
"name": "103/107-121 Quay Street",
"type": "Apartment",
"status": "for_sale",
"country": "Australia",
"authority": "Central Property Group Australia - Haymarket",
"listingId": "148895988",
"listingType": "sale",
"address": {
"street": "107-121 Quay Street",
"unit": "103",
"locality": "Haymarket",
"region": "NSW",
"postalCode": "2000",
"country": "AU",
"full": "103/107-121 Quay Street, Haymarket, NSW 2000"
},
"fullAddress": "103/107-121 Quay Street, Haymarket, NSW 2000",
"streetAddress": "103/107-121 Quay Street",
"suburb": "Haymarket",
"state": "NSW",
"zipCode": "2000",
"priceDisplay": "Auction",
"beds": 2,
"baths": 2,
"parking": 1,
"propertyType": "Apartment",
"listingUrl": "https://www.realestate.com.au/property-apartment-nsw-haymarket-148895988",
"imageUrl": "https://i2.au.reastatic.net/800x600/.../image.jpg",
"phones": [
{ "value": "0416737287", "type": "mobile", "e164": "+61416737287" },
{ "value": "02 8958 2320", "type": "landline", "e164": "+61289582320" }
],
"emails": [],
"geo": { "lat": -33.88238458, "lng": 151.20328483 },
"person": { "name": "Silvia (Qi) Wan", "role": "General Manager" },
"org": { "name": "Central Property Group Australia - Haymarket", "id": "ATPKKT" },
"web": { "website": null, "socials": [] },
"leadSource": "detail",
"leadReveal": "visible",
"leadAbsences": { "emails": "本站无", "web": "本站无", "socials": "本站无" },
"source": "realestate.com.au"
}

address is now a structured object (unit = 门牌). Legacy string fields fullAddress and streetAddress stay on the row for older consumers.

When enrichDetails is on (the default), each sale/rent detail item also carries the lead & contact fields documented below. Search-card-only rows keep the same keys, with empty phones and leadAbsences reasons.

Key-value store records:

  • INPUT_ECHO — normalized non-secret input
  • RUN_SUMMARY — counts, provider, diagnostics, timestamps
  • ERROR_SUMMARY — structured failure details when a run fails

How to scrape realestate.com.au with Python or the Apify API

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("lentic_clockss/realestate-com-au-scraper").call(
run_input={
"location": "Sydney, NSW",
"listingType": "sold",
"maxResults": 10,
"maxPages": 1,
}
)
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["listingUrl"], item.get("priceDisplay"))

You can also schedule runs, set webhooks, or connect the Dataset to Make / Zapier / n8n from the Apify Console.


Lead & contact fields

realestate.com.au publishes agent and agency phones on sale and rent detail pages (Argonaut details.listing). Numbers are already visible as plain JSON plus tel: / sms: links — there is no “show phone” control on the listing page (revealControls=[]). Search cards show address and agent/agency names only. Every Dataset row keeps the lead keys; a null or empty value is paired with leadAbsences.

FieldTypeMeaning on realestate.com.au
phones[{value, type, e164?}]Lister mobile + agency landline from listers[].phoneNumber.display and listingCompany.businessPhone. Already-visible on sale/rent LDP. Smoke (Haymarket 148895988): 0416737287 + 02 8958 2320. Rent LDP sample: 0420300920 / 0416526111 / agency 0432020507. Agency businessPhone may concatenate landline and mobile (02 8958 2320 /0416737287); the worker splits that string. Search cards have no phones.
emails[{value, type}]Always []. listers[].email and listingCompany.email are null; there is no real mailto: recipient. The enquiry form is login + reCAPTCHA and does not expose an agent inbox.
address{street, unit, locality, region, postalCode, country, full}Listing address from Argonaut address.display. unit = 门牌 (unit/apartment number), e.g. 103 at 107-121 Quay Street, Haymarket NSW 2000. Rent sample unit 1502 at 161 Clarence Street. country is AU. Legacy fullAddress / streetAddress strings remain.
geo{lat, lng}address.display.geocode (same values as legacy latitude / longitude). Supplemental to address, not a replacement. Smoke: -33.88238458 / 151.20328483. Often null on search cards.
person{name, role?}First lister: listers[].name + jobTitle. Smoke: Silvia (Qi) Wan / General Manager. Search cards usually still have the name.
org{name, id?}listingCompany.name + listingCompany.id. Smoke: Central Property Group Australia - Haymarket / ATPKKT.
web{website, socials[]}Per-agency website / agencyUrl and Facebook/Instagram/Twitter/LinkedIn are null on measured agencies. Always website: null, socials: []. Footer links are REA Group’s own accounts, not copied into listing rows.
leadSourceenumdetail after a property LDP (or a sold payload that looks like LDP); search on SRP cards; entity is reserved for agent/agency pages (do not put /agent/ or /agency/ in detailUrls — the worker rejects those with 422).
leadRevealenumvisible when phones or a street/full address is already in the page data; absent when the surface has no lead. No xhr path exists. Agent Call is click-to-inject the same hydration number (off by default).
leadAbsencesobjectWhy a sub-field is empty. Typical sale/rent LDP: emails=本站无, web=本站无, socials=本站无. SRP: also phones=本站无. Sold LDP (unverified): soldDetail=sold-detail 未调研验证 and phones=sold-detail 未调研验证 when no number is present.

Prefer the structured lead keys above for outreach. authority, listers, and listingCompany stay on the row.

Reveal cost

  • Sale/rent phones need a detail fetch. Keep enrichDetails: true (the default). Search cards do not show tel: or lister phoneNumber.
  • No click-reveal XHR on listing pages. LDP phones are already in Argonaut details.listing and in tel: / sms: hrefs. The worker does not click “show phone”, does not submit Enquire, and does not invent a reveal endpoint.
  • Agent Call is optional and off. Recon used the per-site reveal quota once: Call only injected tel:0416737287 from AGENT_PROFILE.agent.mobile (no XHR). Production keeps REA_CLICK_REVEAL=0 and parses hydration instead.
  • Cost is one extra LDP GET per listing when enriching search results, plus the existing Bright Data unlock needed to get past Kasada / PerimeterX. There is no second round-trip for phones. Run time scales roughly linearly with enriched listings; rate-limit risk is the usual unlock traffic, not a reveal storm.
  • Unlock is Bright Data (not Zyte — Zyte returns 520 Website Ban). Bare HTTP is an ~846 B Akamai shell or 429 and cannot be parsed.

Honest limitations

  • No emails (本站无). Listing and agency payloads leave email null. Enquiry is login + reCAPTCHA and is not submitted. Help tickets also require Sign in. Do not expect emails[] to fill later.
  • No per-entity website or socials (本站无). Agency urls.facebook/instagram/twitter/linkedin and agencyUrl were null on the measured profile. Platform footer socials are REA Group, not copied into items.
  • Search cards are thin for phones. SRP rows still emit the lead keys, but phones=[] with leadAbsences.phones=本站无 unless enrichDetails opened the LDP.
  • Sold detail was not verified (未验证). Sold search cards have address + agent name and no phone. If a sold LDP is fetched, the worker tries the same details.listing family and sets leadAbsences.soldDetail=sold-detail 未调研验证. Do not treat sold phones as confirmed.
  • Map and /project/ pages were not opened. Do not claim map-pin or project-page leads.
  • Platform Contact / About numbers are not listing leads. 1300 853 440 and REA offices (e.g. 511 Church Street, RICHMOND VIC 3121) stay off phones[].
  • /agency/ and /agent/ are not detailUrls. Those URLs return worker 422. Use /property-... or /sold/property-... only.
  • No second, fuller phone after a click. Guest already sees the numbers that exist on sale/rent LDP.

Our scrapers are ethical and do not extract private user data such as email addresses, gender, or private contact details that are not publicly shown on listing pages. They only extract what is publicly available on realestate.com.au listing cards and property pages.

You should still be aware that results can include personal data (for example agent names). Personal data is protected by the Australian Privacy Act, the GDPR in the EU, and other regulations. You should not scrape personal data unless you have a legitimate reason. If you are unsure, consult your lawyers. See also Apify’s guidance on the legality of web scraping.


FAQ

Does this Actor replace the official realestate.com.au API?

There is no broadly available public listing API for most third-party use cases. This Actor is an API alternative that returns structured JSON/CSV/Excel you can use in research and automations.

Why do some sold listings put the price in priceDisplay?

The worker normalizes sale/rent/sold displays into priceDisplay for a consistent schema. soldPriceDisplay may be empty even when a sold price string is present in priceDisplay.

Do I need Apify Proxy?

No. Proxy / unlock traffic is handled by the managed worker. The proxyConfiguration input field is ignored.

Why did my free-plan run stop after 10 runs?

This Actor allows 10 runs and 200 listings per run for free Apify plan users. That limit is set by the Actor developer (not Apify). Upgrade to a paid Apify plan for unlimited runs.

Can I scrape commercial property or Flatmates?

Not in this Actor. Coverage is residential sale / rent / sold on realestate.com.au (including common residential property types such as house, unit, land, rural, and retirement).

Where can I get help?

Open an issue on the Actor’s Issues tab in Apify Console with your run ID and a short description. Include a sample input when possible.


Tips for better results

  • Prefer specific suburbs (Richmond, VIC) when you need local comps; use CBD/city names for broader coverage
  • Keep maxPages low while testing; raise it after you confirm filters
  • Use propertyTypes + beds/price filters to reduce noise before scaling maxResults
  • Keep enrichDetails on (the default) when you need phones, 门牌, agent name, and agency — search cards omit phones

All 77 public Actors from [lentic_clockss]. Click a name to open the Store detail page.

Jobs & Freelance

Real Estate

E-commerce

Travel & Stays

Social & Content

Ads Intelligence

Local & Maps

General Tools

→ Browse the full profile: apify.com/lentic_clockss


Built for Australian property data workflows on the Apify platform — scheduling, monitoring, API access, and Dataset exports included.