Domain.com.au Scraper — Rent, Sale & Sold Listings avatar

Domain.com.au Scraper — Rent, Sale & Sold Listings

Pricing

from $1.30 / 1,000 listings

Go to Apify Store
Domain.com.au Scraper — Rent, Sale & Sold Listings

Domain.com.au Scraper — Rent, Sale & Sold Listings

[💰 $1.3 / 1K] Extract rent, for-sale and recently sold property listings from Domain.com.au with 18 built-in filters — property type, bedrooms, price, land size, features. Get prices, GPS coordinates, photos, agent contacts, school catchments and suburb market stats.

Pricing

from $1.30 / 1,000 listings

Rating

0.0

(0)

Developer

SolidCode

SolidCode

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Pull every rental, for-sale and recently-sold listing from Domain.com.au at scale — prices, GPS coordinates, photos, floorplans, agent contacts, school catchments and suburb market stats, all on one flat row. Built for Australian buyer's agents, property investors, valuers and proptech teams who need a filtered, ready-to-model listing feed without pasting URLs one at a time or maintaining a scraper of their own.

Why This Scraper?

  • 18 Domain search filters built in, not just a URL box — 20 property types (Townhouse, Penthouse, Block of units, Rural lifestyle, Development site and more), bedrooms, bathrooms, car spaces, price band, land size, 16 named features, free-text keywords, new vs established, and retirement living. Every filter was checked against Domain's own match counts before it shipped.
  • Rent, for sale and recently sold in the same actor — sold results carry the sale method and the sale date, which is what a CMA, an appraisal or a comparable-sales model actually runs on. One option switches between the three.
  • GPS coordinates on 100% of listings — latitude and longitude on all 413 rows sampled across six areas (Sydney, Melbourne, Brisbane, Perth, Hawthorn, Orange) and all three search types. Street address, suburb, state, postcode and at least one photo were also on 100%.
  • The advertiser's exact price line on every listingpriceDisplay ships verbatim ("$800 per week", "$650,000 to $680,000", "Auction", "Contact Agent"), with a parsed numeric price beside it wherever a figure is actually derivable. You always get the words the agent published, never a guess dressed up as a number.
  • Land size always travels with its unit — Domain mixes square metres and hectares in the same result set, so a 15.7 ha rural block sits next to a 640 m² suburban one. landSize and landUnit are shipped as a pair, which is the difference between a correct dataset and a 10,000× error.
  • 41 extra fields per listing on demand — full advert text, every full-size photo and floorplan, agency phone, agent name and mobile, open-inspection times, nearby school catchment, suburb median sale price, median weekly rent, average days on market, auction clearance rate and five years of sales history.
  • Drop the sold listings with no disclosed price — roughly one in five sold results never publishes a figure (measured 29,863 → 23,942 on a Sydney search). One option removes them, so every comparable you pay for has a number attached.
  • 0.38 seconds per listing — 100 listings in 38 seconds, and a 1,195-listing Sydney-region walk in under 7 minutes, measured on the platform rather than estimated.

Use Cases

Comparable Sales & Valuation

  • Build CMA and appraisal workbooks from sold searches — sale method, sale date and the disclosed price on the same row.
  • Read suburb median sale price, median weekly rent, average days on market and auction clearance rate straight off any enriched listing.
  • Pull five years of suburb sales history — median price, volume sold, days on market and annual growth per year.

Buyer's Agents & Lead Generation

  • Watch a target suburb for new stock with a scheduled run sorted by most recently updated.
  • Capture listing agency, agency phone, agent name and mobile on enriched rows, ready to load into a CRM.
  • Shortlist against a client brief in one run: 4+ bedrooms, 2+ bathrooms, secure parking, under a set price.

Market Research & Analytics

  • Measure supply by property type across a whole state — area accepts suburbs, regions and bare state codes.
  • Compare rental and sale inventory in the same suburb by switching one option.
  • Quantify feature prevalence — how many rentals allow pets, come furnished, or have a swimming pool.

Rental Portfolio & Property Management

  • Track weekly asking rents by suburb and bedroom count, with the advertiser's own price wording preserved.
  • Monitor competing stock — inspection times, deposit-taken status, and how long a listing has been live.
  • Benchmark your own listings against the suburb median weekly rent and average days on market.

