Domain.com.au Real Estate Scraper avatar

Domain.com.au Real Estate Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Domain.com.au Real Estate Scraper

Domain.com.au Real Estate Scraper

Scrape property listings from Domain.com.au with addresses, prices, bedrooms, images, inspections, agents. HTTP-only; no login or proxy required.

Pricing

from $1.00 / 1,000 results

Rating

5.0

(11)

Developer

Crawler Bros

Crawler Bros

Maintained by Community

Actor stats

12

Bookmarked

2

Total users

1

Monthly active users

2 days ago

Last modified

Share

Scrape Australian property listings from Domain.com.au — addresses, asking prices, bedrooms/bathrooms/carspaces, images, inspection times, agents, and coordinates. Parses the __NEXT_DATA__ JSON blob Domain ships in every search page. HTTP-only; no login, no cookies, no proxy required.

Output (per listing)

  • type = domain_listing
  • id — Domain listing ID (e.g. 2020305174)
  • url — canonical listing URL (https://www.domain.com.au/...)
  • title — first line of address + suburb (e.g. 107/104 Fairway Drive, Norwest)
  • price — numeric price when published (e.g. 1000000)
  • priceLabel — price string as displayed (e.g. "$1,000,000", "Auction", "Contact agent")
  • propertyTypeHouse, ApartmentUnitFlat, Townhouse, Land, etc.
  • bedrooms, bathrooms, carspaces (integers)
  • address, suburb, state, postcode
  • latitude, longitude
  • images — array of photo URLs
  • inspections — array of {openTime, closeTime} ISO strings (when listed)
  • agent{name, photo} for the primary agent
  • agencyName — brand/agency name
  • scrapedAt

If no listings match, the actor emits a single domain_blocked sentinel record so runs exit 0.

Input

FieldTypeDescription
searchUrlsstring[]Domain.com.au search URLs. Prefill: https://www.domain.com.au/sale/sydney-nsw/. Any /sale/, /rent/, or region URL works.
maxItemsintegerMax listings per run. Default 3.
proxyConfigurationobjectOptional — disabled by default. Domain works fine from datacenter IPs.

Example output

{
"type": "domain_listing",
"id": "2020305174",
"url": "https://www.domain.com.au/107-104-fairway-drive-norwest-nsw-2153-2020305174",
"title": "107/104 Fairway Drive, Norwest",
"price": 1000000,
"priceLabel": "$1,000,000",
"propertyType": "ApartmentUnitFlat",
"bedrooms": 2,
"bathrooms": 2,
"carspaces": 1,
"suburb": "Norwest",
"state": "NSW",
"postcode": "2153",
"latitude": -33.730362,
"longitude": 150.95859,
"images": ["https://rimh2.domainstatic.com.au/..."],
"agencyName": "Obsidian Property Pty Ltd",
"scrapedAt": "2026-04-20T10:00:00Z"
}

How it works

  1. For each entry in searchUrls, the actor fetches the page with curl_cffi (Chrome 131 TLS fingerprint).
  2. The __NEXT_DATA__ script is parsed for props.pageProps.componentProps.listingsMap — every property card is serialised there with full metadata.
  3. Pagination is followed via totalPages / ?page=N up to maxItems.
  4. Fields are only emitted when populated (no nulls).

FAQ

Do I need a proxy? No. Domain.com.au is reachable from Apify datacenter IPs. Can I scrape /rent/ too? Yes — any URL under https://www.domain.com.au/sale/... or /rent/... works. What about individual property pages? Provide any Domain listing detail URL; the actor will fetch just that one listing. Why a sentinel record? If a search has no matches or the region slug is wrong, the actor still emits one record so downstream pipelines never see empty output. Rate limits? Domain has no aggressive anti-bot system, but we cap at maxItems (500) and add a polite 0.4s delay between pages.