# ImmobilienScout24 \[$0.70/1K💰] | Rent & Buy | Germany (`ahmed_jasarevic/immobilienscout24-scraper-pro`) Actor

Extract German real estate listings from ImmobilienScout24.de for rent and buy property market research

- **URL**: https://apify.com/ahmed\_jasarevic/immobilienscout24-scraper-pro.md
- **Developed by:** [Ahmed Jasarevic](https://apify.com/ahmed_jasarevic) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 2 total users, 1 monthly users, 88.9% runs succeeded, 0 bookmarks
- **User rating**: No ratings yet

## Pricing

from $0.67 / 1,000 results

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?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
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.

- **AI agents and MCP clients** — the [Apify MCP server](https://docs.apify.com/integrations/mcp.md) at `https://mcp.apify.com` (remote, streamable HTTP, OAuth on first use).
- **Agentic workflows and local Actor development** — [Agent Skills](https://apify.com/.well-known/agent-skills/index.json) with the [Apify CLI](https://docs.apify.com/cli/docs.md): `npm install -g apify-cli`, then `apify login`.
- **JavaScript/TypeScript projects** — the official [JS/TS client](https://docs.apify.com/api/client/js/docs.md): `npm install apify-client`.
- **Python projects** — the official [Python client](https://docs.apify.com/api/client/python/docs.md): `pip install apify-client`.
- **Any other language** — 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

## ImmobilienScout24 Scraper Pro — German Real Estate Data Extraction

Extract structured property listings from **ImmobilienScout24.de** — Germany's #1 real estate portal with over 1 million active listings. Get prices, rooms, energy class, GPS coordinates, images, agent contacts, and full property details for apartments and houses across all German cities.

**Key use cases:**

- **Real estate market research** — track rent and sale prices per m² across Berlin, Munich, Hamburg, Frankfurt, Cologne and all German regions
- **Investment analysis** — monitor new listings, spot price drops, and compare property values by district
- **Lead generation** — extract agent names, companies, and contact details for agency outreach
- **PropTech data pipelines** — feed structured German property data into valuation models, search products, or databases
- **Competitive intelligence** — track competitor listings, inventory changes, and pricing shifts in real time

### Why This Actor?

ImmobilienScout24 has **no public API and no bulk export**. The site uses aggressive anti-bot protection (AWS WAF / Akamai) that blocks most automated access. This actor uses a **hybrid anti-bot engine** — a headless browser obtains anti-bot tokens, then high-concurrency HTTP requests with JSON API consumption and HTML parsing deliver reliable, structured data at scale.

**Compared to other ImmoScout24 scrapers:**

- Hybrid anti-bot handling with AWS WAF challenge mitigation and token refresh
- Session-sticky residential proxy usage for consistent access
- True pagination from the site's search API — not limited to first-page results
- Optional full expose detail extraction for complete property descriptions
- Competitive pricing from **$0.70 per 1,000 listings**

### Extract Real Estate Data for Market Analysis

For every listing, you receive:

| Field | Description |
|-------|-------------|
| **Price** | Rent or sale price in EUR with price type (Kaltmiete/Warmmiete/Kaufpreis) |
| **Rooms** | Number of rooms (Zimmer) |
| **Surface** | Living area in m² (Wohnfläche) |
| **Location** | Full address with city and region |
| **Energy Class** | Energy efficiency rating (Energieausweis) from A+ to H |
| **Images** | Listing photos and thumbnails |
| **Contact** | Agent or agency name and company |
| **Scout ID** | Unique ImmobilienScout24 listing identifier |
| **URL** | Direct link to the listing |
| **Features** | Property features and amenities list |
| **Year Built** | Construction year (when available from expose page) |

### Monitor Competitor Prices Automatically

Set up scheduled runs to track price changes across target neighborhoods:

- **Daily monitoring** for active markets (Berlin, Munich, Hamburg)
- **Weekly tracking** for investment research and smaller cities
- **On-demand extraction** for specific search criteria

The actor supports full pagination, so you can extract hundreds or thousands of listings per run.

### Generate Leads From German Property Data

Extract agent and agency contact information alongside property listings:

- Identify active brokers in specific regions
- Build lead lists for agency outreach campaigns
- Track private sellers vs. professional agencies
- Export contact data to CRM systems via Apify integrations

### Input Parameters

| Parameter | Type | Required | Default | Description |
|-----------|------|----------|---------|-------------|
| `location` | string | Yes | — | City name, zip code or region (e.g. "Berlin", "10117", "München") |
| `category` | string | Yes | "mieten" | "mieten" (rent) or "kaufen" (buy) |
| `propertyType` | string | Yes | "wohnung" | "wohnung" (apartment) or "haus" (house) |
| `maxPages` | integer | No | 1 | Maximum listing pages to scrape (20 listings per page). Use 0 for all pages. |
| `maxItems` | integer | No | 0 | Stop after this many property details (0 = no limit) |
| `fetchDetails` | boolean | No | false | Visit each listing's expose page for full description and year built. Slower, uses more proxy bandwidth (~350 KB per listing). |
| `proxyConfiguration` | object | No | Residential | Use Apify Residential Proxy for best results (recommended) |

#### Example Input

```json
{
  "location": "Berlin",
  "category": "mieten",
  "propertyType": "wohnung",
  "maxPages": 5,
  "maxItems": 100,
  "fetchDetails": true,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": ["RESIDENTIAL"]
  }
}
```

#### Example Output

```json
{
  "scoutId": "123456789",
  "title": "Helle 3-Zimmer-Wohnung mit Balkon in Prenzlauer Berg",
  "url": "https://www.immobilienscout24.de/expose/123456789",
  "price": 1200,
  "priceType": "Kaltmiete",
  "rooms": 3,
  "surface": 85,
  "location": "Prenzlauer Berg, Berlin",
  "energyClass": "C",
  "yearBuilt": 1995,
  "features": ["Balkon", "Einbauküche", "Keller", "Bodenbelag: Parkett"],
  "images": ["https://images.immobilienscout24.de/..."],
  "description": "Lichtdurchflutete 3-Zimmer-Wohnung mit Suedbalkon in ruhiger Seitenstrasse...",
  "contact": {
    "company": "Berliner Wohnraum GmbH",
    "name": "Max Mustermann"
  },
  "currency": "EUR",
  "scrapedAt": "2026-08-27T10:00:00.000Z"
}
```

### Integrations and Recurring Usage

This actor integrates with the full Apify ecosystem:

- **Apify API** — call programmatically from any language (JavaScript, Python, etc.)
- **Webhooks** — get notified when new data is available
- **Google Sheets** — export directly to spreadsheets
- **Make, Zapier, n8n** — connect to automation workflows
- **Scheduled runs** — set up daily or weekly monitoring via Apify Scheduler

**Recommended scheduling:**

| Use Case | Frequency | Notes |
|----------|-----------|-------|
| New listing alerts | Daily | Catch new listings before competitors |
| Price monitoring | Daily or weekly | Track price changes in target areas |
| Market research | Weekly | Build trend datasets over time |
| Lead generation | Weekly | Refresh agent contact database |

### Related Actors

Expand your German and European real estate data coverage:

- [Immowelt Scraper — German Real Estate Listings](https://apify.com/blackfalcondata/immowelt-scraper) — Germany's #2 property portal
- [Kleinanzeigen Immobilien Scraper](https://apify.com/benthepythondev/kleinanzeigen-immobilien-scraper) — Private seller listings from Kleinanzeigen
- [Immobilien Export Pro — ImmoScout24, Kleinanzeigen, Immowelt](https://apify.com/clearpath/immobilien-export-pro) — Cross-platform German real estate data
- [ImmoScout24 ImmobilienScout24 .de|.ch|.at](https://apify.com/memo23/immobilienscout24-scraper) — DACH region coverage with price-cut archive
- [Immoscout24 Detail Scraper](https://apify.com/clearpath/immoscout24-detail-listing-scraper) — Fast detail extraction at 300ms/req

### Frequently Asked Questions

#### Why use this actor instead of the official ImmobilienScout24 API?

The official ImmobilienScout24 REST API is designed for property managers to manage their own listings — it requires a partner contract with OAuth2 authentication and is not available for data extraction or market research. This actor provides an alternative way to access publicly available listing data without needing a partner agreement.

#### What are the best alternatives to ImmobilienScout24 for German real estate data?

Germany's major property portals are ImmobilienScout24 (#1), Immowelt (#2), and Kleinanzeigen (classifieds). Each has different listing coverage and data availability. For comprehensive German market data, combining multiple sources gives the best results.

#### Can I scrape ImmobilienScout24 without an API key?

Yes. This actor does not require an ImmobilienScout24 account, login, or API key. It extracts publicly available property listing data that ImmobilienScout24 displays to all visitors. You only need an Apify account and residential proxy access.

#### How do I get German real estate data for market analysis?

Use this actor to extract property listings by city, district, or region. Set location to any German city (Berlin, Munich, Hamburg, Frankfurt, etc.) and choose rent or buy. The actor returns structured data including prices, sizes, rooms, and locations — ready for analysis in Excel, Google Sheets, or your preferred BI tool.

#### What data fields are available from ImmobilienScout24?

The actor extracts: price (with type), rooms, living area (m²), location/address, energy efficiency class, images, agent contact information, listing features, construction year (with detail mode), and the unique Scout ID. Enable `fetchDetails` for full property descriptions and additional expose data.

#### Is it legal to scrape ImmobilienScout24?

This actor extracts only publicly available property listing data that ImmobilienScout24 displays to all visitors. The data is factual (prices, addresses, sizes) and does not contain private personal information. Use the data responsibly and in compliance with applicable laws and ImmobilienScout24's terms of service.

#### How much does it cost to scrape German property listings?

Pricing is pay-per-result at $0.70 per 1,000 listings (Bronze tier), with lower rates for higher subscription plans. The actor start event costs $0.00005. Enabling `fetchDetails` increases proxy bandwidth usage but provides richer data.

#### Can I track price changes on ImmobilienScout24?

Yes. Schedule regular runs (daily or weekly) and compare results over time. The actor extracts current prices for each listing — by tracking the same Scout IDs across runs, you can identify price drops and market trends.

#### How do I extract German real estate data to CSV or JSON?

Run the actor, then export the dataset from the Apify console as CSV, JSON, Excel, or XML. You can also pull results programmatically via the Apify API or connect directly to Google Sheets, Make, Zapier, or n8n.

#### What regions does this actor cover?

The actor covers all of Germany via ImmobilienScout24.de. Search by city name (Berlin, München, Hamburg), zip code (10117), or region. The actor resolves locations automatically to the matching ImmobilienScout24 search path.

# Actor input Schema

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

City name, zip code or region to search in (e.g. 'Berlin', '10117', 'München')

## `category` (type: `string`):

Rent or buy?

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

Type of property to search for.

## `maxPages` (type: `integer`):

Maximum number of listing pages to scrape (20 listings per page). Use 0 to scrape all available pages until results run out.

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

Stop after scraping this many property details (0 = no limit).

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

Visit each listing's expose page to extract the full description text and year built. Much slower and uses significantly more proxy bandwidth (~350 KB per listing). When off you still get title, price, rooms, surface, energy class, address, features, images and contact from the search API.

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

Use Apify Residential Proxy for best results (recommended - IS24 blocks datacenter IPs).

## Actor input object example

```json
{
  "location": "Berlin",
  "category": "mieten",
  "propertyType": "wohnung",
  "maxPages": 1,
  "maxItems": 0,
  "fetchDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}
```

# Actor output Schema

## `listings` (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 = {
    "location": "Berlin",
    "category": "mieten",
    "propertyType": "wohnung",
    "maxPages": 1,
    "maxItems": 0,
    "fetchDetails": false,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ]
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ahmed_jasarevic/immobilienscout24-scraper-pro").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 = {
    "location": "Berlin",
    "category": "mieten",
    "propertyType": "wohnung",
    "maxPages": 1,
    "maxItems": 0,
    "fetchDetails": False,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
    },
}

# Run the Actor and wait for it to finish
run = client.actor("ahmed_jasarevic/immobilienscout24-scraper-pro").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 '{
  "location": "Berlin",
  "category": "mieten",
  "propertyType": "wohnung",
  "maxPages": 1,
  "maxItems": 0,
  "fetchDetails": false,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ]
  }
}' |
apify call ahmed_jasarevic/immobilienscout24-scraper-pro --silent --output-dataset

```

## MCP server setup

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

```

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/MJqLhCFxk7tdCGi43/builds/Ut4vxWVitsO1FKacR/openapi.json