Data Enrichment & Integration

  • Geocode a whole Domain search instantly — every row is map-ready without a separate geocoding step.
  • Attach school catchments (name, sector, level, distance) to each property for family-buyer scoring.
  • Export to JSON, CSV or Excel, or stream rows into a warehouse through the Apify API.

Getting Started

Simplest run

{
"searchMode": "rent",
"area": "sydney-nsw-2000",
"maxItems": 100
}
{
"searchMode": "sale",
"area": "parramatta-nsw-2150",
"propertyType": "house",
"minBedrooms": "4-any",
"minCarSpaces": "2-any",
"priceRange": "0-1500000",
"includeSurroundingSuburbs": "0",
"sortBy": "price-asc",
"maxItems": 500
}

Sold comparables, with full details

{
"searchMode": "sold-listings",
"area": "brisbane-city-qld-4000",
"hidePriceWithheld": "1",
"enrichDetails": true,
"maxItems": 1000
}

Paste a filtered search URL from the site

Set your filters on domain.com.au, then copy the whole address bar — every filter in it is carried through, and paging continues from whatever you pasted.

{
"searchUrls": [
"https://www.domain.com.au/sale/melbourne-vic-3000/?bedrooms=2-any&price=0-800000",
"https://www.domain.com.au/rent/bondi-beach-nsw-2026/",
"https://www.domain.com.au/sold-listings/hawthorn-vic-3122/"
],
"maxItems": 500
}

Input Reference

What to Scrape

