# Realestate.com.au Scraper (`silentflow/realestate-com-au-scraper`) Actor

Scrape property listings from realestate.com.au and realestate.co.nz. Get prices, addresses, bedrooms, bathrooms, car spaces, land size, property type, agent name and phone, map coordinates and the full photo set. Search by URL, single property, or location and export to JSON, CSV or Excel.

- **URL**: https://apify.com/silentflow/realestate-com-au-scraper.md
- **Developed by:** [SilentFlow](https://apify.com/silentflow) (community)
- **Categories:** Real estate, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.42 / 1,000 results

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/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
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.
Actors are written with capital "A".

## 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.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Realestate.com.au Scraper

**Turn Australia and New Zealand's biggest property portals into structured, ready-to-use data.** Pull live listings from realestate.com.au and realestate.co.nz with prices, addresses, bedrooms, agent contacts and photos. Search by URL or by filters, get clean JSON in seconds.

### How it works

![How it works](https://api.apify.com/v2/key-value-stores/PeRK22KeCwW9jYpYi/records/how-it-works-v1.png)

### ✨ Why teams choose this over other realestate.com.au scrapers

Running scrapers that fail halfway through a run? Paying extra every time a search gets big? Only getting half the fields you need?

- 🇦🇺🇳🇿 **Two countries, one actor.** Cover realestate.com.au (buy, rent, sold) and realestate.co.nz (sale, rent) from a single run. No need to buy and stitch together two separate tools.
- 🛡️ **Runs that finish.** Reliable extraction that pulls thousands of listings in one pass without stalling, so you get the whole search, not the first page.
- 💸 **Pay less per listing.** Priced to undercut other realestate scrapers. You pay only for the listings you receive, and proxies are included in that price.
- 📇 **Agent contacts included.** Get the agent name and phone number on every listing, ready to feed your CRM or lead pipeline.
- 🖼️ **The full picture.** Bedrooms, bathrooms, car spaces, land and floor size, property type, map coordinates, the complete photo gallery and the full listing description.
- 🔗 **Search your way.** Paste a search URL straight from the website, drop in a single property link, or just pick a country, channel and suburb.

### 🎯 What you can do with realestate.com.au data

| Team | What they build |
|------|----------------|
| **Proptech** | Keep a live property database across AU and NZ, refreshed on a schedule |
| **Investors** | Track asking prices by suburb to spot undervalued listings before they sell |
| **Buyer's agents** | Build shortlists for clients with beds, baths, land size and agent contacts in one sheet |
| **Mortgage and finance** | Turn new listings into lead lists with agent phone numbers for outreach |
| **Market analysts** | Compare price movements and stock levels across states, regions and channels |
| **Portals and CRMs** | Aggregate listings from both portals into your own product |

### 📥 Input parameters

| Parameter | Type | Description |
|-----------|------|-------------|
| `startUrls` | array | Search or property URLs from realestate.com.au or realestate.co.nz |
| `searchByFilters` | object | Build a search without a URL: `country` (au or nz), `channel` (buy, rent, sold, sale), `location` (e.g. "Sydney, NSW 2000"), `includeSurroundingSuburbs` |
| `includeDetails` | boolean | Add descriptions, agent phone numbers, map coordinates and all photos to each realestate.com.au listing |
| `maxItems` | integer | Maximum listings to return per search (default 200) |

#### Example input

```json
{
  "startUrls": [
    { "url": "https://www.realestate.com.au/buy/in-sydney,+nsw+2000/list-1" },
    { "url": "https://www.realestate.co.nz/residential/sale/auckland" }
  ],
  "includeDetails": true,
  "maxItems": 200
}
````

### 📊 Output data

Each listing is one clean record:

```json
{
  "source": "realestate.com.au",
  "country": "AU",
  "listingId": "150053164",
  "url": "https://www.realestate.com.au/property-apartment-nsw-sydney-150053164",
  "price": "$2,580,000",
  "address": "1206/161 Clarence Street, Sydney, NSW 2000",
  "suburb": "Sydney",
  "region": "NSW",
  "postcode": "2000",
  "latitude": -33.868158,
  "longitude": 151.204978,
  "bedrooms": "3",
  "bathrooms": "2",
  "carSpaces": "2",
  "propertyType": "Apartment",
  "channel": "buy",
  "description": "Discover contemporary urban living in this well-appointed apartment...",
  "images": [
    "https://i2.au.reastatic.net/1144x888/e6c414f3.../image.jpg"
  ],
  "agents": [
    { "name": "Bruce LAU", "phone": "0430302219" }
  ],
  "scrapedAt": "2026-07-04T17:00:00Z"
}
```

### 🗂️ Data fields

| Category | Fields |
|----------|--------|
| Identity | `source`, `country`, `listingId`, `url`, `title`, `channel`, `status`, `scrapedAt`, `originalSearchUrl` |
| Price | `price` |
| Location | `address`, `suburb`, `region`, `postcode`, `latitude`, `longitude` |
| Property | `propertyType`, `bedrooms`, `bathrooms`, `carSpaces`, `landSize`, `floorArea`, `propertyFeatures`, `description` |
| Media | `images` |
| Agent | `agencyName`, `agencyPhone`, `agents` (name, phone) |

### 🚀 Examples

**Get every apartment for sale in Sydney CBD**

```json
{ "startUrls": [{ "url": "https://www.realestate.com.au/buy/in-sydney,+nsw+2000/list-1" }], "maxItems": 500 }
```

**Pull rentals in Melbourne with agent contacts**

```json
{ "startUrls": [{ "url": "https://www.realestate.com.au/rent/in-melbourne,+vic+3000/list-1" }], "includeDetails": true }
```

**Track sold prices in a suburb**

```json
{ "searchByFilters": { "country": "au", "channel": "sold", "location": "Bondi, NSW 2026" } }
```

**Scrape houses for sale across Auckland**

```json
{ "startUrls": [{ "url": "https://www.realestate.co.nz/residential/sale/auckland" }], "maxItems": 300 }
```

**Grab one property in full detail**

```json
{ "startUrls": [{ "url": "https://www.realestate.com.au/property-apartment-nsw-sydney-150053164" }], "includeDetails": true }
```

### 💻 Integrations

Feed listings straight into your stack.

**Python**

```python
from apify_client import ApifyClient

client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("realestate-com-au-scraper").call(run_input={
    "startUrls": [{"url": "https://www.realestate.com.au/buy/in-sydney,+nsw+2000/list-1"}],
    "includeDetails": True,
    "maxItems": 200,
})
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item["address"], item["price"])
```

**JavaScript**

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

const client = new ApifyClient({ token: 'YOUR_APIFY_TOKEN' });
const run = await client.actor('realestate-com-au-scraper').call({
    startUrls: [{ url: 'https://www.realestate.co.nz/residential/sale/auckland' }],
    maxItems: 300,
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((i) => console.log(i.address, i.price));
```

Connect the dataset to Google Sheets, Airtable, Zapier or Make, or push it into your own database.

### 📈 Performance

| Metric | Value |
|--------|-------|
| Coverage | realestate.com.au (buy, rent, sold) and realestate.co.nz (sale, rent) |
| Fields per listing | Up to 25, including agent contact and map coordinates |
| Photos | Full gallery per property with full details on |
| Input options | Search URL, property URL, or country plus location |
| Export | JSON, CSV, Excel, or API |

### 💡 Tips for best results

- **Copy the URL from your browser.** Run any search on the website, then paste that exact URL into `startUrls`. Filters in the URL are respected.
- **Turn on `includeDetails` for lead lists.** It adds the agent phone number, description, map coordinates and the full photo set to each realestate.com.au listing.
- **Set `maxItems` to control cost.** It caps results per search, so a two country run with two URLs returns up to twice that number.
- **Split large areas.** For a whole state, run one search per city or region to keep each result set fast and complete.
- **Use `searchByFilters` for quick jobs.** Pick `country`, `channel` and `location` when you do not want to build a URL.

### ❓ FAQ

**Do I need an account or login?**
No. The scraper reads publicly available listing data. No login, no API key.

**Does it cover both Australia and New Zealand?**
Yes. Use realestate.com.au URLs for Australia and realestate.co.nz URLs for New Zealand, in the same run.

**Can I scrape sold listings?**
Yes, for realestate.com.au. Use a sold search URL or set `channel` to `sold`.

**How do I get agent phone numbers?**
Turn on `includeDetails`. Agent name and phone are added to each realestate.com.au listing.

**What export formats are available?**
JSON, CSV and Excel, plus the Apify API for direct integration.

**How do I limit how much I scrape?**
Set `maxItems`. It caps the number of listings returned per search.

### 📬 Support

Need a field added or a new search type covered? Contact us through the Apify Store page for this actor and we will help.

# Actor input Schema

## `startUrls` (type: `array`):

Search result pages or property pages from realestate.com.au or realestate.co.nz.

## `searchByFilters` (type: `object`):

Country, channel and location to search.

## `includeDetails` (type: `boolean`):

Fetch each property's full detail page (description, agent contact, geo, extra photos). Applies to realestate.com.au listings.

## `maxItems` (type: `integer`):

Maximum number of listings to return per search URL or filter search.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.realestate.com.au/buy/in-sydney,+nsw+2000/list-1"
    }
  ],
  "searchByFilters": {
    "country": "au",
    "channel": "buy",
    "location": "Sydney, NSW 2000",
    "includeSurroundingSuburbs": true
  },
  "includeDetails": false,
  "maxItems": 200
}
```

# Actor output Schema

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

Complete listing data including: source, country, listingId, url, title, price, address, suburb, region, postcode, latitude, longitude, bedrooms, bathrooms, carSpaces, landSize, floorArea, propertyType, channel, status, description, images, agencyName, agents, scrapedAt.

# 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 = {
    "startUrls": [
        {
            "url": "https://www.realestate.com.au/buy/in-sydney,+nsw+2000/list-1"
        }
    ],
    "searchByFilters": {
        "country": "au",
        "channel": "buy",
        "location": "Sydney, NSW 2000",
        "includeSurroundingSuburbs": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("silentflow/realestate-com-au-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 = {
    "startUrls": [{ "url": "https://www.realestate.com.au/buy/in-sydney,+nsw+2000/list-1" }],
    "searchByFilters": {
        "country": "au",
        "channel": "buy",
        "location": "Sydney, NSW 2000",
        "includeSurroundingSuburbs": True,
    },
}

# Run the Actor and wait for it to finish
run = client.actor("silentflow/realestate-com-au-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    {
      "url": "https://www.realestate.com.au/buy/in-sydney,+nsw+2000/list-1"
    }
  ],
  "searchByFilters": {
    "country": "au",
    "channel": "buy",
    "location": "Sydney, NSW 2000",
    "includeSurroundingSuburbs": true
  }
}' |
apify call silentflow/realestate-com-au-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=silentflow/realestate-com-au-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Realestate.com.au Scraper",
        "description": "Scrape property listings from realestate.com.au and realestate.co.nz. Get prices, addresses, bedrooms, bathrooms, car spaces, land size, property type, agent name and phone, map coordinates and the full photo set. Search by URL, single property, or location and export to JSON, CSV or Excel.",
        "version": "1.0",
        "x-build-id": "LcBSR3XLbHFS2GkNy"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/silentflow~realestate-com-au-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-silentflow-realestate-com-au-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/silentflow~realestate-com-au-scraper/runs": {
            "post": {
                "operationId": "runs-sync-silentflow-realestate-com-au-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/silentflow~realestate-com-au-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-silentflow-realestate-com-au-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "startUrls": {
                        "title": "Start URLs",
                        "type": "array",
                        "description": "Search result pages or property pages from realestate.com.au or realestate.co.nz.",
                        "items": {
                            "type": "object",
                            "required": [
                                "url"
                            ],
                            "properties": {
                                "url": {
                                    "type": "string",
                                    "title": "URL of a web page",
                                    "format": "uri"
                                }
                            }
                        }
                    },
                    "searchByFilters": {
                        "title": "Search by filters",
                        "type": "object",
                        "description": "Country, channel and location to search."
                    },
                    "includeDetails": {
                        "title": "Include full details",
                        "type": "boolean",
                        "description": "Fetch each property's full detail page (description, agent contact, geo, extra photos). Applies to realestate.com.au listings.",
                        "default": false
                    },
                    "maxItems": {
                        "title": "Maximum results per search",
                        "minimum": 1,
                        "type": "integer",
                        "description": "Maximum number of listings to return per search URL or filter search.",
                        "default": 200
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
