AU Residential Property $0.9๐ฐ
Pricing
from $1.00 / 1,000 results
AU Residential Property $0.9๐ฐ
From $0.9/1K. Scrape Australian property listings with rich detail-page enrichment. Each listing record comes back with far more than the usual "address + price + beds". You get the full picture that a buyer would see on the site.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
2
Bookmarked
28
Total users
1
Monthly active users
15 hours ago
Last modified
Categories
Share
Property.com.au Scraper: Listings, Price History, Schools and Market Data
Property.com.au Scraper turns Property.com.au into structured property data. Search by suburb, postcode or free text, or paste search page links, and get back full listing records: address, price, features, a complete price history timeline, nearby schools, planning overlays, internet availability and estimated sale or rental value. Covers buy, rent and sold listings, and exports to JSON, CSV or Excel, or straight into your app through the API.
Why This Scraper?
- Two ways to search. Give it a suburb name, postcode or free text and it resolves the location itself, or paste Property.com.au search page URLs directly and let it walk the pages.
- Detail-page enrichment, not just search cards. Every listing is opened individually for its full price history timeline, nearby schools, planning overlays, internet availability and an estimated sale/rental value, on top of the usual address, price and features.
- Fine grained filters. Price range, bedrooms, bathrooms, car spaces, land size, property type, keywords, under-offer exclusion and sort order, all in listing mode.
- Buy, rent and sold in one actor. Switch listing type per run, or auto-detect it from a pasted URL.
- Accumulate across runs. Name a dataset to keep appending results from repeated or scheduled runs into one growing collection, with an option to clear it first.
- Export to your apps. Pipe results into Notion, Linear, Airtable or Apify through MCP connectors, no extra glue code.
- Clear stop conditions. A run only fails on a real configuration problem, such as an unresolvable location or a missing proxy; everything else returns whatever could be read.
Use Cases
- Buyers and agents: track new listings and price movement for suburbs you're watching.
- Property investors and analysts: build a dataset of prices, land size and estimated values across suburbs to compare opportunities.
- Renters: monitor rental listings and price changes in target areas.
- PropTech and research teams: feed schools, planning overlay and internet availability data into your own tools.
- Comparables tracking: pull sold listings to benchmark recent sale prices near a property you're evaluating.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
id | "8292817364" |
address | "12 Example Street, Southbank VIC 3006" |
suburb / state / postcode | "SOUTHBANK" / "VIC" / "3006" |
latitude / longitude | -37.8226 / 144.9648 |
listing_type | "buy" (also "rent", "sold") |
listing_status | "For Sale" |
property_type | "apartment" |
price / price_details | "$750,000 - $800,000" / "Contact agent for a price guide" |
features.bedrooms / features.bathrooms / features.car_spaces | 2 / 2 / 1 |
features.land_size / features.floor_area / features.built_year | "450m2" / "120m2" / 2015 |
description | property description text |
timeline | price history events: listed, sold, leased, auction, each with date, price and agent when available |
value_estimates | estimated sale and rental value, with a confidence rating and range, when published for the property |
schools | nearby primary and secondary schools with zoning and distance |
planning_overlays | bushfire, flood and heritage overlay flags |
land_description / council | zoning text / local council name |
internet | NBN connection type and quality for the address |
market_insights | suburb median price and rent, with 12 month growth |
media | image count and image URLs (full set on a residential proxy, see Plan Requirement) |
property_url | Property.com.au link to the listing |
rea_url | link to the same listing on a partner listings site, when available |
breadcrumbs | location hierarchy shown on the listing page |
status | "success" |
source_listing / source_listing_type / scraped_at | the search URL, listing type and timestamp this record came from |
A separate run summary (mode, total listings scraped, duration, throughput, end time) is written to the run's key-value store as METADATA.
How to Use
- Pick a mode:
listing(search by suburb, postcode or free text, with filters) orurl(paste Property.com.au search page URLs directly). - In listing mode, set your location and filters. In URL mode, paste one or more search URLs; listing-mode filters are ignored there, so encode them into the URL instead.
- Set Max Properties and Max Pages to control run size and cost, and choose a proxy (Residential + AU gives the complete dataset, see Plan Requirement).
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
Search a suburb, buy listings:
{"mode": "listing","search": "southbank","listing_type": "buy","max_properties": 20}
Search by postcode with price and bedroom filters:
{"mode": "listing","search": "3006","listing_type": "buy","propertyTypes": ["HOUSE", "TOWNHOUSE"],"priceMin": 500000,"priceMax": 900000,"bedroomsMin": 2,"max_properties": 100,"max_pages": 5}
Paste a search page URL (rentals):
{"mode": "url","urls": ["https://www.property.com.au/search/?locations=Sydney%2C+NSW+2000&propertyStatus=FOR_RENT"],"max_properties": 60,"max_pages": 3}
Recently sold listings, highest price first:
{"mode": "listing","search": "brisbane","listing_type": "sold","sortBy": "PRICE_DESC","max_properties": 50}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/property-au-scraper").call(run_input={"mode": "listing", "search": "southbank", "listing_type": "buy", "max_properties": 20})for listing in client.dataset(run["defaultDatasetId"]).iterate_items():print(listing["address"], listing["price"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/property-au-scraper').call({ mode: 'listing', search: 'southbank', listing_type: 'buy', max_properties: 20 });const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
Pagination and limits
Pagination walks forward from the URL's own ?pageNumber=N (default 1). Max Pages is a per URL budget, not a global one: pass three URLs with max_pages: 5 and the run walks up to 5 pages for each of them. max_properties: 0 and max_pages: 0 both mean unlimited.
Send results into your apps (MCP connectors)
Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape: the Apify dataset is never changed.
What gets written to the connector: a condensed, human-readable summary of each record, not the full JSON. Each item becomes one entry with a title and its key fields flattened to plain text.
- Authorize a connector once under Apify โ Settings โ Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items should be created.
Notion gets one page per item. Other authorized connectors get one record per item where the connector supports it, or a summarized digest when it only supports posting a message. Leave the field empty to skip.
Input Parameters
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | listing | listing to search by suburb/postcode, or url to scrape specific search page URLs directly. |
search | string | southbank | A suburb name, postcode, or partial name (listing mode). Resolved automatically; unresolvable queries fail fast. |
urls | array | (none) | Property.com.au search page URLs (URL mode). Listing type is auto-detected from the URL path. |
listing_type | string | buy | buy, rent, or sold. In URL mode, used as a fallback when the type can't be auto-detected from the URL. |
propertyTypes | array | (none) | Filter by property type: HOUSE, APARTMENT, TOWNHOUSE, VILLA, LAND, ACREAGE, RURAL, BLOCK_OF_UNITS, RETIREMENT (listing mode only). |
priceMin | integer | (none) | Minimum property price in AUD (listing mode only). |
priceMax | integer | (none) | Maximum property price in AUD (listing mode only). |
bedroomsMin | integer | (none) | Minimum number of bedrooms (listing mode only). |
bathroomsMin | integer | (none) | Minimum number of bathrooms (listing mode only). |
landSizeMin | integer | (none) | Minimum land size in square metres (listing mode only). |
carSpacesMin | integer | (none) | Minimum number of car spaces (listing mode only). |
keywords | string | (none) | Search keywords, e.g. pool, renovated, corner block (listing mode only). |
excludeUnderOffer | boolean | false | Exclude properties that are under offer (listing mode, buy only). |
sortBy | string | NEW_DESC | Sort order for search results: RELEVANCY, NEW_DESC, NEW_ASC, PRICE_ASC, PRICE_DESC, NEXT_AUCTION, NEXT_INSPECTION. Listing mode only. |
max_properties | integer | 20 | Maximum number of properties to scrape (0 = unlimited). |
max_pages | integer | 0 | Maximum number of listing pages to scrape per URL (0 = unlimited). |
proxy | object | Residential, AU | Connection settings. Residential proxy with country AU (NZ also works) gives the complete dataset. |
dataset_name | string | (none) | Optional named dataset for cross-run accumulation, in addition to the run's default dataset. |
clear_dataset | boolean | false | Clear the named dataset before scraping (only applies when Dataset Name is set). |
mcpConnectors | array | (none) | Optional: send a summary of each record to apps you authorized under Integrations. |
notionParentPageUrl | string | (none) | Notion connector only: page under which records are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run. |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"id": "8292817364","address": "12 Example Street, Southbank VIC 3006","suburb": "SOUTHBANK","state": "VIC","postcode": "3006","latitude": -37.8226,"longitude": 144.9648,"listing_type": "buy","listing_status": "For Sale","property_type": "apartment","price": "$750,000 - $800,000","price_details": "Contact agent for a price guide","features": {"bedrooms": 2,"bathrooms": 2,"car_spaces": 1,"land_size": "450m2","floor_area": "120m2","built_year": 2015},"description": "Modern two bedroom apartment close to the river and CBD.","timeline": [{ "event": "listed_for_sale", "year": "current", "price": "$750,000", "date": "12 Mar 2026", "agent": "Jane Smith", "details": "Listed 12 Mar 2026 by Jane Smith" }],"value_estimates": {"sale": { "value": 780000, "display": "$780,000", "confidence": "HIGH", "range_min": 750000, "range_max": 810000 }},"schools": {"primary": [{ "name": "Sample Primary School", "is_zoned": true, "distance": "0.8km" }],"secondary": [{ "name": "Sample Secondary College", "is_zoned": false, "distance": "1.5km" }]},"planning_overlays": { "bushfire": false, "flood": false, "heritage": false },"land_description": "Land is within the Melbourne local government area.","council": "Melbourne","internet": { "connection_type": "NBN Ready", "quality": "Good" },"market_insights": { "median_price": "$820,000", "price_growth_12mo": 5.2, "median_rent": "$550/wk", "rent_growth_12mo": 3.1 },"media": { "image_count": 12, "images": ["https://www.property.com.au/images/example-1.jpg"] },"property_url": "https://www.property.com.au/vic/southbank-3006/12-example-street-pid-12345678","breadcrumbs": [{ "title": "Victoria", "url": "/vic" }, { "title": "Southbank", "url": "/vic/southbank-3006" }],"status": "success","source_listing": "https://www.property.com.au/search/?locations=Southbank%2C+VIC+3006","source_listing_type": "buy","scraped_at": "2026-03-12T04:15:00.000Z"}
Plan Requirement
The default proxy setting works out of the box, and the run automatically falls back to an alternate connection if the primary one is refused. For the complete dataset, including images, select the Residential proxy group with country AU (NZ also works as a fallback) under Connection. Other proxy configurations still complete the run and return full listing data, but images are omitted.
FAQ
How much does it cost?
You pay per record returned. The Pricing tab shows the current rates. Use Max Properties to cap the cost of any run.
Is it legal to scrape Property.com.au?
This actor collects only publicly available property listing data. You are responsible for how you use it: follow Property.com.au's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution.
Can I get only new listings on a schedule?
There's no automatic dedupe between runs. Each run appends its results to the run's default dataset, and also to your named dataset if you set dataset_name, without checking what a previous run already found. Schedule the actor from the Schedules tab and either dedupe downstream by id, or turn on Clear Named Dataset to start each run's named dataset fresh.
Why don't I see any photos in my results?
Images are included when the run uses an Apify Residential proxy (country AU recommended, NZ also works). Any other proxy configuration returns full listing data except photos.
Why did my run return an empty dataset instead of an error?
The run fails outright only for a configuration problem: no location could be resolved, no search URLs were given, no proxy could be initialized at all, or an invalid named dataset was supplied. If a search page or a listing's detail page can't be read after that point, the run logs a warning and moves on, finishing normally with fewer, or zero, results rather than raising an error. Check the run log for warnings before assuming a bug.
Can I use it with AI agents or MCP?
Yes. Call it from any Apify integration or MCP client, and use the connector field to push results into Notion, Linear or Airtable.
๐ Want more AI data?
Pair this actor with these related scrapers from the same team:
| ๐ Cian RU Collect property listings from Cian.ru by search filters or direct URLs. Returns... | ๐ Homely.com.au Scrape Homely.com.au properties for sale, rent, and sold, plus agent finder, suburb... |
| ๐ REIWA AU Collect Western Australia real estate data from REIWA.com.au across sale, rental, sold... | ๐ Apartments.com Scraper From $1.50/1K. Scrape Apartments.com rentals by city, ZIP, neighborhood, address or URL... |
| ๐จ Hipflat Scraper [ Scrape hipflat.co.th property listings and new-project data across Thailand: price, price... | ๐ Auction.com Scraper From $1/1K. Extract foreclosure, REO, short-sale, and auction listings from Auction.com... |
๐ Browse all abotapi scrapers
๐ฌ Support & custom scrapers
- ๐ Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
- ๐ ๏ธ Need another site, extra fields or a private build? Email abotapi@proton.me or message Telegram @abotapi.
- โญ Enjoying it? A quick review on the actor page helps other users find it.


