# ImmoScout24 Property Search Scraper (`ecomscrape/immoscout24-property-search-scraper`)

Unlock comprehensive Swiss real estate data with our Immoscout24.ch scraper. Extract property listings, pricing, and market insights from Switzerland's leading real estate platform with advanced filtering and automated data collection capabilities.

- **URL**: https://beta-securitybyobscurity.apify.com/ecomscrape/immoscout24-property-search-scraper.md
- **Developed by:** [ecomscrape](https://beta-securitybyobscurity.apify.com/ecomscrape) (community)
- **Categories:** Real estate, Automation, Developer tools
- **Stats:** 3 total users, 3 monthly users, 100.0% runs succeeded, NaN bookmarks
- **User rating**: No ratings yet

## Pricing

$20.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

# README

## Contact

If you encounter any issues or need to exchange information, please feel free to contact us through the following link:
[My profile](https://apify.com/ecomscrape)

## Immoscout24.ch Property Search Scraper - Advanced Real Estate Data Extraction Tool

### Introduction

Switzerland's real estate market represents one of Europe's most dynamic and valuable property sectors, with over 84,000 properties available across the country. Immoscout24.ch stands as Switzerland's premier real estate marketplace, connecting buyers, renters, and sellers across all cantons from Zurich's urban lofts to Bern's traditional terraced houses. For real estate professionals, investors, market researchers, and property enthusiasts, accessing this wealth of data manually presents significant challenges in terms of time investment and data consistency.

The need for systematic data extraction from Immoscout24.ch has never been more critical. Whether you're conducting market analysis, tracking property trends, or building comprehensive databases for investment decisions, manual data collection from thousands of listings becomes impractical and error-prone. Our specialized scraper addresses these challenges by providing automated, reliable, and structured data extraction capabilities.

### Overview of the Immoscout24.ch Scraper

Our Immoscout24.ch Property Search Scraper is a powerful automation tool designed specifically for extracting comprehensive real estate data from Switzerland's most prominent property platform. The platform features an extensive selection of apartments, houses, and other real estate properties available for both purchase and rental across Switzerland, making it an invaluable resource for market intelligence.

The scraper excels in handling large-scale data extraction while maintaining data integrity and consistency. It's engineered to navigate through complex property listings, filter results based on specific criteria, and extract detailed property information that would otherwise require hours of manual research. The tool is particularly valuable for real estate agencies, property investors, market analysts, and researchers who need regular access to current market data.

**Key Target Users:**

- **Real Estate Professionals**: Agents and brokers requiring competitive analysis and market insights
- **Property Investors**: Individuals and firms analyzing investment opportunities across Swiss markets
- **Market Researchers**: Analysts studying pricing trends, property availability, and regional market dynamics
- **Property Management Companies**: Organizations tracking rental markets and property valuations

### Input and Output Details

Example url 1: https://www.immoscout24.ch/en/real-estate/rent/region-bernmittelland?pn=2

Example url 2: https://www.immoscout24.ch/en/real-estate/rent/region-bernmittelland?loc=geo-city-adetswil

Example url 3: https://www.immoscout24.ch/en/real-estate/rent/canton-bern

Example Screenshot of property list by query page:

![](https://i.ibb.co/yFJ83Nvj/Screenshot-from-2025-08-14-00-19-40.png)

#### Input Format

The scraper accepts a JSON configuration that defines the scraping parameters and target URLs. Here's the detailed input structure:

```json
{
  "max_retries_per_url": 2, // Maximum waiting time when accessing the links you provided.
  "proxy": { // Add a proxy to ensure that during the data collection process, you are not detected as a bot.
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL" 
    ],
    "apifyProxyCountry": "SG" // You should choose an Country that coincides with the Country you want to collect data from
  },
  "max_items_per_url": 20,
  "urls": [ // Links to property list by query pages.
    "https://www.immoscout24.ch/en/real-estate/rent/canton-bern",
    "https://www.immoscout24.ch/en/real-estate/rent/region-bernmittelland?loc=geo-city-adetswil",
    "https://www.immoscout24.ch/en/real-estate/rent/canton-bern"
  ]
}
```

**Input Parameters Explained:**

- **max\_retries\_per\_url**: Defines the maximum number of retry attempts for each URL if initial access fails
- **proxy configuration**: Essential for avoiding bot detection, with residential proxies recommended for reliable access
- **max\_items\_per\_url**: Controls the number of property listings extracted per search page
- **urls**: Array of Immoscout24.ch search result URLs targeting specific locations or criteria

#### Output Format

You get the output from the Immoscout24.ch Property Search Scraper stored in a tab. The following is an example of the Information Fields collected after running the Actor.

```json
[ // List of property information
  {
  "listing_type": {
    "type": "TOP"
  },
  "listing": {
    "address": {
      "geo_coordinates": {
        "accuracy": "HIGH",
        "latitude": 46.927960142294,
        "longitude": 7.563881202092
      },
      "locality": "Worb",
      "postal_code": "3076",
      "street": "Kreuzgasse 2"
    },
    "categories": [
      "HOUSE",
      "FARM_HOUSE"
    ],
    "characteristics": {
      "has_parking": true,
      "has_washing_machine": true,
      "number_of_floors": 3,
      "has_dishwasher": true,
      "has_balcony": true,
      "has_fireplace": false,
      "living_space": 200,
      "number_of_rooms": 5,
      "has_cable_tv": false,
      "has_nice_view": false,
      "is_wheelchair_accessible": false,
      "has_swimming_pool": false,
      "has_store_room": true,
      "has_elevator": false,
      "are_pets_allowed": true,
      "has_garage": false,
      "is_child_friendly": true
    },
    "id": "4002264223",
    "localization": {
      "de": {
        "is_machine_translated": false,
        "text": {
          "title": "200 m2 Wohnfläche auf 3 Etagen in ausgebautem Bauernhaus",
          "description": "Bijou in Worb200 m2 Wohnfläche auf drei EtagenDenkmalgeschütztes mit viel Charme umgebautes BauernhausDas Bauernhaus wurde mit hochwertigen Materialien sowie grosszügigen Raumeinteilungen ausgebaut welche kaum Einrichtungs- und Nutzungswünsche offenlassen.An sehr zentraler Lage mitten in Worb befindet sich diese einmalige Wohnoase.Erdgeschoss- Eingangsbereich- halb offene Küche- Wohn- Esszimmer - Reduit1. Obergeschoss- 2 abgeschlossene Zimmer mit Einbauschrank und Laube/Balkon- Badezimmer mit WC- grosser Einbauschrank im Korridor2. Obergeschoss- offener Wohn/Schlaf-Raum- Dusche mit WC- BalkonUntergeschoss- grosser ca. 34 m2 Keller mit Waschmaschine und Tumbler- Ölheizung Einkaufsmöglichkeiten, RBS-Bahnhof, Schulen/Kindergarten in unmittelbarer Nähe.Die Liegenschaft wurde mit viel Liebe zum Detail umgebaut. Sie verfügt über einen exklusiven Innenausbau. Bodenheizung im Eingangsbereich und in der Küche. 2 Aussenparkplätze à Fr. 50.- / mtl. können dazu gemietet werden.Rufen Sie einfach an - wir freuen uns, Ihnen dieses einzigartige Haus zeigen zu dürfen.079 819 93 29 "
        },
        "attachments": [
          {
            "caption": "Eingangsbereich mit Treppenaufgang",
            "file": "edbbfa0d40-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/08f281630caf6348866843134d25e5dd.jpg"
          },
          {
            "caption": "Treppenaufgang zum 1. Stock",
            "file": "6eb019254d-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/3f3d81161dc7ed7b7936f894db2d6e2c.jpg"
          },
          {
            "caption": "Küche",
            "file": "1e727e5c40-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/b132e3913b91f9bed3abefaf95526791.jpg"
          },
          {
            "caption": "Wohnbereich / Erdgeschoss",
            "file": "f9da65cb4d-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/fcbc6fab862c3513db7977215817a442.jpg"
          },
          {
            "caption": "Wohn-/Essbereich Erdgeschoss",
            "file": "5354502849-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/a78870bae8af8e7a01a7437e9894515e.jpg"
          },
          {
            "caption": "Küche / Erdgeschoss",
            "file": "be05ba8746-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/d5efb64b8f9c92ac26bbc0c0101ec7b4.jpg"
          },
          {
            "caption": "Bad/WC 1. Stock",
            "file": "b8d7c57949-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/de46d5ad9e89bc980ec5174357bce953.jpg"
          },
          {
            "caption": "Zimmer 1 / 1. Stock",
            "file": "4bc20ba047-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/425078c85ee2eef091483d4916551892.jpg"
          },
          {
            "caption": "Zimmer 2 / 1. Stock",
            "file": "9625a3234a-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/668dc2116177d1119e38f18a30e6f7ff.jpg"
          },
          {
            "caption": "Treppenaufgang zu 2. Stock",
            "file": "60a851ef4a-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/6e8d9075ebb3133b402e9f0826d48193.jpg"
          },
          {
            "caption": "Dusche/WC / 2. Stock",
            "file": "7480b3e94c-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/0d2b4a31aaa8171e255574a5839aa050.jpg"
          },
          {
            "caption": "Wohn-/Schlafbereich / 2. Stock",
            "file": "c6263e4727-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/d701a684384dc81fb4e1ef995bb60deb.jpg"
          },
          {
            "caption": "Wohnraum / 2. Stock",
            "file": "9d6802a244-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/113c5e3e55a533be5ea439804e131927.jpg"
          },
          {
            "caption": "Blick vom 2. Stock in die Küche im Erdgeschoss",
            "file": "8d53d1af40-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/35fef2d3611d0db36a69c618cb9a006e.jpg"
          },
          {
            "caption": "Aussenansicht",
            "file": "69d10ef440-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/6f02dd3ae2017e9dda9880fdd83d0141.jpg"
          },
          {
            "caption": "Aussenansicht",
            "file": "5660f72043-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/188972dee8cb7e6c40629dcd8ff4676b.jpg"
          },
          {
            "caption": "Terrasse Frontseite",
            "file": "6082dca34a-220107.jpg",
            "type": "IMAGE",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/image/6bef65adc1c460f8a38a7ba7cf677a85.jpg"
          },
          {
            "file": "Pläne Kreuzgasse 2.pdf",
            "type": "DOCUMENT",
            "title": "Pläne Kreuzgasse 2.pdf",
            "url": "https://cdn.immoscout24.ch/listings/v2/is24nif/4002264223/document/b284c50c38c04d660634d2deb6b3bc87.pdf"
          }
        ]
      },
      "en": {
        "is_machine_translated": true,
        "text": {
          "title": "200 m2 living space on 3 floors in a renovated farmhouse",
          "description": "Jewel in Worb\n200 m2 living space on three floors\nHistorically protected and charmingly converted farmhouse\nThe farmhouse was renovated with high-quality materials and generous room layouts, leaving hardly any wishes for equipment and use open.\nLocated in a very central location in the heart of Worb, this unique residential oasis can be found.\nGround floor\n- Entrance area\n- Semi-open kitchen\n- Living and dining room\n- Reduit\n1st upper floor\n- 2 separate rooms with built-in wardrobe and balcony\n- Bathroom with toilet\n- Large built-in wardrobe in the corridor\n2nd upper floor\n- Open living/bedroom\n- Shower with toilet\n- Balcony\nBasement\n- Large approx. 34 m2 cellar with washing machine and dryer\n- Oil heating\nShopping facilities, RBS train station, schools/kindergarten in immediate proximity.\nThe property was renovated with great attention to detail and has an exclusive interior design. Underfloor heating in the entrance area and kitchen. 2 outdoor parking spaces can be rented for Fr. 50.- / month.\nJust call us - we look forward to showing you this unique house.\n079 819 93 29"
        },
        "attachments": []
      },
      "it": {
        "is_machine_translated": true,
        "text": {
          "title": "200 m2 di spazio abitativo su 3 piani in una fattoria ristrutturata",
          "description": "Gioiello a Worb\n200 m2 di spazio abitativo su tre piani\nCasa colonica ristrutturata con molto charme e protetta dai monumenti storici\nLa casa colonica è stata ristrutturata con materiali di alta qualità e disposizioni di stanze generose, lasciando a malapena desideri di attrezzature e uso aperti.\nSituata in una posizione molto centrale nel cuore di Worb, questa oasi residenziale unica si trova.\nPiano terra\n- Zona d'ingresso\n- Cucina semi-aperta\n- Sala da pranzo/soggiorno\n- Reduit\n1° piano\n- 2 stanze separate con armadio incorporato e balcone\n- Bagno con toilette\n- Grande armadio incorporato nel corridoio\n2° piano\n- Stanza da letto/soggiorno aperta\n- Doccia con toilette\n- Balcone\nSeminterrato\n- Grande cantina di circa 34 m2 con lavatrice e asciugatrice\n- Riscaldamento a olio\nNegozi, stazione RBS, scuole/asilo nido a proximità immediata.\nLa proprietà è stata ristrutturata con grande attenzione ai dettagli e dispone di un allestimento interno esclusivo. Riscaldamento a pavimento nella zona d'ingresso e in cucina. 2 posti auto esterni possono essere affittati per Fr. 50.- / mese.\nNon esitate a chiamarci - saremo felici di mostrarvi questa casa unica.\n079 819 93 29"
        },
        "attachments": []
      },
      "fr": {
        "is_machine_translated": true,
        "text": {
          "title": "200 m2 d'espace de vie sur 3 étages dans une ferme rénovée",
          "description": "Bijou à Worb\n200 m2 d'espace de vie sur trois étages\nMaison paysanne rénovée avec beaucoup de charme et protégée par les monuments historiques\nLa maison paysanne a été rénovée avec des matériaux de haute qualité et des dispositions de pièces généreuses, laissant à peine des souhaits d'équipement et d'utilisation ouverts.\nSituée dans un emplacement très central au cœur de Worb, cette oasis résidentielle unique se trouve.\nRéz-de-chaussée\n- Hall d'entrée\n- Cuisine semi-ouverte\n- Salon/salle à manger\n- Reduit\n1er étage\n- 2 chambres séparées avec placard intégré et balcon\n- Salle de bain avec toilettes\n- Grand placard intégré dans le corridor\n2e étage\n- Pièce à vivre/chambre ouverte\n- Douche avec toilettes\n- Balcon\nSous-sol\n- Grande cave d'environ 34 m2 avec machine à laver et sèche-linge\n- Chauffage au mazout\nCommerces, gare RBS, écoles/jardin d'enfants à proximité immédiate.\nLa propriété a été rénovée avec beaucoup d'attention aux détails et dispose d'un aménagement intérieur exclusif. Chauffage par le sol dans le hall d'entrée et la cuisine. 2 places de parking extérieures peuvent être louées pour Fr. 50.- / mois.\nN'hésitez pas à nous appeler - nous serons ravis de vous montrer cette maison unique.\n079 819 93 29"
        },
        "attachments": []
      },
      "primary": "de"
    },
    "meta": {
      "created_at": "2025-06-07T18:48:23.021Z"
    },
    "offer_type": "RENT",
    "platforms": [
      "immoscout24"
    ],
    "prices": {
      "rent": {
        "area": "ALL",
        "interval": "MONTH",
        "net": 3350,
        "gross": 3800,
        "extra": 450
      },
      "currency": "CHF"
    },
    "value_added_services": {}
  },
  "listing_card": {
    "size": "M"
  },
  "id": "4002264223",
  "url": "https://www.immoscout24.ch/rent/4002264223",
  "listing_scores": {
    "listing_completeness_score": 7.5,
    "package_score": 3
  },
  "lister_branding": {
    "is_quality_partner": false
  },
  "remote_viewing": false,
  "from_url": "https://www.immoscout24.ch/en/real-estate/rent/region-bernmittelland?pn=2"
}, // ... Many other property details
] 
```

The scraper delivers structured data in the following format, with each field providing specific market intelligence:

**Core Output Fields:**

**Listing Type**: Categorizes the property transaction type (rental, purchase, commercial lease)

- *Purpose*: Enables segmented market analysis and targeted investment strategies
- *Example*: "Rental", "Sale", "Commercial"

**Listing**: Contains the complete property title and primary description

- *Purpose*: Provides comprehensive property overview for initial screening and marketing materials
- *Example*: "Modern 3.5-room apartment in Bern city center with balcony"

**Listing Card**: Structured summary data displayed in search results

- *Purpose*: Offers quick property comparison metrics including key features and highlights
- *Example*: Condensed property details with room count, size, and key amenities

**ID**: Unique identifier for each property listing on the platform

- *Purpose*: Enables tracking, deduplication, and database management for ongoing monitoring
- *Example*: "12345678" (unique numerical identifier)

**URL**: Direct link to the complete property listing page

- *Purpose*: Provides immediate access to full property details, photos, and contact information
- *Example*: "https://www.immoscout24.ch/en/d/apartment-for-rent-12345678"

**Listing Scores**: Platform-generated quality and attractiveness ratings

- *Purpose*: Assists in property evaluation and comparison using platform algorithms
- *Example*: Quality score, location rating, price-value assessment

**Lister Branding**: Information about the property's listing agent or agency

- *Purpose*: Identifies market players, professional relationships, and potential partnership opportunities
- *Example*: Agency name, agent credentials, contact branding

**Remote Viewing**: Availability of virtual tours, video content, or online viewing options

- *Purpose*: Indicates modern marketing approaches and remote accessibility for international investors
- *Example*: "Virtual tour available", "360° photos", "Video walkthrough"

### Implementation Guide

#### Step-by-Step Usage Instructions

**Step 1: Configuration Setup**
Configure your input parameters based on your specific requirements. Set appropriate retry limits (typically 2-3 for reliability) and ensure proxy settings match your target geographic region for optimal access.

**Step 2: URL Preparation**\
Prepare your target URLs from Immoscout24.ch search pages. Focus on specific regions, property types, or price ranges that align with your research objectives. The scraper handles both individual listings and search result pages.

**Step 3: Execution and Monitoring**
Launch the scraper with your configured parameters. Monitor the extraction process for any blocked requests or data inconsistencies. The tool typically processes 15-25 listings per minute depending on server response times.

**Step 4: Data Validation**
Review extracted data for completeness and accuracy. Pay particular attention to price fields, location data, and property specifications to ensure data integrity for your analysis.

#### Best Practices and Optimization

**Rate Limiting**: Implement reasonable delays between requests to maintain platform stability and avoid detection. A 2-3 second delay between requests typically provides optimal balance.

**Error Handling**: Monitor for temporary blocks or server errors. The retry mechanism handles most transient issues, but persistent problems may require proxy rotation or delay adjustment.

**Data Storage**: Structure your database to handle the multi-dimensional nature of real estate data. Consider normalized tables for locations, property types, and agent information to maximize analytical capabilities.

### Benefits and Real-World Applications

#### Time Efficiency and Scalability

Manual data collection from hundreds of Swiss property listings can consume 40-50 hours per week for comprehensive market coverage. Our scraper reduces this to mere minutes, enabling real-time market monitoring and rapid competitive analysis.

#### Business Intelligence Applications

**Market Analysis**: Track pricing trends across different Swiss regions, identify emerging neighborhoods, and analyze seasonal market fluctuations for strategic planning.

**Investment Research**: Compare property yields, identify undervalued markets, and monitor new development projects across Switzerland's diverse property markets.

**Competitive Intelligence**: Monitor competitor pricing strategies, analyze market positioning, and track inventory changes for strategic advantage.

#### Data-Driven Decision Making

The structured output enables sophisticated analytics including price-per-square-meter calculations, location desirability scoring, and investment ROI projections. This transforms raw listing data into actionable business intelligence.

### Conclusion

The Immoscout24.ch Property Search Scraper represents an essential tool for anyone serious about understanding and leveraging Switzerland's dynamic real estate market. By automating data extraction and providing structured, comprehensive property intelligence, it enables professionals to focus on analysis and strategy rather than manual data collection.

Transform your real estate research capabilities and gain competitive advantage in the Swiss property market. Start extracting valuable market insights today with our comprehensive Immoscout24.ch scraper solution.

## Related Actors

- [**Immoscout24 Property Details Scraper**](https://apify.com/ecomscrape/immoscout24-property-details-scraper): Your comprehensive tool for extracting valuable property information from Immoscout24 extensive directory platform.

## Your feedback

We are always working to improve Actors' performance. So, if you have any technical feedback about Immoscout24.ch Property Search Scraper or simply found a bug, please create an issue on the Actor's Issues tab in Apify Console.

# Actor input Schema

## `urls` (type: `array`):

Add the URLs of the Property list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.

## `max_items_per_url` (type: `integer`):

Limit the number of items per URL you want to scrape

## `max_retries_per_url` (type: `integer`):

Limit the number of retries for each URL if the scrape is detected as a bot or the page fails to load

## `proxy` (type: `object`):

Select proxies to be used by your scraper.

## Actor input object example

```json
{
  "urls": [
    "https://www.immoscout24.ch/en/real-estate/rent/region-bernmittelland?pn=2"
  ],
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}
```

# 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 = {
    "urls": [
        "https://www.immoscout24.ch/en/real-estate/rent/region-bernmittelland?pn=2"
    ],
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": {
        "useApifyProxy": false
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("ecomscrape/immoscout24-property-search-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 = {
    "urls": ["https://www.immoscout24.ch/en/real-estate/rent/region-bernmittelland?pn=2"],
    "max_items_per_url": 20,
    "max_retries_per_url": 2,
    "proxy": { "useApifyProxy": False },
}

# Run the Actor and wait for it to finish
run = client.actor("ecomscrape/immoscout24-property-search-scraper").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.immoscout24.ch/en/real-estate/rent/region-bernmittelland?pn=2"
  ],
  "max_items_per_url": 20,
  "max_retries_per_url": 2,
  "proxy": {
    "useApifyProxy": false
  }
}' |
apify call ecomscrape/immoscout24-property-search-scraper --silent --output-dataset

```

## MCP server setup

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

```

## OpenAPI specification

```json
{
    "openapi": "3.0.1",
    "info": {
        "title": "ImmoScout24 Property Search Scraper",
        "description": "Unlock comprehensive Swiss real estate data with our Immoscout24.ch scraper. Extract property listings, pricing, and market insights from Switzerland's leading real estate platform with advanced filtering and automated data collection capabilities.",
        "version": "0.0",
        "x-build-id": "0xU0lYZjfgVkt7Cj1"
    },
    "servers": [
        {
            "url": "https://api.apify.com/v2"
        }
    ],
    "paths": {
        "/acts/ecomscrape~immoscout24-property-search-scraper/run-sync-get-dataset-items": {
            "post": {
                "operationId": "run-sync-get-dataset-items-ecomscrape-immoscout24-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for its completion, and returns Actor's dataset items in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        },
        "/acts/ecomscrape~immoscout24-property-search-scraper/runs": {
            "post": {
                "operationId": "runs-sync-ecomscrape-immoscout24-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor and returns information about the initiated run in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK",
                        "content": {
                            "application/json": {
                                "schema": {
                                    "$ref": "#/components/schemas/runsResponseSchema"
                                }
                            }
                        }
                    }
                }
            }
        },
        "/acts/ecomscrape~immoscout24-property-search-scraper/run-sync": {
            "post": {
                "operationId": "run-sync-ecomscrape-immoscout24-property-search-scraper",
                "x-openai-isConsequential": false,
                "summary": "Executes an Actor, waits for completion, and returns the OUTPUT from Key-value store in response.",
                "tags": [
                    "Run Actor"
                ],
                "requestBody": {
                    "required": true,
                    "content": {
                        "application/json": {
                            "schema": {
                                "$ref": "#/components/schemas/inputSchema"
                            }
                        }
                    }
                },
                "parameters": [
                    {
                        "name": "token",
                        "in": "query",
                        "required": true,
                        "schema": {
                            "type": "string"
                        },
                        "description": "Enter your Apify token here"
                    }
                ],
                "responses": {
                    "200": {
                        "description": "OK"
                    }
                }
            }
        }
    },
    "components": {
        "schemas": {
            "inputSchema": {
                "type": "object",
                "properties": {
                    "urls": {
                        "title": "URLs of the Property list page urls to scrape",
                        "type": "array",
                        "description": "Add the URLs of the Property list page urls you want to scrape. You can paste URLs one by one, or use the Bulk edit section to add a prepared list.",
                        "items": {
                            "type": "string"
                        }
                    },
                    "max_items_per_url": {
                        "title": "Limit the number of items per URL",
                        "type": "integer",
                        "description": "Limit the number of items per URL you want to scrape"
                    },
                    "max_retries_per_url": {
                        "title": "Limit the number of retries for each URL",
                        "type": "integer",
                        "description": "Limit the number of retries for each URL if the scrape is detected as a bot or the page fails to load"
                    },
                    "proxy": {
                        "title": "Proxy configuration",
                        "type": "object",
                        "description": "Select proxies to be used by your scraper."
                    }
                }
            },
            "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
                                    }
                                }
                            }
                        }
                    }
                }
            }
        }
    }
}
```
