ImmobilienScout24 scraper for extracting public property search results into a structured Apify dataset. This ImmobilienScout24 API workflow uses the proven mobile search route to collect listing IDs, prices, location, coordinates, attributes, images, flags, and pagination metadata for German real-estate research and monitoring.
At a glance
- Primary job: Export ImmobilienScout24 search listings without manually paging through the website.
- Input: ImmobilienScout24 search URLs or mobile API geocode paths such as
/de/berlin/berlin. - Output: One dataset row per unique property listing.
- Best for: Rental and sales market research, price monitoring, location analysis, and listing deduplication.
Input recipes
Berlin apartment rentals
{
"startUrls": [{ "url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten" }],
"maxItems": 50
}
Munich apartment rentals by geocode
{
"geocodes": ["/de/bayern/muenchen"],
"realEstateType": "apartmentrent",
"maxItems": 50
}
House purchases
{
"geocodes": ["/de/brandenburg/potsdam"],
"realEstateType": "housebuy",
"maxItems": 100
}
Output: what data can you extract?
| Field | Description |
|---|---|
listingId |
Stable ImmobilienScout24 expose ID for deduplication. |
url |
Public listing URL. |
sourceUrl |
Search URL or generated API source for the row. |
title |
Listing headline. |
realEstateType, listingType |
Search/listing type values exposed by the source. |
price, priceRaw |
Parsed numeric price and original price text. |
livingAreaSqm, livingAreaRaw |
Parsed living area and original area text. |
rooms, roomsRaw |
Parsed room count and original room text. |
address, city, postalCode |
Public address line and parsed locality fields. |
latitude, longitude |
Listing coordinates when exposed. |
published |
Source-published label. |
energyEfficiencyClass |
Energy class when present in search results. |
isProject, isPrivate, isNewObject, liveVideoTourAvailable, listOnlyOnIs24 |
Listing flags exposed by the mobile result. |
attributes, tags |
Additional result attributes and badges. |
imageUrls, titlePictureUrl, realtorLogoUrl |
Public image/logo URLs from the search result. |
reportUrl |
Source report URL when available. |
searchPageNumber, searchTotalResults |
Pagination context. |
scrapedAt |
ISO timestamp when the row was saved. |
Tips for best results
- Start with
maxItems: 10or50to validate the region and type. - Use specific city/region search URLs or geocodes for faster, cleaner output.
- Schedule repeated runs and compare
listingId,price, andscrapedAtfor monitoring.
Limits and caveats
- Search results do not expose every detail-page field. Phone numbers, agent names, and full descriptions are intentionally not guessed.
- Very broad searches can span many pages; use
maxItemsto control runtime and spend. - Source data can change, disappear, or become temporarily unavailable.
Who is it for?
- Real-estate analysts tracking rental or sales inventory by German city.
- PropTech teams enriching dashboards with listing IDs, coordinates, and price fields.
- Agencies and investors monitoring market supply and listing changes over time.
- Automation builders who need CSV, Excel, JSON, API, or MCP access to ImmobilienScout24 property listings.
API usage
Node.js:
import { ApifyClient } from "apify-client";
const client = new ApifyClient({ token: process.env.APIFY_TOKEN });
const run = await client.actor("fetch_cat/immobilienscout24-property-listings-scraper").call({
geocodes: ["/de/berlin/berlin"],
realEstateType: "apartmentrent",
maxItems: 50
});
console.log(run.defaultDatasetId);
Python:
from apify_client import ApifyClient
client = ApifyClient("YOUR_APIFY_TOKEN")
run = client.actor("fetch_cat/immobilienscout24-property-listings-scraper").call(run_input={
"geocodes": ["/de/berlin/berlin"],
"realEstateType": "apartmentrent",
"maxItems": 50,
})
print(run["defaultDatasetId"])
cURL:
curl -X POST "https://api.apify.com/v2/acts/fetch_cat~immobilienscout24-property-listings-scraper/runs?token=YOUR_APIFY_TOKEN" \
-H "Content-Type: application/json" \
-d '{"geocodes":["/de/berlin/berlin"],"realEstateType":"apartmentrent","maxItems":50}'
MCP and AI agents
Use this Actor from MCP-compatible tools through the official Apify MCP Server.
claude mcp add --transport http apify "https://mcp.apify.com?tools=fetch_cat/immobilienscout24-property-listings-scraper"
{
"mcpServers": {
"apify": {
"url": "https://mcp.apify.com?tools=fetch_cat/immobilienscout24-property-listings-scraper"
}
}
}
Example prompts:
- "Run ImmobilienScout24 Property Listings Scraper for Berlin apartment rentals and summarize average price from the dataset."
- "Export 20 Munich ImmobilienScout24 listings and list IDs with coordinates for monitoring."
Support
Open an issue from the Actor page if a run fails or output looks wrong. Include the run ID or run URL, input JSON, expected output, and actual output.