View.com.au Scraper - Property Listings, Prices & Agents avatar

View.com.au Scraper - Property Listings, Prices & Agents

Pricing

from $1.50 / 1,000 results

Go to Apify Store
View.com.au Scraper - Property Listings, Prices & Agents

View.com.au Scraper - Property Listings, Prices & Agents

Scrape View.com.au properties for sale, rent and recently sold across Australia. Search by suburb, city, state or URL. Extract prices, full addresses, property details, agents and agencies, photos, GPS coordinates and market insights.

Pricing

from $1.50 / 1,000 results

Rating

0.0

(0)

Developer

Abot API

Abot API

Maintained by Community

Actor stats

1

Bookmarked

10

Total users

0

Monthly active users

2 days ago

Last modified

Share

View.com.au Scraper: For Sale, For Rent and Sold Listings Across Australia

View.com.au Scraper turns View.com.au into structured property data. Search by state, suburb or postcode, paste search-result URLs, or paste individual property links, and get full addresses, parsed prices, bedrooms, bathrooms, car spaces, land size, agent and agency contacts, images and GPS coordinates for properties for sale, for rent or already sold. Export to JSON, CSV or Excel, or pull the results straight into your app through the API.

Why This Scraper?

  • Three ways to search. Build a search from state, suburb and postcode, paste View.com.au search-result page URLs directly, or paste individual property detail URLs for one record per link.
  • Search results already carry the useful fields. Price, address, agent and image details come back with the listing card itself, so most searches do not need a separate visit to each property page.
  • Structured, ready-to-use data. Prices are parsed into a numeric value, currency and price type, addresses are split into street, suburb, state and postcode, and GPS coordinates are included where the source provides them.
  • Optional detail-page enrichment. Turn on Include Detail Page Data, or use detail mode, for the full description, floor plans, a valuation estimate, the suburb's price trend and the agent's email address.
  • Flexible filters. Narrow by property type, price, bedrooms, bathrooms and car spaces, and choose how results are sorted.
  • Four pre-built dataset views. Overview, Media, Agents and Agencies, and Location and Market views are ready in the dataset, so you can browse results without building your own column layout.
  • Built for recurring monitoring. Incremental mode classifies every listing against your last scheduled run as new, updated, unchanged, reappeared or expired (expired and reappeared require turning on Emit expired listings), and a genuine connectivity failure fails the run loudly instead of quietly returning nothing.

Use Cases

  • Property investors and buyers' agents: track new listings and price changes across a suburb, a city or a whole state.
  • Real estate agencies and agents: monitor competitor listings, sale methods and agent performance metrics in your market.
  • Rental market researchers: collect weekly rent prices and availability across suburbs for yield analysis.
  • Data scientists and market analysts: build historical price, suburb-trend and days-on-market datasets.
  • Lead generation teams: collect agent and agency contact details tied to active listings.
  • Proptech and listing aggregators: keep a property catalogue in sync with recurring incremental runs.

Data You Get

Sample shape: values are illustrative placeholders, not from a live record.

FieldExample
id12345678
listingUrl"https://www.view.com.au/property/vic/sampleville-3000/5-10-example-street-12345678/"
address.full"5/10 Example Street, SAMPLEVILLE VIC 3000"
address.suburb / address.state / address.postcode"SAMPLEVILLE" / "VIC" / "3000"
price.display"$850,000 - $900,000"
price.value / price.priceType850000 / "range"
features.bedrooms / features.bathrooms / features.carSpaces3 / 2 / 1
features.landSizeInSqm450
propertyType / sourcePropertyType"apartment" / "Apartment & Unit"
listingType"buy" (also "rent", "sold")
saleMethod / status"Sale" / "On Market"
rank"Premium"
imagesphoto URLs with sequence, on the site's CDN
agentsfirstName, lastName, phone, mobile, numberOfSoldListings, averageSoldPrice (replaced by a detail-page agent entry with email when detail data is included)
agencyname, profileLink, brandColour
location.lat / location.lon-37.81 / 144.96
daysOnMarket14
soldPrice / soldAt900000 / "2026-01-20" (sold listings)
lgaName"Sample Council"
createdAt / updatedAtlisting-created and listing-updated timestamps
source.portal / source.scrapedAt"view.com.au" / scrape timestamp

