Domain Real Estate AU Listings | Historical Price | AI Insights avatar

Domain Real Estate AU Listings | Historical Price | AI Insights

Pricing

from $1.50 / 1,000 results

Go to Apify Store
Domain Real Estate AU Listings | Historical Price | AI Insights

Domain Real Estate AU Listings | Historical Price | AI Insights

Extract enriched Domain.com.au property listings across buy, rent, and sold, with AI-enhanced content and deep structured data including descriptions, features, photos, GPS, agent contacts, suburb insights, school catchments, and complete sold and leased price history timelines.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

AbotAPI

AbotAPI

Maintained by Community

Actor stats

0

Bookmarked

7

Total users

3

Monthly active users

18 hours ago

Last modified

Share

Domain.com.au Property Scraper

Pull every listing on Domain.com.au, Australia's #2 property portal, with the full field surface across buy, rent, and sold modes.

Highlights: Property History & Property Insights. Beyond the standard listing fields, this scraper can enrich every record with Property History (the full sold/listed/leased price timeline per unit) and Property Insights (AVM value estimates, suburb market trends, and property-level intelligence such as planning overlays, school zoning, NBN, and council). Together they turn a plain listing into a full valuation-and-history dossier. See Enriched output.

What you get per listing

Example record (shape only, values are illustrative placeholders):

{
"id": "0000000000",
"url": "https://www.domain.com.au/1-example-street-suburb-nsw-2000-0000000000",
"listingType": "buy",
"displayAddress": "1 Example Street, Sample Suburb NSW 2000",
"suburb": "Sample Suburb", "state": "NSW", "postcode": "2000",
"latitude": 0.0, "longitude": 0.0,
"price": "Contact Agent",
"bedrooms": 2, "bathrooms": 2, "parkingSpaces": 1,
"propertyType": "Apartment Unit Flat",
"headline": "Example listing headline.",
"description": "Example multi-paragraph description.",
"structuredFeatures": ["Air Conditioning", "Built-In Wardrobes", "Pool", "Security Access"],
"status": "NEW",
"inspection": {
"byAppointmentOnly": false,
"inspections": [
{ "start": "2026-01-03T13:45:00", "end": "2026-01-03T14:00:00", "time": "1:45pm", "dayOfWeek": "Saturday" }
]
},
"firstListedDate": "2026-01-01T00:00:00",
"agencyName": "Example Real Estate",
"agencyId": "QWdlbmN5OjAwMDAw",
"agencyProfileUrl": "https://www.domain.com.au/agencies/00000/",
"agents": [{
"name": "Jane Smith",
"phone": "0400 000 000",
"mobile": "0400 000 000",
"email": "jane@example.com.au",
"photo": "https://rimh2.domainstatic.com.au/.../contact_000000.JPG"
}],
"tags": ["apartment_unit_flat", "new"]
}

35+ fields populated per listing, including:

  • Agent name, phone, mobile, email, headshot URL
  • Agency name, ID, profile URL
  • Full address (street, suburb, state, postcode) + lat/lng
  • Beds, baths, parking, land size
  • Property type
  • Headline and full description (multi-paragraph)
  • Structured features list (typically 15 to 20 per listing)
  • Status (NEW / UNDER_OFFER / SOLD / LEASED)
  • First-listed date, sold/leased dates where applicable
  • Hero image URL
  • Optional cross-source enrichment for property insights and extended listing fields when includePropertyInsights or includeExtendedListing is enabled.

Two modes (input)

Search mode

Filter by suburb plus listing type.

{
"mode": "search",
"listingType": "buy",
"locations": ["sydney-nsw-2000", "melbourne-vic-3000"],
"minBedrooms": 2,
"maxListings": 100,
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "AU" }
}

URL mode

Paste Domain listing URLs, search URLs, or a mix.

Open-for-inspection URLs are supported. Paste a suburb URL whose path ends in /inspection-times/ (e.g. …/rent/<suburb-slug>/inspection-times/) to scrape only listings with a scheduled inspection in the next 7 days. Each result's inspection field carries the full schedule (start/end time, day of week). Pagination walks the whole filtered set automatically.

{
"mode": "url",
"urls": [
"https://www.domain.com.au/level-12-303-castlereagh-street-sydney-nsw-2000-2013554678",
"https://www.domain.com.au/1-alfred-street-sydney-nsw-2000-2019522695"
],
"proxy": { "useApifyProxy": true, "apifyProxyGroups": ["RESIDENTIAL"], "apifyProxyCountry": "AU" }
}

Proxy requirement

Apify Residential proxy, country AU or NZ. Residential exits are required for reliable reachability and for the optional cross-source enrichment paths.

Input fields

  • mode is search or url
  • listingType is buy (default), rent, or sold
  • locations is a list of suburb-state-postcode slugs (search mode); accepts lowercase hyphens
  • urls is a list of Domain listing URLs (URL mode)
  • propertyTypes (optional filter; example ["apartment-unit-flat", "house"])
  • minBedrooms, maxBedrooms, minBathrooms, minPrice, maxPrice (optional filters)
  • excludeUnderOffer drops listings with status UNDER_OFFER
  • inspectionsOnly (search mode) returns only listings with a scheduled inspection in the next 7 days; each result gets an inspection schedule. In URL mode, paste an /inspection-times/ URL instead.
  • auctionsOnly (search mode) returns only listings going to auction in the next 7 days. Best paired with listingType: "buy". Domain has no auction URL to paste, so this toggle is the only way to filter auctions.
  • maxListings is the hard output cap (default unlimited)
  • fetchPropertyHistory adds the sold/leased price-history timeline (needs residential AU)
  • includePropertyInsights adds suburb-level insights (median, days on market, demographics)
  • includeExtendedListing adds the cross-source indoor/outdoor feature split
  • mcpConnectors (optional) pipes results into your apps — see below
  • notionParentPageUrl (optional, Notion only) the page to create listing pages under
  • maxNotifyListings (optional) caps how many listings are written per connector (default 50)

