Flatmates.com.au Scraper avatar

Flatmates.com.au Scraper

Pricing

from $1.00 / 1,000 results

Go to Apify Store
Flatmates.com.au Scraper

Flatmates.com.au Scraper

Scrape share accommodation (rooms, people, teamups) from Flatmates.com.au — Australia's #1 share housing site. Rent, beds, baths, occupants, availability, address, photos, and verified status via the mobile GraphQL API.

Pricing

from $1.00 / 1,000 results

Rating

0.0

(0)

Developer

Muhamed Didovic

Muhamed Didovic

Maintained by Community

Actor stats

0

Bookmarked

2

Total users

1

Monthly active users

4 days ago

Last modified

Categories

Share

Flatmates.com.au Scraper — Share Accommodation (Rooms, People, Teamups)

Scrape share-accommodation listings from Flatmates.com.au — Australia's #1 share housing site. Pulls rooms for rent, people looking for a room, and teamups via the official mobile GraphQL API: rent, beds, baths, occupants, availability, address, photos, ID-verified status, and (optionally) the full description, features, and contact name.

How it works

Why use this scraper

  • Mobile GraphQL API, not HTML — the official Android app's endpoint returns structured JSON with no Cloudflare wall and no auth, so runs are fast and reliable from any proxy.
  • All three listing types — rooms for rent, people looking, and teamups (people forming a new household).
  • Rich per-listing fields — weekly rent, bedrooms, bathrooms, occupants, availability, suburb, photos, ID-verified flag, age & gender (people), length of stay (people).
  • Optional full details — fetch each listing's web page for the description, feature list, and contact name.
  • Any location — pass a city ("Sydney"), a suburb ("Surry Hills"), a postcode suburb ("surry-hills-2010"), a raw key ("sydney_nsw"), or a full flatmates.com.au URL.
  • Filter everything the app exposes — budget range, furnishing, room type, property type, bills included, keywords, availability date, flatmate gender/profession/preferences, and more.

Overview

Flatmates.com.au is Australia's largest share-accommodation marketplace, run by REA Group. This scraper reproduces the official Android app's data flow: it resolves your location text to a location key via the app's LocationSuggest endpoint, then paginates the Search GraphQL query and dedupes by listing ID. Each result row carries the full summary the app shows in its search results, plus an optional web-detail enrichment pass.

Supported inputs

  • Locations (required): one or more of
    • A place name: Sydney, Surry Hills, Melbourne VIC
    • A raw location key: sydney_nsw, surry-hills-2010
    • A flatmates.com.au URL: https://flatmates.com.au/rooms/sydney_nsw
  • Listing type: rooms (default), people, or teamups
  • Filters: min/max weekly rent, keywords, availability date, bills included, furnishing, room type, property types, number of bedrooms, and (for people mode) flatmate age/gender/profession/preferences
  • Sort: featured, newest, recently active, cheapest, most expensive, earliest available, lowest budget, move earliest

Use cases

  • Market research — track share-rent prices by suburb across Australian cities.
  • Lead generation — collect contact names and listing URLs for outreach to landlords/agents.
  • Migration monitoring — watch a suburb for new listings that match a budget and availability window.
  • Academic / journalism — dataset of Australian share-housing supply and pricing.
  • Aggregation — feed a property meta-search or a relocation concierge.