Turning on Include Detail Page Data, or using detail mode, adds heading, description, floorPlans, landPricePerSqm, staticMapUrl, videoUrl and virtualTourUrl (each only when the source page provides it), valuationEstimate and suburbTrend, all pulled from the property's own detail page rather than the search-results card. It also replaces the agents array with a detail-page version that adds email and photoFileName but drops numberOfSoldListings, averageSoldPrice and position. When incremental mode is on, every row also carries changeType, changedFields, firstSeenAt and lastSeenAt; these four fields are absent unless incremental mode is turned on.

How to Use

  1. Pick a Search Mode: Search by Location, Search List URLs, or Property Detail URLs.
  2. For location mode, add one or more locations. State is required; suburb and postcode are optional. Set the Listing Type. For URL or detail mode, paste the URLs instead.
  3. Optionally filter by property type, price, bedrooms, bathrooms or car spaces, and pick a sort order.
  4. Set Maximum Listings and Maximum Pages to control run size and cost, then click Start.

Search for sale properties in Melbourne CBD:

{
"mode": "location",
"locations": [{ "suburb": "Melbourne", "state": "VIC", "postcode": "3000" }],
"listingType": "buy",
"maxListings": 50,
"maxPages": 2
}

Rentals with at least two bedrooms across two locations, including a state-wide search:

{
"mode": "location",
"locations": [
{ "state": "VIC" },
{ "suburb": "Sydney", "state": "NSW", "postcode": "2000" }
],
"listingType": "rent",
"bedroomsMin": 2,
"maxListings": 100,
"maxPages": 4
}

Scrape from a search-result URL you already have:

{
"mode": "url",
"urls": ["https://www.view.com.au/for-sale/vic/in-melbourne-3000/"],
"maxListings": 50
}

Scrape specific property detail pages:

{
"mode": "detail",
"detailUrls": [
"https://www.view.com.au/property/vic/kew-east-3102/24-normanby-road-kew-east-vic-3102-14802144/"
]
}

Run it from your code

Python:

from apify_client import ApifyClient
client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("abotapi/view-com-au-scraper").call(run_input={
"mode": "location",
"locations": [{"suburb": "Melbourne", "state": "VIC", "postcode": "3000"}],
"listingType": "buy",
})
for listing in client.dataset(run["defaultDatasetId"]).iterate_items():
print(listing["address"]["full"], listing["price"]["display"])

JavaScript:

import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });
const run = await client.actor('abotapi/view-com-au-scraper').call({
mode: 'location',
locations: [{ suburb: 'Melbourne', state: 'VIC', postcode: '3000' }],
listingType: 'buy',
});
const { items } = await client.dataset(run.defaultDatasetId).listItems();

Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.

Resume and recurring updates

Three related but separate controls, pick the one that matches what you are doing:

  • Resume from Checkpoint (on by default) continues the SAME run automatically after a platform migration or a manual Resurrect. Nothing to configure.
  • Resume from run ID continues ONE specific PREVIOUS interrupted run: paste its run or dataset id and this run skips every listing id already collected there.
  • Incremental mode is for running this SAME search on a schedule, such as daily. The actor remembers the search itself, keyed by State key, or an automatically derived key based on your mode, locations, filters and sort, so a differently configured search never shares a baseline by accident. Every row then carries changeType (NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED), changedFields, firstSeenAt and lastSeenAt.

By default, UNCHANGED listings are suppressed and not billed, and EXPIRED listings are never produced. Turn on Emit unchanged listings and Emit expired listings to see them too; both bill extra dataset rows. EXPIRED is only produced after a run that scans the complete tracked search from a fresh start, with no Maximum Listings or Maximum Pages cap hit, no fetch failure, no Resume from run ID, and not resumed from a checkpoint. REAPPEARED only appears for a listing an earlier complete scan already marked EXPIRED, once a later run finds it again; a listing that merely drops out during a partial run is not classified as REAPPEARED.