Send results into your apps (MCP connectors)

Optionally pipe the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. This is an extra delivery step after the scrape — the Apify dataset is never changed.

What gets written to the connector: a condensed, human-readable summary of each record — not the full JSON. Each item becomes one entry with a title (the listing's name / address) and its key fields flattened to plain text (price, beds/baths, agent, URL, …). Nested objects are collapsed to their main value (e.g. an address object → its full-address text) and long lists are trimmed to the first few names. The complete, full-fidelity record always stays in the Apify dataset — the connector copy is a readable digest for browsing in your app.

  • Notion → one page per item (title + a summary body), created under the page you set in notionParentPageUrl.
  • Linear / Airtable / other → one record/issue per item with the same title + fields.

How to enable:

  1. Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
  2. Select it in the "Pipe results into your apps" input field. (If the picker is empty, you haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to the page where items should be created.

The connection is mediated by Apify's MCP proxy, so this actor never sees your third-party credentials. Leave the field empty to skip — the export only runs when a connector is selected.

Tags

Each listing carries category tags you can filter or group on:

  • Property type (apartment_unit_flat, house, townhouse, ...)
  • Status (new, under_offer, sold, leased)
  • Sale method (auction when the price string indicates one)

Enriched output (when cross-source toggles are on)

The three optional toggles attach extra fields to each listing. Each is independent and can be enabled on its own.

Highlight: Property History & Property Insights. These are the two flagship enrichments. Property History (fetchPropertyHistory) gives you the full sold/listed/leased price timeline per unit, and Property Insights (includePropertyInsights) adds AVM value estimates, suburb market trends, and property-level intelligence (planning overlays, school zoning, NBN, council). Together they turn a plain listing into a full valuation-and-history dossier.

⭐ Property History: fetchPropertyHistory: true, adds priceHistory[]

A timeline of past sale, listing, and lease events for the SPECIFIC unit (apartment listings need a unit number like 12/45 … in the address to match; bare-building addresses are skipped to avoid returning aggregate building data).

"priceHistory": [
{ "event": "listed_for_sale", "year": 2026, "price": "Auction Guide $1,000,000", "date": "1 Jan 2026", "agent": "Example Real Estate", "details": "Listed 1 Jan 2026 by Example Real Estate" },
{ "event": "sold", "year": 2018, "price": "$870,000", "date": "1 Jan 2018", "agent": "Example Real Estate", "details": "Sold 1 Jan 2018 by Example Real Estate" },
{ "event": "listed_for_sale", "year": 2018, "price": "$880,000", "date": "1 Dec 2017" },
{ "event": "sold", "year": 2012, "price": "$640,000", "date": "1 Jan 2012" }
]

Typical 0-10 events per unit. Empty when the cross-source index has no record for this specific unit.

⭐ Property Insights: includePropertyInsights: true, adds valueEstimates, marketInsights, pcaInsights

Three separate blocks for AVM valuation, suburb market trends, and property-level intelligence:

"valueEstimates": {
"sale": { "value": 1050000, "display": "$1.05M", "confidence": "MEDIUM", "range_min": 950000, "range_max": 1150000 },
"rental": { "value": 900, "display": "$900/wk", "confidence": "MEDIUM", "range_min": 800, "range_max": 1000 }
},
"marketInsights": {
"median_price": "$1,200,000",
"price_growth_12mo": "+5.2%",
"median_rent": "$950",
"rent_growth_12mo": "+8.1%"
},
"pcaInsights": {
"planningOverlays": { "bushfire": false, "flood": false, "heritage": true },
"council": "Sample Council",
"landDescription": "Lot 1 in Strata Plan 0000",
"internet": { "connectionType": "FTTP", "quality": "Excellent", "description": "NBN Fibre to the Premises" },
"schoolZoning": [
{ "name": "Sample Public School", "isZoned": true, "phase": "primary" },
{ "name": "Sample Secondary College", "isZoned": true, "phase": "secondary" }
],
"builtYear": 2005,
"mobileCoverage": "5G",
"mediaCounts": { "photos": 18, "floorPlans": 1, "videos": 0 }
}

includeExtendedListing: true, adds extendedListing

Indoor/outdoor feature split and a handful of listing-card fields Domain itself doesn't expose:

"extendedListing": {
"indoorFeatures": ["Air conditioning", "Built-in robes", "Dishwasher", "Floorboards", "Gas heating"],
"outdoorFeatures": ["Balcony / Deck", "Secure parking", "Shed"],
"studies": 1,
"buildingSize": 95,
"buildingSizeUnit": "m²",
"priceFrom": 950000,
"priceTo": 1050000,
"hasFloorplan": true,
"hasVideo": false,
"has3DTour": true,
"hasStatementOfInformation": false,
"constructionStatus": "existing",
"dateUpdated": "2026-01-15T09:00:00",
"auctionDate": "2026-02-15T11:00:00",
"soldPrice": null,
"daysOnMarket": 14,
"bond": null,
"availableDate": null
}