How it works

  1. Each location input is resolved to a GraphQL location key via LocationSuggestQuery (the app's autocomplete).
  2. The SearchQuery GraphQL operation is paginated per location, collecting listing summaries.
  3. Listings are deduplicated by ID across locations and pages.
  4. (Optional) When fetchFullDetails is on, each listing's web page is fetched through an AU residential proxy to add the description, features, and contact name.
  5. Rows are pushed to the dataset as they're produced.

Input configuration

FieldTypeDefaultDescription
locationsstring[]["Sydney"]Locations to scrape (place name, key, or URL).
modeenumroomsrooms, people, or teamups.
sortenum—Sort order.
minBudget / maxBudgetinteger—Weekly rent range in AUD.
keywordsstring—Free-text keyword filter.
dateAvailablestring—ISO date; only listings available on/after this date.
billsIncludedbooleanfalseOnly listings with bills included.
furnishingTypeenum—furnished / unfurnished.
roomTypeenum—private_room / shared_room (rooms mode).
propertyTypesstring[]—Property type filters (rooms mode).
numberOfBedroominteger—Exact bedroom count (rooms mode).
maxItemsinteger100Max listings across all locations.
maxPagesinteger0Max pages per location (0 = unlimited).
fetchFullDetailsbooleanfalseFetch each listing's web page for description, features, contact name.
maxConcurrencyinteger8Detail-page concurrency (only with fetchFullDetails).
proxyobjectAU residentialOptional proxy override.

Output overview

Each dataset row is one listing. See the Output tab for the full schema and a sample.

Output samples

Rooms mode (property listing):

{
"listingId": "1976211",
"url": "https://flatmates.com.au/student-accommodation-sydney-darlinghurst-2010-P1976211",
"type": "property",
"mode": "rooms",
"heading": "Student accommodation for rent",
"rent": "$375",
"rentWeekly": 375,
"availability": "Available 3 November 2026",
"displayAddress": "Darlinghurst, Sydney",
"suburb": "Darlinghurst",
"bedroomCount": 4,
"bathroomCount": 1,
"occupantCount": 4,
"images": ["https://flatmates-res.cloudinary.com/..."],
"scrapedAt": "2026-10-18T10:26:27.496Z"
}

People mode (person listing):

{
"listingId": "4708037",
"url": "https://flatmates.com.au/F4708037",
"type": "person",
"mode": "people",
"heading": "Carlota",
"ageAndGender": "24 year old woman",
"lengthOfStay": "6 months stay",
"rentWeekly": 400,
"scrapedAt": "2026-10-18T10:28:00.000Z"
}

Key output fields

  • listingId — Flatmates internal listing ID.
  • url — public web URL.
  • type — property or person.
  • mode — rooms, people, or teamups.
  • heading — listing heading (property address or person's name).
  • rent / rentWeekly — rent as displayed and as a numeric AUD value.
  • availability — availability text.
  • displayAddress, suburb, state, postcode — location (property listings).
  • bedroomCount, bathroomCount, occupantCount — property listings.
  • ageAndGender, lengthOfStay — person listings.
  • idVerified — ID-verified flag.
  • interactionBadge — e.g. "Boosted", "New".
  • images — Cloudinary image URLs.
  • description, features, contactName — only when fetchFullDetails is on.

FAQ

Do I need a proxy? No. The GraphQL search endpoint has no anti-bot and works from datacenter IPs. The actor still routes through Apify AU residential so the optional fetchFullDetails web pages clear Cloudflare. You can override the proxy in the input if you prefer your own.

Does it need login? No. Search and location-suggest are unauthenticated. Authenticated features (messaging, shortlist, your own profile) are out of scope.

How many listings can I get? As many as Flatmates has for your locations. Sydney returns thousands of rooms; set maxItems to cap your run and maxPages to cap depth per location.

Why are description, features, and contactName null? They're only populated when fetchFullDetails is on, because they come from the web detail page rather than the GraphQL summary. The detail page sits behind Cloudflare; the actor routes through AU residential proxies and retries, but some runs may be rate-limited. When that happens the row is still emitted with all the GraphQL summary fields (rent, beds, baths, availability, address, photos, etc.) and only the detail-only fields are left null.

Support

If something breaks, open an issue with the run ID and your input. For custom output fields, locations, or integrations, the author is reachable through the Apify Store.

Additional services

Need a custom field, a different output shape, a webhook to your CRM, or a one-off bulk scrape of every Australian suburb? The author takes custom work — reach out through the Store page.

Explore more scrapers

See the full memo23 portfolio on the Apify Store for Australian and international real-estate, jobs, and directory scrapers.

For AI Agents & LLM Apps

This actor accepts a plain locations array and a mode and returns one row per listing. To use it from an LLM tool call:

{
"locations": ["Sydney", "Melbourne VIC"],
"mode": "rooms",
"maxItems": 50,
"fetchFullDetails": false
}

The output is stable JSON with predictable field names (listingId, url, rentWeekly, suburb, bedroomCount, …). For retrieval, filter by suburb/state and sort by rentWeekly. Each row is self-contained — no joins needed.

Disclaimer

This scraper is for personal, research, and lead-generation use. You are responsible for complying with Flatmates.com.au's Terms of Service and all applicable laws. The author and this actor are not affiliated with Flatmates.com.au or REA Group. Use responsibly.

SEO Keywords

flatmates scraper, flatmates.com.au scraper, share accommodation scraper australia, share housing data, rooms for rent scraper sydney, melbourne share rooms, sydney flatmates listings, australian share accommodation api, flatmates graphql, rea group share housing, rent rooms australia scraper, teamups scraper, flatmates.com.au data extraction, share housing market research australia, suburb rent prices share