# HousingAnywhere Scraper - Mid-Term Rentals, Rooms & Prices (`normdata/housinganywhere-scraper`) Actor

Scrape HousingAnywhere rentals in 31 countries: rent in local currency and EUR, bills, rooms, size, 35 facilities, house rules, landlord rating, favorites, map position, photos. Add deposit, move-in cost, fees and bookable dates. 25 filters, 100k listings per run, only new ones. For rent research.

- **URL**: https://apify.com/normdata/housinganywhere-scraper.md
- **Developed by:** [Norm Data](https://apify.com/normdata) (community)
- **Categories:** Real estate
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $10.00 / 1,000 listings

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/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

An Actor is a serverless cloud program that runs on the Apify platform. It has two run modes.
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.

Apify vocabulary and the platform model are defined once, in the agent quickstart at https://apify.com/agents.md.

## 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.

Do not guess an integration path. Every one of them is in the agent quickstart at https://apify.com/agents.md: the Apify MCP server, Agent Skills with the Apify CLI, the JavaScript and Python clients, the REST API, and the account-free path for an agent with no human to sign in. It also carries the rule on stating cost before the first paid run.

For examples already wired to this Actor's own input schema, see the [API](#api) section below.

Each client library has reference documentation the quickstart does not restate: [JavaScript/TypeScript](https://docs.apify.com/api/client/js/docs.md) (`npm install apify-client`) and [Python](https://docs.apify.com/api/client/python/docs.md) (`pip install apify-client`).

# README

![Norm Data](https://raw.githubusercontent.com/FabriAV/normdata/refs/heads/main/assets/banner_norm2.png)

## 🏠 HousingAnywhere Scraper - Mid-Term Rentals, Rooms & Prices

Extract rental listings from **HousingAnywhere**, the mid-term rental platform with about 100,000 rooms, studios and apartments in **31 countries**, including Germany, the Netherlands, Spain, Italy, France, Belgium, Portugal, Austria, the UK, Poland and Czechia. For each listing you get the **monthly rent in the local currency and in euros, bills included and the bills estimate, minimum and maximum stay, bedrooms, size, room size, 35 facilities (bathroom, kitchen, Wi-Fi, washing machine, heating...), house rules, who it is for, tenants and housemates, street, neighborhood, map position, photos, availability dates, price drops, favorites and the landlord's type, rating, reviews and move-ins**. Turn on **listing details** to also get **the deposit, costs due at move-in on top of the rent, refundable amount, tenant fee, every extra cost, bookable and unavailable periods, postal code, bathrooms, elevator, energy label, the full description and the landlord's profile, languages and response rate**. Search with **25 filters** in one city, several, whole countries or the entire site, or paste links, and run it on a schedule to get **only new listings**.

### 🎯 Who uses it?

#### 📊 Rental market analysts and proptech teams

Track mid-term rents, bills and stay lengths by city, neighborhood, property type and size, in euros across 31 countries in one dataset.

#### 🏢 Landlords, property managers and coliving operators

Benchmark your rent, deposit and conditions against the listings next door, and see which ones collect the most favorites or drop their price.

#### 🎓 Relocation agencies, universities and HR teams

Build shortlists of furnished, bills-included rooms and flats for students, interns and new hires, with move-in dates, minimum stay and move-in costs.

#### 🤝 B2B sales teams

Find professional landlords and student housing operators with many listings, good ratings and many move-ins, by city.

### ✨ What it does

- **The whole site.** Pick cities, whole countries, or leave both empty for every listing on HousingAnywhere. Big searches are split automatically, so you are not stuck at the site's 3,500 results per search.
- **25 filters.** Rent range in euros, bills, move-in and move-out dates, minimum stay, bedrooms, size, 21 facilities, house rules, suitable for, tenant gender and age, how rent is counted, landlord type and rating, neighborhoods, listed in the last days, and only no deposit, flexible cancellation, student housing, reduced rent or excellent landlords.
- **5 sorts:** newest, lowest price, highest price, best rated landlord, or the site's best match.
- **Listing details add-on:** reads each listing page for the full costs, bookable dates and landlord profile.
- **Or paste links.** Searches copied from the site (with their filters) and listing pages. Filters are not used with links.
- **Monitoring:** run it on a schedule with **Only new listings**, and each run saves only the listings you haven't received yet.

### 🏆 Why this scraper

- **Fast.** 1,000 listings in about 6 seconds, the whole site (about 100,000 listings) in about 5 minutes. With listing details, about 30 listings a minute.
- **Rents you can compare.** Every rent in the local currency and in euros, with the bills estimate and rent plus bills per month.
- **The real cost of moving in.** Deposit, what is due at move-in on top of the rent, what you get back, the tenant fee and every extra cost, marked as required, refundable or estimated.
- **Availability you can plan with.** Available from and until, minimum and maximum stay, plus bookable and unavailable periods.
- **Landlord quality and demand.** Landlord type, rating, reviews, move-ins, excellent landlord badge, response rate, and favorites per listing.
- **Clean, flat, typed data.** Prices, sizes and counts are numbers, dates are ISO, yes/no fields are true or false, facilities are readable words in English. 115 fields, one row per listing.
- **Nothing to set up.** No proxy, no login.

### ⚖️ How it compares

| | **This Actor** | [automation-lab](https://apify.com/automation-lab/housinganywhere-rental-listings-scraper) | [ahmed_jasarevic](https://apify.com/ahmed_jasarevic/housinganywhere-scraper) | [housingfeed](https://apify.com/housingfeed/housinganywhere-scraper) |
| --- | --- | --- | --- | --- |
| Search without links | ✅ cities, countries or the whole site | Links only | ✅ cities, countries | One city |
| Filters | ✅ 25 | Rent | Type, landlord, bills, neighborhood, rent, date, furnished | Rent, bedrooms, available now, listed recently |
| Facilities and house rules filters | ✅ | ❌ | ❌ | ❌ |
| Move-in and move-out date filters | ✅ | ❌ | Move-in only | ❌ |
| Rent in local currency and euros | ✅ | | | ✅ EUR and USD |
| Fields per listing | ✅ 115 | about 40 | about 85 | about 35 |
| Only new listings (monitoring) | ✅ | ❌ | ❌ | ❌ |

Checked on the Apify Store in October 2026.

### 📦 What data you get

| Field | Description |
| --- | --- |
| `imageUrl` | Main photo. |
| `propertyType` | Private room, Shared room, Apartment, House, Studio or Whole building. |
| `rent`, `maxRent` | Monthly rent in the local currency: the lowest, and the highest when it changes by month. |
| `currency` | Currency code, like EUR, GBP, PLN or CHF. |
| `rentEUR`, `maxRentEUR` | The same rents in euros, to compare countries. |
| `previousRent` | Rent before a price drop (local currency), and until when the lower rent holds. |
| `billsIncluded` | Bills in the rent: All, Some or None. |
| `estimatedBills`, `estimatedBillsEUR`, `totalMonthlyEUR` | Landlord's monthly bills estimate (local currency and EUR), and rent plus bills in EUR. |
| `depositAmount`, `moveInCost`, `refundableAmount`, `serviceFee` | *(Listing details)* Security deposit (0 = none), costs due at move-in on top of the rent, the part you get back, and the HousingAnywhere tenant fee, in the local currency. |
| `rentCalculation` | How rent is counted for part months: by the day, half months or full months. |
| `cancellationPolicy` | Strict, or Flexible (free until 30 days before move-in). |
| `minStayMonths`, `maxStayMonths` | Shortest and longest stay in months (empty longest = no limit). |
| `bedrooms`, `apartmentBedrooms` | Bedrooms (0 = studio, 8 = 8 or more) and bedrooms in the whole flat for rooms. |
| `bathrooms` | *(Listing details)* Bathrooms in the place. |
| `areaM2`, `roomAreaM2` | Size of the place and of the bedroom, in square meters. |
| `freePlaces`, `currentTenants` | Free places and people living there now. |
| `gender`, `housemates`, `suitableFor`, `minAge`, `maxAge` | Who can rent: Any, Women only or Men only; housemates; Students only, Working professionals only or Anyone; age limits. |
| `bathroom`, `toilet`, `kitchen`, `kitchenware`, `livingRoom`, `balcony`, `garden`, `parking`, `basement` | Bathroom, toilet, kitchen, kitchenware, living room, balcony, garden, parking and basement: Private, Shared or No. |
| `heating`, `flooring` | Heating type and flooring. |
| `energyLabel` | *(Listing details)* Energy label. |
| `petsAllowed`, `smokingAllowed`, `playingMusic` | House rules for pets, smoking and playing music: Yes, No, Ask the landlord (smoking also Outside only). |
| `description` | Description (first 1,000 characters). |
| `fullDescription` | *(Listing details)* The whole description. |
| `street` | Street (no house number), neighborhood, city, country and country code. |
| `postalCode`, `neighborhood`, `city`, `country`, `countryCode` | *(Listing details)* Postal code. |
| `latitude`, `longitude` | Map position. |
| `landlordName`, `landlordType` | Landlord first name and type (Private landlord, Rental company, Student housing company). |
| `landlordRating`, `landlordReviews`, `landlordMoveIns` | Landlord rating (1 to 5) from tenant reviews, number of reviews, and tenants who moved in through HousingAnywhere. |
| `landlordResponseRate`, `landlordAbout` | *(Listing details)* Landlord's response rate (%) and own words. |
| `favorites`, `photoCount` | How many people saved the listing (demand signal) and number of photos. |
| `landlordId`, `propertyId`, `id` | HousingAnywhere landlord, building and listing IDs. |
| `furnished`, `bed`, `closet`, `desk`, `lockOnDoor`, `livingRoomFurniture` | Furniture and equipment: furnished, bed, closet, desk, lock on the door, living room furniture. |
| `wifi`, `internet`, `tv`, `airConditioning`, `washingMachine`, `dryer`, `dishwasher` | Wi-Fi, internet, TV, A/C, washing machine, dryer, dishwasher. |
| `elevator` | *(Listing details)* Has an elevator. |
| `wheelchairAccessible`, `allergyFriendly`, `commonAreasCleaned`, `roomCleaned` | Wheelchair accessible, allergy friendly, common areas and room cleaned. |
| `couplesAllowed`, `registrationPossible` | Couples allowed, official address registration possible. |
| `noDeposit`, `studentHousing`, `excellentLandlord` | No security deposit; student residence; landlord marked excellent. |
| `landlordIdVerified`, `landlordPhoneVerified` | *(Listing details)* Landlord ID and phone verified. |
| `multipleUnits`, `has3DTour`, `hasFloorPlan` | Several identical units offered; 3D tour; floor plan. |
| `url` | Link to the listing. |
| `costs` | *(Listing details)* Every extra cost: name, amount, when it is paid, required, refundable, estimated. |
| `billsInRent` | *(Listing details)* Bills the rent includes, like "Electricity" or "Internet". |
| `pricesByMonth` | Rent for each month of the year, when it changes by month. |
| `bookablePeriods`, `unavailablePeriods` | *(Listing details)* Date ranges you can book (no end date = open) and ranges already taken. |
| `landlordLanguages` | *(Listing details)* Languages the landlord speaks. |
| `photos` | Photo links. |
| `availableFrom`, `availableUntil`, `rentReducedUntil` | First and last day you can rent it (no last day = open). |
| `listedAt`, `publishedAt`, `updatedAt` | When the listing was created, published and last updated. |
| `landlordSince`, `landlordLastActive` | *(Listing details)* When the landlord joined and was last active. |
| `scrapedAt` | When this row was saved. |
| `error` | Only present when a row failed. The fields that loaded are still there. |

Fields marked *Listing details* only appear when that add-on is on.

#### Example row (trimmed)

```json
{
  "imageUrl": "https://housinganywhere.imgix.net/unit_type/1747086/86dd74e5-00d2-46ef-8fa4-c9ec5dcaf6fb.jpg?auto=format%2Ccompress&cs=srgb&fit=clip&h=881&w=1920",
  "propertyType": "Private room",
  "rent": 1200,
  "maxRent": 1200,
  "currency": "EUR",
  "rentEUR": 1200,
  "maxRentEUR": 1200,
  "billsIncluded": "All",
  "estimatedBills": 0,
  "estimatedBillsEUR": 0,
  "totalMonthlyEUR": 1200,
  "depositAmount": 0,
  "moveInCost": 0,
  "refundableAmount": 0,
  "serviceFee": 0,
  "rentCalculation": "By the day",
  "cancellationPolicy": "Strict",
  "minStayMonths": 1,
  "maxStayMonths": 2,
  "bedrooms": 1,
  "bathrooms": 1,
  "areaM2": 25,
  "roomAreaM2": 25,
  "freePlaces": 1,
  "currentTenants": 2,
  "gender": "Women only",
  "housemates": "Shared with women",
  "suitableFor": "Anyone",
  "minAge": 18,
  "maxAge": 50,
  "bathroom": "Shared with women",
  "toilet": "Shared",
  "kitchen": "Shared",
  "kitchenware": "Shared",
  "livingRoom": "Shared",
  "balcony": "Shared",
  "garden": "No",
  "parking": "No",
  "basement": "No",
  "heating": "Central",
  "flooring": "Laminate",
  "petsAllowed": "No",
  "smokingAllowed": "No",
  "playingMusic": "No",
  "description": "✨ Discounted for Short-Term Only · Available from 05 Nov to 30 Jan. ✨ Very Spacious Room · For women only · Private room with 3 windows · waterfront views, letting in a lot of ...",
  "fullDescription": "✨ Discounted for Short-Term Only · Available from 05 Nov to 30 Jan. ✨ Very Spacious Room · For women only · Private room with 3 windows · waterfront views, letting in a lot of ...",
  "street": "Maashaven Noordzijde",
  "postalCode": "3072",
  "neighborhood": "Feijenoord",
  "city": "Rotterdam",
  "country": "Netherlands",
  "countryCode": "NL",
  "latitude": 51.900583,
  "longitude": 4.491271,
  "landlordName": "Mariam",
  "landlordType": "Private landlord",
  "landlordRating": 5,
  "landlordReviews": 1,
  "landlordMoveIns": 0,
  "landlordResponseRate": 52,
  "landlordAbout": "World citizen, living between 3 cities. Travel a lot for work. Like to ensure a warm, cosy, clean and collaborative living environment.",
  "favorites": 0,
  "photoCount": 8,
  "landlordId": "3746659",
  "propertyId": "2580813",
  "id": "1747086",
  "furnished": true,
  "bed": true,
  "closet": true,
  "desk": true,
  "lockOnDoor": true,
  "livingRoomFurniture": true,
  "wifi": true,
  "tv": true,
  "airConditioning": false,
  "washingMachine": true,
  "dryer": true,
  "dishwasher": true,
  "elevator": true,
  "wheelchairAccessible": false,
  "allergyFriendly": false,
  "couplesAllowed": false,
  "registrationPossible": false,
  "noDeposit": true,
  "studentHousing": false,
  "excellentLandlord": false,
  "landlordIdVerified": true,
  "landlordPhoneVerified": true,
  "multipleUnits": false,
  "has3DTour": false,
  "hasFloorPlan": false,
  "url": "https://housinganywhere.com/room/ut1747086/nl/Rotterdam/maashaven-noordzijde",
  "billsInRent": ["Electricity", "Gas", "Water"],
  "bookablePeriods": [{ "from": "2026-11-02", "to": "2027-02-07" }],
  "unavailablePeriods": [{ "from": "2026-10-18", "to": "2026-11-01" }],
  "landlordLanguages": ["EN", "ES", "FR"],
  "photos": [
    "https://housinganywhere.imgix.net/unit_type/1747086/86dd74e5-00d2-46ef-8fa4-c9ec5dcaf6fb.jpg?auto=format%2Ccompress&cs=srgb&fit=clip&h=881&w=1920",
    "https://housinganywhere.imgix.net/unit_type/1747086/16b6c231-dee5-481a-859e-d91e0fea95cf.jpg?auto=format%2Ccompress&cs=srgb&fit=clip&h=881&w=1920",
    "https://housinganywhere.imgix.net/unit_type/1747086/8c0a16fe-a6a5-4fb8-9e5f-fef8d746c8d5.jpg?auto=format%2Ccompress&cs=srgb&fit=clip&h=881&w=1920"
  ],
  "availableFrom": "2026-11-02",
  "availableUntil": "2027-02-07",
  "listedAt": "2026-10-18",
  "publishedAt": "2026-10-18T14:35:27.000Z",
  "updatedAt": "2026-10-18T14:35:45.000Z",
  "landlordSince": "2025-11-19",
  "landlordLastActive": "2026-10-19T11:23:49.188Z",
  "scrapedAt": "2026-10-19T13:24:38.533Z"
}
```

### 💡 Use cases

**Private rooms in Berlin under 700 EUR with all bills included, for students:**

```json
{
  "cities": ["Berlin"],
  "propertyTypes": ["privateRoom"],
  "maxPrice": 700,
  "billsIncluded": ["all"],
  "suitableFor": ["students"]
}
```

**Furnished apartments in Amsterdam and Rotterdam for a February to August stay, with full move-in costs:**

```json
{
  "cities": ["Amsterdam", "Rotterdam"],
  "propertyTypes": ["apartment"],
  "moveInDate": "2027-02-01",
  "moveOutDate": "2027-08-01",
  "includeDetails": true
}
```

**Cheapest pet-friendly studios with a washing machine in Spain:**

```json
{
  "countries": ["Spain"],
  "propertyTypes": ["studio"],
  "facilities": ["washingMachine"],
  "rules": ["pets"],
  "sortBy": "lowestPrice"
}
```

**The whole site, including listings free only in more than 6 months (about 100,000 listings):**

```json
{ "includeLaterAvailability": true }
```

**New listings in Madrid and Barcelona every day (schedule this run):**

```json
{
  "cities": ["Madrid", "Barcelona"],
  "onlyNew": true,
  "monitorName": "madrid-barcelona-daily"
}
```

**Links (filters are not used):**

```json
{
  "startUrls": [
    { "url": "https://housinganywhere.com/s/Berlin--Germany/private-rooms?priceMax=80000" },
    { "url": "https://housinganywhere.com/room/ut1747056/de/Berlin/skalitzer-stra-e" }
  ]
}
```

### ⚙️ How the input is organised

| Section | What it's for |
| --- | --- |
| **Maximum results** | Always first, caps the whole run. Empty means no limit. |
| **What to scrape** | Cities, countries, property types, sort by and listing details (deposit, move-in cost, fees, bookable dates). |
| **Filters** | Minimum monthly rent (EUR), maximum monthly rent (EUR), bills, move-in date, move-out date, also listings free only after 6 months, minimum stay up to (months), bedrooms, minimum size (m²), maximum size (m²), facilities, house rules, suitable for, tenant gender, tenant age, rent counted, landlord type, minimum landlord rating, neighborhoods, listed in the last days, only no deposit, only flexible cancellation, only student housing, only reduced rent and only excellent landlords. |
| **Monitoring** | Only new listings and monitor name. |
| **Links** | Links instead of the fields above. Filters are ignored with links. |

### 💰 Pricing

Pay-per-event: a one-time **$0.003** when the run starts, plus a price per listing saved to your dataset. The price depends on your Apify plan tier:

| Your Apify plan | Price per listing |
| --- | --- |
| Free | $0.016 |
| Bronze | $0.014 |
| Silver | $0.012 |
| Gold / Platinum / Diamond | $0.010 |

Approximate total cost:

| Listings collected | Free | Bronze | Silver | Gold+ |
| --- | --- | --- | --- | --- |
| 100 | $1.60 | $1.40 | $1.20 | $1.00 |
| 1,000 | $16.00 | $14.00 | $12.00 | $10.00 |
| 10,000 | $160.00 | $140.00 | $120.00 | $100.00 |

**Listing details add-on:** when **Listing details** is on, each listing whose page was read adds one more charge:

| Your Apify plan | Listing details, per listing |
| --- | --- |
| Free | $0.008 |
| Bronze | $0.007 |
| Silver | $0.0065 |
| Gold / Platinum / Diamond | $0.006 |

Listings whose page could not be read pay only the base price, and listings left out by filters are free. New Apify accounts start with $5 in free credit. On the Free plan, a run saves up to 10 listings.

### 🚀 Run it

1. Create a free Apify account with $5 in credit.
2. Open the HousingAnywhere Scraper.
3. Type a city (or pick countries, or keep both empty for the whole site), add filters, then click **Start**.
4. Export the results as CSV, Excel, JSON or XML from the Dataset tab.

### 🤖 Use with AI agents (MCP)

Connect the [Apify MCP server](https://mcp.apify.com) to Claude, ChatGPT, Cursor or any MCP client, then ask in plain words, for example: *"Get every HousingAnywhere studio in Rotterdam under 1,200 EUR that I can move into in February, with the deposit and move-in costs"*. The agent runs this Actor and reads the results.

### 🔧 Troubleshooting

- **Fewer listings than the site shows.** With no move-in date, the site (and this Actor) only shows listings you can move into within 6 months. Tick **Also listings free only after 6 months** to get the rest.
- **A city count is a little off.** The site searches a map area around the city, this Actor matches the city name. Nearby towns are their own cities: add them by name.
- **A city name is in two countries.** Add the country: "Valencia, Spain".
- **Rooms of the same type in one building appear once.** Like on the site, alike rooms in the same building are shown as one listing. Which room stands for them can change with the sort.
- **Some fields are empty.** Landlords fill in facilities, sizes and rules themselves, so some leave them out. `minAge`, `maxAge` and `maxStayMonths` are empty when there is no limit.
- **Listing details are slower.** The site allows about 30 listing pages a minute, so the Actor reads them one at a time.

### ❓ FAQ

**How many listings are there?** About 100,000 in 31 countries as of October 2026, about 75,000 of them free within 6 months. Germany, the Netherlands, Spain, Italy and France have the most.

**Which currency are prices in?** `rent`, `maxRent`, `previousRent` and the listing details amounts are in the local currency (`currency`). `rentEUR`, `maxRentEUR`, `estimatedBillsEUR` and `totalMonthlyEUR` are in euros. The rent filters are in euros.

**Can I pick several cities, types or bedrooms?** Yes. Any listing matching one of the values you pick is kept, and duplicates are removed.

**Do I need a proxy?** No.

### 🛡️ Limits & responsible use

This Actor collects rental listings that HousingAnywhere publishes on its website, through the same search the site uses, and keeps a moderate pace. The landlord name is the public first name shown on the listing. Use the data in line with HousingAnywhere's terms and data protection law (GDPR).

### 📧 Contact

Questions, bugs or a field you need: norm.data.scrapers@gmail.com

### 🧪 Local development

```bash
bun install
bun scripts/gen-schemas.mjs
sh test/run.sh first '{"maxItems":10,"cities":["Berlin"]}'
```

# Actor input Schema

## `maxItems` (type: `integer`):

Stop after this many listings in total. Leave empty for no limit. The Apify Free plan is always capped at 10.

## `cities` (type: `array`):

City names as the site writes them, like "Berlin" or "Lisbon". Add the country when a name is in two countries: "Valencia, Spain". Empty cities and countries = every listing on the site.

## `countries` (type: `array`):

Every listing in these countries.

## `propertyTypes` (type: `array`):

Empty = every type.

## `sortBy` (type: `string`):

Order of the listings. Empty = newest first.

## `includeDetails` (type: `boolean`):

Also read each listing page for the deposit amount, costs due at move-in on top of the rent, refundable amount, HousingAnywhere tenant fee, every extra cost (cleaning, admin, bills...), bills included in the rent, bookable and unavailable periods, postal code, bathrooms, elevator, energy label, the full description, and the landlord profile (about, languages, response rate, member since, last active, ID and phone verified). Slower: about 30 listings a minute. Charged per listing as an add-on.

## `minPrice` (type: `integer`):

In euros for every country (the lowest monthly rent).

## `maxPrice` (type: `integer`):

In euros for every country (the lowest monthly rent).

## `billsIncluded` (type: `array`):

Keep listings with one of these.

## `moveInDate` (type: `string`):

Keep listings you can move into on this date, like 2027-02-01 or "2 months" from today. Empty = like the site: listings you can move into within 6 months.

## `moveOutDate` (type: `string`):

With a move-in date: keep listings free until this date that accept a stay that long.

## `includeLaterAvailability` (type: `boolean`):

With no move-in date, the site hides listings that open up more than 6 months from now. Tick to get them too.

## `maxMinimumStayMonths` (type: `integer`):

Keep listings whose minimum stay is at most this many months.

## `bedrooms` (type: `array`):

Bedrooms in the place (for rooms: in the shared flat).

## `minSizeM2` (type: `integer`):

Size of the place in square meters.

## `maxSizeM2` (type: `integer`):

Size of the place in square meters.

## `facilities` (type: `array`):

Keep listings with all of these.

## `rules` (type: `array`):

Keep listings that allow all of these ("ask the landlord" counts as allowed, like on the site).

## `suitableFor` (type: `array`):

Keep listings open to all of these.

## `gender` (type: `string`):

Empty = any.

## `tenantAge` (type: `integer`):

Keep listings with no age limit or one that allows this age.

## `contractTypes` (type: `array`):

How rent is counted for part months.

## `landlordTypes` (type: `array`):

Keep listings from one of these.

## `minLandlordRating` (type: `integer`):

From 1 to 5, from tenant reviews.

## `neighborhoods` (type: `array`):

Neighborhood names as the site writes them, like "Mitte" or "Kreuzberg". Use with a city.

## `listedWithinDays` (type: `integer`):

Keep listings put on the site in the last this many days.

## `noDepositOnly` (type: `boolean`):

Keep listings with no security deposit.

## `flexibleCancellationOnly` (type: `boolean`):

Keep listings you can cancel for free until 30 days before move-in.

## `studentHousingOnly` (type: `boolean`):

Keep student residences.

## `priceDropOnly` (type: `boolean`):

Keep listings whose rent was lowered (shows the old rent).

## `excellentLandlordOnly` (type: `boolean`):

Keep listings from landlords HousingAnywhere marks as excellent.

## `onlyNew` (type: `boolean`):

Skip listings saved by earlier runs with the same monitor name.

## `monitorName` (type: `string`):

Runs with the same name share their history. Use a different name for each schedule.

## `startUrls` (type: `array`):

Searches copied from the site, with their filters (https://housinganywhere.com/s/Berlin--Germany/private-rooms?priceMax=80000) or listing pages (https://housinganywhere.com/room/ut1747056/de/Berlin/skalitzer-stra-e).

## Actor input object example

```json
{
  "maxItems": 10,
  "cities": [
    "Berlin"
  ]
}
```

# Actor output Schema

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

No description

# 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 = {
    "maxItems": 10,
    "cities": [
        "Berlin"
    ]
};

// Run the Actor and wait for it to finish
const run = await client.actor("normdata/housinganywhere-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 = {
    "maxItems": 10,
    "cities": ["Berlin"],
}

# Run the Actor and wait for it to finish
run = client.actor("normdata/housinganywhere-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "maxItems": 10,
  "cities": [
    "Berlin"
  ]
}' |
apify call normdata/housinganywhere-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,normdata/housinganywhere-scraper"
        }
    }
}
```

The hosted server signs you in with OAuth on first connect, so no API token belongs in this config. Clients without OAuth support can send an `Authorization: Bearer <APIFY_API_TOKEN>` header instead, using a token from API & Integrations in Apify Console (https://console.apify.com/settings/integrations).

## OpenAPI specification

Download the OpenAPI definition: https://api.apify.com/v2/actors/zt7dN78fJlHGBzZwW/builds/s2M76W7HkIf4uz2F9/openapi.json
