Domain.com.au Property Scraper avatar

Domain.com.au Property Scraper

Pricing

from $0.69 / 1,000 property listings

Go to Apify Store
Domain.com.au Property Scraper

Domain.com.au Property Scraper

Scrape Domain.com.au real estate listings: price, address, bedrooms, bathrooms, agent contacts, images, and inspection times for sale and rental properties across Australia.

Pricing

from $0.69 / 1,000 property listings

Rating

0.0

(0)

Developer

ParseBird

ParseBird

Maintained by Community

Actor stats

1

Bookmarked

2

Total users

1

Monthly active users

16 hours ago

Last modified

Categories

Share

Domain.com.au Property Scraper

Scrape Domain.com.au property listings by search URL, state, or suburb — sale or rental — into clean, structured JSON with price, address, agent contacts, and photos.

Paste any Domain.com.au search URL, or pick a state or suburb, and get full listing detail back — headline, description, features, agent phone/email, floor plans, and inspection or auction times — not just the summary shown in search results.

Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this Domain.com.au scraper: parsebird/domain-com-au-scraper on Apify. Call it with the ApifyClient (Python: ApifyClient(token).actor("parsebird/domain-com-au-scraper").call(run_input={"state": "nsw", "maxResults": 20})) or the equivalent JS client. Key inputs: startUrl (a full Domain.com.au /sale/... or /rent/... search URL — overrides state/location), state (an Australian state/territory code: nsw, vic, qld, wa, sa, tas, act, nt), location (a suburb or area name/slug, e.g. "Bondi NSW"), maxResults (default 20), and proxyConfiguration (a RESIDENTIAL proxy is strongly recommended — Domain.com.au runs Akamai Bot Manager). Output is one JSON object per unique listing: id, url, address, suburb, state, postcode, latitude/longitude, price, propertyType, beds, baths, parking, landSize, headline, summaryDescription, features, images, agency (name + contacts), inspectionDetails, auctionDetails, listingType. Full API reference: https://apify.com/parsebird/domain-com-au-scraper/api. Get an API token at https://console.apify.com/account/integrations.

What does Domain.com.au Property Scraper do?

This Domain.com.au scraper extracts full listing detail directly from the site's own Next.js data, not just what's visible in a search results card.

  • 🔍 Any search URL — paste a filtered /sale/... or /rent/... search link copied straight from your browser (property type, price range, and sort order all carry through).
  • 📍 State or suburb search — no URL handy? Pick a state (nsw, vic, qld, wa, sa, tas, act, nt) or type a suburb/area (e.g. "Bondi NSW", "parramatta-nsw-2150").
  • 🏠 Full listing detail — headline, full description, structured features, land size, and building area for every result, fetched from each listing's own page (search-result cards alone don't carry this).
  • 🧑‍💼 Agency and agent contacts — agency name, branding logo, and every listed agent's name, phone, and email.
  • 📸 Full photo galleries, floor plans, and video/Matterport flags for every listing.
  • 🗓️ Inspection and auction details — open home times and auction dates where published.
  • 🧹 Automatic deduplication — every listing is saved once, keyed by its Domain.com.au listing ID.

Because it runs on the Apify platform, you also get scheduling (track new listings and price changes daily), instant API and webhook access, and one-click export to JSON, CSV, Excel, HTML, or XML.

What data can you extract from Domain.com.au?

FieldDescription
id, urlDomain.com.au's internal listing ID and direct listing URL
address, unitNumber, streetNumber, street, suburb, state, postcodeFlattened address fields
latitude, longitudeGPS coordinates
price, propertyType, propertyTypesCleaned display price and property type label(s)
beds, baths, parking, landSize, buildingAreaCore property specs
headline, summaryDescription, features, labelsListing headline, description excerpt, feature list, and badges (e.g. "New")
images, hasFloorPlan, hasVideo, hasMatterportPhoto gallery and media flags
inspectionDetails, auctionDetails, dateListedOpen home times, auction info, and listing date
agencyAgency name, branding logo, and agent contacts (name, phone, email)
listingType, isNew, isRetirement, isRuralSale/Rent, and new-development/retirement/rural flags

How to scrape Domain.com.au property data

  1. Open the Domain.com.au Property Scraper page on Apify.
  2. Either search on domain.com.au and paste the resulting URL into startUrl, or just set state or location instead.
  3. Set maxResults (how many unique listings to collect).
  4. Turn on a RESIDENTIAL proxy under proxyConfiguration — Domain.com.au runs Akamai Bot Manager, so this materially improves reliability.
  5. Click Start and watch results land in the dataset in real time.
  6. Export the finished dataset as JSON, CSV, Excel, HTML, or XML, or pull it via the API / integrations.

Input / Output

Search a specific state:

{ "state": "nsw", "maxResults": 100 }

Search a suburb:

{ "location": "Bondi NSW", "maxResults": 50 }

