# Immowelt Property Scraper - Low-cost💲🔥🏡🇩🇪 (`delectable_incubator/immowelt-property-scraper-low-cost`) Actor

🏡 Easily scrape Immowelt.de listings. Extract listing IDs, property titles, prices, property types, rooms, plot sizes, floors, addresses, descriptions, energy classes, publisher information, images, ZIP codes, listing URL & source URLs. Perfect for real estate research & housing datasets 💰📊

- **URL**: https://apify.com/delectable\_incubator/immowelt-property-scraper-low-cost.md
- **Developed by:** [Prime Scrape](https://apify.com/delectable_incubator) (community)
- **Categories:** Real estate, Travel, Lead generation
- **Stats:** 2 total users, 1 monthly users, 100.0% runs succeeded, 1 bookmarks
- **User rating**: 5.00 out of 5 stars

## Pricing

from $0.00005 / actor start

This Actor is paid per event and usage. You are charged both the fixed price for specific events and for Apify platform usage.
Since this Actor supports Apify Store discounts, the price gets lower the higher subscription plan you have.

Learn more: https://docs.apify.com/actors/running/actors-in-store.md#pay-per-event

## What's an Apify Actor?

Actors are web data automations that power AI and operations. They run on the Apify platform to scrape websites, process data, connect APIs, and automate workflows.
In Batch mode, an Actor accepts a well-defined JSON input, performs an action which can take anything from a few seconds to a few hours,
and optionally produces a well-defined JSON output, datasets with results, or files in key-value store.
In Standby mode, an Actor provides a web server which can be used as a website, API, or an MCP server.
Actors are written with capital "A".

## How to integrate an Actor?

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

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

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

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

# README

<p align="center">

  <img src="https://i.ibb.co/jkNS73wX/readme.png" alt="Immowelt Search Scraper" width="100%">

</p>

***

## 🏡🔎 Immowelt Search Scraper | Immobilien Scraper | Property Listings | Apify Actor

### 🚀 Extract Immowelt Property Listings in Seconds (No Code)

The **Immowelt Search Scraper (Apify Actor)** is a powerful, scalable, and SEO-optimized scraping solution designed to extract **real estate listings from Immowelt search result pages**.

Collect structured property data including **listing IDs, property titles, property types, prices, rooms, living areas, plot sizes, floors, availability, addresses, descriptions, energy classes, publisher information, images, ZIP codes, listing URLs, search URLs, and page numbers**.

The scraper supports **multiple Immowelt search URLs**, automatic pagination, scrolling, and large-scale property extraction.

Perfect for **real estate research, property market analysis, rental market research, property price monitoring, competitor analysis, real estate intelligence, investment research, housing datasets, property valuation, AI datasets, and automation**.

***

## 🔥 Why This Immowelt Search Scraper?

✔ Powerful Immowelt Property Scraper on Apify

✔ Immowelt Search Result Scraping

✔ Bulk Search URL Support

✔ Multiple Property Searches

✔ Automatic Pagination

✔ Automatic Scrolling

✔ Property Listing Extraction

✔ Rental Properties

✔ Properties for Sale

✔ Houses & Apartments

✔ Property Titles

✔ Property Types

✔ Prices

✔ Number of Rooms

✔ Living Areas

✔ Plot Sizes

✔ Floors

✔ Availability

✔ Property Addresses

✔ Property Descriptions

✔ Energy Classes

✔ New Listing Detection

✔ New Build Detection

✔ Sponsored Listing Detection

✔ Publisher Information

✔ Property Images

✔ ZIP Codes

✔ Direct Listing URLs

✔ Source URLs

✔ Search Page Numbers

✔ Automatic Timestamps

✔ Fast & Scalable Extraction

✔ JSON / CSV / Excel Ready

✔ German Residential Proxy Support

✔ No Coding Required

***

## 🎯 What This Scraper Does

This Apify Actor extracts publicly available real estate listings from **Immowelt search result pages**.

You can provide one or multiple **Immowelt classified-search URLs** in a single run.

The scraper automatically:

1. Opens each Immowelt search URL.

2. Loads available property listings.

3. Scrolls through the search results.

4. Extracts structured property information.

5. Navigates through subsequent pages automatically.

6. Continues until `maxItemsPerUrl` is reached or no more listings are available.

7. Stores the original search URL and page number for each listing.

No manual pagination is required.

***

## 📌 Supported Input

The scraper accepts one or multiple Immowelt classified-search URLs.

Example:

```
https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD08DE8634
```

Example rental search:

```
https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House,Apartment&locations=AD08DE8634
```

You can provide multiple search URLs to scrape different:

🏡 Locations

💰 Purchase searches

🏠 Rental searches

🏢 Property types

📍 German real estate markets

***

## ⚡ Input Configuration

Example configuration:

```
{
  "urls": [
    "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD08DE8634",
    "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House,Apartment&locations=AD08DE8634"
  ],
  "maxItemsPerUrl": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}
```

Simply add one or multiple **Immowelt search URLs** and configure the maximum number of listings to collect per URL.

***

## 🏡 BULK SEARCH URL MODE

The Actor supports multiple Immowelt search URLs in the same run.

Example:

```
{
  "urls": [
    "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House,Apartment&locations=AD08DE8634",
    "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD08DE8634",
    "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=Apartment&locations=AD06DE364"
  ],
  "maxItemsPerUrl": 100
}
```

Each search URL is processed independently.

This makes the scraper ideal for **bulk German real estate research**.

***

## 🔄 Automatic Pagination

Immowelt search results can contain multiple pages.

The Actor automatically handles pagination using the `page=` query parameter.

The extraction process:

🔎 Opens the initial search URL

📄 Extracts listings from page 1

➡️ Navigates to the next page

📊 Extracts additional listings

🔄 Continues through available pages

🛑 Stops when `maxItemsPerUrl` is reached or no more listings are available

No manual page URLs are required.

***

## 📊 Extracted Data

| Field             | Description                  |
| ----------------- | ---------------------------- |
| listingId         | Unique Immowelt listing ID   |
| listingUrl        | Direct property listing URL  |
| title             | Property listing title       |
| propertyType      | Property type                |
| price             | Property price or rent       |
| rooms             | Number of rooms              |
| livingArea        | Living area                  |
| plotSize          | Plot size                    |
| floor             | Property floor               |
| availability      | Property availability        |
| address           | Property address             |
| description       | Property description         |
| energyClass       | Energy efficiency class      |
| isNew             | New listing indicator        |
| isNewBuildProject | New-build project indicator  |
| isSponsored       | Sponsored listing indicator  |
| publisherName     | Publisher or advertiser name |
| imageUrl          | Main property image          |
| zipCode           | Property ZIP code            |
| page              | Search result page           |
| sourceUrl         | Current search page URL      |
| seedUrl           | Original search URL          |
| scrapedAt         | Extraction timestamp         |

***

## 🏠 Property Information

The scraper extracts detailed property information including:

🏷️ Property Title

🏡 Property Type

💰 Price

🛏️ Number of Rooms

📐 Living Area

🌳 Plot Size

🏢 Floor

📅 Availability

📍 Address

📝 Description

⚡ Energy Class

This makes the dataset suitable for **property market analysis and real estate research**.

***

## 💰 Property Price Data

The `price` field contains the available property price or rental price.

Examples include:

```
1.649 € Kaltmiete
869 € Kaltmiete
450.000 €
```

This data can be used for:

💰 Price Monitoring

📊 Rental Price Analysis

📈 Market Trends

🏠 Property Valuation

🔎 Investment Research

***

## 📐 Property Size & Rooms

The Actor extracts:

🛏️ Number of Rooms

📐 Living Area

🌳 Plot Size

🏢 Floor

This allows you to compare properties based on their physical characteristics.

***

## 📍 Property Location

When available, the scraper extracts:

📍 Full Address

📮 ZIP Code

🏙️ District

The location information can be used for:

📊 Local Market Analysis

🗺️ Property Mapping

🏠 Neighborhood Research

💰 Price-per-Square-Meter Analysis

***

## 📝 Property Descriptions

The scraper extracts the available property description.

This can include information about:

🏠 Property Features

📐 Layout

🛋️ Interior

🌳 Outdoor Areas

📍 Location

🏗️ Building Information

The description can be used for **property classification, NLP analysis, AI datasets, and real estate research**.

***

## ⚡ Energy Information

When available, the Actor extracts the property's energy class.

Examples:

```
A
B
C
D
```

This can be useful for:

🌱 Energy Efficiency Research

🏠 Property Comparison

📊 Real Estate Analytics

🔎 Investment Research

***

## 🏗️ New & Sponsored Listings

The scraper can identify listing attributes including:

🆕 `isNew`

🏗️ `isNewBuildProject`

⭐ `isSponsored`

These fields allow you to distinguish between different types of property listings.

***

## 🏢 Publisher Information

When available, the scraper extracts:

🏢 Publisher Name

This can help identify the company or advertiser responsible for the property listing.

Useful for:

🔎 Agency Research

🏢 Real Estate Company Analysis

📊 Publisher Intelligence

📈 Competitor Research

***

## 🖼️ Property Images

The Actor extracts the main available property image.

Example:

```
imageUrl
```

This can be useful for:

🖼️ Visual Property Research

🏠 Property Catalogues

🤖 Computer Vision Datasets

📊 Real Estate Intelligence

***

## 🔗 Listing & Source URLs

Each result contains:

🔗 Direct Immowelt Listing URL

🌐 Source Search URL

🔎 Original Seed URL

This allows every property to be traced back to its original search.

***

## 📄 Page Tracking

The `page` field identifies the search result page from which the property was extracted.

Example:

```
page: 1
page: 2
page: 3
```

This is useful for debugging, pagination analysis, and dataset organization.

***

## 🔢 Maximum Items per URL

The `maxItemsPerUrl` parameter defines the maximum number of property listings collected for each search URL across all pages.

Example:

```
{
  "maxItemsPerUrl": 500
}
```

If you provide three URLs with a limit of 500, the Actor can collect up to **500 listings per search URL**, depending on listing availability.

***

## 🌐 Proxy Support

The Actor supports Apify Proxy configuration.

**German residential proxies are recommended** for reliable access to Immowelt.

Example:

```
{
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}
```

The default configuration uses **DE residential proxies**.

***

## 💡 Use Cases

Perfect for:

🏠 Real Estate Research

🏡 Property Market Analysis

💰 Rental Price Monitoring

📈 Property Price Analysis

🔎 Competitor Research

🏢 Real Estate Agency Research

📊 Housing Market Intelligence

📍 Local Market Analysis

🗺️ Property Mapping

🏠 Property Investment Research

💰 Property Valuation

📐 Price-per-Square-Meter Analysis

🏗️ New Build Research

🌱 Energy Efficiency Research

🤖 AI Training Datasets

📋 Real Estate Dataset Building

⚙️ Automation Workflows

***

## 🚀 Key Features

⚡ Immowelt Search Scraping

🏡 Property Listing Extraction

🔎 Bulk Search URL Support

🔄 Automatic Pagination

📜 Automatic Scrolling

🏠 Houses & Apartments

💰 Property Prices

🛏️ Room Counts

📐 Living Areas

🌳 Plot Sizes

🏢 Floors

📅 Availability

📍 Property Addresses

📮 ZIP Codes

📝 Property Descriptions

⚡ Energy Classes

🆕 New Listing Detection

🏗️ New Build Detection

⭐ Sponsored Listing Detection

🏢 Publisher Information

🖼️ Property Images

🔗 Listing URLs

🌐 Source URLs

📄 Page Tracking

⏱️ Scraping Timestamps

🌐 German Residential Proxy Support

📊 Structured Output

💾 Export-Ready Datasets

⚙️ Scalable Apify Actor

***

## 📤 Export Formats

The extracted Immowelt property listings can be exported through Apify in multiple formats:

✔ JSON

✔ CSV

✔ Excel (XLSX)

✔ XML

✔ HTML

✔ RSS

***

## 📦 Example Output

```
{
  "listingId": "bbfdb9b7-e19c-4332-896c-bcb3d9c09232",
  "listingUrl": "https://www.immowelt.de/expose/bbfdb9b7-e19c-4332-896c-bcb3d9c09232",
  "title": "Wohnung zur Miete - Lichtenberg - 1.649 € - 3 Zimmer, 140 m², 1. Geschoss",
  "propertyType": "Wohnung zur Miete",
  "price": "1.649 €Kaltmiete",
  "rooms": "3 Zimmer",
  "livingArea": "140 m²",
  "plotSize": "N/A",
  "floor": "1. Geschoss",
  "availability": "N/A",
  "address": "Alfred-Kowalke-Straße 14, Friedrichsfelde, Lichtenberg (10315)",
  "description": "Sehr geehrte Interessenten, vermietet wird eine frisch renovierte, lichtdurchflutete 3-Zimmer-Etagenwohnung mit ca. 140 m² Wohnfläche in Berlin-Friedrichsfelde.",
  "energyClass": "C",
  "isNew": "false",
  "isNewBuildProject": "false",
  "isSponsored": "false",
  "publisherName": "OhneMakler GmbH",
  "imageUrl": "https://mms.immowelt.de/4/5/5/d/455ddb69-d0af-4a70-80ea-7b96ba81518b.jpg",
  "zipCode": "10315",
  "page": "1",
  "sourceUrl": "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House%2CApartment&locations=AD08DE8634",
  "seedUrl": "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House,Apartment&locations=AD08DE8634",
  "scrapedAt": "2026-08-25T11:57:50.545Z"
}
```

***

## 🔥 Why Use This Immowelt Search Scraper?

✔ Bulk Immowelt Search URLs

✔ Automatic Pagination

✔ Automatic Scrolling

✔ Property Listings

✔ Rental Properties

✔ Properties for Sale

✔ Houses & Apartments

✔ Property Prices

✔ Room Counts

✔ Living Areas

✔ Plot Sizes

✔ Floors

✔ Availability

✔ Addresses

✔ Property Descriptions

✔ Energy Classes

✔ New Listing Detection

✔ New Build Detection

✔ Sponsored Listing Detection

✔ Publisher Information

✔ Property Images

✔ ZIP Codes

✔ Direct Listing URLs

✔ Source Search URLs

✔ Page Numbers

✔ Structured Real Estate Data

✔ German Residential Proxy Support

✔ Scalable Apify Infrastructure

✔ No Coding Required

***

## 💸 Pricing

This scraper runs on a **pay-per-result** pricing model.

You only pay for successfully extracted Immowelt property listings.

**💳 Price: $0.95 / 1,000 listings**

***

## ❓ FAQ

#### Can I scrape multiple Immowelt search URLs?

Yes.

The Actor supports **bulk search URLs**, allowing you to process multiple property searches in a single run.

***

#### Can I scrape rental properties?

Yes.

Simply provide an Immowelt search URL configured for rental properties.

***

#### Can I scrape properties for sale?

Yes.

The scraper supports Immowelt search URLs configured for property purchases.

***

#### Can I scrape houses and apartments?

Yes.

The search URL determines the property types to be scraped, including houses and apartments.

***

#### Does the scraper automatically paginate?

Yes.

The Actor automatically handles subsequent search result pages using the `page=` query parameter.

***

#### Does the scraper automatically scroll?

Yes.

The Actor automatically scrolls the search results to load available listings.

***

#### Can I scrape multiple pages?

Yes.

Pagination is handled automatically until `maxItemsPerUrl` is reached or no more listings are available.

***

#### Does it extract property prices?

Yes.

The `price` field contains the available sale or rental price.

***

#### Does it extract the number of rooms?

Yes.

The `rooms` field contains the available room information.

***

#### Does it extract living area?

Yes.

The `livingArea` field contains the available property living area.

***

#### Does it extract plot size?

Yes.

When available, the `plotSize` field contains the plot size.

***

#### Does it extract property addresses?

Yes.

The `address` field contains the available property address and location information.

***

#### Does it extract property descriptions?

Yes.

The Actor extracts the available listing description.

***

#### Does it extract energy classes?

Yes.

When available, the `energyClass` field contains the property's energy efficiency class.

***

#### Does it extract publisher information?

Yes.

When available, the Actor extracts the `publisherName`.

***

#### Does it extract property images?

Yes.

When available, the `imageUrl` field contains the main property image.

***

#### Can I scrape thousands of properties?

Yes.

Increase `maxItemsPerUrl` and provide multiple Immowelt search URLs to scale your extraction.

***

#### Are proxies supported?

Yes.

The Actor supports Apify Proxy configuration, including **German residential proxies**.

***

#### Is coding required?

No.

Everything runs directly through Apify.

Simply provide your Immowelt search URLs and configure the maximum number of listings.

***

#### Can I export the data?

Yes.

Apify supports JSON, CSV, Excel, XML, HTML and RSS exports.

***

## ⚠️ Disclaimer

This tool is an independent data extraction solution and is **not affiliated with or endorsed by Immowelt**.

Users are responsible for complying with Immowelt's Terms of Service and all applicable laws and regulations when collecting and using publicly available data.

***

## 🔗 Related Actors

We are building the complete **PrimeScrape Real Estate Intelligence Suite**.

More premium property, real estate, rental, housing, agency, and market intelligence scrapers are coming soon.

🚀 Stay tuned.

***

## 🌍 PrimeScrape Ecosystem

Built for large-scale data extraction, automation, AI datasets, and business intelligence.

🏠 Real Estate Intelligence

🏡 Property Analytics

💰 Rental Price Monitoring

📊 Housing Market Research

🔎 Competitor Research

🏢 Real Estate Agency Intelligence

📍 Local Market Data

📈 Property Investment Research

🤖 AI Training Datasets

⚙️ Automation Pipelines

🌐 Public Data Extraction

***

## 📬 Support

⭐⭐⭐⭐⭐

If this scraper saves you time, please leave a review.

For enterprise scraping solutions, custom Apify Actors, or large-scale real estate and property data projects, feel free to contact **PrimeScrape**.

# Actor input Schema

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

One or more Immowelt classified-search URLs to scrape (page 1 of each search - pagination is handled automatically via the page= query param). | Eine oder mehrere Immowelt-classified-search-URLs zum Scrapen (Seite 1 jeder Suche – die Seitennavigation wird automatisch über den Parameter page= verarbeitet).

## `maxItemsPerUrl` (type: `integer`):

Maximum number of listings to collect for each search URL (across all of its pages). | Maximale Anzahl an Immobilienangeboten, die pro Such-URL über alle Seiten hinweg gesammelt werden sollen.

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

Proxy used to fetch immowelt.de. RESIDENTIAL proxies are recommended. | Proxy für den Zugriff auf immowelt.de. RESIDENTIAL-Proxys werden empfohlen.

## Actor input object example

```json
{
  "urls": [
    "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD08DE8634",
    "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House,Apartment&locations=AD08DE8634",
    "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD06DE364&m=homepage_relaunch_my_last_search_classified_search_result"
  ],
  "maxItemsPerUrl": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}
```

# Actor output Schema

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

No description

## `detailed` (type: `string`):

No description

## `by_page` (type: `string`):

No description

# API

You can run this Actor programmatically using our API. Below are code examples in JavaScript, Python, and CLI, as well as the OpenAPI specification and MCP server setup.

## JavaScript example

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

// Initialize the ApifyClient with your Apify API token
// Replace the '<YOUR_API_TOKEN>' with your token
const client = new ApifyClient({
    token: '<YOUR_API_TOKEN>',
});

// Prepare Actor input
const input = {
    "urls": [
        "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD08DE8634",
        "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House,Apartment&locations=AD08DE8634",
        "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD06DE364&m=homepage_relaunch_my_last_search_classified_search_result"
    ],
    "maxItemsPerUrl": 100,
    "proxyConfiguration": {
        "useApifyProxy": true,
        "apifyProxyGroups": [
            "RESIDENTIAL"
        ],
        "apifyProxyCountry": "DE"
    }
};

// Run the Actor and wait for it to finish
const run = await client.actor("delectable_incubator/immowelt-property-scraper-low-cost").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.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD08DE8634",
        "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House,Apartment&locations=AD08DE8634",
        "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD06DE364&m=homepage_relaunch_my_last_search_classified_search_result",
    ],
    "maxItemsPerUrl": 100,
    "proxyConfiguration": {
        "useApifyProxy": True,
        "apifyProxyGroups": ["RESIDENTIAL"],
        "apifyProxyCountry": "DE",
    },
}

# Run the Actor and wait for it to finish
run = client.actor("delectable_incubator/immowelt-property-scraper-low-cost").call(run_input=run_input)

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

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

```

## CLI example

```bash
echo '{
  "urls": [
    "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD08DE8634",
    "https://www.immowelt.de/classified-search?distributionTypes=Rent&estateTypes=House,Apartment&locations=AD08DE8634",
    "https://www.immowelt.de/classified-search?distributionTypes=Buy,Buy_Auction,Compulsory_Auction&estateTypes=House,Apartment&locations=AD06DE364&m=homepage_relaunch_my_last_search_classified_search_result"
  ],
  "maxItemsPerUrl": 100,
  "proxyConfiguration": {
    "useApifyProxy": true,
    "apifyProxyGroups": [
      "RESIDENTIAL"
    ],
    "apifyProxyCountry": "DE"
  }
}' |
apify call delectable_incubator/immowelt-property-scraper-low-cost --silent --output-dataset

```

## MCP server setup

```json
{
    "mcpServers": {
        "apify": {
            "type": "http",
            "url": "https://mcp.apify.com/?tools=fetch-actor-details,delectable_incubator/immowelt-property-scraper-low-cost"
        }
    }
}

```

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

## OpenAPI specification

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