ImmobilienScout24 Real Estate Scraper
Independent tool. Trademarks referenced on this page are the property of their respective owners and are used only to identify the public website this tool reads. No affiliation or endorsement.
ImmobilienScout24 Real Estate Scraper
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 turns away essentially every automated tool. This actor clears the wall for you.
- Each page fetch 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.