# ImmoScout24 Scraper (API) Pro - 50+ Fields (`clearpath/immoscout24-api-pro`) Actor

ImmoScout24 / ImmobilienScout24 API scraper with 50+ data points per property: realtor contact info, investment data, amenities, energy ratings, and floor plans. For real estate investors, property managers, and market research.

- **URL**: https://apify.com/clearpath/immoscout24-api-pro.md
- **Developed by:** [ClearPath](https://apify.com/clearpath) (community)
- **Categories:** Real estate, Automation, Lead generation
- **Stats:** 152 total users, 5 monthly users, 100.0% runs succeeded, 9 bookmarks
- **User rating**: 2.00 out of 5 stars

## Pricing

$69.00/month + usage

To use this Actor, you pay a monthly rental fee to the developer. The rent is subtracted from your prepaid usage every month after the free trial period.You also pay for the Apify platform usage, which gets cheaper the higher Apify subscription plan you have.

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

## What's an Apify Actor?

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

## How to integrate an Actor?

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

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

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

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

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

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

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

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

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

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

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


# README

## 🏡 ImmoScout24 API Pro - The fastest and most sophisticated unofficial API you will find

> **🛠️ Updates (May 2026):**
> - **New — exclude new-build projects:** The `excludeNewBuildProjects` option returns only standard resale and rental listings, skipping new-build developer projects and their individual units.
> - **Shape searches:** Searches drawn across multiple separate areas could previously include listings from outside the drawn boundaries. Now accurate.

**The most comprehensive ImmoScout24 scraper with detailed property data, contact information, and professional insights.**

[![asciicast](https://asciinema.org/a/8wOi2b4iPBBbgm3HjwsnWVFv1.svg)](https://asciinema.org/a/8wOi2b4iPBBbgm3HjwsnWVFv1)

<table>
<tr>
<td colspan="3" style="padding:10px 14px;background:#03FFD0;border:none;border-radius:4px 4px 0 0">
<span style="color:#1C1917;font-size:14px;font-weight:700;letter-spacing:0.5px">Clearpath German Real Estate</span>
<span style="color:#333;font-size:13px">&nbsp;&nbsp;&bull;&nbsp;&nbsp;The fastest German property data on Apify</span>
</td>
</tr>
<tr>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 0 4px;border-right:none;border-top:none;vertical-align:top;width:33%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-zl9ZT20jiJtqKVOIA-kfERz7A37l-ImmoScout24-canva2.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/clearpath/immoscout24-apply-bot" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">ImmoScout24 Apply Bot</a><br>
<span style="color:#78716C;font-size:12px">Auto-apply to listings</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-right:none;border-top:none;vertical-align:top;width:33%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-Yu9fmARTOt79Ungbn-PTLhKqKWa5-kleinanzeigen-immobilien-api-pro-logo.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/clearpath/kleinanzeigen-immobilien-api-pro" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Kleinanzeigen Immobilien Pro</a><br>
<span style="color:#78716C;font-size:12px">Kleinanzeigen.de listings</span>
</td>
<td style="padding:12px 16px;border:1px solid #E7E5E4;border-radius:0 0 4px 0;border-top:none;vertical-align:top;width:33%">
<img src="https://apify-image-uploads-prod.s3.us-east-1.amazonaws.com/DSvMCAwsufMyZeLyt-actor-rfUFdb0huw88MIU1k-h35QRTa0k4-immobilien-export-pro-logo2.png" width="24" height="24" style="vertical-align:middle"> &nbsp;<a href="https://apify.com/clearpath/immobilien-export-pro" style="color:#1C1917;text-decoration:none;font-weight:700;font-size:14px">Immobilien Export Pro</a><br>
<span style="color:#78716C;font-size:12px">Cross-platform export</span>
</td>
</tr>
</table>

<br>

<table><tr>
<td style="border-left:4px solid rgb(76,148,94);padding:12px 16px;font-weight:600">~1000 listings per minute with the richest data output on Apify, hands down.</td>
</tr></table>

#### Copy to your AI assistant

Copy this block into ChatGPT, Claude, Cursor, or any LLM to start using this actor.

````

clearpath/immoscout24-api-pro on Apify. Call: ApifyClient("TOKEN").actor("clearpath/immoscout24-api-pro").call(run\_input={...}), then client.dataset(run\["defaultDatasetId"]).list\_items().items for results. Key inputs: startUrls (array of strings, required), monitorMode (boolean, default false), pageLimit (integer, default 0). Full actor spec (input schema with all params/enums/defaults, output dataset fields, README): GET https://api.apify.com/v2/acts/clearpath~immoscout24-api-pro/builds/default (Bearer TOKEN) → inputSchema, actorDefinition.storages.dataset, readme. Pricing: $69/month rental. Get token: https://console.apify.com/account/integrations

````

### 📋 Changelog

#### May 2026
- **New Feature**: `excludeNewBuildProjects` option to skip new-build developer projects and their individual units, returning only standard resale and rental listings
- **Improvement**: Large searches now return significantly more results, up to 8,000 listings per run

#### January 2026
- **Critical Fix**: Monitor mode duplicate listings bug - improved deduplication logic

Transform your German real estate operations with enterprise-grade property intelligence. Get everything from basic listings to complete property profiles including realtor contact details, comprehensive amenities, and investment-ready data.

🎯 **Start Your Free Trial** - Get detailed property data in under 2 minutes. No credit card required.

🎥 **Product Demo: Berlin Apartment Bot Setup**

Watch how to create a complete automated rental monitoring system in just 2 minutes. See live setup from search URL to Telegram notifications.
<a href="https://app.supademo.com/demo/cmca97klw1hwg8qsze8fsyvbo" title="How to scrape ImmoScout24 API" target="_blank">
    <img src="https://i.postimg.cc/26wvV3R3/immoscout24-api-lite-product-demo.jpg" alt="How to scrape ImmoScout24 API" />
</a>

### 🚀 Why Choose ImmoScout24 API Pro?

#### ⚡ Lightning Fast Performance
Unlike browser-based scrapers that take minutes, API Pro delivers results in seconds:
- **Blazing speed** - Processes 1000+ properties within seconds
- **No browser overhead** - Our API uses performant requests for maximum efficiency
- **Minimal resource usage** - Runs efficiently on unrivaled 128MB-512MB memory

#### 📊 Complete Property Intelligence
Unlike basic scrapers that only provide surface-level data, Pro delivers **50+ detailed data points** per property:
- **Full property descriptions** with amenities and features
- **Complete contact information** - realtor names and phone numbers
- **Investment data** - year built, condition, deposit costs, heating details
- **Media galleries** - all images, floor plans, and documents
- **Location insights** - precise coordinates, neighborhood details

#### 🎯 Perfect for Monitoring
- **Real-time alerts** - Get notified instantly when new listings match your criteria
- **Monitor mode** - Only see genuinely new properties since your last check
- **Telegram integration** - Receive instant notifications on your phone
- **Multiple search support** - Monitor several searches simultaneously

#### 💼 Built for Professionals
- **Real Estate Investors** - Get investment-ready data with financial details
- **Property Managers** - Access complete property portfolios with contact info
- **Market Researchers** - Comprehensive datasets for analysis
- **Lead Generation** - Direct access to realtor contact information

#### ⚡ Performance & Reliability
- **Lightning fast** - Processes hundreds of properties within seconds
- **Scalable** - Handle thousands of properties in a single run
- **Reliable** - Enterprise-grade error handling and retry mechanisms
- **Cost-effective** - $69/month for unlimited professional data

### 🆚 Pro vs Lite Comparison

| Feature | **Pro** | Lite |
|---------|---------|------|
| **Basic Property Data** | ✅ | ✅ |
| **Detailed Descriptions** | ✅ | ❌ |
| **Realtor Details** | ✅ Name, Phone | ❌ |
| **Property Amenities** | ✅ 50+ attributes | ❌ |
| **Investment Data** | ✅ Year built, condition, costs | ❌ |
| **Media Gallery** | ✅ All images, floor plans, PDFs | ✅ Same as Pro |
| **Monitor Mode** | ✅ With detailed data | ✅ Basic data only |
| **Pricing** | $69/month | $39/month |

### 💰 Transparent Pricing

**Simple, predictable pricing for professionals:**

- **Monthly Subscription**: $69/month
- **Minimal resource usage** - Runs efficiently on 256MB-512MB memory
- **No hidden fees** - What you see is what you pay

**ROI Calculator**: With detailed contact information, just **one successful deal** from our data typically pays for months of usage.

### 🎯 Professional Use Cases

#### 🏢 Real Estate Investment
```javascript
// Get investment-ready property data
{
  "year_constructed": 1995,
  "condition": "well_maintained",
  "deposit_costs": "3.600,00 €",
  "heating_costs": 120,
  "rent_cold": 1200,
  "rent_total": 1450,
  "size": "75"
}
````

#### 📞 Lead Generation

```javascript
// Direct access to realtor contacts
{
  "contact": {
    "type": "agent",
    "name": "Maria Schmidt",
    "company": "Schmidt Immobilien GmbH",
    "phone_number": "+49 30 12345678",
    "url": "https://www.schmidt-immobilien.de"
  }
}
```

#### 📊 Market Analysis

```javascript
// Comprehensive property attributes
{
  "fitted_kitchen": true,
  "heating_type": "central_heating",
  "parking_info": "1 garage space included",
  "pets_allowed": true,
  "balcony_terrace": true
}
```

#### Complete automation pipeline

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

const client = new ApifyApi({ token: 'your_apify_token' });

const runFullPipeline = async () => {
    // Step 1: Monitor for new listings
    const monitorRun = await client.actor('immoscout24-api-lite').call({
        startUrls: ["https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?price=-1500"],
        monitorMode: true,
        telegramUserId: "your_telegram_id"
    });

    // Step 2: Get monitoring results
    const monitorData = await client.dataset(monitorRun.defaultDatasetId).listItems();
    const newListings = monitorData.items.filter(item => !item.monitor_summary);

    if (newListings.length > 0) {
        console.log(`Found ${newListings.length} new listings`);

        // Step 3: Auto-apply to suitable listings
        const applyRun = await client.actor('immoscout24-apply-bot').call({
            urls: newListings.map(item => item.url).slice(0, 10), // Max 10 per run
            username: "your_email@example.com",
            password: "your_password",
            applicationTemplate: "Sehr geehrte Damen und Herren,\n\nich interessiere mich sehr für Ihre Immobilie..."
        });

        console.log("Complete pipeline executed successfully!");
    }
};

// Run pipeline every minute
setInterval(runFullPipeline, 1 * 60 * 1000);
```

### 🔧 Quick Start Guide

#### Step-by-Step Instructions

1. **Create an Apify account** [here](https://console.apify.com/sign-up)
   - Register for a free Apify account
   - No credit card required for free accounts

2. **Get your search URLs**
   - Go to ImmoScout24.de
   - Set up your search filters (location, price, rooms, etc.)
   - Copy the complete URLs from your browser

3. **Run the actor**
   - Navigate to the ImmoScout24 API Pro
   - Enter your list of search URLs
   - Configure monitor mode for ongoing monitoring
   - Add your Telegram user ID for notifications
   - Click "Run"

4. **Access your data**
   - View results directly in the Apify console
   - Download as JSON, CSV, or Excel
   - Use the Apify API to integrate with your applications

#### 1. Basic Property Scraping

```json
{
  "startUrls": [
    "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?price=-2000"
  ],
  "pageLimit": 10
}
```

#### 2. Monitor Mode with Notifications

```json
{
  "startUrls": [
    "https://www.immobilienscout24.de/Suche/de/bayern/muenchen/wohnung-mieten"
  ],
  "monitorMode": true,
  "telegramUserId": "123456789"
}
```

##### Important: Bot Permission Setup

**⚠️ Before notifications will work, you must send a message to the notification bot first:**

1. **Find the bot** - Search for `@immoscout24_api_bot` on Telegram
2. **Send any message** - Type `/start` or any text to initiate contact
3. **Grant permission** - Done! This allows the bot to send you notifications

Without this initial contact, Telegram's privacy settings prevent the bot from sending you messages, even with your correct User ID.

#### 3. Investment Analysis Pipeline

```javascript
// 1. Scrape properties with Pro
const propertiesRun = await client.actor('immoscout24-api-pro').call({
  startUrls: ["https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen"],
  pageLimit: 100
});

// 2. Filter by investment criteria
const properties = await client.dataset(propertiesRun.defaultDatasetId).listItems();
const investmentProperties = properties.items.filter(property =>
  property.year_constructed > 1990 &&
  property.condition === 'well_maintained' &&
  property.purchase_price < 500000
);

// 3. Contact realtors directly
investmentProperties.forEach(property => {
  console.log(`Contact: ${property.contact.name} - ${property.contact.phone_number}`);
});
```

### ⬇️ Input

The actor accepts the following configuration:

- `startUrls` (required): Array of ImmoScout24 search URLs to scrape
- `monitorMode` (optional): Enable to only get new listings since last run
- `pageLimit` (optional): Maximum pages to scrape (0 = unlimited, each page ~20-25 listings)
- `telegramUserId` (optional): Your Telegram user ID for notifications (monitor mode only)
- `telegramNotificationLimit` (optional): Max notifications per run (default: 10)
- `proxyConfiguration` (optional): Proxy settings for optimal performance

**Example Input:**

```json
{
  "startUrls": [
    "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?price=-2000",
    "https://www.immobilienscout24.de/Suche/de/bayern/muenchen/wohnung-kaufen"
  ],
  "monitorMode": false,
  "pageLimit": 0,
  "telegramUserId": "123456789",
  "telegramNotificationLimit": 10
}
```

### ⬆️ Output

The actor outputs comprehensive property information with detailed data for each listing. **Sample output:**

```json
{
  "expose_id": 159204897,
  "listing_url": "https://www.immobilienscout24.de/expose/159204897",
  "description": "Diese charmante Dachgeschosswohnung mit ca. 52,92 m² Wohnfläche bietet eine ideale Gelegenheit für Eigennutzer und Kapitalanleger. Sie befindet sich in einem gepflegten Mehrfamilienhaus in zentraler Lage von Elmshorn und überzeugt durch clevere Raumaufteilung sowie ein zusätzliches Dachstudio mit ca. 11,49 m² Nutzfläche.\n\nDas Highlight der Wohnung ist das geräumige Wohnzimmer mit Zugang zur gemütlichen Loggia, die einen geschützten Platz im Freien bietet. Die Küche ist mit einer praktischen Einbauküche ausgestattet, das Schlafzimmer bietet Platz für ein großes Bett und Stauraum. Das moderne Duschbad vervollständigt das Raumangebot.\n\nEin Extra ist das separate Dachstudio, das über eine Treppe im Flur erreichbar ist. Ideal für Homeoffice, Gäste- oder Hobbyraum. Hochwertige Veluxfenster sorgen in allen Räumen für angenehmes Tageslicht und gute Belüftung. Die Dachschrägen verleihen der Wohnung eine gemütliche Atmosphäre, ohne an Wohnkomfort einzubüßen.\n\nZur Wohnung gehören ein Kellerraum mit ca. 11,28 m² Nutzfläche und ein Tiefgaragen-Stellplatz, der bequemes und sicheres Parken ermöglicht. Die Beheizung erfolgt über eine eigene Gastherme (Baujahr 2024). Zusätzlich bietet der gepflegte Gemeinschaftsbereich der Wohnanlage weitere Abstellmöglichkeiten.\n\nDas monatliche Hausgeld beträgt derzeit pauschal 200 €. Die Instandhaltungsrücklage beträgt per 31.12.2023 insgesamt 27.170,77 €, anteilig auf die Wohnung entfallen 1.548,73 €.\n\nDank der zentralen Lage sind Einkaufsmöglichkeiten, öffentliche Verkehrsmittel und weitere Einrichtungen des täglichen Bedarfs schnell erreichbar. Diese Wohnung kombiniert ein durchdachtes Wohnkonzept mit attraktiven Nutzungsmöglichkeiten – eine hervorragende Gelegenheit für Kapitalanleger und Eigennutzer.\n\nZur optimalen Visualisierung arbeiten wir teilweise mit gestagten Bildern. Weitere Bilder sehen Sie unter:\n\nhttps://bit.ly/42MSu0t\n\nDen ungestagten Zustand zeigen per 3D VIRTUAL TOUR :\n\nhttps://my.matterport.com/show/?m=JsmaYNsLr96",
  "furnishing_description": "- Loggia\n- Duschbad\n- Einbauküche\n- Laminatböden\n- TG-Stellplatz\n- Kellerraum ca. 11,28 m² Nutzfläche\n- Dachstudio ca. 11,49 m² Nutzfläche\n- Genehmigung für Ausbau Dachstudio liegt nicht vor\n- eigene Gastherme BJ 2024\n- Eigentümergemeinschaft hat sich zuvor selbst verwaltet, neuer Verwalter ist bestellt und erarbeitet Wirtschaftsplan und Hausgeldabrechnungen worüber bei der nächsten Versammlung entschieden werden soll\n- kein Wirtschaftsplan vorhanden, jeder ET zahlt pauschal 200,- mtl.\n- Instandhaltungsrücklage WEG per 31.12.2023: Gesamt € 27.170,77 / Anteilig € 1.548,73",
  "location_description": "Elmshorn – die grüne Stadt an der Krückau – ist mit seinen rund 49.000 Einwohnern eine bunte, dynamische, moderne, impulsive und als sechsgrößte Stadt Schleswig-Holsteins eine überschaubare und beliebte Mittelstadt vor den Toren Hamburgs. \n30 Kilometer nordwestlich von Hamburg gelegen, ist sie sowohl von modernen Wohn- und Geschäftsbauten als auch von zahlreichen stolzen Gebäuden und Wohngebieten aus der Gründer- und Jugendstilzeit durchsetzt. Vielfältige Einkaufs-und Freizeitmöglichkeiten und internationale Gastronomie prägen das Elmshorner Stadtbild. \nDas Bildungsangebot in Elmshorn genießt in der gesamten Region und darüber hinaus einen hervorragenden Ruf. Von der Grund- bis zur Hochschule sind in Elmshorn alle Schulformen vertreten. Für die kleinsten Mitbürger gibt es zahlreiche Kindergärten und Tagesstätten. Zahlreiche Theateraufführungen, Konzerte und Ausstellungen sowie die Stadtbücherei und das Industriemuseum machen Kultur in Elmshorn erlebbar. Verkehrsgünstig gelegen liegt Elmshorn an der Bundesstraße 431 und der Bundesautobahn 23 von Hamburg nach Heide. \nDer Hamburger Hauptbahnhof sowie der Bahnhof Altona sind in ca. 25 Minuten mit der Bundesbahn zu erreichen.",
  "further_notes": "https://my.matterport.com/show/?m=JsmaYNsLr96",
  "address_line_1": "25337, Elmshorn",
  "address_line_2": null,
  "location_lat": null,
  "location_lng": null,
  "online_since": null,
  "title": "3D VIRTUAL TOUR Charmante Dachgeschosswohnung mit TG-Stellplatz in Elmshorn",
  "heating_included_in_ancillary_costs": null,
  "deposit_costs": null,
  "parking_info": "Underground garage, 1",
  "vacant_at_from": "Sofort",
  "publication_state": "active",
  "real_estate_type": "APARTMENT_BUY",
  "property_type": "wohnung_kauf",
  "rent_cold": 0,
  "rent_total": 0.0,
  "purchase_price": 179000.0,
  "private_offer": false,
  "ancillary_costs": 0.0,
  "year_constructed": 1982,
  "condition": "well_kept",
  "size": "52.92",
  "fitted_kitchen": true,
  "garden": false,
  "number_of_floors": "4",
  "cellar": true,
  "house_number": "no_information",
  "rooms": "2",
  "elevator": false,
  "city_district": null,
  "firing_types": "gas",
  "street": "no_information",
  "zip_code": 25337,
  "heating_costs": 0.0,
  "city": "Pinneberg_Kreis",
  "state": "Schleswig_Holstein",
  "pets_allowed": false,
  "balcony_terrace": true,
  "floor": null,
  "picture_count": 10,
  "is_expose_buy": true,
  "visits": null,
  "contact_requests": null,
  "attributes": {
    "obj_regio1": "Schleswig_Holstein",
    "obj_heatingType": "self_contained_central_heating",
    "obj_telekomInternetUrlAddition": "eyJvcnQiOiJFbG1zaG9ybiIsIm9ydHN0ZWlsIjoiIiwic3RyYXNzZSI6IkxhbmdlbG9oZSIsImhhdXNudW1tZXIiOiI3MCIsImtsc2lkIjoxOTA3MzkzMSwiaGF1c251bW1lcnp1c2F0eiI6IiIsInBseiI6IjI1MzM3In0%3D",
    "obj_cId": "472644",
    "obj_newlyConst": "n",
    "obj_balcony": "y",
    "obj_picturecount": "10",
    "obj_usableArea": "22.77",
    "obj_yearConstructed": "1982",
    "obj_privateOffer": "false",
    "obj_galleryAd": "disabled",
    "obj_scoutId": "159204897",
    "obj_noParkSpaces": "1",
    "obj_firingTypes": "gas",
    "obj_hasKitchen": "y",
    "obj_ExclusiveExpose": "false",
    "obj_courtage": "y",
    "geo_bln": "schleswig_holstein",
    "obj_cellar": "y",
    "obj_purchasePriceRange": "4",
    "obj_yearConstructedRange": "4",
    "obj_rentSubsidy": "200",
    "obj_telekomInternetUrlBase": "https://www.telekom.de/festnetz/tarife-und-optionen/internet-dsl",
    "obj_houseNumber": "no_information",
    "obj_energyType": "energy_consumption",
    "obj_livingSpace": "52.92",
    "geo_krs": "pinneberg_kreis",
    "obj_zipCode": "25337",
    "obj_condition": "well_kept",
    "obj_interiorQual": "normal",
    "obj_energyEfficiencyClass": "G",
    "obj_parkingSpace": "underground_garage",
    "obj_street": "no_information",
    "obj_lift": "n",
    "obj_streetPlain": "no_information",
    "obj_typeOfFlat": "roof_storey",
    "obj_noRooms": "2",
    "obj_thermalChar": "204.5",
    "obj_assistedLiving": "n",
    "obj_ityp": "2,active",
    "obj_telekomInternetAvailable": "true",
    "geo_land": "deutschland",
    "obj_immotype": "wohnung_kauf",
    "obj_rented": "n",
    "obj_privateOfferInvestmentCheck": "false",
    "obj_contactFormInputFieldCount": "19",
    "obj_telekomInternetSpeed": "175 MBit/s",
    "obj_cwId": "001.472644",
    "obj_purchasePrice": "179000",
    "obj_numberOfFloors": "4",
    "geo_bg": "elmshorn",
    "obj_noRoomsRange": "2",
    "obj_garden": "n",
    "evt_count_pm_sig": "showqualicontactform",
    "obj_barrierFree": "n",
    "obj_international": "n",
    "obj_regio3": "Elmshorn",
    "obj_objectnumber": "200-6321",
    "obj_livingSpaceRange": "2",
    "obj_regio2": "Pinneberg_Kreis"
  },
  "pictures": [
    {
      "type": "full",
      "full_url": "https://pictures.immobilienscout24.de/listings/fc520a7d-8635-4bf7-ae2f-857876722527-1904156343.jpg",
      "web_url": "https://pictures.immobilienscout24.de/listings/fc520a7d-8635-4bf7-ae2f-857876722527-1904156343.jpg",
      "preview_url": "https://pictures.immobilienscout24.de/listings/fc520a7d-8635-4bf7-ae2f-857876722527-1904156343.jpg",
      "caption": "200-6321_Sommerlicher Balkon"
    },
    {
      "type": "web",
      "url": "https://pictures.immobilienscout24.de/listings/fc520a7d-8635-4bf7-ae2f-857876722527-1904156343.jpg",
      "caption": "200-6321_Sommerlicher Balkon"
    },
    {
      "type": "preview",
      "url": "https://pictures.immobilienscout24.de/listings/fc520a7d-8635-4bf7-ae2f-857876722527-1904156343.jpg",
      "caption": "200-6321_Sommerlicher Balkon"
    },
    {
      "type": "full",
      "full_url": "https://pictures.immobilienscout24.de/listings/42d8296f-dfe6-4268-851b-aa354b81cb85-1904156399.jpg",
      "web_url": "https://pictures.immobilienscout24.de/listings/42d8296f-dfe6-4268-851b-aa354b81cb85-1904156399.jpg",
      "preview_url": "https://pictures.immobilienscout24.de/listings/42d8296f-dfe6-4268-851b-aa354b81cb85-1904156399.jpg",
      "caption": "Spitzboden"
    },
    {
      "type": "web",
      "url": "https://pictures.immobilienscout24.de/listings/42d8296f-dfe6-4268-851b-aa354b81cb85-1904156399.jpg",
      "caption": "Spitzboden"
    },
    {
      "type": "preview",
      "url": "https://pictures.immobilienscout24.de/listings/42d8296f-dfe6-4268-851b-aa354b81cb85-1904156399.jpg",
      "caption": "Spitzboden"
    },
    {
      "type": "document",
      "url": "https://d2qfnj9mv71tll.cloudfront.net/f98be6a9-9fa8-4586-b84d-292be1743321-1915250324.pdf",
      "name": "Energieausweis"
    },
    {
      "type": "document",
      "url": "https://d2qfnj9mv71tll.cloudfront.net/d0170f0a-131e-4d5f-8370-496bd373defa-1914221307.pdf",
      "name": "Grundriss"
    }
  ],
  "counteroffer_available": true,
  "sleeping_rooms": "1",
  "bathrooms": "1",
  "costs": [
    {
      "type": "TEXT",
      "label": "Purchase price:",
      "text": "€179,000"
    },
    {
      "type": "TEXT",
      "label": "Price/m²:",
      "text": "€3,382/m²",
      "additionalInfoText": "Calculated by ImmoScout24"
    },
    {
      "type": "TEXT",
      "label": "Maintenance fee:",
      "text": "€200"
    },
    {
      "type": "TEXT",
      "label": "Commission for the purchaser:",
      "text": "3,9 % v. Kaufpreis"
    },
    {
      "type": "LINK",
      "label": "Finance this apartment:",
      "reference": {
        "type": "URL_LINK",
        "target": "INTERNAL",
        "label": "Start now",
        "url": "is24://financingCalculator?pag_source=expose_criteria&exposeId=159204897&companyWideCustomerId=001.472644&fullGeoCodeId=1276015009013&postcode=25337&city=Elmshorn&quarter=&price=179000&funds=35800",
        "trackingConfig": {
          "category": "expose",
          "action": "expose",
          "label": "finance_widget",
          "event_name": "productintegration_click",
          "event_product": "search",
          "parameters": {
            "event_parameter_1": "finance_widget"
          }
        }
      }
    }
  ],
  "finance_costs": {
    "type": "FINANCE_COSTS",
    "title": "Costs",
    "purchasePrice": {
      "label": "Purchase price",
      "text": "€179,000",
      "value": 179000
    },
    "additionalCosts": {
      "label": "Additional costs",
      "text": "€22,196",
      "value": 22196
    },
    "totalCosts": {
      "label": "Total costs",
      "text": "€201,196",
      "value": 201196
    },
    "brokerCommission": {
      "label": "Broker commission",
      "percentage": "3.9 %",
      "amount": "€6,981",
      "value": 6981
    },
    "landTransferTax": {
      "label": "Land transfer tax",
      "percentage": "6.5 %",
      "amount": "€11,635",
      "value": 11635
    },
    "notaryCosts": {
      "label": "Notary costs",
      "percentage": "1.5 %",
      "amount": "€2,685",
      "value": 2685
    },
    "landRegistryEntry": {
      "label": "Land registry entry",
      "percentage": "0.5 %",
      "amount": "€895",
      "value": 895
    },
    "monthlyRate": "Finance from €583 / month",
    "footer": "Based on an interest rate of 3.28 % (average market data), €35,800 equity, 1 % initial repayment, 10 years fixed nominal interest rate"
  },
  "year_constructed_according_to_energy_certificate": "1983",
  "price_info": {
    "type": "PRICE_INFO",
    "title": "Information about price and location",
    "attributes": [
      {
        "type": "TEXT",
        "label": "Object state:",
        "text": "Well-kept"
      },
      {
        "type": "TEXT",
        "label": "Interior quality:",
        "text": "Normal"
      }
    ],
    "priceBar": {
      "minPrice": "€1,900 /m²",
      "maxPrice": "€5,400 /m²",
      "minSimilarPrice": "€2,450 /m²",
      "maxSimilarPrice": "€4,150 /m²",
      "actualObject": "This listing €3,383 /m²",
      "priceIndicatorPositionInPercent": 0.42
    },
    "calculationInformation": {
      "title": "More information regarding this address",
      "offersLowerSimilarPrice": "15,9% within lower price range",
      "offersWithSimilarPrice": "68.2% within similar price range",
      "offersHigherSimilarPrice": "15,9% within higher price range",
      "furtherInformation": {
        "target": "WEB",
        "type": "URL_LINK",
        "label": "Sources and further information",
        "url": "https://www.immobilienscout24.de/immobilienbewertung/fragen-und-antworten/preis-lageinformationen-wohnung-miete.html"
      }
    }
  },
  "reference_list": [
    {
      "type": "URL_LINK",
      "label": "IMMOBILIEN-BEWERTUNG",
      "url": "https://bit.ly/42PioR7",
      "target": "WEB"
    },
    {
      "type": "URL_LINK",
      "label": "Videoporträt",
      "url": "https://bit.ly/42NRjxG",
      "target": "WEB"
    },
    {
      "type": "URL_LINK",
      "label": "HOMEPAGE",
      "url": "https://bit.ly/42MSu0t",
      "target": "WEB"
    },
    {
      "type": "URL_LINK",
      "label": "3D VIRTUAL TOUR",
      "url": "https://my.matterport.com/show/?m=JsmaYNsLr96",
      "target": "WEB"
    }
  ],
  "virtual_tour": {
    "url": "https://my.matterport.com/show/?m=JsmaYNsLr96",
    "imageUrl": "https://s3-eu-west-1.amazonaws.com/is24-search-static/360-default-image-01.jpg",
    "caption": "3D VIRTUAL TOUR"
  },
  "no_of_parking_spaces": "1",
  "heating_type": "self_contained_central_heating",
  "type_of_flat": "roof_storey",
  "is_rented": false,
  "is_barrier_free": false,
  "contact": {
    "premium_profile_required_for_contacting": true,
    "type": "agent",
    "name": "Mr. Monty Maximilian Albrecht",
    "company": "MAKRO IMMOBILIEN, Albrecht GbR",
    "logo": "https://pictures.immobilienscout24.de/usercontent/12f62200-ca79-44d2-94a5-37ef92061655.JPG",
    "immoscout_agent_url": "https://www.immobilienscout24.de/anbieter/makro-immobilien-albrecht-gbr/a1985a4497c21f7e50f",
    "portrait_url": "https://pictures.immobilienscout24.de/usercontent/36fbd6cb-9326-4d0f-9b78-56482e70426d.JPG/ORIG/resize/%WIDTH%x%HEIGHT%%3E/format/webp/quality/80",
    "address": "Ramskamp 15-17\n25337 Elmshorn",
    "url": null,
    "phone_number": "+49 4121 750750"
  },
  "source_url": "https://www.immobilienscout24.de/Suche/de/schleswig-holstein/pinneberg-kreis/elmshorn/wohnung-kaufen?enteredFrom=one_step_search",
  "scraped_timestamp": "2025-06-27T07:28:10.469062+00:00"
}
```

#### Property Types

The property `real_estate_type` can be one of:

- APARTMENT\_BUY / APARTMENT\_RENT
- HOUSE\_BUY / HOUSE\_RENT
- INDUSTRY / OFFICE / STORE
- ASSISTED\_LIVING / GASTRONOMY
- SHORT\_TERM\_ACCOMMODATION / INVESTMENT
- LIVING\_RENT\_SITE / LIVING\_BUY\_SITE
- GARAGE\_RENT / GARAGE\_BUY
- TRADE\_SITE / SPECIAL\_PURPOSE
- FLAT\_SHARE\_ROOM / HOUSE\_TYPE
- COMPULSORY\_AUCTION / SENIOR\_CARE

### 📋 Complete Data Schema

#### Property Details

- **Basic Info**: Title, description, property type, real estate type
- **Financial**: Rent (cold/total), purchase price, ancillary costs, deposit, detailed cost breakdown
- **Physical**: Size, rooms, floor, year built, condition, sleeping rooms, bathrooms
- **Location**: Full address (if available), coordinates, district, neighborhood
- **Features**: Kitchen, garden, cellar, elevator, balcony, parking
- **Utilities**: Heating type, heating costs, pets allowed
- **Market Data**: Price comparisons, location-based pricing information
- **Energy**: Year constructed according to energy certificate

#### Contact Information

- **Realtor Details**: Name, company, phone, website, ImmoScout24 profile
- **Professional Info**: License details, company logo, portrait image, full address
- **Contact Type**: Private seller vs. professional agent

#### Media & Documents

- **Images**: High-resolution photos, floor plans, property documents
- **Documents**: PDFs, additional property information
- **Virtual Tours**: 360° views, 3D tours, and interactive property walkthroughs (if available)
- **Reference Links**: Virtual tours, agent websites, property evaluations

#### Financial Intelligence

- **Cost Breakdown**: Purchase price, maintenance fees, commission details
- **Financing Options**: Monthly rates, interest calculations, equity requirements
- **Market Analysis**: Price per m², comparable properties, market positioning
- **Investment Data**: Total costs, additional fees, financing scenarios

#### Enhanced Features

- **Counteroffer Availability**: Shows whether a counteroffer is available
- **Detailed Room Information**: Specific sleeping rooms and bathroom counts
- **Comprehensive Costs**: All associated fees and charges
- **Agent Profiles**: Direct links to realtor profiles and portfolios
- **Virtual Tour Detection**: Automatic extraction of 3D tours and 360° views

#### Perfect for Professionals

- **Investment firms** - Instant access to new opportunities with complete data
- **Property managers** - Monitor portfolio expansions with contact details
- **Real estate agents** - Track market activity with competitor insights

### 🔌 Professional Integrations

#### CRM Integration

```javascript
// Sync with your CRM system
const newProperties = await getNewProperties();
newProperties.forEach(async property => {
  await crm.createLead({
    name: property.contact.name,
    phone: property.contact.phone_number,
    property: property.title,
    value: property.purchase_price || property.rent_total
  });
});
```

#### Investment Analysis

```python
import pandas as pd
from apify_client import ApifyClient

## Analyze investment opportunities
client = ApifyClient("your_token")
run = client.actor('immoscout24-api-pro').call({
    "startUrls": ["https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen"]
})

## Convert to DataFrame for analysis
properties = client.dataset(run['defaultDatasetId']).list_items().items
df = pd.DataFrame(properties)

## Calculate investment metrics
df['price_per_sqm'] = df['purchase_price'] / df['size'].astype(float)
df['rental_yield'] = (df['rent_total'] * 12) / df['purchase_price'] * 100

## Find best opportunities
best_investments = df[
    (df['rental_yield'] > 4) &
    (df['year_constructed'] > 1990) &
    (df['condition'] == 'well_maintained')
].sort_values('rental_yield', ascending=False)
```

### 🛡️ Enterprise Features

#### Reliability & Performance

- **99.9% uptime** with automatic failover
- **Concurrent processing** - Handle multiple searches simultaneously
- **Smart rate limiting** - Optimized for maximum throughput
- **Error recovery** - Automatic retries with exponential backoff

#### Data Quality

- **Comprehensive validation** - All data points verified
- **Consistent formatting** - Standardized output across all properties
- **Real-time updates** - Fresh data with every run
- **Duplicate detection** - Clean, unique datasets

#### Security & Compliance

- **GDPR compliant** - Only public data extraction
- **Secure processing** - Enterprise-grade data handling
- **Audit trails** - Complete run logging and monitoring

### 🔧 Advanced Usage Examples

#### JavaScript Integration

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

const client = new ApifyApi({ token: 'your_apify_token' });

const run = await client.actor('immoscout24-api-pro').call({
    startUrls: [
        "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-kaufen"
    ],
    monitorMode: true,
    telegramUserId: "123456789"
}, {
    memory: 2048 // Use 2GB for large batches
});

const dataset = await client.dataset(run.defaultDatasetId).listItems();
console.log(`Extracted data from ${dataset.items.length} properties`);
```

#### Python Integration

```python
from apify_client import ApifyClient

client = ApifyClient("your_apify_token")

run = client.actor('immoscout24-api-pro').call(
    run_input={
        "startUrls": [
            "https://www.immobilienscout24.de/Suche/de/bayern/muenchen/wohnung-mieten"
        ],
        "monitorMode": True,
        "telegramUserId": "123456789"
    },
    memory_mbytes=2048
)

dataset_items = client.dataset(run['defaultDatasetId']).list_items().items
print(f"Extracted data from {len(dataset_items)} properties")
```

### 📊 Popular Use Cases

#### Apartment Hunting

1. **🔍 Monitor** - API Pro detects new listings instantly
2. **📋 Extract Details** - Get fully available property data for each listing
3. **📱 Get Notified** - Receive Telegram alerts for each step
4. **🤖 Optional: Auto-Apply** - Our Application Bot submits applications automatically

#### Real Estate Investment Analysis

- Extract comprehensive property data for investment decisions
- Track pricing trends across different markets
- Analyze property features and neighborhood characteristics
- Build automated valuation models

#### Market Research & Analytics

- Collect large datasets for academic or commercial research
- Monitor competitive pricing and availability
- Generate market reports and insights
- Track property market trends over time

#### Property Management

- Extract detailed information for portfolio analysis
- Monitor competitor properties and pricing
- Automate property data collection for CRM systems
- Generate comprehensive property reports

#### Integration with Other Tools

- **Zapier/Make**: Automate workflows with 3000+ apps
- **Google Sheets**: Automatically populate spreadsheets
- **CRM Systems**: Import property data directly
- **Business Intelligence**: Feed data into analytics platforms

### 📞 Professional Support

#### Dedicated Support for Pro Users

- **Priority response** - 24-hour response time for Pro users
- **Technical consultation** - Integration and optimization guidance
- **Custom solutions** - Tailored implementations for enterprise needs

### ❓ Frequently Asked Questions

#### How reliable is the scraper?

Our scraper is designed to handle ImmoScout24's anti-bot measures and is continuously updated to adapt to site changes. With over 99%+ success rate for valid URLs.

#### What happens if a listing is no longer available?

The scraper will handle unavailable listings gracefully while continuing to process other URLs in your list.

#### How many listings can I get per run?

Each run returns up to 8,000 listings. This is a fair-use limit that keeps runs fast and reliable. For larger areas, split your search into narrower searches (by city, district, or price range) and run them separately.

#### Can I use this data commercially?

Yes, the data extracted can be used for commercial purposes. However, we recommend reviewing ImmoScout24's terms of service regarding data usage.

#### What's the difference between Pro and Lite?

- **Pro**: Comprehensive property data, all available contact information, detailed descriptions, investment data
- **Lite**: Fast monitoring, basic data, real-time alerts, cost-effective for simple monitoring

#### Do I need proxies?

The actor automatically uses Apify's datacenter proxy configuration when available.

### 🙋‍♀️ Custom Solutions

Need help or a custom solution? We offer:

- **Custom data fields** - Extract additional information specific to your needs
- **Bulk processing** - Handle larger datasets with custom configurations
- **API integrations** - Direct integration with your existing systems
- **White-label solutions** - Branded scraping solutions for your business

Contact us at: max@mapa.slmail.me

### 🚀 Get Started Today

#### Free Trial

1. **Sign up** for Apify account (free)
2. **Try Pro** with your search URL (no credit card required)
3. **See the difference** - Compare with basic scrapers

#### Production Setup

1. **Subscribe** to Pro plan ($69/month)
2. **Configure** your search parameters
3. **Run** your first comprehensive scrape
4. **Integrate** with your existing workflows

### 🔗 Related Professional Tools

Maximize your real estate operations with our complete toolkit:

#### 🤖 ImmoScout24 Apply Bot

- **What it does**: Automatically submits rental applications to property listings
- **Perfect for**: Converting detected listings into submitted applications
- **Pricing**: $10/month (currently FREE during launch)
- **Integration**: Complete the automation pipeline from detection to application

***

**Ready to transform your real estate operations?**

[**Start Free Trial →**](https://console.apify.com/actors/s609dyAJSrju54QSh) | [**View Pricing →**](#transparent-pricing) | [**Compare with Lite →**](https://console.apify.com/actors/mwBC2oe2vWbDfbeVb)

*Join other real estate professionals already using ImmoScout24 API Pro to gain competitive advantage in the German property market.*

# Actor input Schema

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

List of ImmoScout24 search URLs to scrape

## `monitorMode` (type: `boolean`):

Enable monitor mode to only return new listings since the last run

## `pageLimit` (type: `integer`):

Maximum number of pages to scrape (0 = all available pages, each page has ~20-25 listings). Each run returns up to 8,000 listings.

## `excludeNewBuildProjects` (type: `boolean`):

Skip new-build developer projects and their individual units, returning only standard resale and rental listings

## `telegramUserId` (type: `string`):

Optional: Your Telegram user ID for notifications (only used in monitor mode). Get it from @userinfobot

## `telegramNotificationLimit` (type: `integer`):

Maximum number of Telegram notifications per run (prevents spam)

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

Select proxies to be used by your crawler.

## Actor input object example

```json
{
  "startUrls": [
    "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?exclusioncriteria=swapflat&pricetype=rentpermonth&sorting=2",
    "https://www.immobilienscout24.de/Suche/radius/haus-kaufen?centerofsearchaddress=M%C3%BCnchen;;;;;;&geocoordinates=48.13912;11.58022;20.0"
  ],
  "monitorMode": false,
  "pageLimit": 0,
  "excludeNewBuildProjects": false,
  "telegramNotificationLimit": 10,
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}
```

# 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": [
        "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?exclusioncriteria=swapflat&pricetype=rentpermonth&sorting=2",
        "https://www.immobilienscout24.de/Suche/radius/haus-kaufen?centerofsearchaddress=M%C3%BCnchen;;;;;;&geocoordinates=48.13912;11.58022;20.0"
    ],
    "proxyConfiguration": {
        "useApifyProxy": true
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("clearpath/immoscout24-api-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 = {
    "startUrls": [
        "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?exclusioncriteria=swapflat&pricetype=rentpermonth&sorting=2",
        "https://www.immobilienscout24.de/Suche/radius/haus-kaufen?centerofsearchaddress=M%C3%BCnchen;;;;;;&geocoordinates=48.13912;11.58022;20.0",
    ],
    "proxyConfiguration": { "useApifyProxy": True },
}

# Run the Actor and wait for it to finish
run = client.actor("clearpath/immoscout24-api-pro").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "startUrls": [
    "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten?exclusioncriteria=swapflat&pricetype=rentpermonth&sorting=2",
    "https://www.immobilienscout24.de/Suche/radius/haus-kaufen?centerofsearchaddress=M%C3%BCnchen;;;;;;&geocoordinates=48.13912;11.58022;20.0"
  ],
  "proxyConfiguration": {
    "useApifyProxy": true
  }
}' |
apify call clearpath/immoscout24-api-pro --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "command": "npx",
            "args": [
                "mcp-remote",
                "https://mcp.apify.com/?tools=clearpath/immoscout24-api-pro",
                "--header",
                "Authorization: Bearer <YOUR_API_TOKEN>"
            ]
        }
    }
}

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ImmoScout24 Scraper (API) Pro - 50+ Fields",
        "description": "ImmoScout24 / ImmobilienScout24 API scraper with 50+ data points per property: realtor contact info, investment data, amenities, energy ratings, and floor plans. For real estate investors, property managers, and market research.",
        "version": "0.0",
        "x-build-id": "6Uhdjckt6GEdglw1v"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/clearpath~immoscout24-api-pro/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-clearpath-immoscout24-api-pro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/clearpath~immoscout24-api-pro/runs": {
            "post": {
                "operationId": "runs-sync-clearpath-immoscout24-api-pro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/clearpath~immoscout24-api-pro/run-sync": {
            "post": {
                "operationId": "run-sync-clearpath-immoscout24-api-pro",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "required": [
                    "startUrls"
                ],
                "properties": {
                    "startUrls": {
                        "title": "The URLs to scrape (use browser URLs with applied filters you want, e.g. min number of rooms, max rent, etc.)",
                        "type": "array",
                        "description": "List of ImmoScout24 search URLs to scrape",
                        "items": {
                            "type": "string"
                        }
                    },
                    "monitorMode": {
                        "title": "Monitor Mode",
                        "type": "boolean",
                        "description": "Enable monitor mode to only return new listings since the last run",
                        "default": false
                    },
                    "pageLimit": {
                        "title": "Page Limit",
                        "minimum": 0,
                        "type": "integer",
                        "description": "Maximum number of pages to scrape (0 = all available pages, each page has ~20-25 listings). Each run returns up to 8,000 listings.",
                        "default": 0
                    },
                    "excludeNewBuildProjects": {
                        "title": "Exclude new-build projects",
                        "type": "boolean",
                        "description": "Skip new-build developer projects and their individual units, returning only standard resale and rental listings",
                        "default": false
                    },
                    "telegramUserId": {
                        "title": "Telegram User ID",
                        "type": "string",
                        "description": "Optional: Your Telegram user ID for notifications (only used in monitor mode). Get it from @userinfobot"
                    },
                    "telegramNotificationLimit": {
                        "title": "Telegram Notification Limit",
                        "minimum": 1,
                        "maximum": 50,
                        "type": "integer",
                        "description": "Maximum number of Telegram notifications per run (prevents spam)",
                        "default": 10
                    },
                    "proxyConfiguration": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your crawler."
                    }
                }
            },
            "runsResponseSchema": {
                "type": "object",
                "properties": {
                    "data": {
                        "type": "object",
                        "properties": {
                            "id": {
                                "type": "string"
                            },
                            "actId": {
                                "type": "string"
                            },
                            "userId": {
                                "type": "string"
                            },
                            "startedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "finishedAt": {
                                "type": "string",
                                "format": "date-time",
                                "example": "2025-01-08T00:00:00.000Z"
                            },
                            "status": {
                                "type": "string",
                                "example": "READY"
                            },
                            "meta": {
                                "type": "object",
                                "properties": {
                                    "origin": {
                                        "type": "string",
                                        "example": "API"
                                    },
                                    "userAgent": {
                                        "type": "string"
                                    }
                                }
                            },
                            "stats": {
                                "type": "object",
                                "properties": {
                                    "inputBodyLen": {
                                        "type": "integer",
                                        "example": 2000
                                    },
                                    "rebootCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "restartCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "resurrectCount": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "computeUnits": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "options": {
                                "type": "object",
                                "properties": {
                                    "build": {
                                        "type": "string",
                                        "example": "latest"
                                    },
                                    "timeoutSecs": {
                                        "type": "integer",
                                        "example": 300
                                    },
                                    "memoryMbytes": {
                                        "type": "integer",
                                        "example": 1024
                                    },
                                    "diskMbytes": {
                                        "type": "integer",
                                        "example": 2048
                                    }
                                }
                            },
                            "buildId": {
                                "type": "string"
                            },
                            "defaultKeyValueStoreId": {
                                "type": "string"
                            },
                            "defaultDatasetId": {
                                "type": "string"
                            },
                            "defaultRequestQueueId": {
                                "type": "string"
                            },
                            "buildNumber": {
                                "type": "string",
                                "example": "1.0.0"
                            },
                            "containerUrl": {
                                "type": "string"
                            },
                            "usage": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "integer",
                                        "example": 1
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            },
                            "usageTotalUsd": {
                                "type": "number",
                                "example": 0.00005
                            },
                            "usageUsd": {
                                "type": "object",
                                "properties": {
                                    "ACTOR_COMPUTE_UNITS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATASET_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "KEY_VALUE_STORE_WRITES": {
                                        "type": "number",
                                        "example": 0.00005
                                    },
                                    "KEY_VALUE_STORE_LISTS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_READS": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "REQUEST_QUEUE_WRITES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_INTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "DATA_TRANSFER_EXTERNAL_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_RESIDENTIAL_TRANSFER_GBYTES": {
                                        "type": "integer",
                                        "example": 0
                                    },
                                    "PROXY_SERPS": {
                                        "type": "integer",
                                        "example": 0
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
