Domain.com.au Property Scraper: Price, Beds, Agent avatar

Domain.com.au Property Scraper: Price, Beds, Agent

Pricing

from $1.20 / 1,000 properties

Go to Apify Store
Domain.com.au Property Scraper: Price, Beds, Agent

Domain.com.au Property Scraper: Price, Beds, Agent

Scrape Domain.com.au for sale and for rent listings by suburb: price, beds, baths, parking, land size, property type, agent and agency, with photos and coordinates. Australia residential proxy, no login, pay per property.

Pricing

from $1.20 / 1,000 properties

Rating

0.0

(0)

Developer

The Mine Works

The Mine Works

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

3 days ago

Last modified

Share

Domain sits behind Akamai bot management. This actor clears it through Apify's own unblocking proxy network rather than fighting it with a request that never had a chance.

You are only charged for a property that actually lands in your dataset. A blocked or empty page is never billed.

Overview

Domain is one of the two major real estate portals in Australia, alongside realestate.com.au, and this actor turns any Domain suburb search into structured rows: price, bedrooms, bathrooms, parking, land size, property type, agent and agency, photos and coordinates.

Give it one or more Domain location slugs, such as "chatswood nsw 2067", choose sale or rent, and it returns the full result set Domain itself would show you for that suburb.

Full listing detail, not just a headline price ✅ · Agent and agency captured on every row ✅ · Coordinates included for mapping ✅ · MCP ready for AI agents ✅

Why this needs an unblocking proxy

Domain protects its listing pages with Akamai, and this was tested carefully. A plain request, even one shaped to look exactly like a real browser's request from a residential IP address, gets served a bot-check page with no listing data on every path. This actor instead routes every fetch through Apify's UNBLOCKER proxy network, which resolves that check server-side and returns the real, fully rendered page.

Because Domain server-renders its full result set directly into the page rather than calling a separate API you could intercept, this actor reads that embedded data straight from the page once it loads — a single parse, no extra requests, and no browser to run.

Input

{
"locations": ["chatswood-nsw-2067"],
"listingType": "sale",
"maxItemsPerLocation": 40,
"minBedrooms": 3,
"maxPrice": 1500000,
"propertyType": "house"
}
FieldWhat it takes
locationsOne or more Domain location slugs, copied straight from a Domain search URL, for example "chatswood nsw 2067".
listingTypesale or rent.
maxItemsPerLocationHard cap per location. Domain returns 20 properties per page, so this is your main cost and runtime control.
minBedroomsOptional minimum bedroom count.
minPrice / maxPriceOptional price band. For sale listings this is a sale price; for rent listings this is weekly rent in AUD.
propertyTypeOptional filter such as house, apartment, townhouse, unit, villa or land.

Output

{
"listing_id": "2021072202",
"listing_type": "sale",
"display_address": "76C Beaconsfield Road, Chatswood, NSW, 2067",
"suburb": "Chatswood",
"state": "NSW",
"postcode": "2067",
"latitude": -33.803368,
"longitude": 151.16888,
"price_label": "Auction - Contact Agent",
"bedrooms": 5,
"bathrooms": 4,
"parking": 2,
"property_type": "House",
"land_size": 450,
"land_unit": "m²",
"agent_names": "Adam Wong, Nathan Zhuang",
"agency_name": "DiJones - Chatswood",
"url": "https://www.domain.com.au/76c-beaconsfield-road-chatswood-nsw-2067-2021072202",
"scraped_at": "2026-08-13T21:00:00.000Z"
}
FieldDescription
🆔 listing_idDomain listing ID, stable for deduplication across runs
🏠 display_addressFull street address as shown
📍 suburb / state / postcodeParsed address components
🗺️ latitude / longitudeCoordinates for mapping
💰 price_labelPrice exactly as the agent wrote it
💵 price_valueNumeric price, parsed when the label contains a clean figure
🛏️ bedrooms / 🛁 bathrooms / 🚗 parkingCore feature counts
📐 land_size / land_unitLand size, when disclosed
👤 agent_names / 🏢 agency_nameListing agent and agency
🖼️ image_url / image_countPrimary photo and total photo count
🔗 urlDirect link to the listing on Domain

Common use cases

Market research. Track asking prices, land sizes and property mix in a suburb over time to see where supply and pricing are actually moving.

Buyer and investor alerts. Run on a schedule against a shortlist of suburbs and price bands to catch new listings the day they go live.

Agent and agency intelligence. See which agencies dominate a suburb, how they price, and how they photograph and describe their listings.

Portfolio and comparable analysis. Pull every current listing in a postcode to build a real comparables set instead of relying on a handful of recent sales.

AI agents. Feed live Domain listings into an agent that answers "what is actually for sale in Chatswood right now under 1.5 million?"

Pricing

EventPriceYou pay when
Property delivered$0.0012A property lands in your dataset

$1.20 per 1,000 properties. A search that returns nothing costs nothing.

Run it on a schedule

  1. Run once with the locations you want repeated, then click Save as a task.
  2. In the Apify Console go to Schedules, Create new.
  3. Pick a frequency and attach the saved task.
  4. Wire the dataset to Sheets, Slack or a webhook from the Integrations tab.

Deduplicate on listing_id so a repeated schedule only surfaces genuinely new listings.

FAQ

Do I need a Domain account? No. The actor reads Domain's own public search results only.

Why does this cost more per result than a plain HTTP actor? Domain's listing pages are actively protected, and clearing that protection reliably needs Apify's unblocking proxy network rather than a bare request. The price reflects that real cost, not an arbitrary markup.

Why did I get fewer properties than my cap? Because the suburb has fewer matching listings, or the result set was exhausted before the cap. The run reports what it actually found rather than padding the count.

Does this also cover new project or off the plan listings? Yes, where Domain includes them in the same search results, though those rows may have fewer of the detail fields (price is often "contact agent" rather than a figure) than a standard resale listing.

Use from Claude, ChatGPT and any MCP agent

https://mcp.apify.com/?tools=themineworks/domain-property-scraper

Or call it programmatically:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('themineworks/domain-property-scraper').call({
locations: ['chatswood-nsw-2067'],
listingType: 'sale',
maxItemsPerLocation: 40,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items);

Questions, or need a field we do not return yet? Reach out through the Apify profile.