ImmobilienScout24 Real Estate Scraper
Pricing
Pay per event
ImmobilienScout24 Real Estate Scraper
Scrape property listings (apartments, houses, for-sale and rental) from ImmobilienScout24.de. Returns price, living space, rooms, address, realtor, features, and images per listing.
Pricing
Pay per event
Rating
0.0
(0)
Developer
BowTiedRaccoon
Maintained by CommunityActor stats
0
Bookmarked
3
Total users
2
Monthly active users
2 days ago
Last modified
Categories
Share
Scrape property listings (apartments, houses, for-sale and rental) from ImmobilienScout24.de — Germany's largest real estate portal. Extracts price, living space, rooms, address, realtor, features, and images per listing.
What it does
The actor crawls ImmobilienScout24 search result pages and extracts the ~20 listings per page from the embedded IS24 JSON state (title, price, living space, rooms, address, city). By default it saves those records directly — no extra request per listing. Set includeExposeDetails to true to also fetch each listing's detail page (expose) for realtor, features, availability date, description and images. Pagination is automatic.
Input
| Field | Type | Default | Description |
|---|---|---|---|
startUrls | Array | — | Search result URLs to scrape (e.g. https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten). Leave empty to use the default seed (apartments for rent, Germany-wide). |
listingType | select | both | Which listings to scrape: rent, sale, or both. |
maxItems | integer | 10 | Maximum number of listings to return. 0 = unlimited. |
includeExposeDetails | boolean | false | Fetch each listing's expose (detail) page for realtor name/type, features, availability date, description text and images. Slower and more expensive (1 extra request per listing) — leave off for the fields already present on the search-results page. |
Output
One record per property listing with these fields:
| Field | Type | Description |
|---|---|---|
listing_id | string | Unique IS24 listing ID |
listing_url | string | Full URL of the listing detail page |
title | string | Listing headline |
listing_type | string | rent or sale |
property_type | string | Property type (apartment, house, etc.) |
price_raw | string | Price as shown on site, e.g. "1.200 €" |
price_amount | number | Numeric price value |
price_currency | string | Currency code (EUR) |
living_space_m2 | number | Living space in square metres |
rooms | number | Number of rooms |
address | string | Full address string |
district | string | District or neighbourhood |
city | string | City name |
realtor_name | string | Realtor or private seller name. Only populated when includeExposeDetails is enabled. |
realtor_type | string | realtor or private. Only populated when includeExposeDetails is enabled. |
features | string | Comma-separated key features. Only populated when includeExposeDetails is enabled. |
available_from | string | Date property is available. Only populated when includeExposeDetails is enabled. |
description_text | string | Full listing description. Only populated when includeExposeDetails is enabled. |
images | string | Comma-separated image URLs. Only populated when includeExposeDetails is enabled. |
scraped_at | string | ISO-8601 scrape timestamp |
Examples
Rent listings in Berlin:
{"startUrls": [{"url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten"}],"listingType": "rent","maxItems": 50}
For-sale houses in Munich:
{"startUrls": [{"url": "https://www.immobilienscout24.de/Suche/de/bayern/muenchen/haus-kaufen"}],"listingType": "sale","maxItems": 25}
Default Germany-wide rent search:
{"listingType": "rent","maxItems": 100}
With expose-page enrichment (realtor, features, description, images):
{"startUrls": [{"url": "https://www.immobilienscout24.de/Suche/de/berlin/berlin/wohnung-mieten"}],"listingType": "rent","maxItems": 25,"includeExposeDetails": true}
Notes
- ImmobilienScout24 blocks all standard datacenter and residential proxy egress. This actor uses Bright Data Web Unlocker server-side to clear the bot protection wall.
- Each Bright Data request is billed — see pricing details. The default run makes one request per search-results page (~20 listings); enabling
includeExposeDetailsadds one extra request per listing. - The actor runs with 512 MB memory and a 4-hour timeout.