realestate.com.au Scraper - Sale, Rent and Sold Listings
Pricing
from $2.20 / 1,000 listings
realestate.com.au Scraper - Sale, Rent and Sold Listings
Collect Australian sale, rental and sold property listings from realestate.com.au. Get prices, addresses, bedrooms and available agent contacts. Pay per delivered row plus a start fee.
Pricing
from $2.20 / 1,000 listings
Rating
0.0
(0)
Developer
kane liu
Maintained by CommunityActor stats
1
Bookmarked
2
Total users
0
Monthly active users
2 days ago
Last modified
Categories
Security
Limited permissionsShare
realestate.com.au Scraper
Collect Australian sale, rental and sold property listings from realestate.com.au as structured rows you can export or read through the API.
- Search one suburb or several Australian locations.
- Collect specific property listings by URL, without adding location searches.
- Get prices, bedrooms, bathrooms, parking, addresses, photos and available agent details.
- Filter searches by property type, bedrooms and price.
- Pay $3.00 per 1,000 delivered rows on the Free plan, plus a small start fee.
What does realestate.com.au Scraper do?
realestate.com.au Scraper collects residential listing data for property comparisons, rental research and agency monitoring. Each dataset row represents one listing, with rowType set to listing. Contact information and photos are attributes of that listing, not separately billed rows.
- Location search: enter
locationorlocationsand chooselistingType. - Specific listings: fill
detailUrls; these take precedence over both location fields. - Combined searches:
bothcollects sale and rent;alladds sold listings. These choices share the row limit for each location rather than multiplying it by channel. - Available contact data: agent names, agency details, phone numbers and emails are included when returned by the source. No contact field is guaranteed.
What data can you extract from realestate.com.au?
The following fields belong to listing rows. Empty values mean the information was unavailable in the collected data. Display prices remain text, so they can contain an auction notice or a price range rather than a number.
| Field | Description | Example |
|---|---|---|
rowType | Entity represented by this row. | listing |
listingId | Source listing identifier. | 123456789 |
listingUrl | Link to the listing. | https://www.realestate.com.au/property-house-vic-richmond-123456789 |
name | Listing address or available title. | 123 Example Street |
listingType | Sale, rent or sold channel. | sale |
status | Normalized listing status. | for_sale |
propertyType | Property category shown by the source. | House |
country | Listing country. | Australia |
address | Structured street, unit, locality, region and postal code. | {"street":"123 Example Street","locality":"Richmond"} |
suburb | Suburb name. | Richmond |
state | Australian state or territory abbreviation. | VIC |
zipCode | Postcode. | 3121 |
geo | Coordinates when available. | {"lat":-37.82,"lng":145.00} |
priceDisplay | Advertised price, rent or sold-price text. | $750 per week |
soldPriceDisplay | Separate sold-price text, when supplied. | $900,000 |
beds | Bedroom count. | 3 |
baths | Bathroom count. | 2 |
parking | Parking-space count. | 1 |
authority | Agency name. | Example Property Agency |
person | First available agent's name and role. | {"name":"Jane Doe","role":"Agent"} |
org | Agency name and identifier. | {"name":"Example Property Agency","id":"EXAMPLE"} |
phones | Available phone numbers and classifications. | [{"value":"+1 555 0100","type":"mobile"}] |
emails | Available agent or agency email addresses. | [{"value":"name@example.com","type":"agent"}] |
web | Available agency website and social links. | {"website":null,"socials":[]} |
imageUrl | Main listing image URL, when supplied. | null |
description | Listing description, when supplied. | Example listing description |
inspections | Inspection information, when supplied. | null |
leadAbsences | Reasons for missing contact fields. | {} |
The row also retains fullAddress for consumers that need a single address string. Agent and media attribute lists are capped at 50 entries each; they are not complete directories or photo archives.
How to scrape realestate.com.au
- Open realestate.com.au Scraper in Apify Console.
- Enter an Australian suburb and state, such as
Richmond, VIC, inlocation. - Choose a listing type and set
maxResultsto3for a small first run. - Click Start and wait for the run to finish.
- Open the dataset to export rows or read them through the API.
An empty input starts an example search for Melbourne, VIC, limited to 3 sale listings. This is a normal billed run, not a free preview. Filling a target field selects search or specific-listing collection automatically; there is no mode field to configure.
Location search
Use location for one place, or locations for several. If only locations is filled, its first entry becomes the main location. If both are filled, the main location is included with the additional locations. Include a state abbreviation to distinguish suburbs with the same name.
Specific listing URLs
Use detailUrls to skip location searches, even if the form still contains its example location. Accepted links belong to realestate.com.au, including subdomains, and start with /property-, /sold/property- or /project/. Use links with a numeric listing ID at the end. Agency profiles, agent profiles and search-result URLs are not accepted here. Acceptance of a project URL does not guarantee project data is available.
What to fill in
| Field | What to enter | Default |
|---|---|---|
location | Australian suburb or city and state. Ignored when detailUrls is filled. | No default; form example Melbourne, VIC |
locations | Array of additional locations; also works without location. | Empty |
detailUrls | Array of supported listing links. Takes precedence over locations. | Empty |
maxResults | Maximum rows per location or detail URL, from 1 to 500. | 70; form example 3 |
listingType | sale, rent, sold, both or all. | sale |
propertyTypes | Search filters such as house, apartment, townhouse, land, rural or retire. | [] |
minBeds | Minimum bedrooms, from 0 to 10. | Unset |
maxBeds | Maximum bedrooms, from 0 to 10. | Unset |
minPrice | Minimum search price in AUD. | Unset |
maxPrice | Maximum search price in AUD. | Unset |
maxPages | Compatibility setting, from 1 to 80. Not a stopping condition for normal Actor searches; use maxResults. | 1 |
enrichDetails | Compatibility setting; changing it does not affect current default collection or contact availability. | true |
failover | Compatibility setting; changing it does not affect current default collection. | true |
Search example:
{"location": "Richmond, VIC","listingType": "rent","propertyTypes": ["apartment"],"minBeds": 2,"maxResults": 3}
Specific-listing example; replace the illustrative URL with a current listing:
{"detailUrls": ["https://www.realestate.com.au/property-house-vic-richmond-123456789"],"maxResults": 1}
maxItemsandlimitare aliases formaxResults.urlsandlistingUrlsmeandetailUrls;suburbandcitymeanlocation.- Unknown field names do not themselves fail a run. Close misspellings can be corrected; other unknown fields are ignored with a note. A corrected value still has to pass validation.
- An unrecognized
listingTypeis ignored and falls back tosale. Reversed minimum and maximum bedroom or price bounds are swapped. - Invalid listing URLs stop collection before any rows are charged, with a message such as
INVALID_INPUT: detailUrls — use realestate.com.au listing page links. The start fee still applies. INPUT_REPORTin the run's key-value store records fields used, filled, normalized or ignored. Check it if the result differs from your intended input.
Output example
This illustrative row uses placeholder identifying details; it is not a live property offer.
{"rowType": "listing","listingId": "123456789","listingUrl": "https://www.realestate.com.au/property-house-vic-richmond-123456789","name": "123 Example Street","listingType": "sale","status": "for_sale","propertyType": "House","country": "Australia","priceDisplay": "Contact agent","beds": 3,"baths": 2,"parking": 1,"address": {"street": "123 Example Street","unit": null,"locality": "Richmond","region": "VIC","postalCode": "3121","country": "AU","full": "123 Example Street, Richmond VIC 3121"},"person": {"name": "Jane Doe", "role": "Agent"},"org": {"name": "Example Property Agency", "id": "EXAMPLE"},"phones": [],"emails": [],"source": "realestate.com.au"}
Export the dataset as JSON, CSV, Excel, XML, RSS or an HTML table. The key-value store also contains INPUT_ECHO with interpreted input and RUN_SUMMARY with counts and warnings; failures can include ERROR_SUMMARY with an explanation.
Why use this realestate.com.au scraper?
- Row-based billing: the result charge applies to delivered listing rows, not attempted pages.
- Partial delivery: when collection returns partial rows, the Actor writes those rows. Rows already in the dataset remain available if the run stops; a manual stop before delivery can still leave no rows.
- Comparable fields: sale, rental and sold listings use the same core columns.
- No invented contacts: missing source information stays empty rather than being guessed.
- Several locations: collect a small comparison across suburbs in one run.
- No proxy setup: you do not need to set up proxies.
How much does it cost to scrape realestate.com.au?
The Actor uses pay-per-event pricing: a start event costs $0.005, plus the price of each delivered row. Start billing is one event per GB of allocated memory, with a minimum of one event. At the default 512 MB, the start fee is $0.005. Platform usage is included in these prices.
| Apify plan | Price per row | Price per 1,000 rows |
|---|---|---|
| Free | $0.003 | $3.00 |
| Starter | $0.003 | $3.00 |
| Scale | $0.0026 | $2.60 |
| Business | $0.0022 | $2.20 |
maxResultsapplies to each location or detail URL. Its default is 70; larger requests are collected in parts of 70, up to the input maximum of 500.- The Free Apify plan allows up to 200 rows per run and 10 runs of this Actor. These are developer-set limits. Paid plans remove this trial run-count limit.
- The whole run is limited by Maximum cost per run, named
maxTotalChargeUsdin the API. A low spending limit can reduce delivery below the requested row count.
Example: two locations with maxResults: 5 can deliver 10 rows. On the Free plan at 512 MB, 10 × $0.003 + $0.005 = $0.035. Fewer delivered rows mean a smaller row charge; the start fee is separate.
What happens when the run timeout is too short
When a search needs more time and an automatic pause is accepted, the run can temporarily show ABORTED instead of waiting until its timeout. Its status message says: "Queued on the collection backend; this run will resume automatically when results are ready (about N s)."
When results are ready, the same run resumes, writes results to the same dataset and can finish as SUCCEEDED. Rows already delivered are skipped rather than delivered and charged again. A run continuing after earlier delivery can report "Resumed: delivering N rows." No manual restart is needed for this automatic pause.
- Automatic pauses are limited to at most 3 per run. Keep the default timeout of 3600 seconds to reduce the need for them.
- A manual abort or collection failure is different and does not guarantee automatic recovery. Inspect the status message and error record.
- The synchronous API endpoints
run-syncandrun-sync-get-dataset-itemswait at most 300 seconds and can return an empty dataset while the run is paused. For longer searches, start asynchronously and read the dataset after SUCCEEDED, or use a succeeded-event webhook.
Use with AI agents and the API
Apify MCP server (Claude, ChatGPT, Cursor, VS Code)
Add this Actor to an MCP client that supports remote servers:
https://mcp.apify.com?tools=lentic_clockss/realestate-com-au-scraper
Sign in with Apify when prompted through OAuth, or send Authorization: Bearer <YOUR_APIFY_TOKEN>. The tool starts a run and returns run and dataset IDs; the agent reads rows with get-dataset-items.
Clients without remote support can use npx @apify/actors-mcp-server --tools lentic_clockss/realestate-com-au-scraper with APIFY_TOKEN set.
Example prompt: "Find up to 3 rental apartments in Richmond, VIC, with at least 2 bedrooms. Show the advertised rent, bedrooms and listing URL."
Apify API
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("lentic_clockss/realestate-com-au-scraper").call(run_input={"location": "Richmond, VIC", "listingType": "rent", "maxResults": 3})for item in client.dataset(run["defaultDatasetId"]).iterate_items():print(item)
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('lentic_clockss/realestate-com-au-scraper').call({location: 'Richmond, VIC', listingType: 'rent', maxResults: 3});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(items);
For asynchronous HTTP access, send the input JSON to POST https://api.apify.com/v2/acts/lentic_clockss~realestate-com-au-scraper/runs with an Authorization: Bearer <YOUR_APIFY_TOKEN> header. Read results using GET https://api.apify.com/v2/datasets/<datasetId>/items?format=json after completion.
Integrations
Connect results to Google Sheets, Make, Zapier, n8n, Slack, Airtable or your own webhook through the Actor's Integrations tab. Use Apify Schedules for recurring runs.
FAQ
Is it legal to scrape realestate.com.au?
Public availability is not blanket permission to collect or reuse data. You are responsible for the site's terms and applicable data-protection law. Agent names and contact details may be personal data and need a lawful basis for your intended use. Seek legal advice if unsure.
Why did my run end as ABORTED?
It may be an automatic pause awaiting results. Check for the resume status message described above. A manual abort is different; do not assume every aborted run will resume.
How many results can I get?
Request 1–500 rows per input, subject to available matches, the spending limit and trial caps. A maximum is not a promised count. Combined channels share each location's limit, so small requests may not reach every channel.
Why are some fields empty?
Listings differ in what they disclose. Photos, descriptions, coordinates, emails and phone numbers can be absent. Check leadAbsences where supplied, and do not treat an empty contact field as an extraction guarantee for another run.
Why can a sold price appear only in priceDisplay?
priceDisplay is the common display-price field. soldPriceDisplay is filled only when separate sold-price data is supplied, so it can be empty even when priceDisplay contains a sold price.
Can I scrape commercial property or Flatmates?
No. This Actor targets residential realestate.com.au listings, not realcommercial.com.au or Flatmates. A project link is not a promise of complete New Homes coverage.
Do I need to increase maxPages for more rows?
No. Normal Actor searches use maxResults and available matches to control delivery, with a search ceiling of 80 pages per location and channel. Changing the compatibility field maxPages does not set that ceiling.
Why did my Free-plan trial stop after 10 runs?
The developer limits the Free plan to 10 runs of this Actor. A paid Apify plan removes that trial limit, but row charges and your maximum spending setting still apply.
Limitations
- Supported URL syntax does not guarantee that a listing is still available or returned by the source.
- Agent and agency profiles, map-pin collection and complete project inventories are not supported collection modes.
- Filters can leave no matching listings. A confirmed no-match result can finish successfully with zero rows; the start fee still applies.
- Contact completeness, exact sold prices and coverage of every listing in a city are not guaranteed.
enrichDetailsandfailoverdo not change current default collection. Do not use them as guarantees of fuller data or recovery.- A manual stop before rows reach the dataset can leave it empty.
Related scrapers
More real estate and property data scrapers from the same publisher:
- Zumper Scraper
- Booli Scraper
- Craigslist Scraper
- PropertyGuru Scraper
- OpenSooq Scraper
- Apartments.com Rental Scraper
- Dot Property Scraper
- FINN.no Scraper
Browse all of our scrapers at apify.com/lentic_clockss.
Support
Found a problem or need another field? Open an issue in the Issues tab of this Actor's page and include the run ID and the input you used.