Resume from run ID and incremental mode can be combined once, to bootstrap a monitoring baseline from an existing dataset. With incremental mode off, the default, output is unchanged from before this feature existed.

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 itself 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 address) and its key fields flattened to plain text, such as price, agency, property type, status and listing URL. The complete record always stays in the Apify dataset.

  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 have not authorized a connector yet.
  3. For Notion, also set notionParentPageUrl to the page where item pages 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.

Input Parameters

ParameterTypeDefaultDescription
modestringlocationlocation, url, or detail.
locationsarrayrequired for location mode (prefill: suburb Melbourne, state VIC, postcode 3000)Locations to search. State is required; suburb and postcode are optional.
urlsarrayrequired for url mode (prefill: one Melbourne search URL)View.com.au search-result page URLs, not individual property pages.
detailUrlsarrayrequired for detail mode (prefill: one Kew East property URL)Individual property detail page URLs. One record per URL.
listingTypestringbuybuy, rent, or sold.
propertyTypesarraynone (all types)Filter: house, apartment, townhouse, land, studio, villa, rural.
priceMinintegernoneMinimum price in AUD.
priceMaxintegernoneMaximum price in AUD.
bedroomsMinintegernoneMinimum bedrooms.
bathroomsMinintegernoneMinimum bathrooms.
carsMinintegernoneMinimum car spaces.
sortstringdate-descdefault, date-desc, updatedAt-desc, price-asc, or price-desc.
maxListingsinteger25Stop after this many listings.
maxPagesinteger2Max search pages per location, about 25 results per page.
includeDetailPagebooleanfalseFetch each property's detail page for description, floor plans and more.
outputFormatarray["json"]Legacy setting; it does not change the output. Download the dataset as JSON, CSV, Excel and other formats from the Storage tab regardless of this setting.
proxyConfigurationobjectApify Residential, country AUConnection settings.
resumeFromCheckpointbooleantrueContinue the SAME run after a platform migration or a manual Resurrect.
resumeFromRunIdstringnoneContinue ONE interrupted previous run or dataset by id.
incrementalModebooleanfalseTrack this search across scheduled runs and flag NEW, UPDATED, UNCHANGED, REAPPEARED and EXPIRED listings.
stateKeystringnone (auto-derived from your search settings)Set only to intentionally share one incremental baseline across differently-configured runs.
emitUnchangedbooleanfalseAlso output, and bill, UNCHANGED listings.
emitExpiredbooleanfalseAlso output, and bill, EXPIRED listings after a complete scan.
mcpConnectorsarraynoneSend a summary of each record to apps authorized under Integrations.
notionParentPageUrlstringnoneNotion connector only: page under which item pages are created.
maxNotifyListingsinteger50Cap on items written to each connector per run.

Output Example

Sample shape: values are illustrative placeholders, not from a live record.

{
"id": 12345678,
"listingUrl": "https://www.view.com.au/property/vic/sampleville-3000/5-10-example-street-12345678/",
"address": {
"full": "5/10 Example Street, SAMPLEVILLE VIC 3000",
"streetNumber": "10",
"streetName": "Example Street",
"unitNumber": "5",
"suburb": "SAMPLEVILLE",
"state": "VIC",
"postcode": "3000",
"country": "Australia",
"countryCode": "AU"
},
"price": {
"display": "$850,000 - $900,000",
"value": 850000,
"currency": "AUD",
"priceType": "range",
"isRange": true,
"min": 850000,
"max": 900000
},
"features": {
"bedrooms": 3,
"bathrooms": 2,
"carSpaces": 1,
"landSizeInSqm": 450
},
"propertyType": "apartment",
"sourcePropertyType": "Apartment & Unit",
"listingType": "buy",
"saleMethod": "Sale",
"status": "On Market",
"rank": "Premium",
"images": [
{
"url": "https://view.com.au/viewstatic/images/listing/sample-slug/800-w/12345678-1-ABC1234.jpg",
"sequence": 1
}
],
"agents": [
{
"id": 99999,
"firstName": "Jane",
"lastName": "Smith",
"phone": "9000 1234",
"mobile": "0400 000 000",
"profileLink": "https://www.view.com.au/agent/jane-smith-99999/",
"numberOfSoldListings": 25,
"averageSoldPrice": 920000
}
],
"agency": {
"id": 10001,
"name": "Sample Realty",
"profileLink": "https://www.view.com.au/agency/sample-realty-10001/",
"brandColour": "1A1A1A"
},
"location": { "lat": -37.81, "lon": 144.96 },
"daysOnMarket": 14,
"lgaName": "Sample Council",
"createdAt": "2026-01-15T09:30:00.000Z",
"updatedAt": "2026-02-20T11:00:00.000Z",
"source": {
"portal": "view.com.au",
"scrapedAt": "2026-02-22T12:00:00.000Z"
}
}

