# ImmoScout24 ImmobilienScout24 Scraper: Phones, Emails | $1.1/1k (`pro100chok/immobilienscout24-scraper`) Actor

Scrape immobilienscout24.de rentals, sales and commercial listings from $1.10/1k: Kaltmiete, Warmmiete, Nebenkosten, Kaution, size, rooms, Energieausweis, photos, GPS address, agent phone, Impressum and agency e-mails. Search by URL, city or postcode. 130+ fields.

- **URL**: https://apify.com/pro100chok/immobilienscout24-scraper.md
- **Developed by:** [Raven](https://apify.com/pro100chok) (community)
- **Categories:** Real estate, Lead generation, Automation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.80 / 1,000 listing with full details

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

## ImmobilienScout24 Scraper — ImmoScout24 Listings, Agent Phones & E-mails API

Scrape **immobilienscout24.de** (ImmoScout24), Germany's largest property portal, from **$1.10 per 1,000 listings**. Paste any search URL or just type a city, and get **130+ fields per listing**: Kaltmiete, Warmmiete, Nebenkosten, Kaution, purchase price, living space, rooms, Energieausweis, photos, full address with GPS, and the advertiser's contacts, including **phone, Impressum and e-mails collected from the agency's own website**. No login, no API key, no code, no proxies to set up.

![ImmobilienScout24 scraper exporting German property listings with prices, costs, agent phone numbers and agency e-mails](https://raw.githubusercontent.com/PRO100CHOK/apify-readme-assets/main/immobilienscout24-scraper/hero.png)

<table>
<tr>
<td colspan="4" style="padding:10px 14px;background:#007764;border:none;border-radius:4px 4px 0 0">
<span style="color:#FFFFFF;font-size:14px;font-weight:700;letter-spacing:0.5px">Raven &middot; REAL ESTATE SUITE</span>
<span style="color:#CCF7F0;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;Germany &middot; US &middot; Spain &middot; Italy</span>
</td>
</tr>
<tr>
<td style="background:#D1F8F2;padding:10px 12px;border:1px solid #E4E4E7;border-right:none;border-top:none;vertical-align:top;width:25%">
<span style="white-space:nowrap"><img src="https://raw.githubusercontent.com/PRO100CHOK/apify-readme-assets/main/immobilienscout24-scraper/icon.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/pro100chok/immobilienscout24-scraper" style="color:#006C5A;text-decoration:none;font-weight:700;font-size:13px">ImmobilienScout24&nbsp;Scraper</a></span><br>
<span style="color:#006C5A;font-size:11px;font-weight:600">&#10148; You are here</span>
</td>
<td style="background:#EBFCF9;padding:10px 12px;border:1px solid #E4E4E7;border-right:none;border-top:none;vertical-align:top;width:25%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-Z8DnUeXHDZ8h3bwz5-2fpYwHzXLj-3464c791-c1e6-4569-be2f-06c9ea795b7f.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/pro100chok/zillow-scraper-all-in-one" style="color:#18181B;text-decoration:none;font-weight:700;font-size:13px">Zillow&nbsp;Scraper</a></span><br>
<span style="color:#71717A;font-size:11px">US listings, Zestimate, agents</span>
</td>
<td style="background:#EBFCF9;padding:10px 12px;border:1px solid #E4E4E7;border-right:none;border-top:none;vertical-align:top;width:25%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-Z2kaPRD9dlPAfA95f-1L0kLtuR9W-cbad1ec4-1b82-437a-bf31-76fc21d4ff5b.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/pro100chok/idealista-scraper" style="color:#18181B;text-decoration:none;font-weight:700;font-size:13px">Idealista&nbsp;Scraper</a></span><br>
<span style="color:#71717A;font-size:11px">Spain & Italy listings, leads</span>
</td>
<td style="background:#EBFCF9;padding:10px 12px;border:1px solid #E4E4E7;border-top:none;vertical-align:top;width:25%">
<span style="white-space:nowrap"><img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-vness86lujcu7VTrh-ikEhCJzgGf-0553337e-4f6d-48dd-999a-f0a7f03c8804.png" width="20" height="20" style="vertical-align:middle;border-radius:4px"> &nbsp;<a href="https://apify.com/pro100chok/realtor-com-scraper" style="color:#18181B;text-decoration:none;font-weight:700;font-size:13px">Realtor.com&nbsp;Scraper</a></span><br>
<span style="color:#71717A;font-size:11px">US listings, property data</span>
</td>
</tr>
</table>

### 🏠 What does this ImmobilienScout24 Scraper do?

It turns ImmoScout24 search results and listing pages (Exposé) into clean rows you can export to Excel, CSV or JSON, or pull through the Apify API. ImmobilienScout24 has no open public API for listing data, so this actor works as an **unofficial ImmobilienScout24 API alternative**: send a search, get structured data back.

| Input | What you get |
|---|---|
| **Search URL** from immobilienscout24.de (any filters, any sorting) | Every listing of that search, page after page |
| **Location** (city, district or postcode) + property type + filters | The same, without opening the website |
| **Listing URL** (`/expose/<id>`) | That exact listing with full details |

All **19 property types** are supported: apartments and houses for rent and for sale (Wohnung mieten / kaufen, Haus mieten / kaufen), shared-flat rooms (WG-Zimmer), temporary furnished living (Wohnen auf Zeit), plots, garages and parking, offices and practices, retail, hospitality, halls and production, special commercial, commercial plots, investment properties, foreclosure auctions (Zwangsversteigerung), prefab houses and assisted living.

### ✅ Why use this scraper?

- ✅ **130+ fields per listing**: every cost line, energy certificate, features, photos, floor plans, videos, 3D tours and all attributes shown on the listing.
- ✅ **Contacts built in**: contact person, company, phone numbers, Impressum text with the e-mails and phones in it, agency website, plus **e-mails and social profiles found on that website**. In a 3,000-listing Berlin and Hamburg test run, 84% of rows had an e-mail and 72% had a phone number.
- ✅ **Search the way you already do**: paste the URL from your browser and every filter is kept, or type `Munchen`, `Köln Ehrenfeld` or `80331`.
- ✅ **Whole searches, not just page one**: follows every result page and removes duplicates.
- ✅ **Streams results**: rows appear in the dataset within seconds, and a stopped run keeps everything collected so far.
- ✅ **Clean rows**: empty fields are left out, so no columns full of `null`.
- ✅ **Low price**: $1.10 per 1,000 full listings, $0.50 per 1,000 in list-only mode.

| | Official ImmoScout24 API | Typical ImmoScout24 scrapers | This actor |
|---|---|---|---|
| Access | Partner / provider accounts only | Open | Open, no account at the portal |
| Search by pasted URL | No | Sometimes | Yes, all filters kept |
| Search by city or postcode | No | Sometimes | Yes |
| Full details per listing | Own listings only | Often an extra fee | Included |
| Agent phone and Impressum | No | Often a paid add-on or missing | Included |
| Agency e-mails from its website | No | Rarely | Yes |
| All 19 property types incl. commercial | No | Usually residential only | Yes |

### 📊 What data can you extract?

| Group | Fields |
|---|---|
| **Price & costs** | `price`, `baseRent` (Kaltmiete), `totalRent` (Warmmiete), `serviceCharge` (Nebenkosten), `heatingCosts`, `heatingCostsIncluded`, `deposit`, `depositMonths`, `depositText` (Kaution), `purchasePrice`, `pricePerSqm`, `priceText` ("Auf Anfrage"), `buyerCommission` / `tenantCommission` with percent, `purchaseCosts` (land transfer tax, notary, land registry, broker), `monthlyFinancingRate`, `fairPriceRating`, `priceInsights` (price per m² range vs similar listings nearby), `marketValue` and `minimumBid` for foreclosures, `annualRentalIncome` and `priceToRentRatio` for investments |
| **Property** | `livingSpace`, `usableSpace`, `plotArea`, `totalArea`, `officeArea`, `roomSize`, `rooms`, `bedrooms`, `bathrooms`, `floor`, `numberOfFloors`, `apartmentType`, `houseType`, `buildingType`, `availableFrom`, `pets`, `parkingSpaces`, `rented` |
| **Features** | `balcony`, `garden`, `cellar`, `lift`, `builtInKitchen`, `barrierFree`, `guestToilet`, `newlyConstructed`, `internetSpeed`, `features` (all ticked features), `criteria` (**every attribute on the listing** as label → value) |
| **Building & energy** | `yearConstructed`, `lastRefurbishment`, `condition`, `interiorQuality`, `heatingType`, `energySources`, `energyEfficiencyClass`, `energyCertificateType`, `energyDemand`, `energyConsumption` |
| **Location** | `address`, `street`, `houseNumber`, `zipCode`, `city`, `district`, `quarter`, `state`, `lat`, `lng`, `locationDescription` |
| **Texts** | `title`, `description`, `furnishing`, `otherNotes` |
| **Media** | `pictures` (URL + caption), `floorPlans`, `videos`, `virtualTours`, `pictureCount` |
| **Contact & lead data** | `contactName`, `contactCompany`, `contactAddress`, `contactPhone`, `contactPhones`, `contactEmail`, `emails`, `imprint`, `imprintEmails`, `imprintPhones`, `agencyWebsite`, `websiteEmails`, `socialLinks` (LinkedIn, Facebook, Instagram, XING, YouTube), `agentProfileUrl`, `agentRating`, `immoPartnerLevel`, `privateOffer` (private seller vs Makler) |
| **Listing info** | `id`, `url`, `realEstateType`, `listingType`, `publishedAgo`, `tags`, `paywallEarlyAccessUntil`, `exclusiveToImmoScout`, `isProject`, `projectId`, `projectUnits`, `externalLinks`, `objectNumber`, `rawAttributes`, `scrapedAt` |

The dataset comes with three ready table views: **Overview**, **Contacts** and **Property details**.

### 🇩🇪 German real estate terms and the matching fields

| On ImmobilienScout24 | Meaning | Output field |
|---|---|---|
| Kaltmiete | Cold rent, without service charges | `baseRent` |
| Warmmiete / Gesamtmiete | Total rent incl. service charges | `totalRent` |
| Nebenkosten | Service charges | `serviceCharge` |
| Heizkosten | Heating costs | `heatingCosts`, `heatingCostsIncluded` |
| Kaution | Deposit, as an amount or in monthly rents | `deposit`, `depositMonths`, `depositText` |
| Kaufpreis | Purchase price | `purchasePrice` |
| Provision / Courtage | Agent commission | `buyerCommission`, `tenantCommission`, `commission` |
| Grunderwerbsteuer, Notar, Grundbuch | Land transfer tax, notary, land registry | `purchaseCosts` |
| Wohnfläche / Nutzfläche / Grundstück | Living space / usable space / plot | `livingSpace`, `usableSpace`, `plotArea` |
| Zimmer / Schlafzimmer / Badezimmer | Rooms / bedrooms / bathrooms | `rooms`, `bedrooms`, `bathrooms` |
| Etage / Etagenzahl | Floor / number of floors | `floor`, `numberOfFloors` |
| Bezugsfrei ab | Available from | `availableFrom` |
| Baujahr / Objektzustand | Year built / condition | `yearConstructed`, `condition` |
| Energieausweis / Energieeffizienzklasse | Energy certificate / class | `energyCertificateType`, `energyEfficiencyClass`, `energyDemand` |
| Einbauküche, Balkon, Keller, Aufzug | Fitted kitchen, balcony, cellar, elevator | `builtInKitchen`, `balcony`, `cellar`, `lift` |
| Makler / privater Anbieter | Agent / private seller | `contactCompany`, `privateOffer` |
| Impressum | Legal notice with the advertiser's address, phone and e-mail | `imprint`, `imprintEmails`, `imprintPhones` |
| Exposé | The listing page | `url`, `id` |

### 🚀 How to scrape ImmobilienScout24 step by step

1. Create a free Apify account. It includes **$5 of platform credit every month**, enough for about 3,800 full listings with agency e-mails.
2. Open the actor and paste a search URL from immobilienscout24.de into **Search or listing URLs**, for example `https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten`. Or type a city into **Locations** and pick a **Property type**.
3. Set **Max listings**.
4. Leave **Full listing details** and **Find agency e-mails** on for the complete data set, or turn details off for a quick, cheaper scan.
5. Click **Start**. Rows appear in the **Output** tab within seconds.
6. Download the results as Excel, CSV, JSON or HTML, or connect them to Google Sheets, Make, Zapier or your own code.

### 🔎 How to use your own ImmoScout24 search filters

Set up the search on immobilienscout24.de exactly as you want it (city, radius, price, rooms, living space, features, energy class, new builds, sorting) and copy the URL from the address bar. The actor reads every filter from that URL. You can paste many URLs into one run, for example one per city.

Without the website, use **Locations** with the **Filters** section: price, rooms, living space, plot area, year built, must-have features (balcony, fitted kitchen, garden, elevator, cellar, guest toilet, parking, step-free), energy efficiency classes, new builds only, and hiding flat-swap offers.

### 📇 How to get agent phone numbers and e-mails from ImmoScout24

Every listing with full details includes what the advertiser publishes:

- the phone numbers shown on the listing;
- the **Impressum** (legal notice), with the e-mails and phone numbers in it;
- the **agency website**, when the advertiser links it.

With **Find agency e-mails** on, the actor visits that website's homepage and its Impressum and Kontakt pages to collect e-mail addresses and social profiles. Each website is visited once per run, however many listings the agency has, and addresses on the agency's own domain come first. `contactEmail` holds the best single address and `emails` holds all of them.

Private landlords and advertisers who only accept messages through the portal publish no contact data, so those rows have a name but no phone or e-mail.

### ⚙️ Input parameters

| Parameter | Type | Description |
|---|---|---|
| `startUrls` | array | ImmobilienScout24 search URLs and/or listing URLs (`/expose/<id>`) |
| `locations` | array | Cities, districts or postcodes, e.g. `Hamburg`, `München Schwabing`, `10115` |
| `realEstateType` | enum | Property type for Locations (19 types, default `apartmentrent`) |
| `maxItems` | integer | Maximum listings in total (default 100) |
| `fetchDetails` | boolean | Full listing details (default `true`) |
| `extractEmails` | boolean | Collect e-mails from agency websites (default `true`) |
| `language` | enum | `de` or `en` labels in `criteria` and text values |
| `minPrice` / `maxPrice` | integer | Price or cold rent in EUR (Locations) |
| `minRooms` / `maxRooms` | number | Rooms (Locations) |
| `minLivingSpace` / `maxLivingSpace` | integer | Living space in m² (Locations) |
| `minPlotArea` / `maxPlotArea` | integer | Plot size in m² (Locations) |
| `minConstructionYear` / `maxConstructionYear` | integer | Year built (Locations) |
| `equipment` | array | `balcony`, `builtinkitchen`, `garden`, `lift`, `cellar`, `guesttoilet`, `parking`, `handicappedaccessible` |
| `energyEfficiencyClasses` | array | `a_plus`, `a` … `h` |
| `newBuildOnly` | boolean | New builds only |
| `excludeSwapFlats` | boolean | Hide flat-swap offers |
| `sorting` | enum | `standard`, `-firstactivation` (newest), `price`, `-price`, `livingspace`, `-livingspace` |
| `maxConcurrency` | integer | Listings fetched in parallel (default 20) |
| `maxRetries` | integer | Retries per request (default 6) |
| `proxyConfiguration` | object | Proxy settings, preconfigured |

### 📋 Ready-to-paste input recipes

**1. Every rental apartment in Berlin, newest first**

```json
{
  "startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?sorting=2" }],
  "maxItems": 5000
}
```

**2. Agent lead list: houses for sale in Hamburg with phones and e-mails**

```json
{
  "locations": ["Hamburg"],
  "realEstateType": "housebuy",
  "maxItems": 1000,
  "fetchDetails": true,
  "extractEmails": true
}
```

**3. Family apartments in Munich under €2,000 with balcony**

```json
{
  "locations": ["München"],
  "realEstateType": "apartmentrent",
  "maxPrice": 2000,
  "minRooms": 3,
  "equipment": ["balcony"],
  "maxItems": 500
}
```

**4. Fast market scan of apartments for sale across three cities (list-only)**

```json
{
  "locations": ["Frankfurt am Main", "Köln", "Düsseldorf"],
  "realEstateType": "apartmentbuy",
  "fetchDetails": false,
  "maxItems": 10000
}
```

**5. Office space for rent in a postcode area**

```json
{
  "locations": ["80331"],
  "realEstateType": "office",
  "maxItems": 300
}
```

**6. Specific listings by URL, with English labels**

```json
{
  "startUrls": [
    { "url": "https://www.immobilienscout24.de/expose/170528322" },
    { "url": "https://www.immobilienscout24.de/expose/170765214" }
  ],
  "language": "en"
}
```

**7. Energy-efficient new builds for sale (A+ to B)**

```json
{
  "locations": ["Leipzig"],
  "realEstateType": "apartmentbuy",
  "newBuildOnly": true,
  "energyEfficiencyClasses": ["a_plus", "a", "b"],
  "maxItems": 500
}
```

### 📦 Output examples

**Rental apartment with full details** (shortened)

```json
{
  "id": "170528322",
  "url": "https://www.immobilienscout24.de/expose/170528322",
  "title": "FRIEDRICH: Studio mit Tischlereinbauten, Balkon, Calisthenics, Dachterrasse und Paketstation!",
  "realEstateType": "apartmentrent",
  "price": 1355,
  "currency": "EUR",
  "baseRent": 1355,
  "totalRent": 1460,
  "serviceCharge": 105,
  "heatingCostsIncluded": true,
  "deposit": 4065,
  "depositText": "4.065,00 €",
  "pricePerSqm": 51,
  "livingSpace": 27.04,
  "rooms": 1,
  "bathrooms": 1,
  "floor": 6,
  "numberOfFloors": 6,
  "availableFrom": "01.10.2026",
  "yearConstructed": 2026,
  "condition": "Erstbezug",
  "heatingType": "Wärmepumpe",
  "energyEfficiencyClass": "A+",
  "energyDemand": 13.5,
  "balcony": true,
  "cellar": true,
  "lift": true,
  "builtInKitchen": true,
  "address": "Revaler Straße 2, 10243 Friedrichshain, Berlin",
  "street": "Revaler Straße",
  "houseNumber": "2",
  "zipCode": "10243",
  "city": "Berlin",
  "quarter": "Friedrichshain",
  "lat": 52.5089,
  "lng": 13.44967,
  "contactName": "Herr Adem Dauti",
  "contactCompany": "Livory Development GmbH",
  "imprint": "Livory Development GmbH\nAm Tullnaupark 15\n90402 Nürnberg\n030 3199870\nletting@livory-group.de",
  "imprintPhones": ["030 3199870"],
  "agencyWebsite": "https://livory-group.de/",
  "contactEmail": "letting@livory-group.de",
  "emails": ["letting@livory-group.de", "berlin@livory-group.de"],
  "agentProfileUrl": "https://www.immobilienscout24.de/anbieter/livory-development-gmbh/a412110c2cc2a7a76f1e9bb",
  "immoPartnerLevel": "bronze 2026",
  "privateOffer": false,
  "pictures": [{ "url": "https://pictures.immobilienscout24.de/listings/15d877ad-dbce-4551-952c-f304686a6784-2100267016.jpg/ORIG/resize/1500x1000/format/webp/quality/80", "caption": "1-heller Raum mit Balkon.jpg" }],
  "virtualTours": [{ "url": "https://my.matterport.com/show/?m=Gggv5VCB7qw", "caption": "Rundgang Musterwohnung" }],
  "criteria": { "Wohnungstyp": "Dachgeschoss", "Etage": "6 von 6", "Kaution oder Genossenschaftsanteile": "4.065,00 €" },
  "scrapedAt": "2026-09-27T15:24:43+00:00"
}
```

**Apartment for sale, purchase-cost breakdown and price comparison** (excerpt)

```json
{
  "id": "155544454",
  "url": "https://www.immobilienscout24.de/expose/155544454",
  "title": "Klimatisierte 3-Zimmer-Wohnung mit Panoramablick über die Dächer des Kiezes",
  "purchasePrice": 635555,
  "pricePerSqm": 7900,
  "buyerCommission": "3,57%",
  "buyerCommissionPercent": 3.57,
  "purchaseCosts": {
    "purchasePrice": 635555,
    "additionalCosts": 73534,
    "totalCosts": 709089,
    "brokerCommission": 22689,
    "brokerCommissionPercent": "3,57 %",
    "landTransferTax": 38133,
    "landTransferTaxPercent": "6 %",
    "notaryCosts": 9533,
    "landRegistryCosts": 3178
  },
  "monthlyFinancingRate": 2376,
  "priceInsights": {
    "minPricePerSqm": 3350,
    "maxPricePerSqm": 9700,
    "minSimilarPricePerSqm": 4400,
    "maxSimilarPricePerSqm": 7450,
    "thisListingPricePerSqm": 7900,
    "positionPercent": 0.72
  }
}
```

**List-only row** (`fetchDetails: false`)

```json
{
  "id": "168062952",
  "url": "https://www.immobilienscout24.de/expose/168062952",
  "title": "Helle 3-Zimmerwohnung mit zwei Loggien",
  "realEstateType": "apartmentbuy",
  "address": "81825 München, Trudering (unvollständige Adresse)",
  "zipCode": "81825",
  "energyEfficiencyClass": "A+",
  "price": 1389000,
  "currency": "EUR",
  "livingSpace": 92,
  "rooms": 3,
  "summary": "1.389.000 € | 92 m² | 3 Zi.",
  "listingType": "XL",
  "publishedAgo": "vor 4 Monaten",
  "privateOffer": false,
  "scrapedAt": "2026-09-27T16:18:27+00:00"
}
```

### 💶 How much does it cost to scrape ImmobilienScout24?

Pay only for results. Every price below is all-in, with nothing else to pay for.

| Event | Free plan | Paid plans (from) | When it is charged |
|---|---|---|---|
| Listing with full details | $0.0011 ($1.10 / 1,000) | $0.0008 ($0.80 / 1,000) | Each listing saved with full details, phones and Impressum included |
| Listing, list-only | $0.0005 ($0.50 / 1,000) | $0.00035 ($0.35 / 1,000) | Each listing saved with **Full listing details** off |
| Agency e-mails | $0.003 | $0.0022 | Once per agency website per run, **only when an e-mail is found** |
| Actor start | $0.00005 | $0.00005 | Once per run |

| Example | Approximate cost (Free plan) |
|---|---|
| 100 Berlin rentals, full details + e-mails | ~$0.14 |
| 1,000 listings, full details, ~70 agencies with e-mails | ~$1.31 |
| 10,000 listings, list-only | ~$5.00 |
| $5 monthly free credit | ~3,800 full listings with agency e-mails, or ~10,000 list-only rows |

Set a **maximum total cost** on the run and the actor stops cleanly when it is reached, keeping every row collected so far.

### 🔗 Integrations

- **Google Sheets**, **Make**, **Zapier**, **n8n**, **Slack** and **Airbyte** through Apify integrations.
- **Webhooks** when a run finishes.
- **Schedules** for hourly or daily runs, e.g. "newest Berlin rentals every morning".
- The **Apify API** and the official Python and JavaScript clients.

```python
from apify_client import ApifyClient

client = ApifyClient("<YOUR_APIFY_TOKEN>")
run = client.actor("pro100chok/immobilienscout24-scraper").call(run_input={
    "startUrls": [{"url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?sorting=2"}],
    "maxItems": 200,
})
for row in client.dataset(run["defaultDatasetId"]).iterate_items():
    print(row["title"], row.get("price"), row.get("contactEmail"))
```

### 🤖 Use with AI agents (MCP)

Connect the actor to Claude, ChatGPT, Cursor or any MCP client through the [Apify MCP server](https://mcp.apify.com/) and ask in plain language:

> "Find 2-room apartments for rent in Hamburg under €1,400 with a balcony on ImmobilienScout24, and give me a table with rent, size, address, agency and the agency's e-mail."

**Copy to your AI assistant:**

```text
Use the Apify actor pro100chok/immobilienscout24-scraper to get ImmobilienScout24 (immobilienscout24.de) listings.
Input: startUrls (search URLs or /expose/<id> URLs) or locations (city, district, postcode) + realEstateType,
optional minPrice/maxPrice, minRooms/maxRooms, minLivingSpace/maxLivingSpace, equipment, sorting, maxItems.
fetchDetails=true returns 130+ fields incl. contactPhone, imprint, contactEmail, emails, agencyWebsite.
Run with ApifyClient(...).actor("pro100chok/immobilienscout24-scraper").call(run_input={...}) and read the default dataset.
```

### 💼 Popular use cases

- **Real estate agents and brokers**: lead lists of private sellers and competing agencies with phones and e-mails, new-listing alerts.
- **Property investors**: screen cities by price per m², rental income and price-to-rent ratio, track foreclosure auctions.
- **Market analysts and PropTech**: rent and price indices, Mietspiegel-style comparisons, supply monitoring, automated valuation models.
- **B2B sales**: agencies, property managers and developers for movers, craftsmen, financing, insurance and energy services.
- **Relocation and home search**: newest offers across several cities in one table.
- **Research and journalism**: housing-market datasets by district, energy class or building age.

### 🛠 Troubleshooting

| Symptom | Cause | Fix |
|---|---|---|
| Fewer rows than the website shows | **Max listings** reached, or duplicates across pages removed | Raise **Max listings**; the log shows the result count of each search |
| "Location not found" in the log | Unknown place name | Use the German name, a postcode, or paste a search URL |
| "Filter … is not supported … ignoring it" in the log | That filter does not exist for the chosen property type | Nothing to do; the search runs without it |
| A row has no phone or e-mail | The advertiser published none (common for private landlords) | Turn on **Find agency e-mails**; rows with a website get e-mails from it |
| Only price, size and rooms per row | **Full listing details** is off | Turn it on for 130+ fields |

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

This actor collects only publicly visible listing data, the same as any visitor sees without logging in. Listings can contain personal data, such as an agent's name, phone or e-mail, which is protected by the GDPR. Only process it when you have a legitimate reason, store it securely, and respect opt-outs. Read [Is web scraping legal?](https://blog.apify.com/is-web-scraping-legal/) and ask a lawyer if unsure.

ImmobilienScout24® and ImmoScout24® are trademarks of Immobilien Scout GmbH. This actor is an independent tool, not affiliated with or endorsed by Immobilien Scout GmbH.

### ❓ FAQ

#### Does ImmobilienScout24 have a public API?

Only for registered providers managing their own listings. There is no open API for searching all listings, which is why this actor exists as an ImmoScout24 API alternative.

#### Can I use my own ImmoScout24 search filters?

Yes. Paste the search URL from your browser; every filter and the sorting are applied.

#### How many listings can I scrape?

A whole search: the actor follows every result page and stops at **Max listings**. For very large areas, split the search by city or district so each part stays focused.

#### Why did I get fewer listings than the website shows?

Either **Max listings** was reached, or the same listing appeared on several pages (duplicates are removed). Check the run log: it prints the number of results the search reported.

#### Can I get agent phone numbers and e-mails?

Yes, whatever the advertiser publishes: listing phones, the Impressum, and e-mails from the agency website. Private landlords often publish none.

#### Why are some fields missing from a row?

Empty fields are left out instead of being filled with `null`. Advertisers fill in different fields, so a garage has no rooms and a price on request has only `priceText`.

#### What is the difference between full details and list-only?

List-only reads the search results: price, size, rooms, address, coordinates and a photo, at $0.50 per 1,000. Full details open every listing for 130+ fields and contacts, at $1.10 per 1,000.

#### Can I search by postcode or district?

Yes. Type a postcode (`80331`) or a district (`Hamburg Altona`) into **Locations**. Spellings without umlauts such as `Munchen` or `Koln` work too.

#### Do I need proxies?

No. Proxies are preconfigured and included in the price.

#### Can I export to CSV or Excel?

Yes. Every run can be downloaded as JSON, CSV, Excel, HTML or XML, or sent to Google Sheets.

#### Will I be charged for listings that return nothing?

No. Only saved rows are charged. Listings that cannot be fetched are skipped and noted in the log, and the e-mail event is charged only when an e-mail is actually found.

#### Can I monitor new listings every day?

Yes. Schedule the actor with sorting **Newest first** (or `sorting=2` in the URL) and a small **Max listings**.

#### Does it work for Austria or Switzerland?

No, this actor covers immobilienscout24.de (Germany).

#### Are sold prices available?

No. ImmoScout24 shows asking prices of active listings, and that is what the actor returns.

#### Which language is the data in?

Descriptions are in the advertiser's language, usually German. Labels and values like condition or heating type can be German or English (**Labels language**).

### 💬 Feedback & support

Found a bug or need an extra field? Open an issue in the **Issues** tab, ideally with the run link, and it will be looked at quickly.

### 🧰 More scrapers by Raven

**Real estate & travel**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-Z8DnUeXHDZ8h3bwz5-2fpYwHzXLj-3464c791-c1e6-4569-be2f-06c9ea795b7f.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Zillow Scraper](https://apify.com/pro100chok/zillow-scraper-all-in-one)** — US listings, Zestimate, agent leads and e-mails
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-vness86lujcu7VTrh-ikEhCJzgGf-0553337e-4f6d-48dd-999a-f0a7f03c8804.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Realtor.com Scraper](https://apify.com/pro100chok/realtor-com-scraper)** — US listings, property data, agent e-mails
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-2bXBHs5BF7iBki2rV-8EhrRpAVWj-c84534b4-ba6f-4d40-8d93-801e9658109b.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Apartments.com Scraper](https://apify.com/pro100chok/apartments-scraper-usage)** — US rentals, prices and reviews
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-Z2kaPRD9dlPAfA95f-1L0kLtuR9W-cbad1ec4-1b82-437a-bf31-76fc21d4ff5b.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Idealista Scraper](https://apify.com/pro100chok/idealista-scraper)** — Spain and Italy listings with leads
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-ndx8v7vE2UZLdaPh3-q8F89sJ3yV-8b39d8ca-79e9-4e96-aed0-dd8ab344e038.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Booking Scraper](https://apify.com/pro100chok/booking-all-in-one-scraper)** — Hotels, reviews, e-mails and leads
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-caoIAzJRQpPYIg12M-tlsdeBufko-c028930e-93b5-4dbf-8c6f-2801f0cdb2ba.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[TripAdvisor Scraper](https://apify.com/pro100chok/tripadvisor-all-in-one)** — Hotels, restaurants, e-mails and leads

**Leads & business data**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-w0yugQzf3ETbRbAC2-ehi6JwVR72-ae55cffc-cd6e-481f-bb22-f89a349f7287.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Google Maps Scraper](https://apify.com/pro100chok/google-maps-scraper)** — Businesses, e-mails, reviews and photos
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-1X9ZSt3urlN5pptAO-Nyu91cUNLw-9d50dd18-fb66-400e-85c7-413263018bd8.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Website Contact Scraper](https://apify.com/pro100chok/extract-emails)** — Bulk e-mails, phones and socials from websites
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-hf4D1qFJHmE95F7CJ-Hkdhw1Nnc8-783bdfba-34ea-42a8-bbe0-27e63a5e8bd2.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Yelp Scraper](https://apify.com/pro100chok/yelp-scraper)** — Businesses, e-mails and reviews
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-lFLILoeJarJWgpyfA-hW3U63Zaih-75495494-6b1c-4365-bb7e-3b0275c76e18.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Trustpilot Scraper](https://apify.com/pro100chok/trustpilot-all-in-one-scraper)** — Company reviews, e-mails and leads
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-Jwxb2NnpjBqbwi3JH-fNreVEhGwW-6078c039-cf2a-4b0c-8915-2a1c8bcf1bcb.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[G2 Scraper](https://apify.com/pro100chok/g2-scraper)** — Software reviews, ratings and leads
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-3INlwRjD5teX8k2Xd-7pqry4x2wP-ff4c675d-3247-4187-a7b5-44dde2e01f49.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Google Jobs Scraper](https://apify.com/pro100chok/google-jobs-scraper)** — Jobs, salaries and employer e-mails

**SEO & web intelligence**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-pC8gsptNv2RwJm0QE-W9y7YrikQ2-Gemini_Generated_Image_sweylvsweylvswey.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Ahrefs SEO Scraper](https://apify.com/pro100chok/ahrefs-seo-tools)** — Domain rating, backlinks and keywords
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-9FWL3X6mVI2izVfeJ-4DKlEMxqE4-26ac0cec-e6fd-4020-abbb-d4d8885f3bf1.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Semrush Scraper](https://apify.com/pro100chok/semrush-scraper)** — Traffic, authority and backlinks
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-aqPbs3KeH9aD8b22w-7uDzdHiNaF-9358b53b-cd06-42f2-bc53-6c5ac7d9558c.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[SimilarWeb Scraper](https://apify.com/pro100chok/similarweb-scraper)** — Website traffic, rankings and analytics

**E-commerce & social**

- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-kaoNl8Aod80TyV1eZ-HMK8j1Pfit-6e72a428-ec01-4d5e-b2fa-80fc6313a008.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Amazon Scraper](https://apify.com/pro100chok/amazon-scraper)** — Products, reviews, sellers and best sellers
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-mBQQG1GlbZlkcetR5-Sp5ocRGs6r-6f2bcafa-1c0e-4c89-9fdc-6efdfb753328.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[AliExpress Scraper](https://apify.com/pro100chok/aliexpress-scraper)** — Products, variants, reviews and sellers
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-FzXXmis0AF2EYyyii-3mCXVBAxXh-bc40a62c-b130-486d-b676-ab123126497f.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[TikTok Shop Scraper](https://apify.com/pro100chok/tiktok-shop-scraper-usage)** — Products, reviews and GMV
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-7fyOP12UzHR5Zlnc5-dmuwhmDVDL-31c88c54-bc51-4767-8869-e9ce3ea0ae19.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Instagram Scraper](https://apify.com/pro100chok/instagram-scraper-all-in-one)** — Profiles, posts, reels and comments
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-ZgqqqOMdHEIwgTqnj-smOdJXIFrK-fbb7fc8c-edf1-44ae-8f44-ca61ca354c26.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[YouTube Scraper](https://apify.com/pro100chok/youtube-scraper-all-in-one)** — Videos, comments, e-mails and leads
- <img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/2nh2cdeW87EFLjZmA-actor-Z01iuGOkBqJUvTaUn-xpWgbgKXLn-8ae33b0d-b338-4184-a1cd-2565a3f82a98.png" width="16" height="16" style="vertical-align:middle;border-radius:3px"> **[Facebook Ads Library Scraper](https://apify.com/pro100chok/meta-ads-library-scraper)** — Meta and Instagram ads

**Tags:** immobilienscout24 scraper, immoscout24 scraper, immobilienscout24 api, immoscout24 api alternative, german real estate data, germany property listings, wohnung mieten scraper, wohnung kaufen, haus kaufen, kaltmiete warmmiete, nebenkosten, kaution, energieausweis, makler kontakt, immobilienmakler e-mail, real estate leads germany, immobilien daten export, exposé scraper, zwangsversteigerung, gewerbeimmobilien, berlin apartments, münchen wohnung, hamburg immobilien

# Changelog

This Actor's version history is a separate document: https://apify.com/pro100chok/immobilienscout24-scraper/changelog.md

# Actor input Schema

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

Paste any immobilienscout24.de search results URL (with all your filters from the website) or a listing URL like https://www.immobilienscout24.de/expose/170528322. Mix both freely.

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

Or just type places: a city, district or postcode (e.g. 'Hamburg', 'München Schwabing', '10115'). Each location is searched with the property type and filters below.

## `realEstateType` (type: `string`):

What to search for in each location. Ignored for search URLs, which carry their own type.

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

Maximum number of listings to return across all searches. Each listing is one row.

## `fetchDetails` (type: `boolean`):

Open every listing for the full data: description, all costs, energy certificate, all photos, agent name, phone, company, Impressum and website. Turn off for a fast list-only scan (price, size, rooms, address, photo).

## `extractEmails` (type: `boolean`):

Visit the agency's own website (homepage, Impressum, Kontakt) to collect e-mail addresses and social profiles. Every agency website is visited only once per run. Requires full listing details.

## `language` (type: `string`):

Language of the labels in 'criteria' and of values like condition or heating type. Listing descriptions stay in the language the advertiser wrote them in.

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

Minimum price or cold rent in euros. Applies to Locations only.

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

Maximum price or cold rent in euros. Applies to Locations only.

## `minRooms` (type: `number`):

Minimum number of rooms. Applies to Locations only.

## `maxRooms` (type: `number`):

Maximum number of rooms. Applies to Locations only.

## `minLivingSpace` (type: `integer`):

Minimum living / floor space in square metres. Applies to Locations only.

## `maxLivingSpace` (type: `integer`):

Maximum living / floor space in square metres. Applies to Locations only.

## `minPlotArea` (type: `integer`):

Minimum plot size in square metres (houses and plots). Applies to Locations only.

## `maxPlotArea` (type: `integer`):

Maximum plot size in square metres (houses and plots). Applies to Locations only.

## `minConstructionYear` (type: `integer`):

Only listings built in or after this year. Applies to Locations only.

## `maxConstructionYear` (type: `integer`):

Only listings built in or before this year. Applies to Locations only.

## `equipment` (type: `array`):

Only listings that have all of these. Applies to Locations only.

## `energyEfficiencyClasses` (type: `array`):

Only listings with one of these energy classes. Applies to Locations only.

## `newBuildOnly` (type: `boolean`):

Only new-build listings. Applies to Locations only.

## `excludeSwapFlats` (type: `boolean`):

Hide flat-swap (Tauschwohnung) offers. Applies to Locations only.

## `sorting` (type: `string`):

Order of results. With a limit, 'Newest first' returns the freshest listings. Applies to Locations only; search URLs keep their own sorting.

## `maxConcurrency` (type: `integer`):

How many listings are fetched in parallel.

## `maxRetries` (type: `integer`):

How many times a failed request is retried before the listing is skipped.

## `proxyConfiguration` (type: `object`):

Proxy servers used for the requests. Residential proxies in Germany are used by default.

## Actor input object example

```json
{
  "startUrls": [
    {
      "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten"
    }
  ],
  "realEstateType": "apartmentrent",
  "maxItems": 100,
  "fetchDetails": true,
  "extractEmails": true,
  "language": "de",
  "newBuildOnly": false,
  "excludeSwapFlats": false,
  "sorting": "standard",
  "maxConcurrency": 20,
  "maxRetries": 6,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}
```

# Actor output Schema

## `overview` (type: `string`):

No description

## `contacts` (type: `string`):

No description

## `details` (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 = {
    "startUrls": [
        {
            "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten"
        }
    ],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "DE"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("pro100chok/immobilienscout24-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 = {
    "startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten" }],
    "maxItems": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "DE",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("pro100chok/immobilienscout24-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 '{
  "startUrls": [
    {
      "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten"
    }
  ],
  "maxItems": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}' |
apify call pro100chok/immobilienscout24-scraper --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,pro100chok/immobilienscout24-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/cU6I6JV7sowjmJrgB/builds/hvRPBsdSI59LTJulV/openapi.json
