View.com.au Scraper at a glance
View.com.au Scraper is a ready-to-run Apify actor from abotapi for collecting real estate data. Its documented output includes id, type, property, address and price, which you can export as JSON, CSV or Excel or read through the Apify API. It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify.
- Runs on
- Apify cloud: console, API, schedules and integrations
- Data type
- Real Estate, Automation, Travel
- Region
- Oceania
- Pricing
- $2.20 per 1,000 results (Free plan), from $1.50 on paid plans
- Output
- Documented below · JSON, CSV, Excel
- Inputs
- 26 options
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.
What View.com.au Scraper can do
- 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.
Choose what to collect
These inputs let you configure View.com.au Scraper - Property Listings, Prices & Agents. Open the actor on Apify to enter your values and review the current options.
| Input | What it controls |
|---|---|
modestring · required | Search by Location builds URLs from suburb/state. Search List URLs lets you paste view.com.au search result page URLs directly. Property Detail URLs scrapes individual property pages you paste (one record per URL). |
locationsarray | Locations to search. State is required. Suburb and postcode are optional - omit for broader searches. |
listingTypestring | Type of property listings to scrape |
propertyTypesarray | Filter by property type. Leave empty for all types. |
priceMininteger | Minimum property price in AUD |
priceMaxinteger | Maximum property price in AUD |
bedroomsMininteger | Minimum number of bedrooms |
Show 19 more inputs
| Input | What it controls |
|---|---|
bathroomsMininteger | Minimum number of bathrooms |
carsMininteger | Minimum number of car spaces |
sortstring | Sort order for search results |
urlsarray | Paste view.com.au search result page URLs (listing pages). These are URLs that show multiple properties, e.g. https://www.view.com.au/for-sale/vic/in-melbourne-3000/. Each URL scrapes exactly the page it points at (a ?page=N URL scrapes page N). A pasted full property URL (/property/vic/...-12345678/) is scraped as one detail record. The default list holds one example of each supported URL shape; URLs are read in order until Maximum Listings is reached (default 25, so by default only the first URL is read - raise Maximum Listings to cover every shape). |
detailUrlsarray | Paste individual view.com.au property detail page URLs, e.g. https://www.view.com.au/property/vic/melbourne-3000/123-example-street-12345678/. One record is scraped per URL with full detail-page data. Only used when Search Mode is 'Property Detail URLs'. |
maxListingsinteger | Stop after scraping this many listings. Capped at 100000 per run. |
maxPagesinteger | Maximum search result pages per location. Each page has ~25 results. Left empty, 2 pages are read. A hard cap of 100 pages per location always applies. |
includeDetailPageboolean | Fetch each property detail page for full data (description, all images, floor plans, sale history). Slower but more complete. |
outputFormatarray | Export data in these formats |
resumeFromCheckpointboolean | Continue from the last saved checkpoint within the SAME run if it was interrupted (platform migration or a manual Resurrect). Distinct from resumeFromRunId (continues a specific PREVIOUS run by id) and incrementalMode (remembers this search across scheduled runs) below. |
resumeFromRunIdstring | Paste a previous run ID (or its dataset ID) to continue ONE interrupted crawl, listing ids already collected in that run are skipped so this run only adds new ones. For a same-run interruption use resumeFromCheckpoint instead; for ongoing scheduled monitoring of this search use incrementalMode below. |
incrementalModeboolean | Turn on when you run this same search on a schedule (e.g. daily) and only want to know what's new or changed since last time. The actor remembers this search's listings itself, no need to paste a run ID. Adds changeType (NEW/UPDATED/UNCHANGED/REAPPEARED/EXPIRED), changedFields, firstSeenAt, and lastSeenAt to every row. Off by default so existing scheduled runs are unaffected. See stateKey, emitUnchanged, and emitExpired below. |
stateKeystring | Optional label for the incrementalMode baseline. Leave empty to auto-derive one from your search settings (mode/locations/urls/detailUrls/listingType/property types/price/bedrooms/bathrooms/cars/sort), a different filter setup automatically gets its own baseline, never sharing one by accident. Set this only if you want multiple differently-configured runs to intentionally share one baseline. |
emitUnchangedboolean | When incrementalMode is on, also output listings that are UNCHANGED since the last run (changeType=UNCHANGED, changedFields=[]). Off by default: unchanged listings are silently skipped, so you only see and pay for what's new or different. Turning this on bills extra dataset-item rows for listings that haven't changed. |
emitExpiredboolean | When incrementalMode is on, also output a row for previously-tracked listings that are no longer found (changeType=EXPIRED), so you can detect delistings. Only emitted after a run that scans the full tracked search with no cap hit and no resumeFromRunId, a partial run never marks a still-live listing as expired. Off by default. Turning this on bills extra dataset-item rows. |
ignoreFieldsForChangesarray | Incremental mode only. Field names (for example images) or dotted paths (for example price.display or agents.email) that must NOT make a listing count as UPDATED or appear in changedFields. The fields stay in the output; they are only skipped when comparing with the last run. Source, updatedText and daysOnMarket are always ignored. Changing this list never causes a one-time wave of UPDATED rows. Leave empty to compare every field. |
mcpConnectorsarray | Optionally send the scraped results into the apps you already use, via Model Context Protocol (MCP) connectors. Authorize a connector once under Apify → Settings → Integrations, then select it here. Notion gets a page per item; other connectors receive a best-effort write/digest. Leave empty to skip; this never changes the dataset output. Supported: Notion (https://mcp.notion.com/mcp), Linear (https://mcp.linear.app/sse), Airtable (https://mcp.airtable.com/mcp), Apify (https://mcp.apify.com). |
notionParentPageUrlstring | URL (or id) of the Notion page under which item pages are created. Required to enable the Notion export; ignored by other connectors. |
maxNotifyListingsinteger | Cap on items written to each connector per run. Does not affect the dataset. |
Fields in the output
The documented dataset includes the fields below. Availability can depend on the source page and selected mode.
idID (text)listingTypeType (text)propertyTypeProperty (text)addressAddress (object)pricePrice (object)featuresFeatures (object)listingUrlURL (link)statusStatus (text)changeTypeChange (text)imagesImages (object)floorPlansFloor Plans (object)heroImageUrlHero Image (text)Show 8 more fields
agentsAgents (object)agencyAgency (object)locationCoordinates (object)lgaNameCouncil (text)landPricePerSqm$/sqm (number)changedFieldsChanged fields (array)firstSeenAtFirst seen (text)lastSeenAtLast seen (text)Example output
An example from this actor’s documentation. Values are illustrative; this is not a fresh live result.
{
"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"
}
}Ways to use this data
- 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.
Before you run
Start with a small input and check the resulting records against your expected fields. Source content and actor options can change; the current Apify listing is the reference for availability and pricing.
Questions about this actor
What data does View.com.au Scraper return?
The documented output for View.com.au Scraper includes id, type, property, address, price, features, url and status. Availability of each field depends on the source page and the selected mode.
How much does View.com.au Scraper cost?
It costs $2.20 per 1,000 results on the Apify Free plan and from $1.50 on paid plans, with smaller per-run or optional feature charges listed on Apify. The Apify listing shows the current rate for every plan.
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.
