AU Residential Property Scraper icon

AU Residential Property Scraper

Scrape Australian real estate listings with detailed property information. Extract addresses, prices, bedrooms, bathrooms, property features,…

Start using this actor on Apify ↗Need a custom scraper?Contact us ↗

AU Residential Property Scraper at a glance

AU Residential Property Scraper is a ready-to-run Apify actor from abotapi for collecting ai data. Its documented output includes address, price, type, beds and baths, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.50 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify.

Runs on
Apify cloud: console, API, schedules and integrations
Data type
AI, Real Estate, Automation
Region
Oceania
Pricing
$2.50 per 1,000 results (Free plan), from $1.00 on paid plans
Output
Documented below · JSON, CSV, Excel
Inputs
27 options

Scrape Australian real estate listings with detailed property information. Extract addresses, prices, bedrooms, bathrooms, property features, descriptions, photos and other available listing details. Includes rich detail-page enrichment for comprehensive property research.

What AU Residential Property Scraper can do

  • 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.

Choose what to collect

These inputs let you configure AU Residential Property Scraper. Open the actor on Apify to enter your values and review the current options.

Supported input fields
InputWhat it controls
modestringChoose scraping mode: 'listing' to scrape by suburb/postcode, or 'url' to scrape specific search page URLs directly.

Choices: listing, url

searchstringEnter a suburb name (e.g. 'southbank'), a postcode (e.g. '3006'), or a partial name (e.g. 'wantir'). The location is resolved automatically. Invalid or ambiguous queries will fail fast rather than run against the wrong location.
urlsarrayList of property.com.au search page URLs of the form /search/?locations=... (used when Scraping Mode is 'url'). Listing type is auto-detected from the propertyStatus / marketStatuses query. Detail pages and /buy|rent|sold/ path pages are skipped with a warning. Pagination walks forward from the URL's own ?pageNumber=N (default 1).
listing_typestringType of listings to scrape. In listing mode this drives the search URL. In URL mode it's used as a fallback when the listing type can't be auto-detected from the URL path (/buy/, /rent/, /sold/).

Choices: buy, rent, sold

propertyTypesarrayFilter by property type, leave empty for all (listing mode only; in URL mode, encode propertyTypes directly in your URLs).
priceMinintegerMinimum property price in AUD (listing mode only).
priceMaxintegerMaximum property price in AUD (listing mode only).
Show 20 more inputs
More input fields
InputWhat it controls
bedroomsMinintegerMinimum number of bedrooms (listing mode only).
bathroomsMinintegerMinimum number of bathrooms (listing mode only).
landSizeMinintegerMinimum land size in square metres (listing mode only).
carSpacesMinintegerMinimum number of car spaces (listing mode only).
keywordsstringSearch keywords e.g. pool, renovated, corner block (listing mode only).
excludeUnderOfferbooleanExclude properties that are under offer (listing mode, buy only).
sortBystringSort order for search results. Default is 'Date (Newest First)'. Only applies in listing mode; in URL mode, include sortOption in your URLs directly.

Choices: RELEVANCY, NEW_DESC, NEW_ASC, PRICE_ASC, PRICE_DESC, NEXT_AUCTION, NEXT_INSPECTION

max_propertiesintegerMaximum number of properties to scrape (0 = the hard cap of 100000 per run)
max_pagesintegerMaximum number of listing pages to scrape per URL. Walks forward from the URL's own ?pageNumber=N (default 1). Set to 0 for the hard cap of 1000 pages per URL.
dataset_namestringOptional named dataset for cross-run accumulation. Results are always written to the run's default dataset (visible on the run page); when this field is set, each record is ALSO appended to the named dataset. Name must be lowercase letters, digits, and hyphens only (e.g. my-dataset-1). Leave empty to write only to the run's default dataset.
clear_datasetbooleanClear the named dataset before scraping (only applies when Dataset Name is set). Useful for refreshing an accumulating dataset.
resumeFromRunIdstringPaste the ID of an earlier run of this actor to skip listings it already collected (continue an interrupted run). Leave empty to start fresh.
incrementalModebooleanRemember what earlier runs saw for this exact search and output only NEW, UPDATED and REAPPEARED listings (plus EXPIRED ones that left the results). Each row gets changeType, changedFields, firstSeenAt and lastSeenAt. Off = every listing is output, exactly as before.
stateKeystringOptional name for the remembered baseline. Leave empty to key it automatically on your search and filters (raising the item caps does not start a new baseline).
emitUnchangedbooleanOff by default: listings identical to the last run are skipped.
emitExpiredbooleanEmit an EXPIRED row for listings seen before that are no longer in the results. Only when the search was walked to its end.
ignoreFieldsForChangesarrayTop-level output fields (for example media or timeline) that must not count as a change. Their values are still output.
mcpConnectorsarrayOptionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. Notion gets a page per item; other connectors receive a best-effort write/digest. Leave empty to skip, this never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com).
notionParentPageUrlstringURL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors.
maxNotifyListingsintegerCap on items written to each connector per run. Does not affect the dataset.

Fields in the output

The documented dataset includes the fields below. Availability can depend on the source page and selected mode.

addressAddress (text)
pricePrice (text)
property_typeType (text)
features.bedroomsBeds (number)
features.bathroomsBaths (number)
features.car_spacesCars (number)
features.land_sizeLand (m²) (number)
listing_typeListing Type (text)
property_urlURL (link)
mediaImages (object)
descriptionDescription (text)
land_descriptionLand Description (text)
Show 12 more fields
councilCouncil (text)
internetInternet (NBN) (json)
timelineTimeline (array)
value_estimatesValue Estimates (object)
schoolsSchools (object)
planning_overlaysPlanning Overlays (object)
market_insightsMarket Insights (object)
idid
changeTypeChange (text)
changedFieldsChanged fields (array)
firstSeenAtFirst seen (text)
lastSeenAtLast seen (text)

Example output

An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.

{
  "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"
}

Ways to use this data

  • 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.

Before you run

Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.

Questions about this actor

What data does AU Residential Property Scraper return?

The documented output for AU Residential Property Scraper includes address, price, type, beds, baths, cars, land (m²) and listing type. Availability of each field depends on the source page and the selected mode.

How much does AU Residential Property Scraper cost?

It costs $2.50 per 1,000 results on the Apify Free plan and from $1.00 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.

Can I get only new listings on a schedule?

Yes. Turn on Incremental mode and schedule the actor from the Schedules tab. The actor remembers what earlier runs saw for the same search and filters, and outputs only NEW, UPDATED and REAPPEARED listings, plus EXPIRED ones that dropped out of the results (only when the search was walked to its end). Each row gets changeType, changedFields, firstSeenAt and lastSeenAt, and the dataset has a Changes view. Unchanged listings are skipped unless you enable Also output unchanged listings. Change detection compares the full listing, so a different connection plan between runs (which hides images and agent details in the output) does not by itself make listings UPDATED. With Incremental mode off, every run outputs all listings and appends them to the run's default dataset (and your named dataset if set), without checking earlier runs.

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.

Ready to collect with AU Residential Property Scraper?

Run it on Apify with your own input and export the results as JSON, CSV or Excel.