ParameterTypeDefaultDescription
searchUrlsarrayOptional. Paste one or more domain.com.au SEARCH result URLs -- set the filters you want on the website, then copy the whole address bar. When you use this, the filters below are ignored. Suburb searches (/rent/sydney-nsw-2000/), region and state searches (/sale/melbourne-region-vic/, /sale/nsw/), searches that already carry filters in the address (?bedrooms=2-any&price=0-800000) and Domain's own filter paths (/sale/sydney-nsw-2000/house/3-bedrooms/) all work, and paging continues from whatever you pasted. A single property page works too and returns that one property. Agent and agency profile pages are not searches and will be reported as a failed search in the run log.
searchModestringrentRentals, listings for sale, or recently sold properties. Sold results include the sale price and sale date where the agent disclosed them.
areastringsydney-nsw-2000A Domain location slug. Suburbs look like sydney-nsw-2000 or bondi-beach-nsw-2026, regions like sydney-region-nsw or melbourne-region-vic, and a whole state is just nsw, vic, qld, wa, sa, tas, act or nt. The easiest way to get one right is to search on domain.com.au and copy the piece of the address bar that comes after /rent/ or /sale/.
propertyTypestring""One property type per run. "House (all kinds)" and "Apartment or unit (all kinds)" are the site's own umbrella groups and cover every sub-type beneath them; pick a specific sub-type to narrow further.
minBedroomsstring""Domain caps this at 5, so "5 or more" is the top of the scale. Studios count as zero bedrooms and are only excluded once you set a minimum.
minBathroomsstring""Domain caps this at 5, so "5 or more" is the top of the scale.
minCarSpacesstring""Garages, carports and open parking all count. Domain caps this at 5.
priceRangestring""Written as low-high, e.g. 500000-800000. Use "any" for an open end -- 800000-any for "at least $800,000", 0-600000 for "up to $600,000". For rentals this is the WEEKLY rent, so 400-700 rather than 400000-700000. Anything that is not two numbers is rejected by Domain.
landSizestring""Written the same way as the price range, e.g. 400-any for "at least 400", or 600-1200 for a band. Set the unit below.
landSizeUnitstring""Only matters when you set a land size. Rural blocks are usually measured in hectares; suburban blocks in square metres.
featurestring""One feature per run, using Domain's own feature list. "Pets allowed" and "Furnished" are rental-oriented but work on every search type.
keywordsstring""Free text matched against the agent's own listing copy -- "granny flat", "ocean views", "renovated". Multi-word phrases are fine.
propertyAgestring"""New" covers off-the-plan, house-and-land and newly built stock; "Established" is everything previously lived in.
retirementOnlystring""Restricts the search to over-55s and retirement-village listings.
includeSurroundingSuburbsstring""Domain widens a suburb search into its neighbours by default. Turning this off usually cuts the result count by roughly two thirds and every row then carries the suburb you asked for.
hideUnderOfferstring""Only for "Properties for sale". Domain rejects this option on rental and sold searches.
hideDepositTakenstring""Only for "Properties for rent". Domain rejects this option on for-sale and sold searches.
hidePriceWithheldstring""Only for "Recently sold properties". Roughly a fifth of sold listings never disclose a price; this drops them so every row you pay for has one. Domain rejects this option on for-sale and rental searches.
sortBystring""Domain's own sort options, seven of them. Sold searches are already newest-sale-first unless you change this.
maxItemsinteger100Maximum listings per search URL (0 = collect everything each search returns). Domain serves at most 50 pages for any one search -- measured at 1,195 listings on a Sydney-region walk -- so split large areas into several narrower searches.

Options

ParameterTypeDefaultDescription
enrichDetailsbooleanfalseAdd 41 extra fields per listing. Adds one request per listing and is billed at the higher rate.
concurrencyinteger8How many requests to run in parallel. Lower this if you see failures.
proxyConfigurationobjectApify ProxyProxy settings for the run.

Output

Every listing is one dataset row. Enabling enrichDetails adds 41 further fields to the same row — there is no second record type to join.

The example below is a real captured row. Long arrays and the advert body are trimmed for readability, and the agent's name, mobile number and profile link are replaced with placeholders.

{
"id": "2021012386",
"url": "https://www.domain.com.au/2315-45-macquarie-street-parramatta-nsw-2150-2021012386",
"listingKind": "listing",
"propertyType": "Apartment / Unit / Flat", "propertyTypeCode": "ApartmentUnitFlat",
"bedrooms": 2, "bathrooms": 2, "parkingSpaces": 1, "landUnit": "m²", "isRural": false, "isRetirement": false,
"streetAddress": "2315/45 Macquarie Street", "suburb": "Parramatta", "state": "NSW", "postcode": "2150",
"latitude": -33.81524, "longitude": 151.00093,
"price": 700000,
"priceDisplay": "$700,000",
"agencyId": "22392",
"agencyName": "Ray White Parramatta/Oatlands/Northmead",
"agencyLogo": "https://rimh2.domainstatic.com.au/.../logo_22392.jpg",
"agentNames": "Jane Doe",
"images": ["https://rimh2.domainstatic.com.au/.../2021012386_1_1_260721_062351-w2000-h1333"],
"hasVideo": false, "hasMatterport": false,
"headline": "LUXURIOUS 5-STAR 2 BEDROOM APARTMENT AT 'V BY CROWN'",
"description": "This is the landmark building 'V by Crown'. Positioned in the heart of Parramatta CBD with all major amenities at the doorstep ...",
"listingMode": "buy", "listingStatus": "live", "saleMethod": "privateTreaty", "listingCategory": "residential",
"fullAddress": "2315/45 Macquarie Street, Parramatta NSW 2150",
"streetName": "Macquarie Street", "streetNumber": "45", "unitNumber": "2315",
"suburbProfileUrl": "https://www.domain.com.au/suburb-profile/parramatta-nsw-2150",
"listingStats": [{"key": "buildingArea", "value": 97}],
"propertyLastSoldDate": "2015-10-22T00:00:00",
"suburbMedianSalePrice": 642500, "suburbMedianRentPrice": 720, "suburbEntryLevelPrice": 489400,
"suburbLuxuryLevelPrice": 839200, "suburbAvgDaysOnMarket": 42, "suburbAuctionClearance": 63, "suburbSoldLastYear": 633,
"suburbSalesGrowth": [{"year": "2026", "medianSoldPrice": 642500, "annualGrowth": 0.0362, "numberSold": 633, "daysOnMarket": 42}],
"agencyPhone": "02 9891 3333",
"agencyProfileUrl": "https://www.domain.com.au/real-estate-agencies/raywhiteparramattaoatlandsnorthmead-22392/",
"agencyBanner": "https://rimh2.domainstatic.com.au/.../banner_22392.png",
"agents": [{"name": "Jane Doe", "phone": "02 9891 3333", "mobile": "04XX XXX XXX", "photo": "https://rimh2.domainstatic.com.au/.../contact_1775106.jpeg", "agentProfileUrl": "https://www.domain.com.au/real-estate-agent/jane-doe-1775106"}],
"photosFullSize": ["https://rimh2.domainstatic.com.au/.../2021012386_1_1_260721_062351-w2000-h1333"],
"heroImage": "https://rimh2.domainstatic.com.au/.../2021012386_1_1_260721_062351-w2000-h1333",
"media": {"items": [{"type": "image", "imageUrl": "https://rimh2.domainstatic.com.au/.../2021012386_1_1.jpg"}], "floorplanUrl": "https://rimh2.domainstatic.com.au/.../2021012386_29_3_260721_062351-w1713-h2667"},
"createdOn": "2026-07-21T16:23:49.527", "modifiedOn": "2026-07-27T20:09:10.023", "propertyId": "OI-7458-RE",
"schools": [{"name": "Indie School Parramatta", "educationLevel": "secondary", "type": "Private", "distance": 156.53, "address": "Parramatta, NSW 2150", "status": "Open"}],
"demographics": {"population": 25793, "avgAge": "20 to 39", "owners": 0.292, "renters": 0.708, "families": 0.551, "singles": 0.449},
"faqs": [{"question": "How many bedrooms does 2315/45 Macquarie Street, Parramatta have?", "answer": [{"text": "2315/45 Macquarie Street, Parramatta is a 2 bedroom apartment."}]}],
"inspectionTimes": [{"dayOfWeek": "Saturday", "day": "1", "month": "August", "time": "10:30am - 10:45am", "openingDateTime": "2026-08-01T10:30:00"}],
"nextInspection": "Sat 10:30am", "inspectionByAppointmentOnly": false, "timeZone": "Australia/Sydney"
}

Core Fields

FieldTypeDescription
idstringListing ID
urlstringListing URL
listingKindstringRecord kind (listing or project)
propertyTypestringProperty type
propertyTypeCodestringProperty type (code)
bedroomsnumberBedrooms
bathroomsnumberBathrooms
parkingSpacesnumberParking spaces
landSizenumberLand size
landUnitstringLand size unit
isRuralbooleanRural listing
isRetirementbooleanRetirement living
statusTagstringStatus label

Price & Value

FieldTypeDescription
pricenumberPrice (AUD)
priceDisplaystringPrice (as advertised)
auctionDateTimestringAuction date/time

Location

FieldTypeDescription
streetAddressstringStreet address
suburbstringSuburb
statestringState
postcodestringPostcode
latitudenumberLatitude
longitudenumberLongitude

Agency & Media

FieldTypeDescription
agencyIdstringAgency ID
agencyNamestringAgency
agencyLogostringAgency logo
agentNamesstringListing agents
imagesarrayPhoto URLs
hasVideobooleanHas video
hasMatterportbooleanHas 3D walkthrough
projectNamestringDevelopment project

With enrichDetails enabled (1 of 2)

FieldTypeDescription
headlinestringAdvert headline
descriptionstringDescription
structuredFeaturesarrayProperty features
listingModestringListing mode
listingStatusstringListing status
saleMethodstringSale method
listingCategorystringListing category
fullAddressstringFull address
streetNamestringStreet
streetNumberstringStreet number
unitNumberstringUnit number
suburbProfileUrlstringSuburb profile URL
statementOfInformationUrlstringStatement of Information (PDF)
listingStatsarrayBond, land area, building area, available-from
propertyLastSoldDatestringProperty last sold on
suburbMedianSalePricenumberSuburb median sale price
suburbMedianRentPricenumberSuburb median weekly rent
suburbEntryLevelPricenumberSuburb entry-level price
suburbLuxuryLevelPricenumberSuburb luxury-level price
suburbAvgDaysOnMarketnumberSuburb average days on market
suburbAuctionClearancenumberSuburb auction clearance (%)
suburbSoldLastYearnumberSuburb sales in the last year
suburbSalesGrowtharraySuburb 5-year sales history
agencyPhonestringAgency phone
agencyProfileUrlstringAgency profile URL

With enrichDetails enabled (2 of 2)

FieldTypeDescription
agencyBannerstringAgency banner image
agentsarrayAgents (name, phone, mobile, photo, profile URL)
photosFullSizearrayFull-size image URLs (photos & floorplans)
heroImagestringHero image
mediaobjectFloorplans, video, virtual tour & full media list
createdOnstringFirst listed
modifiedOnstringLast updated
propertyIdstringProperty ID
schoolsarrayNearby schools & catchment
demographicsobjectSuburb demographics
faqsarrayListing Q&A
inspectionTimesarrayOpen-for-inspection times
nextInspectionstringNext inspection
inspectionByAppointmentOnlybooleanInspection by appointment only
auctionLocationstringAuction location
timeZonestringListing time zone

Tips for Best Results

  • Plan around Domain's 50-page ceiling — any single search serves at most 50 pages, so a Sydney-region search that reports 26,653 matches still returns about 1,195 listings. To cover a whole region, split it by suburb, price band or property type and paste every URL into searchUrls — rows are de-duplicated across searches, so you are never billed twice for the same listing.
  • On a capped search, sortBy decides which listings you get — seven orders are available. Use price-lowest-first for entry-level stock, most-recently-updated to monitor a market, or sale-date-newest-first when you are building comparables.
  • Read price next to priceDisplay — Domain publishes no numeric price, only the advertiser's own wording. priceDisplay carries that wording on every listing and is the field to audit against; price is the figure derived from it, and where the agent wrote "Auction" or "Contact Agent" there is nothing to derive.
  • Turn off includeSurroundingSuburbs when you need one suburb only — Domain widens suburb searches into their neighbours by default. Switching it off took a Parramatta search from 1,185 matches to 301, and every returned row then carried the suburb asked for.
  • For comparables, set hidePriceWithheld — about a fifth of sold results never disclose a figure. Dropping them at the source is cheaper than filtering them out afterwards, and leaves a comparables set where every row has a price.
  • enrichDetails is where the contacts and catchments live — across the 84-record enriched sample, agency phone, agent name, nearby schools, suburb medians and the full advert text were on every record, and 81 of those 84 also carried a direct agent mobile. Leave it off for a fast inventory sweep; turn it on for lead work, valuation and listing analysis.
  • Filter to listingKind == "listing" for individual properties — a small share of search results (11 of 413 sampled) are developer project cards, which advertise a whole new-build development rather than one property. They carry no address, no price and no detail page, and this field is how you drop them.

Pricing

From $1.30 per 1,000 results (search only) or from $2.30 per 1,000 results (with full details).

ResultsSearch OnlyWith Full Details
100$0.13$0.23
1,000$1.30$2.30
10,000$13.00$23.00
100,000$130.00$230.00

Those are the rates on Gold and above. Higher-volume plans pay less per result:

Your Apify planSearch OnlyWith Full Details
No discount$1.55$2.75
Bronze$1.45$2.60
Silver$1.40$2.45
Gold and above$1.30$2.30

Per 1,000 results.

A "result" is any listing row in the output dataset. When you run several searches at once, a listing matching more than one of them is de-duplicated before it reaches the dataset, so you are never charged twice for the same listing. The full-details rate applies only to rows that actually came back enriched — if a listing's detail record is unavailable, the row is still delivered and charged at the search-only rate. Platform fees (compute, storage) are additional and depend on your Apify plan.

Integrations

Export data in JSON, CSV, Excel, XML, or RSS. Connect to 1,500+ apps via:

  • Zapier / Make / n8n — Workflow automation
  • Google Sheets — Direct spreadsheet export
  • Slack / Email — Notifications on new results
  • Webhooks — Trigger custom APIs on run completion
  • Apify API — Full programmatic access

This is an unofficial scraper. It is not affiliated with, endorsed by, or connected to Domain.com.au, Domain Holdings Australia, or its operators in any way. All trademarks belong to their respective owners.

This actor is intended for legitimate market research and analytics. You are responsible for complying with applicable laws and with Domain.com.au's Terms of Service.

Results may include personal data such as agent contact details. Treat them accordingly: do not use them for spam, harassment, or any unlawful purpose, and follow applicable privacy rules when storing or processing them.