Homely.com.au - Buy, Rent, Sold, Agents, Suburbs Reviews avatar

Homely.com.au - Buy, Rent, Sold, Agents, Suburbs Reviews

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Homely.com.au - Buy, Rent, Sold, Agents, Suburbs Reviews

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

Abot API

Maintained by Community

Actor stats

1

Bookmarked

6

Total users

1

Monthly active users

3 days ago

Last modified

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.

FieldExample
mode"buy" (also "rent", "sold", "agents", "offices", "suburb", "questions")
id13342139
urllink 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 / locationfull street address / {"latitude": -33.891, "longitude": 151.274}
agents[{"name": "Jane Smith", "phone": "...", "mobile": "...", "email": "..."}] (email requires full details)
officeagency or office name, on listing and agent-finder records alike
imagesarray of photo URLs
inspections / auctionupcoming 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 / phoneagent 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 / transactionscounts of active listings and past transactions per agent or office
rating / scorecommunity suburb rating and numeric score (suburb records)
pros / cons / greatForsuburb pros, cons and "great for" tags
reviewsthe suburb's full reviews, inline: title, body, rating, helpful count, author
replyCount / followerCountengagement counts on a community question
changeTypeNEW, UPDATED, UNCHANGED, REAPPEARED or EXPIRED (Incremental mode only)
scrapedAt / sourceUrlwhen 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

  1. Pick how you supply input: search by suburb, or paste exact Homely links.
  2. 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.
  3. Turn on Fetch full details or Add suburb insights for the richer fields, and set Max records to control run size and cost.
  4. 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 ApifyClient
client = 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 classified NEW, UPDATED (with changedFields), UNCHANGED (suppressed and not billed unless emitUnchanged is on), REAPPEARED, or EXPIRED. REAPPEARED and EXPIRED only exist once a prior run has fully scanned this exact search with emitExpired on and marked a record as no longer found; nothing can reappear before that has happened at least once. EXPIRED records 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". stateKey names 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.

  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 haven't authorized a connector yet.)
  3. For Notion, also set notionParentPageUrl to 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

ParameterTypeDefaultDescription
modestringsearchsearch (tell us a suburb) or url (paste Homely links).
datasetstringbuyWhat to scrape in search mode: buy, rent, sold, agents, offices, suburb, or questions. Ignored in URL mode.
locationstringno default (prefill: Bondi NSW 2026)Suburb to scrape, e.g. "Bondi NSW 2026" or a Homely slug.
locationIdsarrayno default (prefill: empty list)Optional pre-resolved numeric Homely location IDs (agent finder can use these directly).
agentSpecialtystringanyFilter agents by what they list: any, sale, or rent.
officeIdintegerno defaultList all agents in one specific office by its numeric Homely office ID.
sortstringdefaultOrdering for the Agents / Offices datasets: default, rating, reviews, sales, or listings. Listings are returned in Homely's own order.
startUrlsarrayno default (prefill: one sample link)Homely URLs to scrape (URL mode). Any mix of search-results, suburb-profile, questions, listing, or agent pages.
priceMinintegerno defaultMinimum price (weekly rent for Rent). Applies in search mode and to a pasted search-results URL.
priceMaxintegerno defaultMaximum price (weekly rent for Rent). Applies in search mode and to a pasted search-results URL.
bedroomsMinintegerno defaultMinimum number of bedrooms. Applies in search mode and to a pasted search-results URL.
bedroomsMaxintegerno defaultMaximum number of bedrooms. Applies in search mode and to a pasted search-results URL.
bathroomsMinintegerno defaultMinimum number of bathrooms. Applies in search mode and to a pasted search-results URL.
carSpacesMinintegerno defaultMinimum number of car spaces. Applies in search mode and to a pasted search-results URL.
propertyTypesarrayno default (prefill: empty list)Keep only these property types (house, unit, apartment, townhouse, villa, land, and more). Leave empty for all.
propertyFeaturesarrayno default (prefill: empty list)Keep only listings whose tags include ALL of these. Leave empty to skip.
isUnderOfferbooleanno defaultIf on, keep only listings currently under offer.
detailbooleanfalseFetch 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.
includeSuburbInsightsbooleanfalseAttach 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.
maxItemsinteger20Stop after this many records. 0 = unlimited.
maxPagesintegerno defaultHow many result pages to read per location. Leave empty (or 0) for unlimited; the run is still bounded by Max records.
proxyobjectApify Proxy (datacenter)Network connection. The default works on all plans; switch to Residential for heavier runs.
resumeFromRunIdstringno defaultContinue one interrupted run without returning or charging for records already collected there.
incrementalModebooleanfalseReturn only new and changed records on scheduled runs of the same search.
stateKeystringno defaultName or deliberately share an Incremental mode monitoring campaign.
emitUnchangedbooleanfalseAlso return (and bill) records that have not changed since the last run.
emitExpiredbooleanfalseAlso return (and bill) records that were present before but are no longer found.
mcpConnectorsarrayno defaultOptional: send a summary of each record to apps you authorized under Integrations.
notionParentPageUrlstringno defaultNotion connector only: page under which item pages are created.
maxNotifyListingsinteger50Cap 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.

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.