View.com.au Scraper - Property Listings, Prices & Agents
Pricing
from $1.50 / 1,000 results
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
Maintained by CommunityActor stats
1
Bookmarked
10
Total users
0
Monthly active users
2 days ago
Last modified
Categories
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.
| Field | Example |
|---|---|
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" |
address.suburb / address.state / address.postcode | "SAMPLEVILLE" / "VIC" / "3000" |
price.display | "$850,000 - $900,000" |
price.value / price.priceType | 850000 / "range" |
features.bedrooms / features.bathrooms / features.carSpaces | 3 / 2 / 1 |
features.landSizeInSqm | 450 |
propertyType / sourcePropertyType | "apartment" / "Apartment & Unit" |
listingType | "buy" (also "rent", "sold") |
saleMethod / status | "Sale" / "On Market" |
rank | "Premium" |
images | photo URLs with sequence, on the site's CDN |
agents | firstName, lastName, phone, mobile, numberOfSoldListings, averageSoldPrice (replaced by a detail-page agent entry with email when detail data is included) |
agency | name, profileLink, brandColour |
location.lat / location.lon | -37.81 / 144.96 |
daysOnMarket | 14 |
soldPrice / soldAt | 900000 / "2026-01-20" (sold listings) |
lgaName | "Sample Council" |
createdAt / updatedAt | listing-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
- Pick a Search Mode: Search by Location, Search List URLs, or Property Detail URLs.
- 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.
- Optionally filter by property type, price, bedrooms, bathrooms or car spaces, and pick a sort order.
- 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 ApifyClientclient = 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,REAPPEAREDorEXPIRED),changedFields,firstSeenAtandlastSeenAt.
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.
- Authorize a connector once under Apify → Settings → Integrations (Notion, Linear, Airtable, or Apify).
- Select it in the "Pipe results into your apps" input field. If the picker is empty, you have not authorized a connector yet.
- For Notion, also set
notionParentPageUrlto 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
| Parameter | Type | Default | Description |
|---|---|---|---|
mode | string | location | location, url, or detail. |
locations | array | required for location mode (prefill: suburb Melbourne, state VIC, postcode 3000) | Locations to search. State is required; suburb and postcode are optional. |
urls | array | required for url mode (prefill: one Melbourne search URL) | View.com.au search-result page URLs, not individual property pages. |
detailUrls | array | required for detail mode (prefill: one Kew East property URL) | Individual property detail page URLs. One record per URL. |
listingType | string | buy | buy, rent, or sold. |
propertyTypes | array | none (all types) | Filter: house, apartment, townhouse, land, studio, villa, rural. |
priceMin | integer | none | Minimum price in AUD. |
priceMax | integer | none | Maximum price in AUD. |
bedroomsMin | integer | none | Minimum bedrooms. |
bathroomsMin | integer | none | Minimum bathrooms. |
carsMin | integer | none | Minimum car spaces. |
sort | string | date-desc | default, date-desc, updatedAt-desc, price-asc, or price-desc. |
maxListings | integer | 25 | Stop after this many listings. |
maxPages | integer | 2 | Max search pages per location, about 25 results per page. |
includeDetailPage | boolean | false | Fetch each property's detail page for description, floor plans and more. |
outputFormat | array | ["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. |
proxyConfiguration | object | Apify Residential, country AU | Connection settings. |
resumeFromCheckpoint | boolean | true | Continue the SAME run after a platform migration or a manual Resurrect. |
resumeFromRunId | string | none | Continue ONE interrupted previous run or dataset by id. |
incrementalMode | boolean | false | Track this search across scheduled runs and flag NEW, UPDATED, UNCHANGED, REAPPEARED and EXPIRED listings. |
stateKey | string | none (auto-derived from your search settings) | Set only to intentionally share one incremental baseline across differently-configured runs. |
emitUnchanged | boolean | false | Also output, and bill, UNCHANGED listings. |
emitExpired | boolean | false | Also output, and bill, EXPIRED listings after a complete scan. |
mcpConnectors | array | none | Send a summary of each record to apps authorized under Integrations. |
notionParentPageUrl | string | none | Notion connector only: page under which item pages are created. |
maxNotifyListings | integer | 50 | Cap 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.
Is it legal to scrape View.com.au?
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... |
💬 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.