Flatmates.com.au Scraper
Pricing
from $1.00 / 1,000 results
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
Maintained by CommunityActor 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.

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
- A place name:
- Listing type:
rooms(default),people, orteamups - 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
- Each location input is resolved to a GraphQL location key via
LocationSuggestQuery(the app's autocomplete). - The
SearchQueryGraphQL operation is paginated per location, collecting listing summaries. - Listings are deduplicated by ID across locations and pages.
- (Optional) When
fetchFullDetailsis on, each listing's web page is fetched through an AU residential proxy to add the description, features, and contact name. - Rows are pushed to the dataset as they're produced.
Input configuration
| Field | Type | Default | Description |
|---|---|---|---|
locations | string[] | ["Sydney"] | Locations to scrape (place name, key, or URL). |
mode | enum | rooms | rooms, people, or teamups. |
sort | enum | — | Sort order. |
minBudget / maxBudget | integer | — | Weekly rent range in AUD. |
keywords | string | — | Free-text keyword filter. |
dateAvailable | string | — | ISO date; only listings available on/after this date. |
billsIncluded | boolean | false | Only listings with bills included. |
furnishingType | enum | — | furnished / unfurnished. |
roomType | enum | — | private_room / shared_room (rooms mode). |
propertyTypes | string[] | — | Property type filters (rooms mode). |
numberOfBedroom | integer | — | Exact bedroom count (rooms mode). |
maxItems | integer | 100 | Max listings across all locations. |
maxPages | integer | 0 | Max pages per location (0 = unlimited). |
fetchFullDetails | boolean | false | Fetch each listing's web page for description, features, contact name. |
maxConcurrency | integer | 8 | Detail-page concurrency (only with fetchFullDetails). |
proxy | object | AU residential | Optional 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—propertyorperson.mode—rooms,people, orteamups.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 whenfetchFullDetailsis 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