Homely.com.au - Buy, Rent, Sold, Agents, Suburbs Reviews
Pricing
from $1.00 / 1,000 results
Homely.com.au - Buy, Rent, Sold, Agents, Suburbs Reviews
Scrape Homely.com.au properties for sale, rent, and sold, plus agent finder, suburb reviews, ratings, and Q&A. Search by suburb or use URLs. Returns 50+ fields, including price, beds, baths, parking, geo, agent contacts, photos, and inspections.
Pricing
from $1.00 / 1,000 results
Rating
0.0
(0)
Developer
Abot API
Maintained by CommunityActor stats
1
Bookmarked
6
Total users
1
Monthly active users
3 days ago
Last modified
Categories
Share
Homely.com.au Scraper: Buy, Rent, Sold, Agents & Suburb Reviews
Homely.com.au Scraper turns Homely.com.au, Australia's community-driven property portal, into a clean data API. Get properties for sale, for rent and sold, the agent finder (agents with contact details, plus offices), community suburb reviews and ratings, and suburb Q&A, all from one actor. Search by suburb name, or paste exact Homely links, then export to JSON, CSV or Excel, or pull the results straight into your app through the API.
Why This Scraper?
- Six datasets, one actor. Buy, rent and sold listings, the agent finder (agents and offices), suburb reviews, and community Q&A, all under one input form.
- Two ways to find data. Search by suburb name, or paste exact Homely links; URL mode reads whatever kind of page you paste, from a search-results page to a single listing or agent profile.
- Filters that follow you into URL mode. Price, bedrooms, bathrooms, car spaces, property type, required features and under-offer status narrow a suburb search AND a pasted search-results link.
- Richer records on demand. Turn on full details for a listing agent's email, the full description, council rates and floor plans, or for an agent's job title, website, areas of expertise and performance stats.
- Suburb context on every listing. Attach a suburb's community rating, score, pros/cons and "great for" tags to every property record, with one extra request per suburb, not per listing.
- Built for schedules. Incremental mode returns only new and changed records on recurring runs, and unchanged records are never billed.
- Optional export to your apps. Pipe a summary of every record into Notion, Linear, Airtable or Apify via MCP connectors, on top of the full dataset.
Use Cases
- Buyers and renters: track new listings for sale or rent in a suburb, filtered by price, bedrooms and property type.
- Agencies and PropTech teams: monitor competitor agents and offices, their ratings, listing counts and transaction history.
- Investors and market researchers: follow sold prices and suburb ratings over time to spot trends before they show up elsewhere.
- Content and community sites: pull suburb reviews, pros/cons and community Q&A to build local suburb guides.
- Lead generation: collect agent contact details, including email and mobile, from a suburb's agent finder.
Data You Get
Sample shape: values are illustrative placeholders, not from a live record.
| Field | Example |
|---|---|
mode | "buy" (also "rent", "sold", "agents", "offices", "suburb", "questions") |
id | 13342139 |
url | link to the listing, agent, office, suburb or question page |
title | "3 Bedroom House For Sale" (listing records) |
propertyType | "House" |
price / priceValue | {"display": "$1,450,000", "short": "$1.45M"} / 1450000 |
features | {"bedrooms": 3, "bathrooms": 2, "cars": 1} |
address / location | full street address / {"latitude": -33.891, "longitude": 151.274} |
agents | [{"name": "Jane Smith", "phone": "...", "mobile": "...", "email": "..."}] (email requires full details) |
office | agency or office name, on listing and agent-finder records alike |
images | array of photo URLs |
inspections / auction | upcoming inspection windows / auction date, when scheduled |
rental | {"bond": 2900, "availableOn": "2026-10-01"} (rent listings only) |
soldOn / soldPriceValue | "2026-08-15" / 1380000 (buy and sold listings) |
name / email / mobile / phone | agent contact details (agent-finder records); offices carry name and company but no direct contact fields |
reviewSummary | {"reviewCount": 42, "rating": 4.8} (agent and office records) |
listingSummary / transactions | counts of active listings and past transactions per agent or office |
rating / score | community suburb rating and numeric score (suburb records) |
pros / cons / greatFor | suburb pros, cons and "great for" tags |
reviews | the suburb's full reviews, inline: title, body, rating, helpful count, author |
replyCount / followerCount | engagement counts on a community question |
changeType | NEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED (Incremental mode only) |
scrapedAt / sourceUrl | when the record was read, and the page it came from |
Turning on full details adds description, councilRates, floorPlans, buildingFeatures and documents to listing records, and jobTitle, websiteUrl, areasOfExpertise, servicedLocations and performance stats to agent records. Suburb records can also carry ranking, whoLivesHere, numberOfFollowers, bestLocations, otherLocations and popularQuestions for that suburb, and a listing record gains a suburbInsights object when suburb insights are switched on.
How to Use
- Pick how you supply input: search by suburb, or paste exact Homely links.
- In search mode, pick what to scrape (buy, rent, sold, agents, offices, suburb or questions), give it a suburb, and set any listing filters or agent sort order.
- Turn on Fetch full details or Add suburb insights for the richer fields, and set Max records to control run size and cost.
- Click Start, then download the dataset as JSON, CSV or Excel, or read it through the API.
Properties for sale in a suburb, filtered:
{"mode": "search","dataset": "buy","location": "Bondi NSW 2026","bedroomsMin": 2,"priceMax": 2000000,"maxItems": 50}
Agent finder with contact details:
{"mode": "search","dataset": "agents","location": "Surry Hills NSW 2010","agentSpecialty": "sale","detail": true,"maxItems": 30}
Suburb reviews and community rating:
{"mode": "search","dataset": "suburb","location": "Bondi NSW 2026"}
Paste a search-results link, still filtered:
{"mode": "url","startUrls": ["https://www.homely.com.au/for-rent/bondi-nsw-2026/real-estate"],"bedroomsMin": 2,"maxItems": 40}
Run it from your code
Python:
from apify_client import ApifyClientclient = ApifyClient("<YOUR_APIFY_TOKEN>")run = client.actor("abotapi/homely-com-au-scraper").call(run_input={"mode": "search", "dataset": "buy", "location": "Bondi NSW 2026", "maxItems": 50})for listing in client.dataset(run["defaultDatasetId"]).iterate_items():print(listing["title"], listing["priceValue"])
JavaScript:
import { ApifyClient } from 'apify-client';const client = new ApifyClient({ token: '<YOUR_APIFY_TOKEN>' });const run = await client.actor('abotapi/homely-com-au-scraper').call({mode: 'search', dataset: 'buy', location: 'Bondi NSW 2026', maxItems: 50,});const { items } = await client.dataset(run.defaultDatasetId).listItems();
Or connect it to Make, Zapier, n8n, Google Sheets or webhooks from the Integrations tab.
Caps and pagination
Max records stops the whole run once that many records have been pushed (0 = unlimited). Max pages per location additionally caps how many result pages are read per suburb; leave it empty for no page limit, bounded only by Max records. Listing filters run after each page is fetched, so a tightly filtered search may need to read several pages to fill Max records.
Resume and recurring updates
- Resume from a previous run (
resumeFromRunId) continues ONE interrupted crawl: paste its run or dataset ID and this run skips every record already collected there, so a large pull can be split across runs without duplicates or double charges. - Incremental mode (
incrementalMode) is for scheduling the SAME search again and again. Each record is classifiedNEW,UPDATED(withchangedFields),UNCHANGED(suppressed and not billed unlessemitUnchangedis on),REAPPEARED, orEXPIRED.REAPPEAREDandEXPIREDonly exist once a prior run has fully scanned this exact search withemitExpiredon and marked a record as no longer found; nothing can reappear before that has happened at least once.EXPIREDrecords are only produced after a run that fully scanned the tracked search, never when Max records capped it or Resume was used, since a partial scan cannot tell "gone" apart from "not reached yet".stateKeynames or deliberately shares a monitoring campaign; leave it empty and the actor derives one automatically from the search, filters and detail settings.
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 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 and its key fields flattened to plain text. 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 haven't authorized a connector yet.)
- For Notion, also set
notionParentPageUrlto the page where items 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 | search | search (tell us a suburb) or url (paste Homely links). |
dataset | string | buy | What to scrape in search mode: buy, rent, sold, agents, offices, suburb, or questions. Ignored in URL mode. |
location | string | no default (prefill: Bondi NSW 2026) | Suburb to scrape, e.g. "Bondi NSW 2026" or a Homely slug. |
locationIds | array | no default (prefill: empty list) | Optional pre-resolved numeric Homely location IDs (agent finder can use these directly). |
agentSpecialty | string | any | Filter agents by what they list: any, sale, or rent. |
officeId | integer | no default | List all agents in one specific office by its numeric Homely office ID. |
sort | string | default | Ordering for the Agents / Offices datasets: default, rating, reviews, sales, or listings. Listings are returned in Homely's own order. |
startUrls | array | no default (prefill: one sample link) | Homely URLs to scrape (URL mode). Any mix of search-results, suburb-profile, questions, listing, or agent pages. |
priceMin | integer | no default | Minimum price (weekly rent for Rent). Applies in search mode and to a pasted search-results URL. |
priceMax | integer | no default | Maximum price (weekly rent for Rent). Applies in search mode and to a pasted search-results URL. |
bedroomsMin | integer | no default | Minimum number of bedrooms. Applies in search mode and to a pasted search-results URL. |
bedroomsMax | integer | no default | Maximum number of bedrooms. Applies in search mode and to a pasted search-results URL. |
bathroomsMin | integer | no default | Minimum number of bathrooms. Applies in search mode and to a pasted search-results URL. |
carSpacesMin | integer | no default | Minimum number of car spaces. Applies in search mode and to a pasted search-results URL. |
propertyTypes | array | no default (prefill: empty list) | Keep only these property types (house, unit, apartment, townhouse, villa, land, and more). Leave empty for all. |
propertyFeatures | array | no default (prefill: empty list) | Keep only listings whose tags include ALL of these. Leave empty to skip. |
isUnderOffer | boolean | no default | If on, keep only listings currently under offer. |
detail | boolean | false | Fetch each record's detail source for extra fields: listing agent email, full description, council rates and floor plans; or agent job title, website, areas of expertise and performance. Adds one request per record. |
includeSuburbInsights | boolean | false | Attach the suburb's community rating, score, pros/cons and "great for" tags to every listing record. Costs one extra request per suburb, not per listing. |
maxItems | integer | 20 | Stop after this many records. 0 = unlimited. |
maxPages | integer | no default | How many result pages to read per location. Leave empty (or 0) for unlimited; the run is still bounded by Max records. |
proxy | object | Apify Proxy (datacenter) | Network connection. The default works on all plans; switch to Residential for heavier runs. |
resumeFromRunId | string | no default | Continue one interrupted run without returning or charging for records already collected there. |
incrementalMode | boolean | false | Return only new and changed records on scheduled runs of the same search. |
stateKey | string | no default | Name or deliberately share an Incremental mode monitoring campaign. |
emitUnchanged | boolean | false | Also return (and bill) records that have not changed since the last run. |
emitExpired | boolean | false | Also return (and bill) records that were present before but are no longer found. |
mcpConnectors | array | no default | Optional: send a summary of each record to apps you authorized under Integrations. |
notionParentPageUrl | string | no default | Notion connector only: page under which item pages are created. |
maxNotifyListings | integer | 50 | Cap on items written to each connector per run. Does not affect the dataset. |
Output Example
Sample shape: values are illustrative placeholders, not from a live record.
{"mode": "buy","id": 13342139,"uri": "/property/3-bed-house-bondi-nsw-2026/13342139","url": "https://www.homely.com.au/property/3-bed-house-bondi-nsw-2026/13342139","title": "3 Bedroom House For Sale","statusType": "forSale","propertyType": "House","isUnderOffer": false,"daysOnMarket": 14,"price": {"display": "$1,450,000","short": "$1.45M"},"priceValue": 1450000,"address": {"streetAddress": "12 Sample Street","suburb": "Bondi","state": "NSW","postcode": "2026"},"location": {"address": "12 Sample Street, Bondi NSW 2026","isHidden": false,"latitude": -33.891,"longitude": 151.274},"features": {"bedrooms": 3,"bathrooms": 2,"cars": 1},"featureTags": ["pool", "air conditioning"],"agents": [{"id": 5001,"name": "Jane Smith","phone": "0282001234","mobile": "0412345678","email": null}],"office": {"name": "Sample Realty Bondi","company": "Sample Realty"},"images": ["https://img.homely.com.au/photo1.jpg","https://img.homely.com.au/photo2.jpg"],"inspections": [{ "startsOn": "2026-10-04T10:00:00+11:00", "endsOn": "2026-10-04T10:30:00+11:00" }],"auction": null,"soldOn": null,"soldPrice": null,"soldPriceValue": null,"sourceUrl": "https://www.homely.com.au/for-sale/bondi-nsw-2026/real-estate","scrapedAt": "2026-09-29T04:00:00+00:00"}
Plan Requirement
The default proxy setting works out of the box, and the actor automatically retries with a different connection when one is refused. For large or frequent runs, the Residential proxy group gives more headroom; pick it under Connection.
FAQ
How much does it cost?
You pay a small run-start fee, plus per record returned, plus a smaller surcharge only for records whose detail source was fetched: every record when Fetch full details is on, plus any single listing or agent page pasted directly in URL mode regardless of that setting. The Pricing tab shows the current rates. Use Max records to cap the cost of any run.
Is it legal to scrape Homely.com.au?
This actor collects only publicly available information from Homely.com.au. You are responsible for how you use scraped data, including any personal data of agents: follow Homely's terms and the laws that apply to you (including GDPR/CCPA where relevant), and get legal advice if you plan commercial redistribution.
Can I get only new or changed records on a schedule?
Yes. Schedule the actor from the Schedules tab against the same search and turn on Incremental mode. Each run then returns only new and updated records; unchanged ones are not billed unless you turn on Emit unchanged. Reappeared and expired records only appear once Emit expired is also on and a run completes a full, uncapped scan.
Do the filters still work when I paste a URL instead of searching?
Yes, for a pasted search-results link (for-sale, for-rent, or sold-properties). Price, bedrooms, bathrooms, car spaces, property type, required features and under-offer status all narrow the listings collected from that link, exactly as they would in search mode. They have no effect when the pasted link is a single listing, agent, suburb, or questions page, since there is no result list left to filter.
Why did my run fail instead of returning an empty dataset?
The run fails only when a connection to the site cannot be set up at all before scraping starts. If the site refuses requests once a run is underway, the run ends normally with an empty or partial dataset and a status message explaining why, rather than failing. Try again, or switch Proxy to Residential, if an empty result looks wrong.
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 results into Notion, Linear or Airtable.
๐ Want more real estate data?
Pair this actor with these related scrapers from the same team:
| ๐ Domain.com.au Extract enriched Domain.com.au property listings across buy, rent, and sold, with... | ๐ REIWA AU Collect Western Australia real estate data from REIWA.com.au across sale, rental, sold... |
| ๐ View.com.au Scraper Scrape View.com.au properties for sale, rent and recently sold across Australia. Search... | ๐ Real Estate AU Agents Scraper Scrape Australian real estate agent and agency profiles by suburb or profile URLs... |
| ๐ Childcare AU Scrape Australiaโs largest childcare directory careforkids.com.au with long day care... | ๐ Officeworks Scraper Scrape Officeworks products by keyword, category, or URL. Extract names, brands, prices... |
๐ Browse all abotapi scrapers
๐ฌ Support & custom scrapers
- ๐ 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 or message Telegram @abotapi.
- โญ Enjoying it? A quick review on the actor page helps other users find it.