# domain.com.au (`dz_omar/domain-scraper`) Actor

🏠 Scrape property listings from domain.com.au prices, agent contacts, nearby schools, market insights, images & floor plans. Input any search URL with filters. Full enrichment via property-details API. 🇦🇺

- **URL**: https://apify.com/dz_omar/domain-scraper.md
- **Developed by:** [FlowExtract API](https://apify.com/dz_omar) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Features:** Limited permissions
- **Stats:** 86 total users, 14 monthly users, 100.0% runs succeeded, 9 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.70 / 1,000 property listings

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

## 🏠 domain.com.au Scraper

**Scrape property listings from domain.com.au with full details, agent contacts, nearby schools, market insights, and high-resolution media  using any search URL directly from the website.**

### 🎬 Video Tutorial

[![Watch the Tutorial](https://img.shields.io/badge/YouTube-Watch%20Tutorial-red?style=for-the-badge\&logo=youtube)](https://youtube.com/@FlowExtractAPI)

***

### Key Features

#### Two Speeds, One Actor

A single switch (`detailMode`) lets you trade speed for depth:

- **Fast mode (default, `detailMode: false`)**  the quickest way to pull listings at scale. Returns the essentials for every property: ID, listing URL, price, full address, suburb/state/postcode, GPS coordinates, dwelling type, bedrooms, bathrooms, car spaces, and photos. Ideal for building lists, market scans, and feeding downstream pipelines.
- **Detail mode (`detailMode: true`)**  the complete picture. Everything in fast mode **plus** full description, agent & agency contacts, nearby schools, market insights, inspection & auction info, and more. Slower, because each property is looked up individually  but exhaustive.

#### Works With Any Search  Including Large Areas

- **Paste any domain.com.au search URL** straight from your browser  every filter you applied is honored automatically.
- **Large searches are fully supported.** Searches that return thousands of listings (e.g. a whole state) are handled end-to-end, so you get well beyond the small page limit a single search normally exposes.
- **Map-view and inspection-times URLs supported**, in addition to standard list searches.
- **No duplicates.** Every property appears once, even across very large result sets.

#### Single Property URLs Also Supported

- Paste a direct link to one listing (e.g. `https://www.domain.com.au/342-whale-beach-road-palm-beach-nsw-2108-2020501730`) and the Actor returns that single property's **full detail record**  description, agent & agency contacts, schools, market insights, everything.
- Mix search URLs and single-property URLs freely in the same `start_urls` list.
- `detailMode` and `maxResults` are ignored for single-property URLs  there's only one listing to return, and it's always returned in full.

#### What You Get (Detail Mode)

- **Core Listing**  listing ID, canonical URL, headline, full description, price, promo level, listing type, lifecycle status
- **Property Attributes**  dwelling type, bedroom count, bathroom count, car spaces, additional features list
- **Market Timing**  days on market, active-since date, time-on-market formatted strings
- **Location**  full address string, structured address components (suburb, postcode, state, area, region, suburb ID), GPS coordinates
- **Media**  high-resolution images and thumbnails, including floor plans
- **Advertiser**  full agency block  name, address, logo, banner, agent contacts with phone, email, and social URLs
- **Nearby Schools**  name, education level, year range, gender, system (Government/Private), geo coordinates, website URL
- **Inspection & Auction**  appointment-only flag, booking availability, inspection planner metadata, auction availability
- **Market Insights**  suburb price guide, multi-year price trend, price direction, and recent sales data (where available)
- **Tracking Metadata**  sale method, ad type, days listed, core property ID, interactive floorplan flag

#### Reliable by Design

- **No results dropped.** If a property's full detail lookup can't be completed in detail mode, the Actor still saves what it has and flags the record with `enrichment_failed: true`  you never silently lose a listing.

***

### Quick Start

#### Fast scan (default)  essentials only, maximum speed

```json
{
  "start_urls": [
    { "url": "https://www.domain.com.au/sale/sydney-region-nsw/" }
  ],
  "maxResults": 10,
  "detailMode": false
}
```

#### Full detail  everything, including agents, schools & market insights

```json
{
  "start_urls": [
    { "url": "https://www.domain.com.au/sale/sydney-region-nsw/" }
  ],
  "maxResults": 10,
  "detailMode": true
}
```

#### Filter by property type, bedrooms, and price

```json
{
  "start_urls": [
    { "url": "https://www.domain.com.au/sale/melbourne-region-vic/house/3-bedrooms/?bathrooms=2-any&price=500000-1500000" }
  ],
  "maxResults": 25
}
```

#### Multiple search URLs in one run

```json
{
  "start_urls": [
    { "url": "https://www.domain.com.au/sale/sydney-region-nsw/house/3-bedrooms/" },
    { "url": "https://www.domain.com.au/rent/melbourne-region-vic/?price=300000-800000" }
  ],
  "maxResults": 20
}
```

#### Single property  full detail for one listing

```json
{
  "start_urls": [
    { "url": "https://www.domain.com.au/342-whale-beach-road-palm-beach-nsw-2108-2020501730" }
  ]
}
```

You can also mix single-property URLs with search URLs in the same run:

```json
{
  "start_urls": [
    { "url": "https://www.domain.com.au/sale/sydney-region-nsw/house/3-bedrooms/" },
    { "url": "https://www.domain.com.au/342-whale-beach-road-palm-beach-nsw-2108-2020501730" },
    { "url": "https://www.domain.com.au/4-82-dickens-street-elwood-vic-3184-18201773" }
  ],
  "maxResults": 20
}
```

#### Fetch all results for a search (no limit)

```json
{
  "start_urls": [
    { "url": "https://www.domain.com.au/sale/brisbane-region-qld/house/4-bedrooms/" }
  ],
  "maxResults": 0
}
```

***

### 📋 Input Configuration

#### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `start_urls` | array | ✅ |  | One or more domain.com.au URLs to scrape  search result URLs, or single-property listing URLs. |
| `maxResults` | integer | ❌ | 10 | Max listings to scrape **per URL**. `0` = fetch all available results. Ignored for single-property URLs (always exactly 1 result). |
| `detailMode` | boolean | ❌ | `false` | `false` = fast mode (essentials only, fastest). `true` = full detail per property (description, agents, schools, market insights, etc.)  slower. Ignored for single-property URLs, which always return full detail. |

#### Fast Mode vs Detail Mode

| | Fast mode (`detailMode: false`) | Detail mode (`detailMode: true`) |
|---|---|---|
| Speed | ⚡ Fastest | 🐢 Slower (one lookup per property) |
| ID, URL, price, address, beds/baths/cars | ✅ | ✅ |
| GPS coordinates, photos | ✅ | ✅ |
| Description, features list | — | ✅ |
| Agent & agency contacts | — | ✅ |
| Nearby schools | — | ✅ |
| Market insights | — | ✅ |
| Inspection / auction details | — | ✅ |

Use **fast mode** when you need lots of listings quickly (lead lists, market scans). Use **detail mode** when you need the full record for each property.

#### How `maxResults` Works

`maxResults` is a **per-URL limit**, not a global total. If you provide 5 URLs and set `maxResults: 20`, the Actor will attempt to fetch up to 20 listings from each URL independently  up to 100 results total.

Setting `maxResults: 0` removes the per-URL limit and scrapes every listing the search returns, including very large searches that exceed the page limit a single search normally exposes.

#### Supported URL Formats

Any search URL you can construct on domain.com.au works as input, and so does a direct link to a single listing. Copy it directly from your browser.

| Example | URL Pattern |
|---------|-------------|
| State/region sale | `https://www.domain.com.au/sale/sydney-region-nsw/` |
| Rent | `https://www.domain.com.au/rent/?bedrooms=2-any&price=400-800` |
| Bedrooms + bathrooms | `/sale/melbourne-region-vic/house/3-bedrooms/?bathrooms=2-any` |
| Price range | `/sale/brisbane-region-qld/?price=400000-800000` |
| Property type | `/sale/?ptype=town-house,pent-house` |
| Multiple filters | `/sale/?ptype=house&carspaces=2-any&features=gardencourtyard,gas` |
| Map-area search | `/rent/?...&displaymap=1` |
| Inspection times | `/rent/inspection-times/?...&inspectiondate=2026-06-22` |
| Sort order | `/sale/sydney-region-nsw/?sort=price-asc` |
| Exclude under offer | `/sale/sydney-region-nsw/?excludeunderoffer=1` |
| **Single property listing** | `/342-whale-beach-road-palm-beach-nsw-2108-2020501730` |

All filter combinations domain.com.au supports are honored automatically. A single-property URL (one path segment ending in the listing's numeric id, exactly as domain.com.au links to it) is detected automatically and returns that listing's full detail  no separate mode or setting needed.

***

### 📤 Output Structure

Each listing produces one record in the dataset. The fields you get depend on the mode.

#### Fast Mode Sample (`detailMode: false`)

```json
{
  "id": 2020908421,
  "seo_url": "https://www.domain.com.au/1880-frankston-flinders-road-hastings-vic-3915-2020908421",
  "price": "$3,000,000 - $3,300,000",
  "address": "1880 Frankston-Flinders Road, Hastings VIC 3915",
  "dwelling_type": "House",
  "bedroom_count": 3,
  "bathroom_count": 2,
  "carspace_count": 8,
  "geo_location": {
    "latitude": -38.2898318,
    "longitude": 145.1833328
  },
  "metadata": {
    "address_components": {
      "suburb": "Hastings",
      "state": "VIC",
      "postcode": "3915"
    }
  },
  "thumbnails": [
    { "url": "https://rimh2.domainstatic.com.au/.../2020908421_1_1_...", "type": "photo", "category": "image" }
  ],
  "media": [
    { "media_type": "image", "type": "photo", "image_url": "https://rimh2.domainstatic.com.au/.../2020908421_1_1_..." }
  ],
  "enrichment_failed": true
}
```

> In fast mode, `enrichment_failed: true` simply indicates the record contains search-layer essentials only (no per-property detail lookup was requested). It is **not** an error.

#### Detail Mode Sample (`detailMode: true`)

```json
{
  "id": 2020313302,
  "seo_url": "https://www.domain.com.au/67-32-manning-street-manning-point-nsw-2430-2020313302",
  "listing_type": "property",
  "lifecycle_status": "Live",
  "search_mode": "buy",

  "headline": "Cosy Retreat by the Beach & River",
  "description": "Positioned in the much-loved Big 4 Holiday Park, this bright and tidy cabin...",
  "price": "$280,000",
  "promo_level": "Elite",

  "dwelling_type": "House",
  "bedroom_count": 2.0,
  "bathroom_count": 1.0,
  "carspace_count": 1,
  "additional_features": [
    "Air conditioning",
    "Built in wardrobes",
    "Balcony / Deck",
    "Outdoor Entertaining",
    "Shed",
    "Rainwater storage tank"
  ],

  "days_on_market": 227.0,
  "time_on_market_formats": {
    "details_section": "Active since:  02/10/2025"
  },

  "address": "67/32 Manning Street, Manning Point",
  "metadata": {
    "address_components": {
      "area": "Taree - Greater Region",
      "postcode": "2430",
      "region": "Mid North Coast",
      "state_short": "NSW",
      "street": "Manning Street",
      "street_number": "32",
      "unit_number": "67",
      "suburb": "Manning Point",
      "suburb_id": 27262
    }
  },
  "geo_location": {
    "latitude": -31.8974479,
    "longitude": 152.6613378
  },

  "media": [
    {
      "media_type": "image",
      "type": "photo",
      "image_url": "https://rimh2.domain.com.au/.../2020313302_1_1_..."
    },
    {
      "media_type": "image",
      "type": "floor_plan",
      "image_url": "https://rimh2.domain.com.au/.../2020313302_19_3_..."
    }
  ],

  "advertiser": {
    "id": 11789,
    "name": "Lauders Real Estate Old Bar",
    "type": "Agent",
    "address": "52 Old Bar Road\nOld Bar NSW 2430",
    "images": {
      "logo_url": "https://images.domain.com.au/img/Agencys/11789/logo_11789.png",
      "agency_banner_image_url": "https://images.domain.com.au/img/Agencys/11789/banner_11789.png"
    },
    "agency_listing_contacts": [
      {
        "agent_id": "1903069",
        "display_full_name": "Lauders Real Estate - Old Bar",
        "email_address": "agent@example.com",
        "phone_numbers": [
          { "type": "Mobile", "number": "02 6553 7700" }
        ],
        "social_urls": [
          { "type": "facebook", "url": "https://www.facebook.com/laudersoldbar" }
        ]
      }
    ]
  },

  "schools": [
    {
      "name": "Mitchells Island Public School",
      "education_level": "Primary",
      "year_range": "K-6",
      "gender": "Co-ed",
      "system": "Government",
      "address": "Mitchells Island NSW 2430",
      "geo_location": { "latitude": -31.896762, "longitude": 152.614054 },
      "website_url": "https://mitchellsi-p.schools.nsw.gov.au"
    }
  ],

  "inspection_schedule": {
    "is_by_appointment_only": true,
    "is_bookings_enabled": false
  },

  "tracking_metadata": {
    "saleMethod": "privateTreaty",
    "primaryCategory": "Buy",
    "adType": "elite",
    "daysListed": 227,
    "corePropertyID": "HU-7531-AI",
    "hasInteractiveFloorplan": false
  },

  "market_insights": {
    "price_guide": 699000,
    "price_series": [680000, 640000, 627500, 670000, 699000],
    "price_series_years": [2022, 2023, 2024, 2025, 2026],
    "price_direction": "positive",
    "recent_sales_count": 43,
    "recent_sales_price_low": 621500,
    "recent_sales_price_high": 881700,
    "recent_sales_duration": "12 Months",
    "recent_sale_distance": "Ardeer"
  },

  "homepass_enabled": true,
  "phone_enquiry_preference": false,
  "auction_metadata": {
    "header": { "label": "Online auction available" }
  },

  "enrichment_failed": false
}
```

#### Field Reference

The **Mode** column shows where each field appears: **Both** = fast and detail; **Detail** = detail mode only.

| Field | Type | Mode | Description |
|-------|------|------|-------------|
| `id` | integer | Both | domain.com.au listing ID |
| `seo_url` | string | Both | Canonical listing URL on domain.com.au |
| `price` | string | Both | Display price string, e.g. `"$280,000"` |
| `address` | string | Both | Full display address |
| `dwelling_type` | string | Both | Property type  `"House"`, `"Townhouse"`, `"Apartment"`, etc. |
| `bedroom_count` | number | Both | Number of bedrooms |
| `bathroom_count` | number | Both | Number of bathrooms |
| `carspace_count` | integer | Both | Number of car spaces |
| `geo_location` | object | Both | `latitude` and `longitude` |
| `metadata` | object | Both | Structured address breakdown. Fast mode: suburb, state, postcode. Detail mode: full breakdown incl. area, region, suburb ID |
| `media` | array | Both | Property images. Detail mode also includes floor plans. Each item has `media_type`, `type`, `image_url` |
| `thumbnails` | array | Fast | Thumbnail image references. Each item has `url`, `type`, `category` |
| `enrichment_failed` | boolean | Both | `false` for full detail records. `true` for fast-mode records, or when a detail lookup couldn't be completed (search data still saved) |
| `listing_type` | string | Detail | Listing type, e.g. `"property"` |
| `lifecycle_status` | string | Detail | Listing status  `"Live"`, `"New Home"`, etc. |
| `search_mode` | string | Detail | Search context  `"buy"`, `"rent"`, `"newdev"` |
| `headline` | string | Detail | Listing title written by the agent |
| `description` | string | Detail | Full property description text |
| `promo_level` | string | Detail | Listing tier  `"Elite"`, `"Standard"`, etc. |
| `additional_features` | array | Detail | Feature list, e.g. `"Air conditioning"`, `"Dishwasher"` |
| `days_on_market` | number|null | Detail | Days listing has been active. `null` for new developments |
| `time_on_market_formats` | object | Detail | Formatted active-since strings for display |
| `advertiser` | object | Detail | Full agency block  name, address, logo, banner, agent contacts, phone, email, social URLs |
| `schools` | array | Detail | Nearby schools with level, year range, gender, system, geo, website |
| `inspection_schedule` | object | Detail | `is_by_appointment_only`, `is_bookings_enabled` |
| `inspection_metadata` | object | Detail | Inspection planner flag and title |
| `auction_metadata` | object | Detail | Auction availability header |
| `tracking_metadata` | object | Detail | `saleMethod`, `adType`, `daysListed`, `corePropertyID`, `hasInteractiveFloorplan` |
| `market_insights` | object | Detail | Price guide, multi-year series, direction, recent sales data. Present for some listings only |
| `phone_enquiry_preference` | boolean | Detail | Whether the agent prefers phone enquiries |
| `homepass_enabled` | boolean | Detail | Whether Homepass digital key access is enabled |

***

### 💵 Pricing

This Actor uses **pay per event** pricing — you pay for what the run actually returns, not for
compute time.

| Event | Price (Free plan) | When it is charged |
|---|---|---|
| **Property listing** | $0.00095 | Each listing returned from a search: listing ID and URL, price, address with suburb, state and postcode, coordinates, property type, bedrooms, bathrooms, parking spaces and photos. |
| **Property listing with full detail** | $0.0015 | Each listing returned with its full detail record — everything above plus the full description, property features, agent and agency contacts, inspection and auction times, listing status and days on market, nearby schools, market insights and high-resolution photos. Charged for single property URLs, and for runs with **Fetch full property details** enabled. |

There is **no run-start fee** — you are charged only for listings you actually receive.
Prices drop on every paid plan, down to **$0.0007** per listing and **$0.0008** per detailed
listing.

**What a typical run costs (Free plan):** 100 listings = **$0.10** · 100 listings with full
detail = **$0.15** · 1,000 listings = **$0.95** · 1,000 with full detail = **$1.50**.

A few notes so there are no surprises:

- If a listing's full detail cannot be retrieved, you still get the listing — charged at the
  standard **Property listing** price, never the detail price.
- Set a **maximum cost per run** in the run options and the Actor checks it before it starts
  working: if the budget cannot pay for a single result, it stops immediately and tells you,
  rather than running up a bill.
- Search runs return **at least 10 listings** — search results arrive in blocks, so smaller
  requests are rounded up to 10. Single property URLs are unaffected: they always return
  exactly that one listing.

***

### ⚠️ Important Notes

#### Legal Considerations

This Actor extracts publicly available property listing data from domain.com.au. Users must:

- Comply with domain.com.au's Terms of Service
- Follow applicable data protection laws (GDPR, CCPA, Australian Privacy Act, etc.)
- Use extracted data responsibly and ethically

**The Actor creator is not responsible for how users utilize the extracted data.**

***

### 💬 Support & Contact

#### Get Help

- 🌐 **Website**: [flowextractapi.com](https://flowextractapi.com)
- 📧 **Email**: <flowextractapi@outlook.com>
- 🙋 **Apify Profile**: [FlowExtract API](https://apify.com/dz_omar?fpr=smcx63)
- 💬 **GitHub Issues**: [FlowExtractAPI](https://github.com/FlowExtractAPI)

#### Social Media

- 💼 **LinkedIn**: [flowextract-api](https://www.linkedin.com/in/flowextract-api/)
- 🐦 **X**: [@FlowExtractAPI](https://x.com/FlowExtractAPI)
- 📱 **Facebook**: [flowextractapi](https://www.facebook.com/flowextractapi)
- 🎵 **TikTok**: [@flowextractapi](https://www.tiktok.com/@flowextractapi)

***

### 🌟 Related Actors by FlowExtract API

#### 🏠 Real Estate Data

**[domain.com.au Scraper](https://apify.com/dz_omar/domain-scraper?fpr=smcx63)**
Extract Australian property listings from domain.com.au with full enrichment, agent contacts, schools, and market insights.

**[Realtor.com Scraper](https://apify.com/dz_omar/realtor-scraper?fpr=smcx63)**
Extract US property listings from Realtor.com. Pricing, agent contacts, tax history, AVM estimates, nearby schools, flood and noise data, and full listing history.

**[PropertyFinder Scraper](https://apify.com/dz_omar/propertyfinder-scraper?fpr=smcx63)**
Extract property listings from PropertyFinder across UAE, Saudi Arabia, Bahrain, Egypt, and Qatar.

**[Idealista Scraper API](https://apify.com/dz_omar/idealista-scraper-api?fpr=smcx63)**
Advanced Idealista property data extraction with API access.

**[Idealista Scraper](https://apify.com/dz_omar/idealista-scraper?fpr=smcx63)**
Extract Spanish real estate listings from Idealista.

**[Leboncoin.fr Scraper](https://apify.com/dz_omar/leboncoin-scraper?fpr=smcx63)**
Extract French classified listings from Leboncoin  real estate, vehicles, jobs, and more.

**[AI Contact Intelligence Extractor](https://apify.com/dz_omar/ai-contact-intelligence?fpr=smcx63)**
Extract emails, phones, contacts & custom data using AI.

#### 🍔 Food & Delivery

**[DoorDash Scraper](https://apify.com/dz_omar/doordash-scraper?fpr=smcx63)**
Scrape store listings, full menus, featured items, and customer reviews from DoorDash.

#### 🎬 Video & Media Tools

**[YouTube Transcript & Metadata Extractor](https://apify.com/dz_omar/youtube-transcript-metadata?fpr=smcx63)**
Extract complete video transcripts with timestamps and comprehensive metadata.

**[YouTube Full Channel, Playlists, Shorts, Live](https://apify.com/dz_omar/Youtube-Scraper-Pro?fpr=smcx63)**
Extract complete playlist information with all video details from any YouTube playlist.

**[Zoom Scraper | Downloader & Transcript](https://apify.com/dz_omar/zoom-scraper?fpr=smcx63)**
Extract Zoom meeting recordings, transcripts, and metadata.

**[Loom Scraper | Downloader & Transcript](https://apify.com/dz_omar/loom-video-scraper?fpr=smcx63)**
Download Loom videos and extract transcripts.

#### 🛠️ Developer & Security Tools

**[Screenshot](https://apify.com/dz_omar/screenshot?fpr=smcx63)**
Fast, reliable webpage screenshots with customizable options.

**[Ultimate Screenshot](https://apify.com/dz_omar/ultimate-screenshot?fpr=smcx63)**
Advanced screenshot tool with full-page capture, custom viewports, and quality controls.

**[Network Security Scanner](https://apify.com/dz_omar/network-security-scanner?fpr=smcx63)**
Scan websites for security vulnerabilities and get comprehensive security reports.

#### 📱 Social Media Tools

**[Facebook Ads Scraper Pro](https://apify.com/dz_omar/facebook-ads-scraper-pro?fpr=smcx63)**
Extract Facebook ads data for competitor analysis and market research.

**[LinkedIn Ad Library Scraper](https://apify.com/dz_omar/linkedin-ads-scraper?fpr=smcx63)**
Extract comprehensive advertising data from LinkedIn's Ad Library.

***

**Ready to extract Australian property data?** [Start using domain.com.au Scraper now!](https://apify.com/dz_omar/domain-scraper?fpr=smcx63)

***

### Legal & compliance

- Collects **publicly available** listing data only — no login, no private or account-gated content.
- Respects the source site's rate limits and terms.
- **Stores no personal information**; agent contact details come from the public listing page itself.
- Suitable for commercial use.
- **No affiliation with or endorsement by domain.com.au is implied.**

***

*domain.com.au Scraper — by FlowExtract API. Turn any website into structured data.*

# Changelog

This Actor's version history is a separate document: https://apify.com/dz_omar/domain-scraper/changelog.md

# Actor input Schema

## `start_urls` (type: `array`):

One or more domain.com.au URLs — either search result URLs, or direct links to a single property listing (e.g. https://www.domain.com.au/342-whale-beach-road-palm-beach-nsw-2108-2020501730). Copy the URL directly from your browser — the actor handles everything else. Single-property URLs always return that one listing's full detail, regardless of detailMode.

## `maxResults` (type: `integer`):

Maximum number of listings to fetch per search URL. Each URL is scraped independently up to this limit. The minimum for a search URL is 10 listings. To pull everything a search returns, enter a large number such as 1000000. This limit does not apply to single property URLs, which always return exactly that one listing.

## `detailMode` (type: `boolean`):

OFF (default, fastest): returns the listing data already included in the search results — address, price, beds/baths/parking, property type, agency and photos. ON: additionally fetches each property's full detail page (description, features, floor plan, agents, inspection times, etc.). This is much slower because it makes one extra request per listing. Ignored for single-property URLs, which always return full detail.

## Actor input object example

```json
{
  "start_urls": [
    {
      "url": "https://www.domain.com.au/rent/?bedrooms=2-any&bathrooms=1&price=50-5000&carspaces=1-any&landsize=0-5000000&landsizeunit=ha"
    },
    {
      "url": "https://www.domain.com.au/342-whale-beach-road-palm-beach-nsw-2108-2020501730"
    }
  ],
  "maxResults": 10,
  "detailMode": false
}
```

# Actor output Schema

## `results` (type: `string`):

All scraped and enriched property records, one object per listing. Each record includes photos (thumbnails + hi-res media), pricing, address, dwelling attributes, agent contacts, nearby schools, and market insights where available. Set enrichment_failed=true records contain search-page data only.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "start_urls": [
        {
            "url": "https://www.domain.com.au/rent/?bedrooms=2-any&bathrooms=1&price=50-5000&carspaces=1-any&landsize=0-5000000&landsizeunit=ha"
        },
        {
            "url": "https://www.domain.com.au/342-whale-beach-road-palm-beach-nsw-2108-2020501730"
        }
    ],
    "maxResults": 10
};

// Run the Actor and wait for it to finish
const run = await client.actor("dz_omar/domain-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "start_urls": [
        { "url": "https://www.domain.com.au/rent/?bedrooms=2-any&bathrooms=1&price=50-5000&carspaces=1-any&landsize=0-5000000&landsizeunit=ha" },
        { "url": "https://www.domain.com.au/342-whale-beach-road-palm-beach-nsw-2108-2020501730" },
    ],
    "maxResults": 10,
}

# Run the Actor and wait for it to finish
run = client.actor("dz_omar/domain-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print(f"💾 Check your data here: https://console.apify.com/storage/datasets/{run.default_dataset_id}")
for item in client.dataset(run.default_dataset_id).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "start_urls": [
    {
      "url": "https://www.domain.com.au/rent/?bedrooms=2-any&bathrooms=1&price=50-5000&carspaces=1-any&landsize=0-5000000&landsizeunit=ha"
    },
    {
      "url": "https://www.domain.com.au/342-whale-beach-road-palm-beach-nsw-2108-2020501730"
    }
  ],
  "maxResults": 10
}' |
apify call dz_omar/domain-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,dz_omar/domain-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/lpeN4opCYKgskSzqP/builds/WyB91mo3ha9oY3kl4/openapi.json
