# Flatmates.com.au Scraper — Australia Share Accommodation Data (`sian.agency/flatmates-au-property-scraper`) Actor

Extract Australian flatshare and share-accommodation listings into clean structured data. Search rooms for rent, people looking, and team-ups by suburb, city or university; get weekly rent, room specs, household details, geo and lister info. Bulk, paginated, API-ready.

- **URL**: https://apify.com/sian.agency/flatmates-au-property-scraper.md
- **Developed by:** [SIÁN OÜ](https://apify.com/sian.agency) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: No ratings yet

## Pricing

from $1.25 / 1,000 listing extracteds

This Actor is paid per event. You are not charged for the Apify platform usage, but only a fixed price for specific events.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/platform/actors/running/actors-in-store#pay-per-event

## What's an Apify Actor?

Actors are a software tools running on the Apify platform, for all kinds of web data extraction and automation use cases.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

If asked about integration, you help developers integrate Actors into their projects.
You adapt to their stack and deliver integrations that are safe, well-documented, and production-ready.
The best way to integrate Actors is as follows.

In JavaScript/TypeScript projects, use official [JavaScript/TypeScript client](https://docs.apify.com/api/client/js.md):

```bash
npm install apify-client
```

In Python projects, use official [Python client library](https://docs.apify.com/api/client/python.md):

```bash
pip install apify-client
```

In shell scripts, use [Apify CLI](https://docs.apify.com/cli/docs.md):

````bash
# MacOS / Linux
curl -fsSL https://apify.com/install-cli.sh | bash
# Windows
irm https://apify.com/install-cli.ps1 | iex
```bash

In AI frameworks, you might use the [Apify MCP server](https://docs.apify.com/platform/integrations/mcp.md).

If your project is in a different language, use the [REST API](https://docs.apify.com/api/v2.md).

For usage examples, see the [API](#api) section below.

For more details, see Apify documentation as [Markdown index](https://docs.apify.com/llms.txt) and [Markdown full-text](https://docs.apify.com/llms-full.txt).


# README

## Flatmates.com.au Scraper — Australia Share Accommodation Data 🏠

[![SIÁN Agency Store](https://img.shields.io/badge/Store-SI%C3%81N%20Agency-1AE392)](https://apify.com/sian.agency?fpr=sian) [![WG-Gesucht Flatshare Scraper](https://img.shields.io/badge/Store-WG--Gesucht%20Flatshare%20Scraper-1AE392)](https://apify.com/sian.agency/wg-gesucht-property-scraper?fpr=sian) [![realestate.com.au Scraper](https://img.shields.io/badge/Store-realestate.com.au%20Scraper-E4002B)](https://apify.com/sian.agency/realestate-au-property-scraper?fpr=sian) [![Apartments.com Scraper](https://img.shields.io/badge/Store-Apartments.com%20Scraper-1AE392)](https://apify.com/sian.agency/apartments-com-property-scraper?fpr=sian)

#### 🎉 Turn Flatmates.com.au into a clean dataset — every room for rent, person looking & team-up, with weekly rent, household details & full listing detail
##### For renters, relocators, students, agents and proptech teams who need Australian share-accommodation data without copy-pasting

---

### 📋 Overview

**Need Flatmates.com.au data without scrolling endless result pages?** — this scraper turns Australia's biggest share-accommodation portal into a clean, structured dataset you can filter, map, and feed into any tool.

**Why renters, researchers and agencies choose us:**
- ✅ **The most complete Flatmates.com.au data**: weekly rent, availability, room type, bond, bills, household make-up, occupants, exact suburb, GPS coordinates, images and lister details — not just a headline and a price.
- ⚡ **Two speeds, one actor**: a cheap **search** pass to size a whole city or university, and rich **full-detail enrichment** for the listings you actually care about.
- 🎯 **Rooms, people AND team-ups**: scrape rooms/properties available, people looking for a place, or groups looking together — all three sides of the share market from a single input.
- 🏙️ **Every suburb, city & campus**: search Sydney, Melbourne, Brisbane, Perth by name — or by postcode, university, or transit stop — or paste any Flatmates.com.au results URL with your filters baked in.
- 💰 **Pay only per listing**: transparent pay-per-result pricing, no monthly subscription, no API key to manage.
- 💎 **Map-ready & finance-ready**: real GPS lat/lng plus a parsed weekly-rent number on every row for pricing models and dashboards.
- ✨ **No code required**: run it from the Apify Console, schedule it, or call it from your own app.

---

### ✨ Features

- 🏠 **Rooms available**: private rooms, shared rooms, granny flats, studios, share houses, student accommodation and whole properties.
- 🧑 **People looking**: individuals seeking a room — with age & gender, budget, desired length of stay and sought locations.
- 🧑‍🤝‍🧑 **Team-ups**: groups looking for a place together, ready to be matched.
- 📍 **Search by location**: type any suburb, city, university, transit stop or postcode and pick a search type.
- 🌐 **Search surrounding suburbs**: widen a thin suburb to pull nearby areas in one run.
- 🔗 **Search by results URL**: paste a Flatmates.com.au results link and keep every filter you set on-site.
- 🆔 **Listing detail**: pull full detail for specific listing ids or URLs — room specs, bond, bills, description and lister.
- 👤 **Member's listings**: fetch every active listing posted by one member.
- 🔎 **Autocomplete**: resolve free text (a suburb, a uni) to a canonical location for clean, repeatable searches.
- 💰 **Rich filters**: weekly budget band, property type, room type, furnishing, bills-included, bedrooms, keywords and age range.
- 📊 **Parsed weekly rent**: rent strings turned into a clean AUD number for sorting, averaging and modelling.
- 📦 **Clean exports**: JSON, CSV, or Excel straight from the Apify dataset.

---

### 🎬 Quick Start

Pick a mode, give it a location (or a results URL), choose whether you want rooms, people or team-ups — and run. Results land in a clean dataset you can export or call via API.

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~flatmates-au-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"mode":"searchByLocation","location":"Sydney","searchType":"rooms","maxResults":60}'
````

***

### 🚀 Getting Started (3 Simple Steps)

#### Step 1: Choose a mode

Pick **Search by location** for a suburb/city/university, **Listing detail** for specific listings, or **Member's listings** for one member's inventory.

#### Step 2: Set your target and filters

Type a location (or paste a results URL), pick **rooms / people / team-ups**, and add any filters — weekly budget, property type, room type, bills-included, bedrooms or keywords.

#### Step 3: Run and export

Hit run. Watch listings stream into the dataset, then export to JSON, CSV or Excel — or call the API from your own workflow.

**That's it! In under a minute, you'll have:**

- A clean table of share-accommodation listings with weekly rent and availability
- Household, room and lister details ready to filter and map
- An export or API feed you can drop straight into your own tools

***

### 📥 Input Configuration

| Field | Type | Required | Description |
|-------|------|----------|-------------|
| `mode` | string | Yes | `searchByLocation`, `searchSurrounding`, `searchByUrl`, `listingDetail`, `memberListings`, `autocomplete` or `filters`. |
| `location` | string | For location searches | Suburb, city, university, transit stop or postcode (e.g. `Sydney`, `Surry Hills 2010`, `University of Melbourne`). |
| `locations` | array | No | Multiple locations to search in one run (PAID). Overrides `location`. |
| `searchType` | string | No | `rooms`, `people` or `teamups` (default `rooms`). |
| `searchUrls` | array | For URL search | Flatmates.com.au results URLs to scrape. |
| `listingIds` | array | For listing detail | Listing ids, links or full listing URLs (e.g. `1645009`, `P1645009`, `F4211214`). |
| `memberIds` | array | For member listings | Member ids to list all active listings for. |
| `autocompleteInput` | string | For autocomplete | Free text to resolve to a location (e.g. `Bondi`, `UNSW`). |
| `sort` | string | No | `cheapest`, `mostExpensive`, `newest`, `featured`, `earliestAvailable`, `moveEarliest`, `lowestBudget`, `recentlyActive`. |
| `budgetMin` / `budgetMax` | integer | No | Weekly rent/budget band in AUD. |
| `propertyType` | string | No | `granny_flat`, `homestay`, `one_bed`, `share_house`, `shared_room`, `student_accommodation`, `studio`, `whole_property`. |
| `roomType` | string | No | `private_room` or `shared_room`. |
| `furnishingType` | string | No | `furnished` or `unfurnished`. |
| `billsIncluded` | string | No | `any`, `included` or `excluded`. |
| `numberOfBedroom` | integer | No | Filter by number of bedrooms. |
| `keywords` | string | No | Free-text keywords to match within listings. |
| `ageMin` / `ageMax` | integer | No | Person age band (people / team-up searches). |
| `enrichDetail` | boolean | No | Fetch full detail for every search result (PAID, per-listing charge). |
| `maxResults` | integer | No | Max listings per query (default 60). |

**Example — search rooms in a city:**

```json
{
  "mode": "searchByLocation",
  "location": "Melbourne",
  "searchType": "rooms",
  "budgetMax": 350,
  "billsIncluded": "included",
  "maxResults": 100
}
```

**Example — people looking near a university:**

```json
{
  "mode": "searchByLocation",
  "location": "University of Sydney",
  "searchType": "people",
  "ageMin": 18,
  "ageMax": 30
}
```

**Example — full detail for specific listings:**

```json
{
  "mode": "listingDetail",
  "listingIds": ["P1645009", "https://flatmates.com.au/share-house-surry-hills-P1650123"]
}
```

***

### 📤 Output

Results are saved to the Apify dataset with **30+ fields** including:

| Field | Type | Description |
|-------|------|-------------|
| `propertyId` | string | Unique Flatmates.com.au listing id |
| `listingKind` | string | `property` (a room/place) or `person` (someone looking / a team-up) |
| `searchType` | string | `rooms`, `people` or `teamups` |
| `listingUrl` | string | Full listing URL |
| `listingTitle` | string | Listing headline / lister name |
| `heading` | string | Short listing heading (e.g. "Private room with shared bathroom") |
| `rentWeekly` | integer | Weekly rent/budget parsed to a number, in AUD |
| `rentText` | string | Rent/budget as shown on the site (e.g. "$310") |
| `availability` | string | When the room is available / person is ready to move |
| `address` | string | Suburb / area of the listing |
| `bedroomCount` | integer | Bedrooms in the property |
| `bathroomCount` | integer | Bathrooms in the property |
| `occupantCount` | integer | Current occupant count of the household |
| `ageAndGender` | string | Age and gender of a person listing |
| `lengthOfStay` | string | Desired length of stay (person listings) |
| `memberId` | string | Member who posted the listing (join key for Member's listings) |
| `listerName` | string | Name of the person who posted the listing |
| `propertyType` | string | Property type (share house, studio, etc.) |
| `rooms` | array | Per-room detail — rent, bond, bills, room/bathroom type, furnishings, features |
| `location` | object | Structured location — suburb, city, state, postcode and geo lat/lng |
| `personDetail` | object | Person-listing detail — budget, professions, preferences, applicants, response rate |
| `images` | array | All listing image URLs |
| `scrapedAt` | string | ISO timestamp of extraction |

**Example (search row):**

```json
{
  "recordType": "listing",
  "propertyId": "1645009",
  "listingKind": "property",
  "searchType": "rooms",
  "listingUrl": "https://flatmates.com.au/share-house-surry-hills-P1645009",
  "listingTitle": "Bright room in a friendly Surry Hills sharehouse",
  "heading": "Private room with shared bathroom",
  "rentWeekly": 310,
  "rentText": "$310",
  "availability": "Available now",
  "address": "Surry Hills, NSW",
  "bedroomCount": 3,
  "bathroomCount": 1,
  "occupantCount": 2,
  "propertyType": "share_house",
  "memberId": "884512",
  "listerName": "Jamie",
  "scrapedAt": "2026-07-01T09:24:00.000Z"
}
```

***

### 💼 Use Cases & Examples

#### 1. Rental market research

**Analysts and proptech teams benchmarking share-accommodation prices across Australia.**

**Input:** `searchByLocation` for a city, `searchType: "rooms"`, high `maxResults`
**Output:** Weekly rents, availability and household make-up per suburb
**Use:** Build median-rent dashboards and track supply across suburbs, cities and universities.

#### 2. Relocation & student housing

**Movers and students finding a room near a suburb, campus or transit stop.**

**Input:** `location: "University of Melbourne"`, `searchType: "rooms"`, `billsIncluded: "included"`
**Output:** Rooms with rent, bills, bond and move-in dates in one dataset
**Use:** Shortlist and compare share houses without opening a hundred tabs.

#### 3. Lead generation for property managers & co-living

**Operators building outreach lists from people who are actively looking.**

**Input:** `searchType: "people"` (or `teamups`) across target suburbs
**Output:** People-looking and team-up listings with lister profiles and budgets
**Use:** Match empty rooms to real, active demand and warm up outreach.

#### 4. Co-living & PropTech analytics

**Investors feeding structured supply and demand into pricing models.**

**Input:** Bulk `locations` sweep with `enrichDetail: true`
**Output:** Full room specs, bond, bills, geo coordinates and occupancy signals
**Use:** Power occupancy dashboards, pricing engines and investor market reports.

#### 5. Listing aggregation

**Marketplaces and CRMs syncing full listing detail into their own product.**

**Input:** `listingDetail` for a set of ids/URLs, or `memberListings` for a member
**Output:** Room specs, images, household preferences and geo per listing
**Use:** Keep an aggregator, CRM or comparison site fresh with clean listing records.

#### 6. Suburb & campus demand mapping

**Researchers mapping where people want to live vs. where rooms exist.**

**Input:** `searchType: "people"` and `searchType: "rooms"` for the same area
**Output:** Two datasets you can overlay by suburb
**Use:** Spot under- and over-supplied suburbs for planning and investment.

***

### 🔗 Integration Examples

#### JavaScript/Node.js

```javascript
import { ApifyClient } from 'apify-client';
const client = new ApifyClient({ token: 'YOUR_TOKEN' });

const run = await client.actor('sian.agency/flatmates-au-property-scraper').call({
  mode: 'searchByLocation',
  location: 'Sydney',
  searchType: 'rooms',
  maxResults: 60
});

const { items } = await client.dataset(run.defaultDatasetId).listItems();
console.log(items[0]);
```

#### Python

```python
from apify_client import ApifyClient
client = ApifyClient('YOUR_TOKEN')

run = client.actor('sian.agency/flatmates-au-property-scraper').call(
    run_input={'mode': 'searchByLocation', 'location': 'Melbourne', 'searchType': 'rooms'}
)

for item in client.dataset(run['defaultDatasetId']).iterate_items():
    print(item)
```

#### cURL

```bash
curl -X POST 'https://api.apify.com/v2/acts/sian.agency~flatmates-au-property-scraper/runs?token=YOUR_TOKEN' \
-H 'Content-Type: application/json' \
-d '{"mode":"searchByLocation","location":"Brisbane","searchType":"people","maxResults":80}'
```

#### Automation Workflows (N8N / Zapier / Make)

1. **Trigger**: Schedule or webhook
2. **HTTP Request**: Call the actor API with your location and search type
3. **Process**: Handle the JSON listings
4. **Action**: Save to a sheet, notify a channel, or push to your CRM

***

### 📊 Performance & Pricing

#### FREE Tier (Try It Now)

- **25 listings** per run — full feature access, same data quality
- No credit card required
- Perfect for testing and small projects

#### PAID Tier (Production Ready)

- **Unlimited** listings per run, bulk `locations`, and full-detail enrichment
- Faster processing, no delays
- Pay-per-result: only charged for successful listings

💰 **Best price on the market** — a cheap per-listing search rate, with full-detail enrichment only when you ask for it.

🔗 [View current pricing](https://apify.com/sian.agency/flatmates-au-property-scraper?fpr=sian)

***

### ❓ Frequently Asked Questions

**Q: How many listings can I scrape?**
A: FREE tier: 25 per run. PAID tier: unlimited, with bulk locations and full-detail enrichment.

**Q: Can I scrape people looking and team-ups, not just rooms?**
A: Yes — set `searchType` to `rooms`, `people` or `teamups`. All three work with every search mode.

**Q: How do I get full room specs, bond and bills?**
A: Use `listingDetail` mode for specific listings, or set `enrichDetail: true` on a search to enrich every result (PAID).

**Q: Can I search by university or transit stop?**
A: Yes — the location field accepts a suburb, city, postcode, university or transit stop. Use `autocomplete` first if you want to lock in an exact location.

**Q: What output formats are available?**
A: JSON, CSV, and Excel — export directly from the Apify dataset, or pull results via the API.

**Q: Is this legal?**
A: Yes — we only extract publicly available listings. See the legal section below.

***

### 🐛 Troubleshooting

**No results for a suburb**

- The suburb may be thin. Try `searchSurrounding` to widen to nearby suburbs, or search the parent city.
- Confirm the spelling, or resolve the place with `autocomplete` first.

**Listing detail returns empty**

- Pass the trailing listing token (`P…` for a property, `F…` for a person) or a bare numeric id — a full results URL is not a listing id.

**Missing address / room specs on search rows**

- The exact address, room specs, bond and bills appear in **detail**. Use `listingDetail` mode or set `enrichDetail: true`.

**Fewer rows than expected**

- FREE tier caps at 25 listings per run. Upgrade to a paid Apify plan for unlimited results and bulk locations.

***

### ⚠️ Trademark Disclaimer

Flatmates.com.au and its logo are trademarks of their respective owners. This actor is an independent tool and is **not affiliated with, endorsed by, or sponsored by Flatmates.com.au or any of its parent or affiliated companies**. The name "Flatmates.com.au" is used solely in a descriptive sense to identify the public data source the actor reads from. All trademarks, service marks, and trade names are the property of their respective owners.

***

### ⚖️ Is it legal to scrape data?

Our actors are ethical and do not extract any private user data, such as email addresses, gender, or location. They only extract what the user has chosen to share publicly. We therefore believe that our actors, when used for ethical purposes by Apify users, are safe.

However, you should be aware that your results could contain personal data. Personal data is protected by the **GDPR** in the European Union and by other regulations around the world. You should not scrape personal data unless you have a legitimate reason to do so. If you're unsure whether your reason is legitimate, consult your lawyers.

You can also read Apify's blog post on the [legality of web scraping](https://blog.apify.com/is-web-scraping-legal/).

***

### 🤝 Support

[![Telegram Support](https://img.shields.io/badge/Telegram-Support%20Group-0088cc?logo=telegram)](https://t.me/+vyh1sRE08sAxMGRi)

**Join our active support community**

- For issues or questions, open an issue in the actor's repository
- Check the [SIÁN Agency Store](https://apify.com/sian.agency?fpr=sian) for more automation tools
- 📧 <apify@sian-agency.online>

***

**Built by [SIÁN Agency](https://www.sian-agency.online)** | **[More Tools](https://apify.com/sian.agency?fpr=sian)**

# Actor input Schema

## `mode` (type: `string`):

What to scrape. `searchByLocation` searches a place; `searchSurrounding` widens a thin suburb; `searchByUrl` runs a Flatmates results URL; `listingDetail` fetches full detail for listing ids/URLs; `memberListings` lists all of one member's listings; `autocomplete` resolves text to a location; `filters` returns the accepted filter values.

## `location` (type: `string`):

Suburb, city, university, transit stop or postcode to search (used by Search by location / Search surrounding). e.g. `Sydney`, `Surry Hills 2010`, `University of Melbourne`.

## `locations` (type: `array`):

Multiple locations to search in one run. Requires a paid Apify plan. Overrides the single Location field when provided.

## `searchType` (type: `string`):

`rooms` = rooms/properties available · `people` = people looking for a place · `teamups` = groups looking together. Applies to all search modes.

## `searchUrls` (type: `array`):

Flatmates.com.au results URLs to scrape (used by Search by results URL). e.g. `https://flatmates.com.au/rooms/melbourne`.

## `listingIds` (type: `array`):

Listing ids, links or full listing URLs to fetch full detail (used by Listing detail). Accepts `1645009`, `P1645009`, `F4211214`, a full slug, or a flatmates.com.au listing URL.

## `memberIds` (type: `array`):

Member ids to list all active listings for (used by Member's listings). Take a `memberId` from any listing detail.

## `autocompleteInput` (type: `string`):

Free text to resolve to a location key (used by Autocomplete). e.g. `Bondi`, `UNSW`.

## `sort` (type: `string`):

Result ordering for search modes.

## `budgetMin` (type: `integer`):

Minimum weekly rent/budget in AUD (search modes).

## `budgetMax` (type: `integer`):

Maximum weekly rent/budget in AUD (search modes).

## `propertyType` (type: `string`):

Filter rooms searches by property type.

## `roomType` (type: `string`):

Private room or shared room.

## `furnishingType` (type: `string`):

Furnished or unfurnished.

## `billsIncluded` (type: `string`):

Filter by whether bills are included in the rent.

## `numberOfBedroom` (type: `integer`):

Filter by number of bedrooms in the property.

## `keywords` (type: `string`):

Free-text keywords to match within listings (search modes).

## `ageMin` (type: `integer`):

Minimum person age (people / team-up searches).

## `ageMax` (type: `integer`):

Maximum person age (people / team-up searches).

## `enrichDetail` (type: `boolean`):

Fetch the full listing detail (room specs, bond, bills, household, geo, lister) for every search result. Requires a paid Apify plan and adds a per-listing charge.

## `maxResults` (type: `integer`):

Maximum listings to return per search query (paginated ~12/page).

## Actor input object example

```json
{
  "mode": "searchByLocation",
  "location": "Sydney",
  "searchType": "rooms",
  "billsIncluded": "any",
  "enrichDetail": false,
  "maxResults": 60
}
```

# Actor output Schema

## `results` (type: `string`):

Structured Flatmates.com.au listings — room/property and person rows with weekly rent, availability, household, geo and full detail.

## `htmlReport` (type: `string`):

HTML summary with run stats, weekly-rent KPIs (median, distribution), suburb and property-type breakdowns, and per-query totals.

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

```javascript
import { ApifyClient } from 'apify-client';

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "mode": "searchByLocation",
    "location": "Sydney",
    "searchType": "rooms",
    "maxResults": 60
};

// Run the Actor and wait for it to finish
const run = await client.actor("sian.agency/flatmates-au-property-scraper").call(input);

// Fetch and print Actor results from the run's dataset (if any)
console.log('Results from dataset');
console.log(`💾 Check your data here: https://console.apify.com/storage/datasets/${run.defaultDatasetId}`);
const { items } = await client.dataset(run.defaultDatasetId).listItems();
items.forEach((item) => {
    console.dir(item);
});

// 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/js/docs

```

## Python example

```python
from apify_client import ApifyClient

# Initialize the ApifyClient with your Apify API token
# Replace '<YOUR_API_TOKEN>' with your token.
client = ApifyClient("<YOUR_API_TOKEN>")

# Prepare the Actor input
run_input = {
    "mode": "searchByLocation",
    "location": "Sydney",
    "searchType": "rooms",
    "maxResults": 60,
}

# Run the Actor and wait for it to finish
run = client.actor("sian.agency/flatmates-au-property-scraper").call(run_input=run_input)

# Fetch and print Actor results from the run's dataset (if there are any)
print("💾 Check your data here: https://console.apify.com/storage/datasets/" + run["defaultDatasetId"])
for item in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(item)

# 📚 Want to learn more 📖? Go to → https://docs.apify.com/api/client/python/docs/quick-start

```

## CLI example

```bash
echo '{
  "mode": "searchByLocation",
  "location": "Sydney",
  "searchType": "rooms",
  "maxResults": 60
}' |
apify call sian.agency/flatmates-au-property-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=sian.agency/flatmates-au-property-scraper",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "Flatmates.com.au Scraper — Australia Share Accommodation Data",
        "description": "Extract Australian flatshare and share-accommodation listings into clean structured data. Search rooms for rent, people looking, and team-ups by suburb, city or university; get weekly rent, room specs, household details, geo and lister info. Bulk, paginated, API-ready.",
        "version": "1.0",
        "x-build-id": "nnnnfh5cdOgh972UV"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/sian.agency~flatmates-au-property-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-sian.agency-flatmates-au-property-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/sian.agency~flatmates-au-property-scraper/runs": {
            "post": {
                "operationId": "runs-sync-sian.agency-flatmates-au-property-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/sian.agency~flatmates-au-property-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-sian.agency-flatmates-au-property-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "mode": {
                        "title": "🧭 Mode",
                        "enum": [
                            "searchByLocation",
                            "searchSurrounding",
                            "searchByUrl",
                            "listingDetail",
                            "memberListings",
                            "autocomplete",
                            "filters"
                        ],
                        "type": "string",
                        "description": "What to scrape. `searchByLocation` searches a place; `searchSurrounding` widens a thin suburb; `searchByUrl` runs a Flatmates results URL; `listingDetail` fetches full detail for listing ids/URLs; `memberListings` lists all of one member's listings; `autocomplete` resolves text to a location; `filters` returns the accepted filter values.",
                        "default": "searchByLocation"
                    },
                    "location": {
                        "title": "📍 Location",
                        "type": "string",
                        "description": "Suburb, city, university, transit stop or postcode to search (used by Search by location / Search surrounding). e.g. `Sydney`, `Surry Hills 2010`, `University of Melbourne`.",
                        "default": "Sydney"
                    },
                    "locations": {
                        "title": "📍 Locations (bulk, PAID)",
                        "type": "array",
                        "description": "Multiple locations to search in one run. Requires a paid Apify plan. Overrides the single Location field when provided.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "searchType": {
                        "title": "🏠 Search type",
                        "enum": [
                            "rooms",
                            "people",
                            "teamups"
                        ],
                        "type": "string",
                        "description": "`rooms` = rooms/properties available · `people` = people looking for a place · `teamups` = groups looking together. Applies to all search modes.",
                        "default": "rooms"
                    },
                    "searchUrls": {
                        "title": "🔗 Results URLs",
                        "type": "array",
                        "description": "Flatmates.com.au results URLs to scrape (used by Search by results URL). e.g. `https://flatmates.com.au/rooms/melbourne`.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "listingIds": {
                        "title": "🆔 Listing ids / URLs",
                        "type": "array",
                        "description": "Listing ids, links or full listing URLs to fetch full detail (used by Listing detail). Accepts `1645009`, `P1645009`, `F4211214`, a full slug, or a flatmates.com.au listing URL.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "memberIds": {
                        "title": "👤 Member ids",
                        "type": "array",
                        "description": "Member ids to list all active listings for (used by Member's listings). Take a `memberId` from any listing detail.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "autocompleteInput": {
                        "title": "🔎 Autocomplete text",
                        "type": "string",
                        "description": "Free text to resolve to a location key (used by Autocomplete). e.g. `Bondi`, `UNSW`."
                    },
                    "sort": {
                        "title": "↕️ Sort",
                        "enum": [
                            "cheapest",
                            "mostExpensive",
                            "newest",
                            "featured",
                            "earliestAvailable",
                            "moveEarliest",
                            "lowestBudget",
                            "recentlyActive"
                        ],
                        "type": "string",
                        "description": "Result ordering for search modes."
                    },
                    "budgetMin": {
                        "title": "💰 Budget min (weekly AUD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum weekly rent/budget in AUD (search modes)."
                    },
                    "budgetMax": {
                        "title": "💰 Budget max (weekly AUD)",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum weekly rent/budget in AUD (search modes)."
                    },
                    "propertyType": {
                        "title": "🏘 Property type",
                        "enum": [
                            "granny_flat",
                            "homestay",
                            "one_bed",
                            "share_house",
                            "shared_room",
                            "student_accommodation",
                            "studio",
                            "whole_property"
                        ],
                        "type": "string",
                        "description": "Filter rooms searches by property type."
                    },
                    "roomType": {
                        "title": "🛏 Room type",
                        "enum": [
                            "private_room",
                            "shared_room"
                        ],
                        "type": "string",
                        "description": "Private room or shared room."
                    },
                    "furnishingType": {
                        "title": "🛋 Furnishing",
                        "enum": [
                            "furnished",
                            "unfurnished"
                        ],
                        "type": "string",
                        "description": "Furnished or unfurnished."
                    },
                    "billsIncluded": {
                        "title": "🧾 Bills included",
                        "enum": [
                            "any",
                            "included",
                            "excluded"
                        ],
                        "type": "string",
                        "description": "Filter by whether bills are included in the rent.",
                        "default": "any"
                    },
                    "numberOfBedroom": {
                        "title": "🚪 Bedrooms",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Filter by number of bedrooms in the property."
                    },
                    "keywords": {
                        "title": "🔤 Keywords",
                        "type": "string",
                        "description": "Free-text keywords to match within listings (search modes)."
                    },
                    "ageMin": {
                        "title": "🎂 Age min",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Minimum person age (people / team-up searches)."
                    },
                    "ageMax": {
                        "title": "🎂 Age max",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum person age (people / team-up searches)."
                    },
                    "enrichDetail": {
                        "title": "➕ Enrich with full detail (PAID)",
                        "type": "boolean",
                        "description": "Fetch the full listing detail (room specs, bond, bills, household, geo, lister) for every search result. Requires a paid Apify plan and adds a per-listing charge.",
                        "default": false
                    },
                    "maxResults": {
                        "title": "🔢 Max results per query",
                        "minimum": 1,
                        "maximum": 500,
                        "type": "integer",
                        "description": "Maximum listings to return per search query (paginated ~12/page).",
                        "default": 60
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
