Domain.com.au Scraper — Property Listings
Pricing
from $1.60 / 1,000 results
Domain.com.au Scraper — Property Listings
Scrape Domain.com.au sale, rent, and sold listings with prices, property features, addresses, agents, images, and real estate data.
Pricing
from $1.60 / 1,000 results
Rating
0.0
(0)
Developer
Muhammad Afzal
Maintained by CommunityActor stats
0
Bookmarked
4
Total users
1
Monthly active users
10 days ago
Last modified
Categories
Security
Limited permissionsShare
Domain.com.au Property Scraper — Extract Australian Real Estate Listings (Sale, Rent & Sold)
Scrape Domain.com.au, Australia's major real estate portal, for structured property listings: prices or price guides, address and coordinates, bedrooms, bathrooms, parking, property type, inspection times and, with detail enrichment, the full description, photos, features, listing agent and suburb median price. Supports For Sale, For Rent and Sold modes. The default input reads the first 20 For Sale listings in Sydney NSW 2000 with detail enrichment.
Export scraped data, run the scraper via API, schedule and monitor runs, or integrate with other tools.
Features
- Three listing modes: For Sale, For Rent, and Sold properties
- Smart location input: paste a Domain.com.au search URL or give suburb, state and postcode
- Property filters: bedrooms, bathrooms, parking, price range, property type, sort order
- Optional detail enrichment: full description, all listing photos, features, listing agent, inspection times, suburb median price
- Page data, not HTML parsing: reads the JSON data Domain's own pages load (
Accept: application/json) - Bounded retries with exponential backoff for transient failures
- Deduplicated output: each listing ID is saved and charged once per run
Use Cases
| Use Case | Description |
|---|---|
| Property market research | Compare listing prices and supply across suburbs |
| Investment analysis | Compare sold prices and rental listings for ROI calculations |
| Rental yield tracking | Scrape rent vs sale listings to identify high-yield suburbs |
| Agency research | See which agents list which properties |
| Automated valuation models | Feed structured property data into price prediction models |
| Suburb comparison | Build data-driven tools for home buyers comparing areas |
Input
| Field | Type | Default | Description |
|---|---|---|---|
searchUrls | string[] | — | Domain.com.au search page URLs (copy from the website with filters applied). When given, searchLocations is ignored. |
searchLocations | object[] | — | Structured location: { "suburb", "state", "postcode" } |
listingMode | string | "sale" | "sale", "rent", or "sold" (used with searchLocations) |
maxListings | integer | 20 | Maximum listings to return |
includePropertyDetails | boolean | true | Fetch each listing page for description, photos, features, agent, inspections and suburb median |
sortBy | string | "dateupdated-desc" | Sort order for location searches |
propertyTypes | string[] | [] | Domain property-type filter values |
minBedrooms / maxBedrooms | integer | — | Bedroom range |
minBathrooms / maxBathrooms | integer | — | Bathroom range |
minPrice / maxPrice | integer | — | Price range in AUD |
minParking | integer | — | Minimum parking spaces |
maxRequestRetries | integer | 3 | Retries for transient request failures |
Access routing is managed by the Actor owner and is not part of the input.
Output
Each dataset record represents one property listing. Example (shortened) from a 2026-10-27 run:
{"listingId": "2021278349","title": "Apartment / Unit / Flat","priceDisplay": "For Sale: $720,000 - $770,000","listingMode": "sale","listingUrl": "https://www.domain.com.au/1802-5-hosking-place-sydney-nsw-2000-2021278349","street": "1802/5 Hosking Place","suburb": "Sydney","state": "NSW","postcode": "2000","latitude": -33.86703,"longitude": 151.20944,"bedrooms": 1,"bathrooms": 1,"parkingSpaces": null,"propertyType": "ApartmentUnitFlat","tagText": "New","inspectionOpenTime": "2026-10-31T09:30:00","searchQuery": "sale/sydney-nsw-2000","scrapedAt": "2026-10-27T16:21:21.486Z","agentName": "Oliver Quach","medianPrice": "765000","fullDescription": "Commanding a premier high-floor position on Level 18 within the highly regarded 'The Aston...","images": ["https://rimh2.domainstatic.com.au/AXpS766JI7qIq3mNxcL1xiqsqDI=/fit-in/1920x1080/filters:format(webp):quality(85):no_upscale()/2021278349_1_1_261027_053428-w1200-h800"],"propertyFeatures": ["Air conditioning","Balcony / Deck","Broadband internet access"],"inspectionTimes": ["2026-10-31T09:30:00 to 2026-10-31T10:00:00"]}
Fields Domain does not publish for a listing stay null. price is a number only when Domain shows a single price; ranges and labels such as "Contact agent" stay in priceDisplay. soldDate is filled only when Domain includes it in the listing data. The run's OUTPUT record lists delivered and charged counts, skipped listings and the stop reason.
API Usage
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: 'YOUR_API_TOKEN' });const run = await client.actor('muhammadafzal/domain-scraper').call({searchLocations: [{ suburb: 'Surry Hills', state: 'nsw', postcode: '2010' },{ suburb: 'Fitzroy', state: 'vic', postcode: '3065' },],listingMode: 'sale',maxListings: 100,minBedrooms: 2,});const { items } = await client.dataset(run.defaultDatasetId).listItems();console.log(`Found ${items.length} properties`);
Pricing
This Actor uses pay-per-event pricing. Apify platform usage is included; no separate platform-usage fee is passed to users. Each listing saved to the dataset is one billable event. Listings whose requested detail page fails are skipped and counted in OUTPUT instead of being saved, so they are not charged. A blocked run ends with a failed status and no result charges.
| Apify tier | Per listing (USD) | Per 1,000 listings (USD) | Start fee per run (USD) |
|---|---|---|---|
| FREE | $0.002001 | $2.001 | $0.006251 |
| BRONZE | $0.00195 | $1.95 | $0.006094 |
| SILVER | $0.0019 | $1.90 | $0.005938 |
| GOLD / PLATINUM / DIAMOND | $0.0016 | $1.60 | $0.005 |
The start fee is charged once per started GB of memory; the default 512 MB run pays it once. At FREE-tier prices, the default 20-listing run costs about $0.046. The authoritative prices are shown in the Actor's Apify pricing settings.
FAQ
Does this work for all Australian states?
Yes. Domain.com.au covers every state and territory. Give the state code (nsw, vic, qld, sa, wa, tas, act, nt) in searchLocations.
How do I get sold prices?
Set listingMode to "sold". Sold records carry the sale price in price and priceDisplay when the agent disclosed it.
Can I filter by property type?
Yes. Use propertyTypes, or copy a filtered Domain.com.au search URL into searchUrls.
What happens if Domain.com.au refuses the request?
The run ends with a failed status, the reason in the status message and OUTPUT, and no result charges.
Are agent details included?
With includePropertyDetails, each record carries the listing agent's name and the contact details Domain shows on the listing page.
Last verified: 2026-10-27