Plan Requirement

View.com.au only accepts requests from residential connections in the region. The default proxy setting, Residential with country Australia, is what makes this actor return results, and the actor automatically rotates across Australian, New Zealand and Singapore residential exits when one is refused. Choosing a non-residential proxy group will very likely make the run fail with no listings, since a connection outage with zero listings collected fails the run rather than returning an empty dataset. Check the Proxy and Storage page in your Apify account for your current residential proxy access.

FAQ

How much does it cost?

Pricing is set on this actor's page. The Pricing tab shows the current rates. Use Maximum Listings to cap the size, and the cost, of any run.

This actor collects only publicly available property listing data. You are responsible for how you use it: follow View.com.au's terms and the laws that apply to you, and get legal advice if you plan commercial redistribution. Listing facts such as price, address and features are generally factual data, but photos and agency branding may be subject to third-party rights.

Can I get only new, updated or delisted properties on a schedule?

Yes. Schedule the actor from the Schedules tab and turn on Incremental mode. Each run then returns only new and updated listings by default; unchanged ones are skipped and not billed unless you turn on Emit unchanged listings. Turn on Emit expired listings to also see delistings, but that is only produced after a run that scans the complete tracked search from a fresh start, with no cap hit and neither resume mechanism truncating it. A listing only shows as REAPPEARED after an earlier complete scan already marked it EXPIRED and a later run finds it again; a listing that comes back after being skipped for another reason is not classified as REAPPEARED.

What is the difference between the three resume and update controls?

Resume from Checkpoint (on by default) automatically continues the SAME run after a platform migration or a manual Resurrect, with nothing to configure. Resume from run ID continues ONE specific PREVIOUS interrupted run by pasting its run or dataset id, skipping listings it already collected. Incremental mode is for a recurring, scheduled search: the actor remembers the search itself and classifies every listing against what it saw last time, with no id to paste. They do not conflict, and can be combined once to bootstrap a monitoring baseline from an existing dataset.

Why did my run fail instead of returning an empty dataset?

A run fails outright, rather than finishing with an empty dataset, when the input itself is invalid, when a pasted Resume from run ID does not match a run or dataset this Apify account can read, when incremental mode already has saved state for this search and you also pass Resume from run ID, or when a connectivity failure occurred and zero listings were collected. A run that reaches View.com.au fine but genuinely finds no matching listings for your filters finishes successfully with an empty dataset and a status message, not a failure. Try loosening your filters, or check that the suburb and state are spelled correctly.

Can I use it with AI agents or MCP?

Yes. Call it from any Apify integration or MCP client, and use the connector field to push a summary of each listing into Notion, Linear or Airtable.

🔗 Want more real estate data?

Pair this actor with these related scrapers from the same team:

🏠 Real Estate AU
Extract detailed Australian real estate property listings with 30+ structured fields...
🏠 Commercial Property AU Scraper
Scrape Australian commercial property listings with full detail data. Extract...
🏠 REIWA Scraper
Scrape REIWA.com.au across sale, rental, sold, commercial, business and rural properties...
🏠 Homely.com.au
Scrape Homely.com.au properties for sale, rent, and sold, plus agent finder, suburb...
🏠 Domain.com.au
Extract enriched Domain.com.au property listings across buy, rent, and sold, with...
🏠 Real Estate AU Agents Scraper
Scrape Australian real estate agent and agency profiles by suburb or profile URLs...

👉 Browse all abotapi scrapers

💬 Support

  • 🐞 Found a bug or a missing field? Open a ticket on the Issues tab. We usually reply within hours.
  • 🛠️ Need another site, extra fields or a private build? Email contact@abotapi.com.
  • ⭐ Enjoying it? A quick review on the actor page helps other users find it.