# View.com.au Property Search Scraper (`alexist/view-property-search-scraper`) Actor

Scrape residential and commercial property listings from View.com.au effortlessly. This scraper extracts 49+ data fields per property including price, location, agent details, images, and inspection schedules — perfect for real estate investors, market analysts, and property aggregators.

- **URL**: https://apify.com/alexist/view-property-search-scraper.md
- **Developed by:** [Alex](https://apify.com/alexist) (community)
- **Categories:** Automation, Developer tools, Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

Pay per usage

This Actor is paid per platform usage. The Actor is free to use, and you only pay for the Apify platform usage, which gets cheaper the higher subscription plan you have.

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

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## View.com.au Property Scraper: Extract Real Estate Listings Instantly

***

### What Is View.com.au?

View.com.au is Australia's prominent property portal, hosting hundreds of thousands of residential and commercial listings across all states and territories. It aggregates property data from multiple agencies and provides detailed property information including photos, pricing, inspections, and agent contacts. Manually collecting property data from View is tedious and error-prone — the **View.com.au Property Scraper** automates this workflow, delivering structured datasets ready for analysis, comparison, or database integration.

***

### Scraper Overview

The **View.com.au Property Scraper** extracts complete property listing data from View's search results and detail pages, converting unstructured web content into clean, machine-readable records. It is ideal for:

- **Real estate investors** tracking market trends by suburb or postcode
- **Property aggregators** building comprehensive listing databases
- **Market researchers** analyzing pricing, supply, and demand patterns
- **Real estate agents** monitoring competitor listings and market activity
- **Data analysts** building BI dashboards for the Australian property sector

Key advantages include high-volume extraction (up to 200 items per URL), comprehensive field capture, automatic failure handling, and reliable data consistency.

***

### Input Format & Configuration

The scraper accepts a JSON configuration with three core parameters:

```json
{
    "urls": [
        "https://view.com.au/for-sale/nsw/in-harwood-2465/"
    ],
    "max_items_per_url": 200,
    "ignore_url_failures": true
}
```

| Parameter | Type | Description |
|---|---|---|
| `urls` | Array | List of View.com.au property search result pages to scrape (e.g., sale/rent listings by location, price range, or property type) |
| `max_items_per_url` | Integer | Maximum properties to extract per URL (recommended: 50–200 depending on API limits) |
| `ignore_url_failures` | Boolean | If `true`, the scraper continues even if individual URLs fail; if `false`, the run stops on first error |

**Best practices:**

- Use specific search URLs (e.g., by suburb, postcode, or property type) to control data scope
- Set `max_items_per_url` to 200 for comprehensive coverage
- Enable `ignore_url_failures: true` for large batch runs

***

### Output Fields & Data Dictionary

**Sample output**

```json
{
  "property_types": [
    "House"
  ],
  "weightage": 304.9997420087201,
  "agent_id": [
    55357
  ],
  "carparks": 6,
  "rent_per_week": null,
  "city": null,
  "is_home_and_land": false,
  "unit_number": null,
  "inspections": [],
  "agency_id": 15794,
  "is_price_hidden": false,
  "hero_image_url": "pics/698/17193698-1-CD9262D.jpg",
  "is_new_construction": false,
  "created_at": "2025-10-28 04:51:07",
  "street_name": "Goddards Lane",
  "suburb_name": "MACLEAN",
  "land_size": 37.3,
  "price_from": 2500000,
  "auction_at": null,
  "rank": "Standard",
  "id": 17193698,
  "state": "NSW",
  "on_market_at": "2025-10-28 04:51:07",
  "image_url_slug": "7-bedroom-house-in-maclean-nsw-2463",
  "price_text": "By Negotiation",
  "land_size_in_sqm": 150947.88,
  "updated_at": "2026-04-03 21:40:42",
  "source_property_type": "House",
  "sale_method": "Sale",
  "street_number": "29",
  "entity_type": "listing",
  "postcode": "2463",
  "is_street_hidden": false,
  "bathrooms": 4,
  "listing_source": "VIEW",
  "lga_name": "Clarence Valley Council",
  "bedrooms": 7,
  "primary_property_type": "House",
  "land_size_system": "acre",
  "lga_slug": "clarence-valley-council",
  "street_address": "goddards-lane",
  "gnaf_id": "GANSW705247609",
  "location": {
    "lon": 153.218118,
    "lat": -29.444408
  },
  "region": "Blue Mountains",
  "status": "On Market",
  "is_listing": true,
  "agency": {
    "address": "84 Yamba Road, Yamba, NSW 2464",
    "logo_file_name": "0d0edcbaedd34aff9dd01f9db77d25e1.png",
    "hide_in_find_an_agent": false,
    "agency_source": "VIEW",
    "brand_colour": "FFE63E",
    "suburb_name": "YAMBA",
    "brand_contrast_colour": "676264",
    "name": "Ray White Yamba",
    "hide_address": false,
    "address_line1": "84 Yamba Road",
    "address_line2": null,
    "id": 15794,
    "slug": "ray-white-yamba",
    "_id": "15794",
    "agency_profile_link": "/real-estate-agency/ray-white-yamba-15794/"
  },
  "agents": [
    {
      "last_name": "Kelly",
      "first_name": "Daniel",
      "is_mobile_hidden": false,
      "number_of_sold_listings": 122,
      "phone": "(02)66458000",
      "agent_photo_file_name": "",
      "mobile": "0408669646",
      "id": 55357,
      "position": null,
      "average_sold_price": 1235283.3333,
      "is_web_hidden": false,
      "_id": "55357",
      "agent_profile_link": "/agent-profile/daniel-kelly-55357/"
    }
  ],
  "listing_detail_link": "/property/nsw/maclean-2463/29-goddards-lane-17193698/",
  "images": [
    {
      "sequence": 1,
      "caption": null,
      "url": "pics/698/17193698-1-CD9262D.jpg"
    },
    {
      "sequence": 2,
      "caption": null,
      "url": "pics/698/17193698-2-B6AB74B.jpg"
    },
    {
      "sequence": 3,
      "caption": null,
      "url": "pics/698/17193698-3-B9812B5.jpg"
    },
    {
      "sequence": 4,
      "caption": null,
      "url": "pics/698/17193698-4-C66257E.jpg"
    },
    {
      "sequence": 5,
      "caption": null,
      "url": "pics/698/17193698-5-71FCAD0.jpg"
    },
    {
      "sequence": 6,
      "caption": null,
      "url": "pics/698/17193698-6-69734EB.jpg"
    },
    {
      "sequence": 7,
      "caption": null,
      "url": "pics/698/17193698-7-B1E78AA.jpg"
    },
    {
      "sequence": 8,
      "caption": null,
      "url": "pics/698/17193698-8-45750CF.jpg"
    },
    {
      "sequence": 9,
      "caption": null,
      "url": "pics/698/17193698-9-9F51DF9.jpg"
    },
    {
      "sequence": 10,
      "caption": null,
      "url": "pics/698/17193698-10-CA3721C.jpg"
    },
    {
      "sequence": 11,
      "caption": null,
      "url": "pics/698/17193698-11-A4B7F67.jpg"
    },
    {
      "sequence": 12,
      "caption": null,
      "url": "pics/698/17193698-12-F01ADB3.jpg"
    },
    {
      "sequence": 13,
      "caption": null,
      "url": "pics/698/17193698-13-4B9BCC7.jpg"
    },
    {
      "sequence": 14,
      "caption": null,
      "url": "pics/698/17193698-14-80676FB.jpg"
    },
    {
      "sequence": 15,
      "caption": null,
      "url": "pics/698/17193698-15-E222D5C.jpg"
    },
    {
      "sequence": 16,
      "caption": null,
      "url": "pics/698/17193698-16-EA3BCBF.jpg"
    },
    {
      "sequence": 17,
      "caption": null,
      "url": "pics/698/17193698-17-A517FDF.jpg"
    },
    {
      "sequence": 18,
      "caption": null,
      "url": "pics/698/17193698-18-09A270F.jpg"
    },
    {
      "sequence": 19,
      "caption": null,
      "url": "pics/698/17193698-19-B53CB39.jpg"
    },
    {
      "sequence": 20,
      "caption": null,
      "url": "pics/698/17193698-20-B4FD052.jpg"
    },
    {
      "sequence": 21,
      "caption": null,
      "url": "pics/698/17193698-21-CB293D8.jpg"
    },
    {
      "sequence": 22,
      "caption": null,
      "url": "pics/698/17193698-22-7252B6F.jpg"
    },
    {
      "sequence": 23,
      "caption": null,
      "url": "pics/698/17193698-23-0B415FB.jpg"
    }
  ],
  "updated_text": null,
  "from_url": "https://view.com.au/for-sale/nsw/in-harwood-2465/?page=2"
}
```

Each property record contains 49+ fields spanning location, pricing, property attributes, agency information, and media. Below is a complete breakdown:

#### Core Identifiers

| Field | Meaning |
|---|---|
| `ID` | Unique View.com.au property identifier |
| `GNAF ID` | Geographic Names Address File ID for geospatial reference |
| `Listing Source` | Source system (e.g., agent portal, syndication feed) |
| `Source Property Type` | Raw property type code from the source feed |

#### Location & Address

| Field | Meaning |
|---|---|
| `Street Number` | House/building number |
| `Street Name` | Street name (often with street type, e.g., "King Street") |
| `Street Address` | Full street address |
| `Suburb Name` | Suburb or locality name |
| `City` | City or major region |
| `State` | Australian state code (e.g., "NSW", "VIC") |
| `Postcode` | Postal code |
| `Region` | Broader geographic region |
| `LGA Name` | Local Government Area (council) name |
| `LGA Slug` | URL-friendly LGA identifier |
| `Location` | Latitude/longitude or geocoded coordinates |
| `Is Street Hidden` | Boolean: whether street address is hidden from public view |

#### Property Attributes

| Field | Meaning |
|---|---|
| `Property Types` | Category (e.g., "House", "Unit", "Land") |
| `Primary Property Type` | Main classification used by View |
| `Bedrooms` | Number of bedrooms |
| `Bathrooms` | Number of bathrooms |
| `Carparks` | Number of parking spaces |
| `Land Size` | Land area (numeric value) |
| `Land Size In SQM` | Land area in square meters |
| `Land Size System` | Unit system (e.g., "sqm", "sqft") |
| `Unit Number` | Apartment/unit number (if applicable) |
| `Is Home And Land` | Boolean: whether listing is a home-and-land package |
| `Is New Construction` | Boolean: whether property is newly built |

#### Pricing & Sales Information

| Field | Meaning |
|---|---|
| `Price From` | Starting price (for auctions or ranges) |
| `Price Text` | Price as displayed (may include text like "Price on Application") |
| `Is Price Hidden` | Boolean: whether exact price is hidden |
| `Rent Per Week` | Weekly rental price (for rental listings) |
| `Sale Method` | How property is sold (e.g., "Private Treaty", "Auction", "Tender") |
| `Status` | Current status (e.g., "Active", "Sold", "Withdrawn") |
| `Is Listing` | Boolean: whether the item is an active listing |

#### Dates & Lifecycle

| Field | Meaning |
|---|---|
| `Created At` | When the listing was first published |
| `Updated At` | Last modification timestamp |
| `Updated Text` | Human-readable update description (e.g., "Updated 2 days ago") |
| `On Market At` | Date property listed for sale/rent |
| `Auction At` | Scheduled auction date/time (if applicable) |

#### Agent & Agency

| Field | Meaning |
|---|---|
| `Agent ID` | Primary agent identifier |
| `Agency ID` | Real estate agency identifier |
| `Agency` | Agency name and contact information |
| `Agents` | Array of all agents handling the listing |
| `Weightage` | Agent weighting or ranking on the listing |

#### Media & Presentation

| Field | Meaning |
|---|---|
| `Hero Image URL` | URL of the primary listing photo |
| `Image URL Slug` | URL-friendly image reference |
| `Images` | Array of all property images with metadata |

#### Search & Ranking

| Field | Meaning |
|---|---|
| `Rank` | Listing position in the search results |
| `Entity Type` | Type of entity returned (e.g., "property", "project") |

#### Inspection Information

| Field | Meaning |
|---|---|
| `Inspections` | Array of scheduled open house or inspection times |

#### Links & References

| Field | Meaning |
|---|---|
| `Listing Detail Link` | Direct URL to the full property listing page |

***

### How to Use the Scraper

1. **Identify search URLs** — Go to View.com.au and build search filters (suburb, price range, property type). Copy the resulting URL.
   - Example: `https://view.com.au/for-sale/nsw/in-harwood-2465/`

2. **Configure inputs** — Paste the URL(s) into the `urls` array. Adjust `max_items_per_url` (typically 50–200).

3. **Run the scraper** — Start the actor and monitor execution in the logs.

4. **Download results** — Export the structured data as JSON, CSV, or Excel.

5. **Process data** — Merge multiple runs, deduplicate by ID, or load into a database.

**Common scenarios:**

- **Market analysis by suburb:** Scrape `https://view.com.au/for-sale/[state]/in-[suburb]/` to track supply and median prices
- **Rental market tracking:** Use rent-specific URLs to monitor weekly rental rates over time
- **Bulk data integration:** Run multiple URLs and consolidate results for BI or CRM platforms

***

### Business Applications & Benefits

- **Real estate investment:** Monitor properties in target suburbs to identify opportunities faster
- **Market intelligence:** Analyze pricing trends, days-on-market, and supply dynamics by location
- **Competitive analysis:** Track what competitors are listing and their pricing strategies
- **Automated aggregation:** Feed property data into your own website or mobile app
- **Time savings:** Extract hundreds of properties in minutes instead of hours of manual work

The scraper delivers consistent, high-quality data that integrates seamlessly into spreadsheets, databases, or custom analytics platforms.

***

### Conclusion

The **View.com.au Property Scraper** streamlines real estate data collection across Australia's largest property portal. With 49+ data fields per property and robust configuration options, it empowers investors, agents, and analysts to make data-driven decisions faster. Start scraping today and unlock insights that drive competitive advantage.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the property list urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `ignore_url_failures` (type: `boolean`):

If true, the scraper will continue running even if some URLs fail to be scraped.

## `max_items_per_url` (type: `integer`):

The maximum number of items to scrape per URL.

## Actor input object example

```json
{
  "urls": [
    "https://view.com.au/for-sale/nsw/in-harwood-2465/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}
```

# 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 = {
    "urls": [
        "https://view.com.au/for-sale/nsw/in-harwood-2465/"
    ],
    "ignore_url_failures": true,
    "max_items_per_url": 100
};

// Run the Actor and wait for it to finish
const run = await client.actor("alexist/view-property-search-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 = {
    "urls": ["https://view.com.au/for-sale/nsw/in-harwood-2465/"],
    "ignore_url_failures": True,
    "max_items_per_url": 100,
}

# Run the Actor and wait for it to finish
run = client.actor("alexist/view-property-search-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 '{
  "urls": [
    "https://view.com.au/for-sale/nsw/in-harwood-2465/"
  ],
  "ignore_url_failures": true,
  "max_items_per_url": 100
}' |
apify call alexist/view-property-search-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,alexist/view-property-search-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/t729Rq3XzZMdAQxOv/builds/qQCxyzbMOMaZXKkuJ/openapi.json