Paste a pre-filtered search URL, sale or rent:

{
"startUrl": "https://www.domain.com.au/sale/sydney-region-nsw/house/?excludeunderoffer=1&sort=dateupdated-desc",
"maxResults": 200
}

Output example:

{
"id": "2021150308",
"url": "https://www.domain.com.au/8-318-bondi-road-bondi-nsw-2026-2021150308",
"address": "8/318 Bondi Road, Bondi NSW 2026",
"suburb": "Bondi",
"state": "NSW",
"postcode": "2026",
"latitude": -33.8945734,
"longitude": 151.2700842,
"price": "$1,200,000",
"propertyType": "Apartment / Unit / Flat",
"beds": 2,
"baths": 1,
"parking": 0,
"headline": "Art Deco haven with study, moments from the beach",
"listingType": "Sale",
"agency": {
"name": "Wiesner Property",
"contacts": [{ "name": "Jeremy Wiesner", "phone": "0411 099 199", "email": "jeremy@wiesnerproperty.com" }]
}
}

Download results as JSON, CSV, Excel, HTML, or XML from the Console, or via the Apify API.

Python

from apify_client import ApifyClient
client = ApifyClient("<YOUR_API_TOKEN>")
run = client.actor("parsebird/domain-com-au-scraper").call(run_input={
"state": "qld",
"maxResults": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
print(item["address"], item["price"])

JavaScript

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_API_TOKEN>' });
const run = await client.actor('parsebird/domain-com-au-scraper').call({
state: 'qld',
maxResults: 200,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Use cases

  • Market research — analyze prices, property types, and sizes across a state or suburb.
  • Price monitoring — schedule daily runs on a search URL to track new listings and price changes over time.
  • Lead generation — pull agency and agent contact details for a target market segment.
  • Rental analysis — point startUrl at a /rent/... search to collect leasing data instead of sales.
  • Portfolio and map building — use the GPS coordinates and address fields to plot listings or feed a geospatial dashboard.

How it works

  1. The Actor solves Domain.com.au's Akamai Bot Manager challenge once per run with a headless browser, then reuses the resulting session for every subsequent request — fast, and far cheaper than running a full browser per page.
  2. It reads the same Next.js data the Domain.com.au search page itself loads to collect candidate listing IDs, then fetches each listing's own page for full detail (description, features, agent contacts, inspection times) that a search-result card alone doesn't carry.
  3. For state searches, Domain.com.au doesn't expose a single flat results grid for an entire state — the Actor searches the state's primary market (its capital city) to return real, individual listings rather than the curated "browse" content Domain shows for state-wide URLs. For full control over which suburbs or regions are covered, use location or a startUrl.
  4. Every listing is deduplicated by its Domain.com.au listing ID as it's found, and pushed to the dataset immediately up to your maxResults cap.

How much does it cost to scrape Domain.com.au?

This Actor uses the Pay-Per-Event pricing model — you only pay for what you get, with no separate compute charge.

EventFreeBronzeSilverGold
Listing (per 1,000)$0.99$0.89$0.79$0.69

Collecting 1,000 unique listings costs $0.99 on the Free plan, down to $0.69 on Gold. Apify's monthly platform usage credits apply to any plan.

Yes — scraping publicly available data is generally legal, as confirmed in cases like hiQ Labs v. LinkedIn. This Actor only collects property information that's publicly visible on domain.com.au to anyone browsing the site. You are responsible for how you use the collected data — always check the target site's terms of service and applicable law before reusing scraped data commercially. See Apify's blog post on web scraping legality for more detail.

FAQ

Does this use an official Domain.com.au API? No — Domain.com.au does not offer a public listings API for third-party use. This Actor reads the same data the domain.com.au website itself loads, structured into clean JSON.

Why does state only return listings from the capital city? Domain.com.au doesn't support browsing an entire state as one paginated results grid — a state-wide URL shows curated "browse" content (new developments, market stats) instead of individual listings. The Actor searches the state's primary market instead so you get real listings. For other regions, use location (a specific suburb/area) or paste a startUrl.

Do I need a proxy? Yes, effectively — Domain.com.au runs Akamai Bot Manager, and results are meaningfully more reliable with a RESIDENTIAL proxy (proxyConfiguration). The Actor rotates to a fresh IP automatically if a session gets blocked mid-run.

Can I scrape rentals instead of sales? Yes — paste a domain.com.au/rent/... search URL into startUrl; the Actor handles either listing type. state and location search sale listings by default.

Can I schedule this to run automatically? Yes. Use Apify's Scheduler to run it daily, weekly, or at any interval, and combine it with Apify's storage integrations (Google Sheets, Slack, Make, Zapier, webhooks) to get notified of new listings.

I found a bug or missing field — where do I report it? Open an issue on the Actor's Issues tab in Apify Console, or use the API directly for programmatic access.